diff --git a/chenchunxiao/陈春晓4.2学习笔记.md b/chenchunxiao/陈春晓4.2学习笔记.md
deleted file mode 100644
index df1dc06..0000000
--- a/chenchunxiao/陈春晓4.2学习笔记.md
+++ /dev/null
@@ -1,185 +0,0 @@
-# 技术:
-
-今天学习了git命令,并拉取了分支
-
-### 一:git工作区
-
-工作区(Working Directory)
-
- ↓ add
-
-暂存区(Staging Area)
-
- ↓ commit
-
-本地仓库(Local Repository)
-
- ↓ push
-
-远程仓库(Remote Repository)
-
-### 二:git命令
-
-#### 基本命令:
-
-创建仓库:git init
-
-查看仓库状态:git status
-
-添加到暂存区:git add
-
-提交:git commit
-
-查看仓库提交历史记录:git log
-
-回退版本:git reset:--soft
-
- --hard
-
- mixed
-
-查看差异:git diff
-
-删除文件:git rm
-
-#### 分支命令:
-
-查看本地分支:git branch
-
-创建分支:git branch 分支名
-
-切换分支:git switch 分支名
-
-合并分支:git merge 分支名
-
-删除分支:git branch -d 分支名
-
-#### 远程仓库:
-
-克隆远程仓库:git clone
-
-拉取:git pull
-
-推送:git push
-
-
-
-
-
-# 股票:
-
-### 一、核心原则(牢记)
-
-先大后小:先看大盘、行业,再看个股
-
-先长后短:先分析长期趋势,再做短期交易
-
-做熟不做生:只投资自己熟悉的领域和股票
-
-### 二、股票基础概念
-
-#### 1\. 什么是股票?
-
-股票是一种有价证券,是上市公司为了筹集资金向出资人发行的、证明其股东所持股份的凭证。
-
-#### 2\. 证券市场三大作用
-
-筹资、定价、资本配置
-
-#### 3\. 股票四大特性
-
-风险性:高收益伴随高风险
-
-收益性:来自公司分红或买卖差价
-
-流通性:可在二级市场自由交易
-
-永久性:股票不退还给公司,只能在市场卖出
-
-### 三、股票分类
-
-|类型|全称|计价货币|上市地点|投资者|
-|-|-|-|-|-|
-|A股|人民币普通股票|人民币|内地|境内投资者|
-|B股|人民币特种股票|美元/港元|内地|境外投资者|
-|H股|港股|港元|香港|全球投资者|
-|N股|美股|美元|美国|全球投资者|
-
-
-
-### 四、道氏理论
-
-#### 三大公理
-
-1\.市场行为包容一切:所有信息都已反映在价格中
-
-2\.股价以趋势运行:上升、下降、横盘
-
-3\.历史会重演:但不是简单复制
-
-#### 三种趋势
-
-长期趋势、中期趋势、短期趋势
-
-#### 牛市三阶段
-
-积累阶段:熊市结束,聪明钱开始买入
-
-稳定上涨阶段:跟风者入场
-
-反转过渡阶段:散户疯狂,主力出货
-
-#### 三类投资者
-
-先知先觉者:独立思考,理解市场本质
-
-后知后觉者:可从众,但能通过学习改变
-
-不知不觉者:贪婪恐惧,固执己见
-
-#### 五、核心专业名词
-
-多头/看多:看好后市,买入股票
-
-空头/看空:看跌后市,卖出股票
-
-牛市: 长期上涨市场
-
-熊市 :长期下跌市场
-
-牛皮市:横盘震荡,成交低迷
-
-建仓 :买入某只股票
-
-平仓 :卖出持有的股票
-
-满仓 :全部资金买入股票
-
-清仓:全部卖出股票
-
-补仓 :下跌后买入降低成本
-
-持仓 :手中持有的股票
-
-套牢 :买入后股价下跌被套
-
-踏空: 想买没买,股价大涨
-
-洗盘 :主力震出散户
-
-反弹:下跌中的短暂回升
-
-回调:上涨中的短暂回落
-
-跳水:股价快速下跌
-
-K线:
-
-阳线:红色,收盘价 > 开盘价(上涨)
-
-阴线:绿色,收盘价 < 开盘价(下跌)
-
-实体:盘价与收盘价之间的矩形
-
-影线 :最高/最低价与实体的连线
-
diff --git a/刘林林学习笔记/~$林4.2股票.docx b/刘林林学习笔记/~$林4.2股票.docx
deleted file mode 100644
index a90109e..0000000
Binary files a/刘林林学习笔记/~$林4.2股票.docx and /dev/null differ
diff --git a/刘林林学习笔记/刘林林4.2git.docx b/刘林林学习笔记/刘林林4.2git.docx
deleted file mode 100644
index 46086f5..0000000
Binary files a/刘林林学习笔记/刘林林4.2git.docx and /dev/null differ
diff --git a/刘林林学习笔记/刘林林4.2股票.docx b/刘林林学习笔记/刘林林4.2股票.docx
deleted file mode 100644
index ea06d63..0000000
Binary files a/刘林林学习笔记/刘林林4.2股票.docx and /dev/null differ
diff --git a/吴迎召学习笔记/wu.txt b/吴迎召学习笔记/wu.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/吴迎召学习笔记/吴迎召3.28学习笔记(技术部分).txt b/吴迎召学习笔记/吴迎召3.28学习笔记(技术部分).txt
deleted file mode 100644
index 1d7a9b1..0000000
--- a/吴迎召学习笔记/吴迎召3.28学习笔记(技术部分).txt
+++ /dev/null
@@ -1,150 +0,0 @@
-1. 核心定义与特点
-MySQL 是Oracle 公司维护的开源关系型数据库管理系统(RDBMS),基于标准 SQL 语言,是 Web 开发、企业级业务最主流的数据库。
-核心优势:开源免费、跨平台、性能优异、支持事务、高可用生态完善、社区活跃。
-主流版本:
-5.7:企业广泛使用的稳定版,长期支持,兼容性好
-8.0:当前最新稳定版,性能大幅提升,新增窗口函数、CTE、原子 DDL、原生 JSON 支持,默认 InnoDB 引擎,默认字符集 utf8mb4,移除查询缓存。
-字段约束
-NOT NULL:非空约束,建议所有字段都设置,避免 NULL 值带来的性能问题
-UNIQUE:唯一约束,字段值唯一,允许 NULL
-PRIMARY KEY:主键约束,非空 + 唯一,一张表仅一个
-DEFAULT:默认值,字段未赋值时的兜底值
-CHECK:检查约束,MySQL 8.0.16 + 正式支持,限制字段取值范围
-二、SQL 核心语法
-SQL 分为五大类:DDL(数据定义)、DML(数据操作)、DQL(数据查询)、DCL(数据控制)、TCL(事务控制)
-1. DDL:操作库、表结构
--- 创建数据库
-CREATE DATABASE IF NOT EXISTS test_db
-DEFAULT CHARACTER SET utf8mb4
-DEFAULT COLLATE utf8mb4_general_ci;
--- 删除数据库
-DROP DATABASE IF EXISTS test_db;
--- 查看数据库创建语句
-SHOW CREATE DATABASE test_db;
--- 创建表(企业级规范示例)
-CREATE TABLE IF NOT EXISTS `user` (
- `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `username` VARCHAR(50) NOT NULL COMMENT '用户名',
- `phone` CHAR(11) NOT NULL COMMENT '手机号',
- `age` TINYINT UNSIGNED DEFAULT 0 COMMENT '年龄',
- `gender` ENUM('男','女','未知') DEFAULT '未知' COMMENT '性别',
- `balance` DECIMAL(10,2) DEFAULT 0.00 COMMENT '账户余额',
- `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`), -- 主键索引
- UNIQUE KEY `uk_phone` (`phone`), -- 唯一索引
- KEY `idx_username` (`username`) -- 普通索引
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
--- 修改表结构
-ALTER TABLE `user` ADD COLUMN `email` VARCHAR(100) NOT NULL COMMENT '邮箱' AFTER `phone`; -- 新增字段
-ALTER TABLE `user` MODIFY COLUMN `age` TINYINT UNSIGNED DEFAULT 18 COMMENT '年龄'; -- 修改字段属性
-ALTER TABLE `user` DROP COLUMN `email`; -- 删除字段
-ALTER TABLE `user` ADD INDEX `idx_create_time` (`create_time`); -- 新增索引
-ALTER TABLE `user` DROP INDEX `idx_create_time`; -- 删除索引
--- 删除表
-DROP TABLE IF EXISTS `user`;
-2. DML:增删改表数据
--- 插入数据(批量插入性能远高于循环单条插入)
-INSERT INTO `user` (username, phone, age, gender, balance)
-VALUES
-('张三', '13800138000', 25, '男', 1000.00),
-('李四', '13800138001', 22, '女', 500.00);
--- 更新数据(必须加WHERE条件,否则全表更新!!!)
-UPDATE `user`
-SET balance = 1500.00, age = 26
-WHERE id = 1;
--- 删除数据(必须加WHERE条件,否则全表删除!!!)
-DELETE FROM `user` WHERE id = 1;
--- 清空全表(比DELETE快,自增主键重置)
-TRUNCATE TABLE `user`;
-3. DQL:数据查询
--- 语法书写顺序
-SELECT [DISTINCT] 字段列表
-FROM 表名
-[WHERE 条件过滤]
-[GROUP BY 分组字段]
-[HAVING 分组后过滤]
-[ORDER BY 排序字段 ASC/DESC]
-[LIMIT 分页偏移量, 条数];
--- 实际执行顺序
-FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
-SELECT u.id, u.username, o.order_no, o.amount
-FROM `user` u
-INNER JOIN `order` o ON u.id = o.user_id;
--- 查询所有用户,含无订单的用户
-SELECT u.id, u.username, o.order_no, o.amount
-FROM `user` u
-LEFT JOIN `order` o ON u.id = o.user_id;
-
--- 查询无订单的用户
-SELECT u.id, u.username
-FROM `user` u
-LEFT JOIN `order` o ON u.id = o.user_id
-WHERE o.id IS NULL;
--- 创建用户(%允许远程登录,localhost仅本地登录)
-CREATE USER 'test_user'@'%' IDENTIFIED BY 'Test@123456';
-
--- 授权(最小权限原则)
-GRANT SELECT, INSERT ON test_db.* TO 'test_user'@'%'; -- 给test库授予查询、插入权限
-GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'%' WITH GRANT OPTION; -- 管理员全权限
-
--- 刷新权限
-FLUSH PRIVILEGES;
-
--- 查看权限
-SHOW GRANTS FOR 'test_user'@'%';
-
--- 撤销权限
-REVOKE INSERT ON test_db.* FROM 'test_user'@'%';
--- 删除用户
-DROP USER 'test_user'@'%';
-五、事务与 ACID、MVCC
-1. 事务四大特性(ACID)
-事务是一组原子性的 SQL 操作,要么全成功,要么全失败回滚,仅 InnoDB 支持。
-表格
-特性 定义 实现原理
-原子性(Atomicity) 事务是最小执行单元,不可分割,要么全成要么全败 undo log(回滚日志),存储数据历史版本,回滚时恢复
-一致性(Consistency) 事务执行前后,数据的完整性约束不被破坏 事务的最终目的,由原子性、隔离性、持久性共同保证
-隔离性(Isolation) 并发事务之间相互隔离,互不干扰 锁机制 + MVCC 多版本并发控制
-持久性(Durability) 事务提交后,数据修改永久生效,崩溃也不丢失 redo log(重做日志),WAL 预写日志机制
-2. 事务并发问题与隔离级别
-并发问题
-脏读:一个事务读到了另一个事务未提交的数据
-不可重复读:同一事务内,两次读取同一行数据结果不一致(另一个事务修改并提交)
-幻读:同一事务内,两次范围查询返回的行数不一致(另一个事务插入 / 删除并提交)
-四大隔离级别
-表格
-隔离级别 脏读 不可重复读 幻读 说明
-读未提交(Read Uncommitted) 可能 可能 可能 最低级别,几乎不用
-读已提交(Read Committed) 解决 可能 可能 Oracle、SQL Server 默认
-可重复读(Repeatable Read) 解决 解决 可能(InnoDB 已解决) MySQL 默认级别
-串行化(Serializable) 解决 解决 解决 最高级别,事务串行执行,并发性能极差
-重点:InnoDB 的 RR 级别,通过 ** 临键锁(Next-Key Lock)** 彻底解决了幻读问题。
-3. MVCC 多版本并发控制
-MVCC 是 InnoDB 实现隔离级别的核心,通过数据行的多个版本实现读写不阻塞,大幅提升并发性能。
-核心实现:隐藏字段(DB_TRX_ID、DB_ROLL_PTR)+ undo log + Read View 读视图
-核心逻辑:事务开启时生成 Read View,判断当前事务能看到的数据版本,不同隔离级别 Read View 生成时机不同:
-RC 级别:每次 SELECT 都生成新的 Read View,解决脏读
-RR 级别:第一次 SELECT 生成 Read View,后续复用,解决不可重复读
-六、MySQL 锁机制
-锁是实现事务隔离性的核心,解决并发修改数据的冲突问题。
-1. 锁的分类
-按粒度分类
-全局锁:锁住整个实例,所有读写阻塞,仅用于全库备份
-表级锁:锁住整张表,加锁快、冲突概率高、并发差,MyISAM 默认使用
-行级锁:InnoDB 特有,锁住具体行,锁粒度最小、冲突概率最低、并发性能最高
-注意:InnoDB 行锁是针对索引加的锁,查询没用到索引会升级为表锁!
-按功能分类
-共享锁(S 锁,读锁):多个事务可同时加 S 锁,阻塞写操作,用法SELECT ... LOCK IN SHARE MODE;
-排他锁(X 锁,写锁):一个事务加 X 锁后,其他事务不能加 S/X 锁,读写都阻塞。UPDATE/DELETE/INSERT 会自动加 X 锁,用法SELECT ... FOR UPDATE;
-2. InnoDB 行锁 3 种算法(RR 级别)
-记录锁:锁住具体的索引记录,如WHERE id=1,仅锁住 id=1 的行
-间隙锁:锁住索引之间的间隙,防止插入数据,解决幻读
-临键锁(Next-Key Lock):记录锁 + 间隙锁,左开右闭区间,InnoDB 默认行锁算法,彻底解决幻读
-3. 死锁
-产生条件:互斥、请求与保持、不剥夺、循环等待
-避免方案:
-所有事务按相同顺序访问数据行
-大事务拆分为小事务,减少锁持有时间
-等值查询用唯一索引,避免间隙锁扩大范围
-避免无索引查询导致的表锁
\ No newline at end of file
diff --git a/吴迎召学习笔记/吴迎召3.28学习笔记(金融知识).txt b/吴迎召学习笔记/吴迎召3.28学习笔记(金融知识).txt
deleted file mode 100644
index e4cc904..0000000
--- a/吴迎召学习笔记/吴迎召3.28学习笔记(金融知识).txt
+++ /dev/null
@@ -1,57 +0,0 @@
-学习内容:一、核心基础概念
-证券与股票
-证券是经济权益凭证,股票是上市公司发行的股份凭证,属于有价证券。
-证券市场三大功能
-筹资(企业募资、投资者投资)、定价(供求决定资本价格)、资本配置(引导资金流向高回报企业)。
-投资者分类
-分为机构投资者和个人投资者。
-二、股票核心特性
-股票具备风险性、收益性、流通性、波动性、永久性(不退股、可转让)。
-三、股价影响与分析方法
-影响股价因素
-核心是供求关系,还包括公司经营、宏观经济、政策、心理、人为操纵等。
-两大分析流派
-基本面分析:看宏观、行业、公司财务,判断价值。
-技术面分析:看历史走势,遵循市场包容一切、股价沿趋势运行、历史会重演三大公理。
-四、股票交易规则
-交易原则:价格优先、时间优先。
-核心规则
-交易时间:A 股 9:30-11:30、13:00-15:00,含集合竞价。
-交易单位:1 手 = 100 股,零股只能卖出。
-涨跌幅:普通股票单日 ±10%,新股首日除外。
-交收:A 股T+1(次日交割)。
-五、股票与市场分类
-股票类型
-A 股(人民币普通)、B 股(外币计价)、H 股(香港上市)、N/S/T 股(境外上市)。
-市场板块
-主板(大型企业)、中小板(中小盘)、创业板(成长型企业,风险高)、新三板(中小微企业转让平台)。
-六、核心业务与门槛
-融资融券:信用交易(杠杆),个人门槛账户资产≥50 万。
-沪港通:跨境炒股,个人门槛资产≥50 万。
-开户:一人最多可开20 个 A 股账户,本人持身份证、银行卡办理。
-七、交易费用
-主要包含印花税(卖出单边千一)、交易佣金、过户费。
-八、道氏理论(技术分析鼻祖)
-市场存在长期(基本运动)、中期(次级运动)、短期(日常波动) 三大趋势,核心是趋势为王、成交量验证趋势、无反转信号则趋势延续。
-九、基础核心术语
-涵盖 K 线、多空、牛熊市、除权 / 除息、市盈率、建仓 / 平仓、套牢、反弹等常用交易名词。
-1. K 线
-记录股价一天涨跌的蜡烛图,红涨绿跌;由实体、上下影线组成,能看开盘 / 收盘 / 最高 / 最低价。
-2. 多空
-多头:看好股价会涨,先买后卖赚差价。
-空头:看跌股价,先借股卖出、跌了再买回还券。
-3. 牛熊市
-牛市:股价长期普遍上涨,多头占优。
-熊市:股价长期普遍下跌,空头占优。
-4. 除权 / 除息
-除息:公司发现金分红,股价扣除分红金额,新股东不再领这笔钱。
-除权:公司送股 / 配股,股本变大,股价按比例下调。
-5. 市盈率(PE)
-股价 ÷ 每股盈利,用来衡量股价贵不贵;数值越低,相对越便宜。
-6. 建仓 / 平仓
-建仓:开始买入股票(做多)或卖出(做空)。
-平仓:把手里的持仓卖掉,结束这笔交易。
-7. 套牢
-买完股票就跌、卖完就涨,亏着舍不得卖,被 “套” 在里面。
-8. 反弹
-股价跌了一阵后,短期小幅回升,不是反转大涨。
\ No newline at end of file
diff --git a/吴迎召学习笔记/吴迎召3.30学习笔记(技术部分).txt b/吴迎召学习笔记/吴迎召3.30学习笔记(技术部分).txt
deleted file mode 100644
index e7dcea7..0000000
--- a/吴迎召学习笔记/吴迎召3.30学习笔记(技术部分).txt
+++ /dev/null
@@ -1,77 +0,0 @@
-GO知识的学习
-Go 程序底层执行流程
-1. 编译器读取 .go 源码
-2. 检查语法错误(package main / main函数 必须存在)
-3. 编译为机器码(CPU可直接执行)
-4. 从 main() 函数第一行开始执行
-5. 逐行运行代码,执行完毕程序退出
-Go 开发核心注意事项
-可执行程序必须双件套
-只有 package main + func main() 才能运行,缺一不可
-禁止未使用的变量 / 导入包
-短变量 := 有严格限制
-只能在函数内部使用
-同一作用域不能重复声明同一个变量
-全局变量只能用 var,不能用 :=
-大小写决定访问权限
-大写字母开头:公共(对外可访问,对标 Java public)
-小写字母开头:私有(仅包内可访问,对标 Java private)
-项目与依赖
-必须用 Go Modules,别碰 GOPATH
-所有项目必须执行:go mod init 项目名
-对标 Java 的 Maven/Gradle,管理依赖
-依赖自动清理
-依赖乱了、多了,执行:go mod tidy
-自动删无用依赖、补全缺失依赖
-标准库优先,少用第三方包
-Go的转义字符
-\n 换行 输出后换行
-\t 制表符(Tab 空格对齐文本
-\\ 输出一个反斜杠 \ 打印路径
-\" 输出双引号 " 字符串里带引号
-\' 输出单引号 ' 字符里带单引号
-\r 回车(回到行首)\b退格(删除前一个字符)
-Go 变量核心知识
-一、变量命名规则
-只能用:字母、数字、下划线
-首字符不能是数字
-区分大小写(name ≠ Name)
-不能用 Go 关键字(如 var、func、package)
-1. 标准声明(指定类型)
-格式:var 变量名 类型
-var name string
-var age int
-var isOk bool
-2. 类型推导(不写类型,Go 自动识别)
-格式:var 变量名 = 值
-var name = "张三" // 自动推导为string
-var age = 20 // 自动推导为int
-var pi = 3.14 // 自动推导为float64
-3. 短变量声明
-格式:变量名 := 值
-func main() {
- name := "李四"
- age := 25
- fmt.Println(name, age)
-}
-4. 批量声明(一次声明多个)
-// 方式1:var批量
-var a, b, c int
-var x, y = 10, "hello"
-
-// 方式2:批量块(更整洁)
-var (
- name string = "王五"
- age int = 30
- isStudent bool
-)
-零值机制
-整型 (int) 0
-浮点型 (float64) 0.0
-字符串 (string) ""(空字符串)
-布尔型 (bool) false
-:= 只能在函数内用,全局变量禁止用
-变量 / 包定义了必须用,不用直接编译报错
-同一作用域不能重复声明同名变量
-大写开头 = 公共,小写开头 = 私有(和 Java 不同)
-短变量 := 至少要声明一个新变量
\ No newline at end of file
diff --git a/吴迎召学习笔记/吴迎召3.30学习笔记(金融知识).txt b/吴迎召学习笔记/吴迎召3.30学习笔记(金融知识).txt
deleted file mode 100644
index 7e19185..0000000
--- a/吴迎召学习笔记/吴迎召3.30学习笔记(金融知识).txt
+++ /dev/null
@@ -1,39 +0,0 @@
-超级云脑 - 云脑探秘 功能
-超级云脑 - 云脑探秘是单只股票一站式量化分析工具,以股票检索为入口,从估值、风险、技术位、趋势、主力成本、市场情绪六大维度,提供可视化、通俗化的个股分析结论,帮普通投资者快速看懂个股核心情况。
-1. 股票精准检索(功能入口)
-作为全功能的前置操作,支持两种检索方式:
-按股票代码精确查找
-按股票名称模糊匹配
-输入后可快速锁定目标上市股票,一键调取该股票专属的全套分析数据,无需复杂筛选,直达标的。
-2. 股票估值(基础价值 + 行情层)
-检索出具体股票后,展示两大核心信息:
-当前股票估值
-基于市盈率、市净率等核心估值指标,呈现个股当前估值水位(高估 / 合理 / 低估),直观判断估值性价比。
-上一收盘日基础情况
-展示上一交易日关键盘口数据:收盘价、涨跌幅、成交量、成交额、换手率、流通股本等,快速掌握个股昨日收盘的交易活跃度与基础行情。
-3. 安全级别(六色罗盘风险评级)
-以六色罗盘为可视化核心,做综合风险判定:
-核心依据:结合支撑位有效性、压力位强度、股价所处位置、波动幅度、资金博弈数据
-输出内容:六色罗盘图形 + 明确风险分级(高 / 中 / 低风险、稳健级等)
-作用:一眼看懂个股持仓安全等级,快速判断入场 / 持有的整体风险程度。
-4. 压力支撑(关键价位 + 操作指引)
-聚焦股价关键攻防点位,提供清晰的阻力 / 支撑判断:
-核心数据:精准测算并展示多周期关键价位
-支撑位:短期 / 中期 / 长期强支撑、弱支撑(下跌企稳价位)
-压力位:短期 / 中期 / 长期强压力、弱压力(上涨受阻价位)
-文字总结:结合当前股价与支撑 / 压力的相对位置,直白说明股价是受支撑企稳、承压回落、突破上攻还是跌破下行,明确多空阻力强弱。
-5. 趋势研判(K 线可视化 + 趋势定性)
-从技术走势给出明确方向判断:
-可视化展示:呈现个股日 K / 周 K 主流周期 K 线图,搭配均线等辅助指标,清晰呈现走势形态;
-趋势总结:基于 K 线形态、量价关系、均线方向,给出确定性趋势结论(如多头上升、空头下跌、横盘震荡、趋势反转 / 延续),直接告知个股当前运行方向与趋势强弱。
-6. 庄家成本(筹码模型 + 主力成本分析)
-聚焦主力资金行为,揭秘核心成本:
-展示形式:以筹码分布模型可视化呈现,包含筹码峰、筹码集中度、获利盘 / 套牢盘占比等筹码结构数据;
-核心分析:基于筹码模型精准算出庄家 / 主力核心成本价格区间,判断筹码密集区、筹码锁定程度与主力控盘力度,帮用户识别主力成本支撑,判断股价下行空间。
-7. 情绪价值(全维度综合总结)
-对单只股票做一站式定性总结,整合所有分析维度:
-总结内容:涵盖估值高低、风险等级、趋势方向、主力成本状态、市场多空情绪等核心要点;
-呈现形式:简短通俗的文字陈述,不堆砌专业术语,直接给出个股整体投资价值与市场情绪导向,让用户快速把握个股全貌。
-整体功能逻辑
-检索股票 → 看估值与基础行情 → 判风险安全等级 → 找压力 / 支撑关键位 → 识股价运行趋势 → 算庄家主力成本 → 得综合情绪与价值结论
-全程可视化、结论化,把专业分析转化为普通投资者易懂的判断依据。
\ No newline at end of file
diff --git a/吴迎召学习笔记/吴迎召3.31学习笔记(技术部分).txt b/吴迎召学习笔记/吴迎召3.31学习笔记(技术部分).txt
deleted file mode 100644
index 80d7c44..0000000
--- a/吴迎召学习笔记/吴迎召3.31学习笔记(技术部分).txt
+++ /dev/null
@@ -1,45 +0,0 @@
-%v 通用占位符(打印任意类型,默认格式)
-%+v 打印结构体时,显示字段名 + 值
-fmt.Printf("%+v", User{"小明"}) {Name:小明}
-%#v 打印值的 Go 语法表示(含类型)
-%T 打印值的类型 fmt.Printf("类型:%T", 3.14)
-%% 打印百分号本身(转义)
-%d 十进制整数(int/int64 等) fmt.Printf("数字:%d", 100) 数字:100
-%b 二进制整数 fmt.Printf("二进制:%b", 8) 二进制:1000
-%o 八进制整数 fmt.Printf("八进制:%o", 8) 八进制:10
-%x/%X 十六进制(小写 / 大写)
-%f 浮点数(默认保留 6 位小数)
-%.2f 浮点数(指定保留 2 位小数)
-%e/%E 科学计数法(小写 / 大写)
-%U Unicode 编码(如字符转编码)
-%s 字符串(直接打印)
-%q 字符串带双引号(转义)
-%c 单个字符(按 Unicode 打印)
-%p 指针地址(十六进制,带 0x)fmt.Printf("指针:%p", &a)
-%5d 宽度 5,右对齐(不足补空格)
-%-5d 宽度 5,左对齐(不足补空格)
-%05d 宽度 5,不足补 0 fmt.Printf("%05d", 123)
-%5.2f 总宽度 5,保留 2 位小数(右对齐)
-GO的字符串是不可变的,go的数据都有一个默认值没有赋值时Go中不同类型的变量之间赋值时需要显示转换,变量本身没有发生变化基本数据类型转换成string
-GO的指针
-核心语法:& 取地址、* 解引用(定义指针 / 访问值);
-核心优势:函数传参时修改外部变量、节省内存(大数据传递);
-Go 特色:无指针算术、自动 GC、结构体指针可直接用.访问字段(语法糖);
-避坑点:空指针(nil)解引用会崩溃,需先判空。
-1. 值类型
-所有基础数据类型 + 结构体 + 数组,都是值类型:
-基础类型:int/float/bool/string/byte/rune
-复合类型:struct(结构体)、array(数组,如 [5]int)
-特殊值类型:int8/int16/uint64 等固定长度数值类型
-2. 引用类型
-只有 3 类核心引用类型(底层封装了指针,Go 帮你简化了指针操作):
-slice(切片,如 []int)
-map(字典)
-chan(通道)
-一、标识符的基础规则(语法层面,必须遵守)
-这是 Go 编译器强制要求的,违反会直接报错:
-字符组成:只能由 字母(a-z/A-Z)、数字(0-9)、下划线(_) 组成;
-开头规则:不能以数字开头(如 1score 错误,score1 正确);
-大小写敏感:Score 和 score 是两个完全不同的标识符;
-不能用关键字:Go 有 25 个关键字(如 if/else/for/struct/var 等),不能作为标识符;
-算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符
\ No newline at end of file
diff --git a/吴迎召学习笔记/吴迎召3.31学习笔记(金融部分).txt b/吴迎召学习笔记/吴迎召3.31学习笔记(金融部分).txt
deleted file mode 100644
index 79a00ab..0000000
--- a/吴迎召学习笔记/吴迎召3.31学习笔记(金融部分).txt
+++ /dev/null
@@ -1,66 +0,0 @@
-证券定义:证券是经济权益凭证统称,日常所指为有价证券,证券市场是证券发行与交易场所。
-证券市场三大核心功能
-筹资功能:为资金短缺方募资,为盈余方提供投资渠道
-定价功能:由市场供求决定证券(资本)价格
-资本配置功能:引导资本流向高报酬率企业,实现优化配置
-投资者分类:分为机构投资者与个人投资者
-市场发展阶段:荷兰萌芽(1602 年东印度公司)→初步发展→大萧条停滞→二战后恢复→70 年代加速发展
-2. 股票核心基础
-股票定义:上市公司为筹资发行的股份凭证,代表股东权益
-股票五大特性
-风险性:投资存在亏损可能
-收益性:可获公司分红、二级市场差价
-流通性:可在二级市场自由交易变现
-波动性:股价随市场持续波动
-永久性:公司存续期内股票不可退,仅可转让
-股价影响因素:核心是供求关系,其次为公司经营、宏观经济、政策、心理、人为操纵等
-股票分析两大方法
-| 分析类型 | 核心逻辑 | 适用人群 |
-| -------- | -------- | -------- |
-| 基本面分析 | 价值决定价格,分析宏观、行业、公司财务 | 长期价值投资者 |
-| 技术面分析 | 供求决定价格,依据历史走势判断未来 | 个人短期投资者 |
-3. 股票交易核心规则
-交易原则:时间优先、价格优先
-交易时间
-A 股:周一至周五 9:30-11:30、13:00-15:00,法定节假日休市
-集合竞价:9:15-9:25(9:20 后不可撤单)、14:57-15:00
-交易单位:100 股 = 1 手,买入需为 1 手整数倍,零股仅可卖出
-涨跌幅限制:非上市首日,普通股票日涨跌幅 **±10%**,委托超限价无效
-4. 市场与股票分类
-股票类型(按上市地 / 计价货币)
-A 股:人民币计价,境内上市、国内投资者交易
-B 股:美元 / 港元计价,境内上市、境外投资者交易
-H 股:内地注册、香港上市,港元计价
-N/S/T 股:内地企业在美 / 新 / 日上市
-板块划分
-主板:大型成熟企业,上交所 + 深交所核心市场
-中小板:流通盘约 1 亿以下中小企业,主板过渡
-创业板:成长期创新企业,风险较高,需单独开通权限
-新三板:全国中小企业股份转让系统,服务中小微企业
-5. 交易服务与权限
-证券公司:分经纪商、承销商、自营商、综合类,为投资者提供交易通道
-开户规则:一人最多可开20 个A 股账户
-融资融券
-定义:券商借资买股(融资)、借股卖出(融券)的信用交易
-门槛:个人开户满18 个月、资产≥50 万;机构≥100 万
-沪港通:沪股通 + 港股通,个人参与门槛≥50 万资产
-6. 道氏理论(技术分析鼻祖)
-六大核心观点
-平均价格包容消化一切市场因素
-市场存在基本、次级、日常三种趋势
-大趋势分积累、上涨、反转三阶段
-平均价格之间相互验证
-成交量验证趋势方向
-出现明确反转信号才判定趋势终结
-三大趋势
-基本运动:周期≥1 年,涨幅≥30%,牛熊市核心趋势
-次级运动:3 周至数月,为基本运动的回撤
-日常运动:6-10 天,波动无规律、风险极高
-7. 股票交易费用
-表格
-费用类型 收费规则 关键数字
-印花税 单边收取,卖出时征收 成交金额千分之一
-交易佣金 买卖双向收取,券商可协商 默认千分之 1.5
-过户费 变更股权登记收取 深市股票免收
-8. 核心基础名词
-涵盖K 线(阴阳线 / 实体 / 影线)、多空、牛熊市、涨跌停、除权除息、市盈率、市净率、蓝筹股、绩优股等基础术语,是股票交易的基础认知。
diff --git a/吴迎召学习笔记/吴迎召4.01学习笔记(技术部分).txt b/吴迎召学习笔记/吴迎召4.01学习笔记(技术部分).txt
deleted file mode 100644
index 6615834..0000000
--- a/吴迎召学习笔记/吴迎召4.01学习笔记(技术部分).txt
+++ /dev/null
@@ -1,116 +0,0 @@
-GoFrame 标准结构
-api/ dto 包 + 接口定义 定义前后端交互的接口规范(入参 / 出参)
-internal/ src/main/java 核心业务代码(Controller/Service/DAO 全在这)
-manifest/ resources/application.yml 项目配置文件(数据库 / 端口 / 环境配置)
-resource/ resources/static + templates 静态资源(前端页面 / CSS / 图片)
-utility/ utils 工具包 通用工具函数(加密 / 时间 / 字符串处理)
-hack/ script 脚本目录 编译 / CI/CD 辅助脚本(非业务代码)
-
-# 生成名为「gf_demo」的 GoFrame 项目(-u 强制拉取最新模板)
-gf init gf_demo -u
-数据库go连接
-# 服务端口配置
-server:
- address: ":8000"
-
-# 数据库配置(重点!)
-database:
- default:
- # 连接串格式:mysql:账号:密码@tcp(IP:端口)/数据库名?参数1&参数2
- link: "mysql:root:root@tcp(127.0.0.1:3306)/gf_demo?charset=utf8mb4&parseTime=True&loc=Local"
- debug: true # 开启调试,控制台会打印执行的SQL(新手必备)
- maxIdle: 10 # 连接池最大空闲连接数
- maxOpen: 100 # 连接池最大活跃连接数
-package main
-
-import (
- "context"
- // 1. 导入 MySQL 驱动(下划线表示只初始化,不直接调用)
- _ "github.com/gogf/gf/v2/contrib/drivers/mysql"
- // 2. 导入 GoFrame 核心包
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/os/gctx"
-)
-
-func main() {
- // 初始化上下文(GoFrame 所有操作都需要 ctx)
- ctx := gctx.New()
-
- // 测试数据库连接(核心代码)
- testDBConnection(ctx)
-
- // 启动 GoFrame 服务(Web 项目必备)
- g.Server().Run()
-}
-
-// 定义和表对应的结构体(db标签映射数据库字段)
-type User struct {
- UserName string `json:"user_name" db:"user_name"`
- Password string `json:"pwd" db:"pwd"`
- Age int `json:"age" db:"age"`
-}
-
-// 新增用户
-func addUser(ctx context.Context) {
- db := g.DB()
- // Insert():插入数据,支持结构体/Map
- result, err := db.Model("user").Ctx(ctx).Insert(User{
- UserName: "小明",
- Password: "123456",
- Age: 18,
- })
- if err != nil {
- g.Log().Error(ctx, "新增失败:", err)
- return
- }
- g.Log().Info(ctx, "新增成功,用户ID:", result.LastInsertId())
-}
-// 查询所有用户
-func queryUsers(ctx context.Context) {
- db := g.DB()
- var users []User
- // Scan():把查询结果赋值给切片
- err := db.Model("user").Ctx(ctx).Scan(&users)
- if err != nil {
- g.Log().Error(ctx, "查询失败:", err)
- return
- }
- g.Log().Info(ctx, "查询到用户:", users)
-}
-// 条件查询(比如查年龄=18的用户)
-func queryUserByAge(ctx context.Context) {
- db := g.DB()
- var user User
- // Where():添加查询条件
- err := db.Model("user").Ctx(ctx).Where("age", 18).Scan(&user)
- if err != nil {
- g.Log().Error(ctx, "条件查询失败:", err)
- return
- }
- g.Log().Info(ctx, "年龄18的用户:", user)
-}
-// 修改用户年龄
-func updateUser(ctx context.Context) {
- db := g.DB()
- // Update():修改数据,参数是 Map(键=数据库字段)
- result, err := db.Model("user").Ctx(ctx).
- Where("user_name", "小明"). // 条件:用户名=小明
- Update(g.Map{"age": 20}) // 修改:年龄=20
- if err != nil {
- g.Log().Error(ctx, "修改失败:", err)
- return
- }
- g.Log().Info(ctx, "修改成功,影响行数:", result.RowsAffected())
-}
-// 删除用户
-func deleteUser(ctx context.Context) {
- db := g.DB()
- result, err := db.Model("user").Ctx(ctx).
- Where("user_name", "小明").
- Delete()
- if err != nil {
- g.Log().Error(ctx, "删除失败:", err)
- return
- }
- g.Log().Info(ctx, "删除成功,影响行数:", result.RowsAffected())
-}
\ No newline at end of file
diff --git a/吴迎召学习笔记/吴迎召4.01学习笔记(金融部分).txt b/吴迎召学习笔记/吴迎召4.01学习笔记(金融部分).txt
deleted file mode 100644
index 9711c30..0000000
--- a/吴迎召学习笔记/吴迎召4.01学习笔记(金融部分).txt
+++ /dev/null
@@ -1,12 +0,0 @@
-股票核心基础术语
-全面梳理股票交易高频术语,涵盖证券、股票、A 股 / B 股 / H 股 / ST 股等标的定义;散户 / 大户 / 庄家 / 主力等投资者分类;基本面 / 政策面 / 技术面、系统 / 非系统风险等分析维度;一级 / 二级市场、牛熊市、多空、T+0/T+1、涨跌停、停牌等市场规则术语;还有送股 / 转增 / 配股、除权除息、北上 / 南下资金、融资融券等实操概念。
-国内证券市场基础
-明确国内仅有沪、深两大证券交易所;按板块划分股票代码规则(创业板 300、沪市 A 股 600/601/603、深市 A 股 000、中小板 002);介绍上证综指、深证成指、中小板 / 创业板指数等核心市场指数。
-股票交易核心规则
-明确交易时间(周一至周五法定假日除外,9:30-11:30、13:00-15:00)、交易单位(1 手 = 100 股)、常规个股 10% 涨跌幅限制、委托可撤单、A 股实行T+1 交收(当日买次日卖)四大核心规则。
-股票交易界面解读
-拆解交易界面核心数据(现价、量比、换手率、委比、内外盘、总市值、市盈率 / 市净率等);讲解分时图、五档买卖盘、成交明细的含义;介绍 K 线图与成交量的基础看法。
-常用技术指标
-讲解 K 线(阴阳线、周期、形态信号)、移动平均线(MA,多头 / 空头排列)、MACD(金叉 / 死叉)、RSI(超买超卖)四大核心技术指标的用法与信号含义。
-股票投资三大派别
-划分价值投资(基本面分析、长线持有)、技术分析(短线交易、看指标趋势)、趋势交易(中长线、介于两者之间)三类主流投资流派。
\ No newline at end of file
diff --git a/周新忠学习笔记/3.26/3.26周新忠.doc b/周新忠学习笔记/3.26/3.26周新忠.doc
deleted file mode 100644
index a897485..0000000
Binary files a/周新忠学习笔记/3.26/3.26周新忠.doc and /dev/null differ
diff --git a/周新忠学习笔记/3.26/img_v3_02105_38857810-df73-49e4-bd95-da64f6ba747g.jpg b/周新忠学习笔记/3.26/img_v3_02105_38857810-df73-49e4-bd95-da64f6ba747g.jpg
deleted file mode 100644
index 56af300..0000000
Binary files a/周新忠学习笔记/3.26/img_v3_02105_38857810-df73-49e4-bd95-da64f6ba747g.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.26/img_v3_02105_7aaf57cd-1bac-4557-ad84-1ca9423f2eeg.jpg b/周新忠学习笔记/3.26/img_v3_02105_7aaf57cd-1bac-4557-ad84-1ca9423f2eeg.jpg
deleted file mode 100644
index f96643b..0000000
Binary files a/周新忠学习笔记/3.26/img_v3_02105_7aaf57cd-1bac-4557-ad84-1ca9423f2eeg.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.26/img_v3_02105_aed06a45-10b1-498c-842a-6e09ad05ff8g.jpg b/周新忠学习笔记/3.26/img_v3_02105_aed06a45-10b1-498c-842a-6e09ad05ff8g.jpg
deleted file mode 100644
index bb5fcc8..0000000
Binary files a/周新忠学习笔记/3.26/img_v3_02105_aed06a45-10b1-498c-842a-6e09ad05ff8g.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.26/img_v3_02105_c300e793-9fa7-48a8-b698-075ac795e58g.jpg b/周新忠学习笔记/3.26/img_v3_02105_c300e793-9fa7-48a8-b698-075ac795e58g.jpg
deleted file mode 100644
index 380bd5a..0000000
Binary files a/周新忠学习笔记/3.26/img_v3_02105_c300e793-9fa7-48a8-b698-075ac795e58g.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.26/img_v3_02106_0c6b6038-891c-4657-a3cb-414c02ff1fbg.jpg b/周新忠学习笔记/3.26/img_v3_02106_0c6b6038-891c-4657-a3cb-414c02ff1fbg.jpg
deleted file mode 100644
index 57e3e34..0000000
Binary files a/周新忠学习笔记/3.26/img_v3_02106_0c6b6038-891c-4657-a3cb-414c02ff1fbg.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.27/1.jpg b/周新忠学习笔记/3.27/1.jpg
deleted file mode 100644
index 2e68b79..0000000
Binary files a/周新忠学习笔记/3.27/1.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.27/2.jpg b/周新忠学习笔记/3.27/2.jpg
deleted file mode 100644
index ad2f590..0000000
Binary files a/周新忠学习笔记/3.27/2.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.27/3.27周新忠.md b/周新忠学习笔记/3.27/3.27周新忠.md
deleted file mode 100644
index f25d969..0000000
--- a/周新忠学习笔记/3.27/3.27周新忠.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# 股票相关
-学习了股票相关的常用术语
-#### 投资者相关概念:
-散户 大户 庄家 主力
-#### 从股票分析切入点划分:
-基本面 政策面 技术面
-#### 市场:
-级别: 一级 二级
-趋势: 多头市场 空头市场
-#### 股票类型:
-蓝筹股 垃圾股 成长股 龙头股 大盘股 小盘股
-#### 技术词汇:
-看多 看空 踏空 跳水 诱多 斩仓 对敲 护盘 洗盘 追涨 杀跌
-天量 地量 天价 地价 持仓量 满仓 空仓 清仓 盘整 反弹
-多头陷阱 空头陷阱 套牢 解套 含息 含权 送股 转增股 配股
-除权 填权 贴权
-
-# 技术相关
-### 1.goframe框架的基本结构:
-\api - 定义请求和响应
-\hack - 开发时配置文件
-\internal - 项目核心代码
-→\cmd - 项目启动位置,挂载路由
- \consts - 存常量
- \controller - 控制器
- \dao - 数据层 (spring的 mapper)
- \logic - 实现层 (spring 的 impl)
- \service - 服务层
-\manifest - 部署时需要的配置
-\resource - 资源文件
-\utility - 工具类
-
-### 2.路由注册相关
-s:=g.Server()
-单独注册 s.BindHandler
-分组路由 s.Group(可嵌套)
-静态资源绑定路径 s.SetServerRoot
-结构体绑定 s.BindObject
-单个方法绑定 s.BindObjectMethod
-Restful风格 s.BindObjectRest
-
-### 3.规范路由
-Controller签名格式: func (Example) Execute (ctx context.Context,req *ExampleReq)(res *ExampleReq,err error)
-
-### 4.非规范路由获取请求参数
-获取请求:g.RequestFromCtx(ctx)
-从请求中提取路径参数: request.GetQuery -> 然后用对应数据类型的转换方法提取内部的value属性值
\ No newline at end of file
diff --git a/周新忠学习笔记/3.27/3.jpg b/周新忠学习笔记/3.27/3.jpg
deleted file mode 100644
index 2bada85..0000000
Binary files a/周新忠学习笔记/3.27/3.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.27/4.jpg b/周新忠学习笔记/3.27/4.jpg
deleted file mode 100644
index 519e05b..0000000
Binary files a/周新忠学习笔记/3.27/4.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.28/1.jpg b/周新忠学习笔记/3.28/1.jpg
deleted file mode 100644
index 17112ef..0000000
Binary files a/周新忠学习笔记/3.28/1.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.28/2.jpg b/周新忠学习笔记/3.28/2.jpg
deleted file mode 100644
index d30a27c..0000000
Binary files a/周新忠学习笔记/3.28/2.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.28/3.28.md b/周新忠学习笔记/3.28/3.28.md
deleted file mode 100644
index 7c759b6..0000000
--- a/周新忠学习笔记/3.28/3.28.md
+++ /dev/null
@@ -1,180 +0,0 @@
-\# 技术相关:
-
-\### 获取请求参数剩余部分:
-
-用map提取参数: .GetQueryMap() .GetQueryMapStrStr .GetQueryMapStrVar
-
-取Form格式请求体参数: .GetForm()/.GetFormMap()
-
-获取Restful风格路由参数: GetRouter/GetRouterMap
-
-一次性取出各类参数:
-
-Get()=GetRequestMap()
-
-GetStruct()=GetRequestStruct() (规范路由默认调用)
-
-
-
-\### 标签:
-
-\#### meta标签:
-
-method: 请求方式(all/get/post...)
-
-path: 路径
-
-sm: 总结
-
-tags: 分组标签
-
-\#### 普通字段标签:
-
-dc: 描述
-
-p/params: 请求key
-
-m/orm: 数据库字段名
-
-default: 默认值
-
-v/vaild: 校验规则
-
-ad: 补充说明
-
-eg: 示例值
-
-
-
-\### Dao部分
-
-\####查询:
-
-\#####Select
-
-g.Model("table").One() 查询单条数据
-
-g.Model("table").All() 查询全部数据
-
-g.Model("table").Feilds()指定字段
-
-g.Model("table").FeildsEx()排除字段
-
-g.Model("table").Value()查询某一格的内容
-
-g.Model("table").Array()查询整列
-
-g.Model("table").LockUpdate()申请行级锁
-
-\#####聚合函数
-
-Count() Sum() Min() Max() Avg()
-
-\####条件:
-
-Where()
-
-WhereLT
-
-WhereGT
-
-WhereLTE
-
-WhereGTE
-
-WhereIn
-
-WhereBetween
-
-WhereNot
-
-WhereOr..........
-
-
-
-\####排序
-
-Order("feild","asc/desc")
-
-\####分组
-
-Group()
-
-\####分页
-
-Limit(origin,offset)
-
-Page(pageNum,pageCapcity)
-
-\####扫描为结构体
-
-Scan(\&struct)
-
-\####插入
-
-model.Insert()或model.Data().Insert()
-
-model.Replace() 删除或插入
-
-model.Save()更新或插入
-
-model.InsertAndGetId()插入并获取自增id
-
-\####更新
-
-Update()
-
-Increment()
-
-Decrement()
-
-\####删除
-
-Delete()
-
-\####时间字段
-
-create\_at delete\_at update\_at 增删改时框架自动更新这些字段
-
-delete\_at 会被作为逻辑删除的依据
-
-\####事务
-
-1\.手动管理事务
-
-tx,err:=g.DB(),Begin(req.Context())开启事务
-
-tx.Rollback()回滚
-
-tx.Commit()提交
-
-2\.靠抛出error管理的事务
-
-err:=g.DB().Transaction(context.TODO(),func(ctx context.Context,tx gbd.Tx)error{})
-
-
-
-\#股票相关:
-
-
-
-道氏理论观点:
-
-平均价格包容消化一切
-
-市场同时存在三种趋势(基本运动,次级运动,日常运动)
-
-大趋势有三个阶段
-
-平均价格互相验证
-
-成交量验证趋势
-
-确切的反转信号判定终结
-
-操作口诀:先大后小,先长后短,做熟不做生
-
-
-
-
-
diff --git a/周新忠学习笔记/3.28/3.jpg b/周新忠学习笔记/3.28/3.jpg
deleted file mode 100644
index ab9bfd7..0000000
Binary files a/周新忠学习笔记/3.28/3.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.28/4.jpg b/周新忠学习笔记/3.28/4.jpg
deleted file mode 100644
index e4ff07a..0000000
Binary files a/周新忠学习笔记/3.28/4.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.28/5.jpg b/周新忠学习笔记/3.28/5.jpg
deleted file mode 100644
index cda6238..0000000
Binary files a/周新忠学习笔记/3.28/5.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.28/6.jpg b/周新忠学习笔记/3.28/6.jpg
deleted file mode 100644
index f60dfe6..0000000
Binary files a/周新忠学习笔记/3.28/6.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.28/7.jpg b/周新忠学习笔记/3.28/7.jpg
deleted file mode 100644
index 4621d5d..0000000
Binary files a/周新忠学习笔记/3.28/7.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.30/1.jpg b/周新忠学习笔记/3.30/1.jpg
deleted file mode 100644
index 4ad5fbe..0000000
Binary files a/周新忠学习笔记/3.30/1.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.30/2.jpg b/周新忠学习笔记/3.30/2.jpg
deleted file mode 100644
index de7837d..0000000
Binary files a/周新忠学习笔记/3.30/2.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.30/3.jpg b/周新忠学习笔记/3.30/3.jpg
deleted file mode 100644
index 3b0ba74..0000000
Binary files a/周新忠学习笔记/3.30/3.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.30/4.jpg b/周新忠学习笔记/3.30/4.jpg
deleted file mode 100644
index 60a1c23..0000000
Binary files a/周新忠学习笔记/3.30/4.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.30/5.jpg b/周新忠学习笔记/3.30/5.jpg
deleted file mode 100644
index fd95c45..0000000
Binary files a/周新忠学习笔记/3.30/5.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.30/6.jpg b/周新忠学习笔记/3.30/6.jpg
deleted file mode 100644
index 7d3c76a..0000000
Binary files a/周新忠学习笔记/3.30/6.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.30/周新忠3.30笔记.md b/周新忠学习笔记/3.30/周新忠3.30笔记.md
deleted file mode 100644
index ccc15ad..0000000
--- a/周新忠学习笔记/3.30/周新忠3.30笔记.md
+++ /dev/null
@@ -1,145 +0,0 @@
-# 技术部分
-### 手动编写SQL的方法:
-g.DB().Query(ctx,sql,g.Array{}) //查询sql
-g.DB().Exec(ctx,sql,g.Array{}) //修改的sql
-### Dao代码生成
-config 中需要配置:
-gfcli:
- gen:
- dao:
- link:
- tables:
-执行gf gen dao命令 //即逆向工程
-或直接执行gf gen dao -l "link" -t "tables" 可不用改配置
-
-生成代码:
-entity包 数据库表对应结构体
-do包 经过包装的结构体,与entity区别是普通字段类型为interface{}而不是基本类型,可用来区分空值和空指针
-dao包 直接隶属dao包的go文件写自定义业务代码,隶属于internal包的go文件用来存储框架预设代码(再次执行gen命令会被覆盖)
-
-### 级联查询
-#### 一对一关系
-结构体中添加字段: Struct *Struct `orm:"with:id=s_id"` //标签指定关联规则
-查询时使用model.With(entity.Struct{})设置级联的表
-
-#### 一对多关系
-结构体中添加字段: Structs []*Struct `orm:"with:id=s_id"` //标签指定关联规则
-
-#### 多级级联
-直接在With()中添加多个结构体就行
-
-### Service和Logic层
-
-根据logic包生成service接口:gf gen service
-
-#### service
-组成部分:
-接口
-type IExample interface{ //命名以I开头
-定义业务函数
-}
-
-定义接口变量
-var localExample() IExample //私有化防止外部修改
-
-定义获取接口方法
-func Example () IExample{
-if localExample==nil{
-panic(".....")
-}
-return localExample
-}
-
-定义注册方法
-func RegisterExample(i IExample){
-localExample=i //用接口实现给接口变量赋值
-}
-
-#### Logic层
-定义结构体
-type sExample struct{} //以s开头命名
-
-初始化方法中注册
-func init(){
-service.RegisterExample(&sExample{})
-}
-
-实现service的接口中的业务方法
-
-#### 初始化接口
-在logic.go中统一import logic,然后再在main.go 中import一次logic.go 实现单例初始化服务接口
-
-### 模板输出
-1. req.Response.Writef() //其实就是write套了层Sprintf
-2. req.Response.WriteTplContent(string,g.Map{}) //此法是在string中预留{{}}占位符,用g.Map中的value替换占位符
-3. req.Response.WriteTpl(path string, g.Map{}) //此法与上一个区别是第一个参数是HTML文件路径,在文件路径中可以预留占位符进行替换,形式类似于JSP或Thymeleaf
-4. 模板中的流程控制语句:
- 条件判断
- {{if [compare] variable1 variable2}}
- {{else}}
- {{end}}
- 循环遍历切片
- {{range.slice}}
- {{end}}
- 循环遍历map
- {{range $key,$value := .map}}
- {{end}}
-
-### 文件上传
- file:=req.GetUploadFile("name")
- 规范路由写法:
- 属性: File *ghttp.UploadFile `p:"name"`
- 全局配置文件大小限制:
- config文件中
- server:
- clientMaxBodySize: ""
-
- 局部配置文件大小限制:
- 标签:v:"max-size: xxx MB"
-
-### 文件下载
-req.Response.ServerFile("/path") // 图片会显示在前端而不主动下载
-req.Response.ServerFileDownload("/path","name") //无论是不是图片都会立刻开始下载
-
-### Cookie和Session
-req.Cookie.Set("key","value")
-req.Cookie.SetCookie// 有多项设置,自由度较高
-req.Cookie.Remove("key") //移除cookie
-req.Session.Set("key","value")
-req.Session.Remove("key")
-
-### 时间工具
-gtime.Now() Date() DateTime() New() Format() TimeStamp()....
-
-### 随机工具
-grand.Intn() grand.N() grand.S() grand.Letters().....
-
-### 中间件
-固定签名格式:
-func 函数名 (r *ghttp.Request){
-前置中间件业务逻辑
-r.Middleware.Next()
-后置中间件业务逻辑
-}
-挂载方法:
-1.全局中间件 2.分组路由中间件
-
-
-
-# 业务部分
-
-## 超级云脑-云脑探秘 功能总结
-
-首先是可以根据股票代码或名称搜索股票
-#### 股票估值
-搜索出具体的股票后,显示当前股票估值和上一收盘日的基本情况
-#### 安全级别
-显示六色罗盘,分析支撑和压力情况,据此显示风险分级
-#### 压力支撑
-显示支撑位和压力位,根据支撑压力数据显示简短的总结
-#### 趋势研判
-显示K线图,并总结趋势
-#### 庄家成本
-显示筹码模型,根据筹码模型分析陈本价格
-#### 情绪价值
-对该支股票进行简短的总结陈述
diff --git a/周新忠学习笔记/3.31/1.jpg b/周新忠学习笔记/3.31/1.jpg
deleted file mode 100644
index bcea915..0000000
Binary files a/周新忠学习笔记/3.31/1.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.31/2.jpg b/周新忠学习笔记/3.31/2.jpg
deleted file mode 100644
index 5b6cd78..0000000
Binary files a/周新忠学习笔记/3.31/2.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.31/3.jpg b/周新忠学习笔记/3.31/3.jpg
deleted file mode 100644
index 6b257ae..0000000
Binary files a/周新忠学习笔记/3.31/3.jpg and /dev/null differ
diff --git a/周新忠学习笔记/3.31/周新忠笔记3.31.md b/周新忠学习笔记/3.31/周新忠笔记3.31.md
deleted file mode 100644
index f3aae0e..0000000
--- a/周新忠学习笔记/3.31/周新忠笔记3.31.md
+++ /dev/null
@@ -1,116 +0,0 @@
-## 技术方面
-
-### 打包指令
-
-配置:
-
-```yaml
-gfcli:
- build:
- name: ""
- arch: "amd64" # 配置CPU架构
- system: "linux,darwin,windows" # 配置操作系统
- mod: "" #GoModules编译模式,默认留空
- cgo:0 # 是否允许调用C代码,0禁用1启用
- packSrc: "manifest,resource" # 指定一起打包的静态资源路径
-```
-
-命令: gf build
-
-
-
-### Bcrypt加密
-
-```go
-//加密:
-bcrypt.GenerateFromPassword([]byte("要加密的内容"),int 加密次数2^int次)
-
-//验证:
-err:=bcrypt.CompareHashAndPassword(hash,password)
-```
-
-
-
-### JWT
-
-#### golang-jwt
-
-```go
-//1.定义结构体
-type MyClaims struct{
- ID uint
- Username string
- jwt.RegisteredClaims
-}
-
-//2.签发
-claims:=MyClaims{
- ....
- RegisteredClaims: jwt.RegisteredClaims{
- 设置token参数,如过期时间等
- }
-}
-token:=jwt.NewWithClaims(jwt.SigningMethodHS256,claims)
-token =token.SignedString([]byte(密钥))
-
-//3.验签
-token,err:= jwt.ParseWithClaims(tokenString, &model.MyClaim{}, func(token *jwt.Token) (interface{}, error) {
- _, ok := token.Method.(*jwt.SigningMethodHMAC) //验证加密方式
- if !ok {
- return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"])
- }
- return []byte(密钥), nil
- })
-if err!=nil {return nil,err}
-
-if claims,ok:=token.Claims.(*MyClaims);ok&&token.Valid{
- return claims,nil
-}
-
-```
-
-#### gf-jwt
-
-gf-jwt是以中间件的形式管理token
-
-```go
-//1.初始化中间件
-var Auth:=&gfjwt.GFJWTMiddleware{
- Realm:"name",
- Key:[]byte(密钥),
- Timeout:过期时间,
- MaxRefresh: token刷新窗口期
- IdentityKey: "id" //payload中标识身份的key
- Authenticator:func(r *ghttp.Request)(interface{},error)//回调函数,处理登录验签逻辑
-}
-//2.注册中间件
-//3.从token中获取数据
-_,data:=Auth.GetIdentity(g.RequestFromCtx(ctx))
-userId:=gconv.Uint64(data(g.Map)["id"])
-
-
-```
-
-
-
-## 夺宝奇兵功能
-
-### 机构动向
-
-#### --股票估值--
-
-显示股票当前或上一次收盘的基本信息
-
-### --当日资金--
-
-分析资金流入流出方向,列出了主力资金状况、主力吸筹有无、庄散对决情况
-
-
-
-### AI 预测大模型--股价预测
-
-展示7项数据:现价、卖出价、买回价,预测高一高二、低一低二
-
-展示K线图
-
-功能亮点介绍
\ No newline at end of file
diff --git a/周新忠学习笔记/4.1/gf_demo_02/.gitattributes b/周新忠学习笔记/4.1/gf_demo_02/.gitattributes
deleted file mode 100644
index 1fbf887..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* linguist-language=GO
\ No newline at end of file
diff --git a/周新忠学习笔记/4.1/gf_demo_02/.gitignore b/周新忠学习笔记/4.1/gf_demo_02/.gitignore
deleted file mode 100644
index 18646b6..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/.gitignore
+++ /dev/null
@@ -1,19 +0,0 @@
-.buildpath
-.hgignore.swp
-.project
-.orig
-.swp
-.idea/
-.settings/
-.vscode/
-bin/
-**/.DS_Store
-gf
-main
-main.exe
-output/
-manifest/output/
-temp/
-temp.yaml
-bin
-**/config/config.yaml
\ No newline at end of file
diff --git a/周新忠学习笔记/4.1/gf_demo_02/Makefile b/周新忠学习笔记/4.1/gf_demo_02/Makefile
deleted file mode 100644
index 2a6e6e9..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-ROOT_DIR = $(shell pwd)
-NAMESPACE = "default"
-DEPLOY_NAME = "template-single"
-DOCKER_NAME = "template-single"
-
-include ./hack/hack-cli.mk
-include ./hack/hack.mk
\ No newline at end of file
diff --git a/周新忠学习笔记/4.1/gf_demo_02/README.MD b/周新忠学习笔记/4.1/gf_demo_02/README.MD
deleted file mode 100644
index 10e8ccb..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/README.MD
+++ /dev/null
@@ -1,6 +0,0 @@
-# GoFrame Template For SingleRepo
-
-Quick Start:
-- https://goframe.org/quick
-
-没做规范化处理目前!!
\ No newline at end of file
diff --git a/周新忠学习笔记/4.1/gf_demo_02/api/user/v1/user.go b/周新忠学习笔记/4.1/gf_demo_02/api/user/v1/user.go
deleted file mode 100644
index 86c8cc8..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/api/user/v1/user.go
+++ /dev/null
@@ -1,57 +0,0 @@
-package user
-
-import (
- "gf_demo_02/internal/model/entity"
- "github.com/gogf/gf/v2/frame/g"
-)
-
-type LoginReq struct {
- g.Meta `path:"/login" method:"post"`
- Username string
- Password string
-}
-
-type LoginRes struct {
- Token string `json:"token"` //token加签后的字符串
-}
-
-type GetUserListReq struct {
- g.Meta `path:"/getUsers" method:"get"`
-}
-
-type GetUserListRes struct {
- Users []entity.User `json:"users"`
-}
-
-type EditUserReq struct {
- g.Meta `path:"/admin/user/editUser" method:"post"`
- Id uint `json:"id"`
- Name string `json:"name" v:"required"`
- Property uint `json:"property" v:"between:1,5 #权限必须为1-5"`
- Pass string `json:"pass"`
-}
-
-type EditUserRes struct {
-}
-
-type DeleteUserReq struct {
- g.Meta `path:"/admin/user/delete" method:"delete"`
- Id uint `json:"id" v:"required#缺少用户id"`
-}
-type DeleteUserRes struct{}
-
-type GetSelfReq struct {
- g.Meta `path:"/admin/user/getSelf" method:"get"`
-}
-type GetSelfRes struct {
- User entity.User `json:"user"`
-}
-
-type SearchUserReq struct {
- g.Meta `path:"/admin/user/search" method:"get"`
- Keyword string `json:"keyword" p:"keyword"`
-}
-
-type SearchUserRes struct {
- Users []entity.User `json:"users"`
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/go.mod b/周新忠学习笔记/4.1/gf_demo_02/go.mod
deleted file mode 100644
index d9f1530..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/go.mod
+++ /dev/null
@@ -1,38 +0,0 @@
-module gf_demo_02
-
-go 1.21
-
-toolchain go1.21.13
-
-require (
- github.com/dgrijalva/jwt-go v3.2.0+incompatible
- github.com/gogf/gf/contrib/drivers/mysql/v2 v2.7.0
- github.com/gogf/gf/v2 v2.7.0
- github.com/golang-jwt/jwt/v5 v5.3.1
- golang.org/x/crypto v0.21.0
-)
-
-require (
- github.com/BurntSushi/toml v1.3.2 // indirect
- github.com/clbanning/mxj/v2 v2.7.0 // indirect
- github.com/fatih/color v1.16.0 // indirect
- github.com/fsnotify/fsnotify v1.7.0 // indirect
- github.com/go-logr/logr v1.2.4 // indirect
- github.com/go-logr/stdr v1.2.2 // indirect
- github.com/go-sql-driver/mysql v1.7.1 // indirect
- github.com/gorilla/websocket v1.5.1 // indirect
- github.com/grokify/html-strip-tags-go v0.1.0 // indirect
- github.com/magiconair/properties v1.8.7 // indirect
- github.com/mattn/go-colorable v0.1.13 // indirect
- github.com/mattn/go-isatty v0.0.20 // indirect
- github.com/mattn/go-runewidth v0.0.15 // indirect
- github.com/olekukonko/tablewriter v0.0.5 // indirect
- github.com/rivo/uniseg v0.4.4 // indirect
- go.opentelemetry.io/otel v1.14.0 // indirect
- go.opentelemetry.io/otel/sdk v1.14.0 // indirect
- go.opentelemetry.io/otel/trace v1.14.0 // indirect
- golang.org/x/net v0.23.0 // indirect
- golang.org/x/sys v0.19.0 // indirect
- golang.org/x/text v0.14.0 // indirect
- gopkg.in/yaml.v3 v3.0.1 // indirect
-)
diff --git a/周新忠学习笔记/4.1/gf_demo_02/go.sum b/周新忠学习笔记/4.1/gf_demo_02/go.sum
deleted file mode 100644
index f35e564..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/go.sum
+++ /dev/null
@@ -1,70 +0,0 @@
-github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
-github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
-github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME=
-github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
-github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
-github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
-github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
-github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
-github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
-github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
-github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
-github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
-github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
-github.com/gogf/gf/contrib/drivers/mysql/v2 v2.7.0 h1:5Igvtz4gy5UMvH+Ut4kLIpwSzggV9ZgDVBsIiOctH5E=
-github.com/gogf/gf/contrib/drivers/mysql/v2 v2.7.0/go.mod h1:0+flZ0clMKjtH1sTI7YD2KG4FPr8xz0L9h1WMd5M2Z8=
-github.com/gogf/gf/v2 v2.7.0 h1:CjxhbMiE7oqf6K8ZtGuKt3dQEwK4vL6LhiI+dI7tJGU=
-github.com/gogf/gf/v2 v2.7.0/go.mod h1:Qu8nimKt9aupJQcdUL85tWF4Mfxocz97zUt8UC4abVI=
-github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY=
-github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY=
-github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY=
-github.com/grokify/html-strip-tags-go v0.1.0 h1:03UrQLjAny8xci+R+qjCce/MYnpNXCtgzltlQbOBae4=
-github.com/grokify/html-strip-tags-go v0.1.0/go.mod h1:ZdzgfHEzAfz9X6Xe5eBLVblWIxXfYSQ40S/VKrAOGpc=
-github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
-github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
-github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
-github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
-github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
-github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
-github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
-github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
-github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
-github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
-github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
-github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
-github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
-github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
-github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
-github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM=
-go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU=
-go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY=
-go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM=
-go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M=
-go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8=
-golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
-golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
-golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
-golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
-golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
-golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/周新忠学习笔记/4.1/gf_demo_02/hack/config.yaml b/周新忠学习笔记/4.1/gf_demo_02/hack/config.yaml
deleted file mode 100644
index 83c7dc6..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/hack/config.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-# CLI tool, only in development environment.
-# https://goframe.org/docs/cli
-gfcli:
- gen:
- dao:
- - link: "mysql:root:12345678@tcp(127.0.0.1:3306)/test"
- descriptionTag: true
-
- docker:
- build: "-a amd64 -s linux -p temp -ew"
- tagPrefixes:
- - my.image.pub/my-app
\ No newline at end of file
diff --git a/周新忠学习笔记/4.1/gf_demo_02/hack/hack-cli.mk b/周新忠学习笔记/4.1/gf_demo_02/hack/hack-cli.mk
deleted file mode 100644
index f4e2ad2..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/hack/hack-cli.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-
-# Install/Update to the latest CLI tool.
-.PHONY: cli
-cli:
- @set -e; \
- wget -O gf \
- https://github.com/gogf/gf/releases/latest/download/gf_$(shell go env GOOS)_$(shell go env GOARCH) && \
- chmod +x gf && \
- ./gf install -y && \
- rm ./gf
-
-
-# Check and install CLI tool.
-.PHONY: cli.install
-cli.install:
- @set -e; \
- gf -v > /dev/null 2>&1 || if [[ "$?" -ne "0" ]]; then \
- echo "GoFame CLI is not installed, start proceeding auto installation..."; \
- make cli; \
- fi;
\ No newline at end of file
diff --git a/周新忠学习笔记/4.1/gf_demo_02/hack/hack.mk b/周新忠学习笔记/4.1/gf_demo_02/hack/hack.mk
deleted file mode 100644
index 2f68179..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/hack/hack.mk
+++ /dev/null
@@ -1,75 +0,0 @@
-.DEFAULT_GOAL := build
-
-# Update GoFrame and its CLI to latest stable version.
-.PHONY: up
-up: cli.install
- @gf up -a
-
-# Build binary using configuration from hack/config.yaml.
-.PHONY: build
-build: cli.install
- @gf build -ew
-
-# Parse api and generate controller/sdk.
-.PHONY: ctrl
-ctrl: cli.install
- @gf gen ctrl
-
-# Generate Go files for DAO/DO/Entity.
-.PHONY: dao
-dao: cli.install
- @gf gen dao
-
-# Parse current project go files and generate enums go file.
-.PHONY: enums
-enums: cli.install
- @gf gen enums
-
-# Generate Go files for Service.
-.PHONY: service
-service: cli.install
- @gf gen service
-
-
-# Build docker image.
-.PHONY: image
-image: cli.install
- $(eval _TAG = $(shell git rev-parse --short HEAD))
-ifneq (, $(shell git status --porcelain 2>/dev/null))
- $(eval _TAG = $(_TAG).dirty)
-endif
- $(eval _TAG = $(if ${TAG}, ${TAG}, $(_TAG)))
- $(eval _PUSH = $(if ${PUSH}, ${PUSH}, ))
- @gf docker ${_PUSH} -tn $(DOCKER_NAME):${_TAG};
-
-
-# Build docker image and automatically push to docker repo.
-.PHONY: image.push
-image.push: cli.install
- @make image PUSH=-p;
-
-
-# Deploy image and yaml to current kubectl environment.
-.PHONY: deploy
-deploy: cli.install
- $(eval _TAG = $(if ${TAG}, ${TAG}, develop))
-
- @set -e; \
- mkdir -p $(ROOT_DIR)/temp/kustomize;\
- cd $(ROOT_DIR)/manifest/deploy/kustomize/overlays/${_ENV};\
- kustomize build > $(ROOT_DIR)/temp/kustomize.yaml;\
- kubectl apply -f $(ROOT_DIR)/temp/kustomize.yaml; \
- if [ $(DEPLOY_NAME) != "" ]; then \
- kubectl patch -n $(NAMESPACE) deployment/$(DEPLOY_NAME) -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"$(shell date +%s)\"}}}}}"; \
- fi;
-
-
-# Parsing protobuf files and generating go files.
-.PHONY: pb
-pb: cli.install
- @gf gen pb
-
-# Generate protobuf files for database tables.
-.PHONY: pbentity
-pbentity: cli.install
- @gf gen pbentity
\ No newline at end of file
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/cmd/cmd.go b/周新忠学习笔记/4.1/gf_demo_02/internal/cmd/cmd.go
deleted file mode 100644
index 4273632..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/cmd/cmd.go
+++ /dev/null
@@ -1,30 +0,0 @@
-package cmd
-
-import (
- "context"
- "gf_demo_02/internal/controller/user"
- "gf_demo_02/internal/service"
-
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/net/ghttp"
- "github.com/gogf/gf/v2/os/gcmd"
-)
-
-var (
- Main = gcmd.Command{
- Name: "main",
- Usage: "main",
- Brief: "start http server",
- Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
- s := g.Server()
- s.Group("/", func(group *ghttp.RouterGroup) {
- group.Middleware(service.CorsMiddleware)
- group.Middleware(ghttp.MiddlewareHandlerResponse)
- group.Middleware(service.JWTMiddleware)
- group.Bind(user.CUser{})
- })
- s.Run()
- return nil
- },
- }
-)
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/consts/consts.go b/周新忠学习笔记/4.1/gf_demo_02/internal/consts/consts.go
deleted file mode 100644
index f17ddeb..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/consts/consts.go
+++ /dev/null
@@ -1,3 +0,0 @@
-package consts
-
-const TOKEN_KEY = "55558888"
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/controller/user/user.go b/周新忠学习笔记/4.1/gf_demo_02/internal/controller/user/user.go
deleted file mode 100644
index 7b4aff2..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/controller/user/user.go
+++ /dev/null
@@ -1,98 +0,0 @@
-package user
-
-import (
- "context"
- "gf_demo_02/api/user/v1"
- "gf_demo_02/internal/consts"
- m "gf_demo_02/internal/model"
- "gf_demo_02/internal/model/entity"
- "gf_demo_02/internal/service"
- "github.com/gogf/gf/v2/errors/gcode"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/frame/g"
- jwt "github.com/golang-jwt/jwt/v5"
- "golang.org/x/crypto/bcrypt"
- "time"
-)
-
-type CUser struct{}
-
-func (*CUser) Login(ctx context.Context, req *user.LoginReq) (res *user.LoginRes, err error) {
- model := g.DB().Model("user")
- u := new(entity.User)
- res = new(user.LoginRes)
- err = model.Where("name", req.Username).Scan(&u)
- if err != nil || u.Id == 0 {
- return nil, gerror.NewCode(gcode.New(451, "用户名不存在", nil), "用户名不存在")
- }
- if bcrypt.CompareHashAndPassword([]byte(u.Pass), []byte(req.Password)) != nil {
- return nil, gerror.NewCode(gcode.New(450, "密码错误", nil), "密码错误")
- }
- claims := m.UserClaim{
- UserId: u.Id,
- UserName: u.Name,
- RegisteredClaims: jwt.RegisteredClaims{
- ExpiresAt: jwt.NewNumericDate(time.Now().Add(24 * time.Hour)),
- IssuedAt: jwt.NewNumericDate(time.Now()),
- NotBefore: jwt.NewNumericDate(time.Now()),
- Issuer: "我"},
- }
- token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
- tokenStr, err := token.SignedString([]byte(consts.TOKEN_KEY))
- res.Token = tokenStr
- return res, nil
-}
-
-func (*CUser) GetUserList(ctx context.Context, req *user.GetUserListReq) (res *user.GetUserListRes, err error) {
- users, err := service.User().GetUserList(ctx)
- if err != nil {
- return nil, err
- }
- res = new(user.GetUserListRes)
- res.Users = users
- return res, nil
-}
-
-func (*CUser) EditUser(ctx context.Context, req *user.EditUserReq) (res *user.EditUserRes, err error) {
- res = new(user.EditUserRes)
- if req.Id == 0 {
- err = service.User().AddUser(ctx, req)
- } else {
- err = service.User().UpdateUser(ctx, req)
- }
- if err != nil {
- return res, err
- }
- return res, nil
-}
-
-func (*CUser) DeleteUser(ctx context.Context, req *user.DeleteUserReq) (res *user.DeleteUserRes, err error) {
- return nil, service.User().DeleteUser(ctx, req)
-}
-
-func (*CUser) GetSelf(ctx context.Context, req *user.GetSelfReq) (res *user.GetSelfRes, err error) {
- r := g.RequestFromCtx(ctx)
- u := r.GetCtxVar("user")
- res = new(user.GetSelfRes)
- err = u.Struct(&res.User)
- if err != nil {
- return nil, err
- }
- return res, nil
-}
-
-func (*CUser) SearchUser(ctx context.Context, req *user.SearchUserReq) (res *user.SearchUserRes, err error) {
- res = new(user.SearchUserRes)
- if g.IsEmpty(req.Keyword) {
- res.Users, err = service.User().GetUserList(ctx)
- if err != nil {
- return nil, err
- }
- return res, nil
- }
- res.Users, err = service.User().SearchUser(ctx, req.Keyword)
- if err != nil {
- return nil, err
- }
- return res, nil
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/internal/dao/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/course.go b/周新忠学习笔记/4.1/gf_demo_02/internal/dao/course.go
deleted file mode 100644
index 9421e82..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/course.go
+++ /dev/null
@@ -1,27 +0,0 @@
-// =================================================================================
-// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
-// =================================================================================
-
-package dao
-
-import (
- "gf_demo_02/internal/dao/internal"
-)
-
-// internalCourseDao is internal type for wrapping internal DAO implements.
-type internalCourseDao = *internal.CourseDao
-
-// courseDao is the data access object for table course.
-// You can define custom methods on it to extend its functionality as you wish.
-type courseDao struct {
- internalCourseDao
-}
-
-var (
- // Course is globally public accessible object for table course operations.
- Course = courseDao{
- internal.NewCourseDao(),
- }
-)
-
-// Fill with you ideas below.
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/course.go b/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/course.go
deleted file mode 100644
index 0e0dcba..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/course.go
+++ /dev/null
@@ -1,83 +0,0 @@
-// ==========================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// ==========================================================================
-
-package internal
-
-import (
- "context"
-
- "github.com/gogf/gf/v2/database/gdb"
- "github.com/gogf/gf/v2/frame/g"
-)
-
-// CourseDao is the data access object for table course.
-type CourseDao struct {
- table string // table is the underlying table name of the DAO.
- group string // group is the database configuration group name of current DAO.
- columns CourseColumns // columns contains all the column names of Table for convenient usage.
-}
-
-// CourseColumns defines and stores column names for table course.
-type CourseColumns struct {
- Id string //
- Name string //
- Day string //
- CreateAt string //
- UpdateAt string //
- DeleteAt string //
-}
-
-// courseColumns holds the columns for table course.
-var courseColumns = CourseColumns{
- Id: "id",
- Name: "name",
- Day: "day",
- CreateAt: "create_at",
- UpdateAt: "update_at",
- DeleteAt: "delete_at",
-}
-
-// NewCourseDao creates and returns a new DAO object for table data access.
-func NewCourseDao() *CourseDao {
- return &CourseDao{
- group: "default",
- table: "course",
- columns: courseColumns,
- }
-}
-
-// DB retrieves and returns the underlying raw database management object of current DAO.
-func (dao *CourseDao) DB() gdb.DB {
- return g.DB(dao.group)
-}
-
-// Table returns the table name of current dao.
-func (dao *CourseDao) Table() string {
- return dao.table
-}
-
-// Columns returns all column names of current dao.
-func (dao *CourseDao) Columns() CourseColumns {
- return dao.columns
-}
-
-// Group returns the configuration group name of database of current dao.
-func (dao *CourseDao) Group() string {
- return dao.group
-}
-
-// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation.
-func (dao *CourseDao) Ctx(ctx context.Context) *gdb.Model {
- return dao.DB().Model(dao.table).Safe().Ctx(ctx)
-}
-
-// Transaction wraps the transaction logic using function f.
-// It rollbacks the transaction and returns the error from function f if it returns non-nil error.
-// It commits the transaction and returns nil if function f returns nil.
-//
-// Note that, you should not Commit or Rollback the transaction in function f
-// as it is automatically handled by this function.
-func (dao *CourseDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) {
- return dao.Ctx(ctx).Transaction(ctx, f)
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/stock.go b/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/stock.go
deleted file mode 100644
index be11eda..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/stock.go
+++ /dev/null
@@ -1,83 +0,0 @@
-// ==========================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// ==========================================================================
-
-package internal
-
-import (
- "context"
-
- "github.com/gogf/gf/v2/database/gdb"
- "github.com/gogf/gf/v2/frame/g"
-)
-
-// StockDao is the data access object for table stock.
-type StockDao struct {
- table string // table is the underlying table name of the DAO.
- group string // group is the database configuration group name of current DAO.
- columns StockColumns // columns contains all the column names of Table for convenient usage.
-}
-
-// StockColumns defines and stores column names for table stock.
-type StockColumns struct {
- Id string //
- Name string //
- Num string //
- CreateAt string //
- UpdateAt string //
- DeleteAt string //
-}
-
-// stockColumns holds the columns for table stock.
-var stockColumns = StockColumns{
- Id: "id",
- Name: "name",
- Num: "num",
- CreateAt: "create_at",
- UpdateAt: "update_at",
- DeleteAt: "delete_at",
-}
-
-// NewStockDao creates and returns a new DAO object for table data access.
-func NewStockDao() *StockDao {
- return &StockDao{
- group: "default",
- table: "stock",
- columns: stockColumns,
- }
-}
-
-// DB retrieves and returns the underlying raw database management object of current DAO.
-func (dao *StockDao) DB() gdb.DB {
- return g.DB(dao.group)
-}
-
-// Table returns the table name of current dao.
-func (dao *StockDao) Table() string {
- return dao.table
-}
-
-// Columns returns all column names of current dao.
-func (dao *StockDao) Columns() StockColumns {
- return dao.columns
-}
-
-// Group returns the configuration group name of database of current dao.
-func (dao *StockDao) Group() string {
- return dao.group
-}
-
-// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation.
-func (dao *StockDao) Ctx(ctx context.Context) *gdb.Model {
- return dao.DB().Model(dao.table).Safe().Ctx(ctx)
-}
-
-// Transaction wraps the transaction logic using function f.
-// It rollbacks the transaction and returns the error from function f if it returns non-nil error.
-// It commits the transaction and returns nil if function f returns nil.
-//
-// Note that, you should not Commit or Rollback the transaction in function f
-// as it is automatically handled by this function.
-func (dao *StockDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) {
- return dao.Ctx(ctx).Transaction(ctx, f)
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/user.go b/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/user.go
deleted file mode 100644
index 12f3f9d..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/user.go
+++ /dev/null
@@ -1,85 +0,0 @@
-// ==========================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// ==========================================================================
-
-package internal
-
-import (
- "context"
-
- "github.com/gogf/gf/v2/database/gdb"
- "github.com/gogf/gf/v2/frame/g"
-)
-
-// UserDao is the data access object for table user.
-type UserDao struct {
- table string // table is the underlying table name of the DAO.
- group string // group is the database configuration group name of current DAO.
- columns UserColumns // columns contains all the column names of Table for convenient usage.
-}
-
-// UserColumns defines and stores column names for table user.
-type UserColumns struct {
- Id string //
- Name string //
- Pass string //
- Property string //
- CreateAt string //
- DeleteAt string //
- UpdateAt string //
-}
-
-// userColumns holds the columns for table user.
-var userColumns = UserColumns{
- Id: "id",
- Name: "name",
- Pass: "pass",
- Property: "property",
- CreateAt: "create_at",
- DeleteAt: "delete_at",
- UpdateAt: "update_at",
-}
-
-// NewUserDao creates and returns a new DAO object for table data access.
-func NewUserDao() *UserDao {
- return &UserDao{
- group: "default",
- table: "user",
- columns: userColumns,
- }
-}
-
-// DB retrieves and returns the underlying raw database management object of current DAO.
-func (dao *UserDao) DB() gdb.DB {
- return g.DB(dao.group)
-}
-
-// Table returns the table name of current dao.
-func (dao *UserDao) Table() string {
- return dao.table
-}
-
-// Columns returns all column names of current dao.
-func (dao *UserDao) Columns() UserColumns {
- return dao.columns
-}
-
-// Group returns the configuration group name of database of current dao.
-func (dao *UserDao) Group() string {
- return dao.group
-}
-
-// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation.
-func (dao *UserDao) Ctx(ctx context.Context) *gdb.Model {
- return dao.DB().Model(dao.table).Safe().Ctx(ctx)
-}
-
-// Transaction wraps the transaction logic using function f.
-// It rollbacks the transaction and returns the error from function f if it returns non-nil error.
-// It commits the transaction and returns nil if function f returns nil.
-//
-// Note that, you should not Commit or Rollback the transaction in function f
-// as it is automatically handled by this function.
-func (dao *UserDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) {
- return dao.Ctx(ctx).Transaction(ctx, f)
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/user_course.go b/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/user_course.go
deleted file mode 100644
index a797372..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/internal/user_course.go
+++ /dev/null
@@ -1,75 +0,0 @@
-// ==========================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// ==========================================================================
-
-package internal
-
-import (
- "context"
-
- "github.com/gogf/gf/v2/database/gdb"
- "github.com/gogf/gf/v2/frame/g"
-)
-
-// UserCourseDao is the data access object for table user_course.
-type UserCourseDao struct {
- table string // table is the underlying table name of the DAO.
- group string // group is the database configuration group name of current DAO.
- columns UserCourseColumns // columns contains all the column names of Table for convenient usage.
-}
-
-// UserCourseColumns defines and stores column names for table user_course.
-type UserCourseColumns struct {
- Uid string //
- Cid string //
-}
-
-// userCourseColumns holds the columns for table user_course.
-var userCourseColumns = UserCourseColumns{
- Uid: "uid",
- Cid: "cid",
-}
-
-// NewUserCourseDao creates and returns a new DAO object for table data access.
-func NewUserCourseDao() *UserCourseDao {
- return &UserCourseDao{
- group: "default",
- table: "user_course",
- columns: userCourseColumns,
- }
-}
-
-// DB retrieves and returns the underlying raw database management object of current DAO.
-func (dao *UserCourseDao) DB() gdb.DB {
- return g.DB(dao.group)
-}
-
-// Table returns the table name of current dao.
-func (dao *UserCourseDao) Table() string {
- return dao.table
-}
-
-// Columns returns all column names of current dao.
-func (dao *UserCourseDao) Columns() UserCourseColumns {
- return dao.columns
-}
-
-// Group returns the configuration group name of database of current dao.
-func (dao *UserCourseDao) Group() string {
- return dao.group
-}
-
-// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation.
-func (dao *UserCourseDao) Ctx(ctx context.Context) *gdb.Model {
- return dao.DB().Model(dao.table).Safe().Ctx(ctx)
-}
-
-// Transaction wraps the transaction logic using function f.
-// It rollbacks the transaction and returns the error from function f if it returns non-nil error.
-// It commits the transaction and returns nil if function f returns nil.
-//
-// Note that, you should not Commit or Rollback the transaction in function f
-// as it is automatically handled by this function.
-func (dao *UserCourseDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) {
- return dao.Ctx(ctx).Transaction(ctx, f)
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/stock.go b/周新忠学习笔记/4.1/gf_demo_02/internal/dao/stock.go
deleted file mode 100644
index e53424e..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/stock.go
+++ /dev/null
@@ -1,27 +0,0 @@
-// =================================================================================
-// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
-// =================================================================================
-
-package dao
-
-import (
- "gf_demo_02/internal/dao/internal"
-)
-
-// internalStockDao is internal type for wrapping internal DAO implements.
-type internalStockDao = *internal.StockDao
-
-// stockDao is the data access object for table stock.
-// You can define custom methods on it to extend its functionality as you wish.
-type stockDao struct {
- internalStockDao
-}
-
-var (
- // Stock is globally public accessible object for table stock operations.
- Stock = stockDao{
- internal.NewStockDao(),
- }
-)
-
-// Fill with you ideas below.
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/user.go b/周新忠学习笔记/4.1/gf_demo_02/internal/dao/user.go
deleted file mode 100644
index 2bcf392..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/user.go
+++ /dev/null
@@ -1,27 +0,0 @@
-// =================================================================================
-// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
-// =================================================================================
-
-package dao
-
-import (
- "gf_demo_02/internal/dao/internal"
-)
-
-// internalUserDao is internal type for wrapping internal DAO implements.
-type internalUserDao = *internal.UserDao
-
-// userDao is the data access object for table user.
-// You can define custom methods on it to extend its functionality as you wish.
-type userDao struct {
- internalUserDao
-}
-
-var (
- // User is globally public accessible object for table user operations.
- User = userDao{
- internal.NewUserDao(),
- }
-)
-
-// Fill with you ideas below.
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/user_course.go b/周新忠学习笔记/4.1/gf_demo_02/internal/dao/user_course.go
deleted file mode 100644
index f9158b8..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/dao/user_course.go
+++ /dev/null
@@ -1,27 +0,0 @@
-// =================================================================================
-// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
-// =================================================================================
-
-package dao
-
-import (
- "gf_demo_02/internal/dao/internal"
-)
-
-// internalUserCourseDao is internal type for wrapping internal DAO implements.
-type internalUserCourseDao = *internal.UserCourseDao
-
-// userCourseDao is the data access object for table user_course.
-// You can define custom methods on it to extend its functionality as you wish.
-type userCourseDao struct {
- internalUserCourseDao
-}
-
-var (
- // UserCourse is globally public accessible object for table user_course operations.
- UserCourse = userCourseDao{
- internal.NewUserCourseDao(),
- }
-)
-
-// Fill with you ideas below.
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/logic/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/internal/logic/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/logic/course/course.go b/周新忠学习笔记/4.1/gf_demo_02/internal/logic/course/course.go
deleted file mode 100644
index 5e5e876..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/logic/course/course.go
+++ /dev/null
@@ -1,12 +0,0 @@
-package course
-
-import (
- "context"
- "gf_demo_02/internal/model"
- "github.com/gogf/gf/v2/frame/g"
-)
-
-func GetCourses(ctx context.Context) (courses []model.CourseWithUsers, err error) {
- g.Redis().HGetAll()
- g.Dump()
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/logic/logic.go b/周新忠学习笔记/4.1/gf_demo_02/internal/logic/logic.go
deleted file mode 100644
index 5068790..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/logic/logic.go
+++ /dev/null
@@ -1,9 +0,0 @@
-// ==========================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// ==========================================================================
-
-package logic
-
-import (
- _ "gf_demo_02/internal/logic/user"
-)
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/logic/user/user.go b/周新忠学习笔记/4.1/gf_demo_02/internal/logic/user/user.go
deleted file mode 100644
index 2d8fd16..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/logic/user/user.go
+++ /dev/null
@@ -1,143 +0,0 @@
-package user
-
-import (
- "context"
- "gf_demo_02/api/user/v1"
- "gf_demo_02/internal/model/entity"
- "gf_demo_02/internal/service"
- "github.com/gogf/gf/v2/database/gdb"
- "github.com/gogf/gf/v2/errors/gcode"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/util/gconv"
- "golang.org/x/crypto/bcrypt"
- "strings"
-)
-
-type sUser struct {
-}
-
-func init() {
- service.RegisterUser(&sUser{})
-}
-
-func (u *sUser) GetUser(cond g.Map) (user *entity.User, err error) {
- model := g.Model("user")
- if cond["id"] != nil && gconv.Uint(cond["id"]) != 0 {
- model = model.Where("id", cond["id"])
- } else if cond["name"] != nil && gconv.String(cond["name"]) != "" {
- model = model.Where("name", cond["name"])
- } else {
- return nil, gerror.NewCode(gcode.New(88, "缺少查询条件", nil))
- }
- err = model.Scan(&user)
- if err != nil {
- return nil, err
- }
- if user == nil {
- return nil, gerror.NewCode(gcode.New(483, "用户不存在!", nil))
- }
- return user, nil
-}
-
-func (*sUser) GetUserList(ctx context.Context) (users []entity.User, err error) {
- all, err := g.DB().Model("user").All()
- if err != nil {
- return nil, gerror.NewCode(gcode.New(599, "数据库error", nil))
- }
- err = all.Structs(&users)
- if err != nil {
- return nil, err
- }
- return users, nil
-}
-
-func (*sUser) AddUser(ctx context.Context, req *user.EditUserReq) error {
- u := entity.User{
- Id: req.Id,
- Name: req.Name,
- Pass: req.Pass,
- Property: req.Property,
- }
- one, _ := g.Model("user").Where("name", req.Name).One()
- if one != nil {
- return gerror.NewCode(gcode.New(480, "用户名重复", nil))
- }
- if len(req.Pass) < 6 {
- return gerror.NewCode(gcode.New(481, "密码过短,至少6位", nil))
- }
- password, err := bcrypt.GenerateFromPassword([]byte(u.Pass), 10)
- if err != nil {
- return err
- }
- u.Pass = string(password)
- return g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
- _, err = tx.Model("user").Insert(u)
- return err
- })
-}
-
-func (*sUser) UpdateUser(ctx context.Context, req *user.EditUserReq) error {
- u := entity.User{
- Id: req.Id,
- Name: req.Name,
- Pass: req.Pass,
- Property: req.Property,
- }
- one, _ := g.Model("user").Where("id", req.Id).One()
- if one == nil {
- return gerror.NewCode(gcode.New(483, "用户不存在!", nil))
- }
- one, _ = g.Model("user").Where("name", req.Name).WhereNot("id", u.Id).One()
- if one != nil {
- return gerror.NewCode(gcode.New(480, "用户名重复", nil))
- }
- if len(req.Pass) < 6 && req.Pass != "" {
- return gerror.NewCode(gcode.New(481, "密码过短,至少6位", nil))
- }
- if req.Pass != "" {
- password, err := bcrypt.GenerateFromPassword([]byte(u.Pass), 10)
- if err != nil {
- return err
- }
- u.Pass = string(password)
- }
- return g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
- model := tx.Model("user").OmitEmptyData()
- result, err := model.Where("id", u.Id).Update(u)
- if err != nil {
- return err
- }
- if affected, err := result.RowsAffected(); affected < 1 || err != nil {
- return gerror.NewCode(gcode.New(500, "服务器错误", nil))
- }
- return nil
- })
-}
-
-func (*sUser) DeleteUser(ctx context.Context, req *user.DeleteUserReq) error {
- one, _ := g.DB().Model("user").Where("id", req.Id).One()
- if one == nil {
- return gerror.NewCode(gcode.New(483, "用户不存在!", nil))
- }
- tokenStr := g.RequestFromCtx(ctx).GetCtxVar("Authorization").String()
- tokenStr = strings.TrimSpace(tokenStr)
- tokenStr = strings.TrimPrefix(tokenStr, "Bearer ")
- return g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
- _, err := tx.Model("user").Where("id", req.Id).Delete()
- return err
- })
-}
-
-func (*sUser) SearchUser(ctx context.Context, keyword string) ([]entity.User, error) {
- all, err := g.Model("user").WhereLike("name", "%"+keyword+"%").All()
- if err != nil {
- return nil, err
- }
- users := make([]entity.User, 0)
- err = all.Structs(&users)
- if err != nil {
- return nil, err
- }
- return users, nil
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/internal/model/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/claim.go b/周新忠学习笔记/4.1/gf_demo_02/internal/model/claim.go
deleted file mode 100644
index 8100da7..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/model/claim.go
+++ /dev/null
@@ -1,9 +0,0 @@
-package model
-
-import "github.com/golang-jwt/jwt/v5"
-
-type UserClaim struct {
- UserId uint
- UserName string
- jwt.RegisteredClaims
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/course.go b/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/course.go
deleted file mode 100644
index cb9f260..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/course.go
+++ /dev/null
@@ -1,21 +0,0 @@
-// =================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// =================================================================================
-
-package do
-
-import (
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/os/gtime"
-)
-
-// Course is the golang structure of table course for DAO operations like Where/Data.
-type Course struct {
- g.Meta `orm:"table:course, do:true"`
- Id interface{} //
- Name interface{} //
- Day interface{} //
- CreateAt *gtime.Time //
- UpdateAt *gtime.Time //
- DeleteAt *gtime.Time //
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/stock.go b/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/stock.go
deleted file mode 100644
index 0a42bcd..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/stock.go
+++ /dev/null
@@ -1,21 +0,0 @@
-// =================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// =================================================================================
-
-package do
-
-import (
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/os/gtime"
-)
-
-// Stock is the golang structure of table stock for DAO operations like Where/Data.
-type Stock struct {
- g.Meta `orm:"table:stock, do:true"`
- Id interface{} //
- Name interface{} //
- Num interface{} //
- CreateAt *gtime.Time //
- UpdateAt *gtime.Time //
- DeleteAt *gtime.Time //
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/user.go b/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/user.go
deleted file mode 100644
index c4b449c..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/user.go
+++ /dev/null
@@ -1,22 +0,0 @@
-// =================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// =================================================================================
-
-package do
-
-import (
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/os/gtime"
-)
-
-// User is the golang structure of table user for DAO operations like Where/Data.
-type User struct {
- g.Meta `orm:"table:user, do:true"`
- Id interface{} //
- Name interface{} //
- Pass interface{} //
- Property interface{} //
- CreateAt *gtime.Time //
- DeleteAt *gtime.Time //
- UpdateAt *gtime.Time //
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/user_course.go b/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/user_course.go
deleted file mode 100644
index ab9e17e..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/model/do/user_course.go
+++ /dev/null
@@ -1,16 +0,0 @@
-// =================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// =================================================================================
-
-package do
-
-import (
- "github.com/gogf/gf/v2/frame/g"
-)
-
-// UserCourse is the golang structure of table user_course for DAO operations like Where/Data.
-type UserCourse struct {
- g.Meta `orm:"table:user_course, do:true"`
- Uid interface{} //
- Cid interface{} //
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/course.go b/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/course.go
deleted file mode 100644
index 536d064..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/course.go
+++ /dev/null
@@ -1,19 +0,0 @@
-// =================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// =================================================================================
-
-package entity
-
-import (
- "github.com/gogf/gf/v2/os/gtime"
-)
-
-// Course is the golang structure for table course.
-type Course struct {
- Id uint `json:"id" orm:"id" ` //
- Name string `json:"name" orm:"name" ` //
- Day string `json:"day" orm:"day" ` //
- CreateAt *gtime.Time `json:"createAt" orm:"create_at" ` //
- UpdateAt *gtime.Time `json:"updateAt" orm:"update_at" ` //
- DeleteAt *gtime.Time `json:"deleteAt" orm:"delete_at" ` //
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/stock.go b/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/stock.go
deleted file mode 100644
index 367bf43..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/stock.go
+++ /dev/null
@@ -1,19 +0,0 @@
-// =================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// =================================================================================
-
-package entity
-
-import (
- "github.com/gogf/gf/v2/os/gtime"
-)
-
-// Stock is the golang structure for table stock.
-type Stock struct {
- Id uint `json:"id" orm:"id" ` //
- Name string `json:"name" orm:"name" ` //
- Num uint `json:"num" orm:"num" ` //
- CreateAt *gtime.Time `json:"createAt" orm:"create_at" ` //
- UpdateAt *gtime.Time `json:"updateAt" orm:"update_at" ` //
- DeleteAt *gtime.Time `json:"deleteAt" orm:"delete_at" ` //
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/user.go b/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/user.go
deleted file mode 100644
index ad2fc4b..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/user.go
+++ /dev/null
@@ -1,20 +0,0 @@
-// =================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// =================================================================================
-
-package entity
-
-import (
- "github.com/gogf/gf/v2/os/gtime"
-)
-
-// User is the golang structure for table user.
-type User struct {
- Id uint `json:"id" orm:"id" ` //
- Name string `json:"name" orm:"name" ` //
- Pass string `json:"pass" orm:"pass" ` //
- Property uint `json:"property" orm:"property" ` //
- CreateAt *gtime.Time `json:"createAt" orm:"create_at" ` //
- DeleteAt *gtime.Time `json:"deleteAt" orm:"delete_at" ` //
- UpdateAt *gtime.Time `json:"updateAt" orm:"update_at" ` //
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/user_course.go b/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/user_course.go
deleted file mode 100644
index 93ae0b6..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/model/entity/user_course.go
+++ /dev/null
@@ -1,11 +0,0 @@
-// =================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// =================================================================================
-
-package entity
-
-// UserCourse is the golang structure for table user_course.
-type UserCourse struct {
- Uid uint `json:"uid" orm:"uid" ` //
- Cid uint `json:"cid" orm:"cid" ` //
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/model/models.go b/周新忠学习笔记/4.1/gf_demo_02/internal/model/models.go
deleted file mode 100644
index ea1bf18..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/model/models.go
+++ /dev/null
@@ -1,16 +0,0 @@
-package model
-
-import (
- "gf_demo_02/internal/model/entity"
- "github.com/gogf/gf/v2/os/gtime"
-)
-
-type CourseWithUsers struct {
- Id uint `json:"id" orm:"id" ` //
- Name string `json:"name" orm:"name" ` //
- Day string `json:"day" orm:"day" ` //
- CreateAt *gtime.Time `json:"createAt" orm:"create_at" ` //
- UpdateAt *gtime.Time `json:"updateAt" orm:"update_at" ` //
- DeleteAt *gtime.Time `json:"deleteAt" orm:"delete_at" `
- Users []entity.User `json:"users"`
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/packed/packed.go b/周新忠学习笔记/4.1/gf_demo_02/internal/packed/packed.go
deleted file mode 100644
index e20ab1e..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/packed/packed.go
+++ /dev/null
@@ -1 +0,0 @@
-package packed
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/service/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/internal/service/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/service/JWTMiddleware.go b/周新忠学习笔记/4.1/gf_demo_02/internal/service/JWTMiddleware.go
deleted file mode 100644
index b7a563a..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/service/JWTMiddleware.go
+++ /dev/null
@@ -1,65 +0,0 @@
-package service
-
-import (
- "fmt"
- "gf_demo_02/internal/consts"
- "gf_demo_02/internal/model"
- "strings"
-
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/net/ghttp"
- "github.com/golang-jwt/jwt/v5"
-)
-
-func JWTMiddleware(r *ghttp.Request) {
- url := r.GetUrl()
- if strings.HasSuffix(url, "/login") || strings.HasSuffix(url, "/loginPage") {
- r.Middleware.Next()
- return
- }
- tokenStr := r.Header.Get("Authorization")
- tokenStr = strings.TrimSpace(tokenStr)
- tokenStr = strings.TrimPrefix(tokenStr, "Bearer ")
- if g.IsEmpty(tokenStr) {
- r.Response.WriteStatus(401, "no token")
- return
- }
- token, err := jwt.ParseWithClaims(tokenStr, &model.UserClaim{}, func(token *jwt.Token) (interface{}, error) {
- _, ok := token.Method.(*jwt.SigningMethodHMAC)
- if !ok {
- return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"])
- }
- return []byte(consts.TOKEN_KEY), nil
- })
- if err != nil {
- r.Response.WriteStatus(401, "token invalid")
- return
- }
- claim, ok := token.Claims.(*model.UserClaim)
- if !ok || !token.Valid {
- r.Response.WriteStatus(401, "token invalid")
- return
- }
- id := claim.UserId
- name := claim.UserName
- cond := g.Map{
- "id": id,
- "name": name,
- }
- user, err := User().GetUser(cond)
- if err != nil || user == nil {
- r.Response.WriteStatus(401, "token invalid")
- return
- }
- if user.Id != id || user.Name != name {
- r.Response.WriteStatus(401, "token invalid")
- return
- }
- r.SetCtxVar("user", user)
- r.Middleware.Next()
-}
-
-func CorsMiddleware(r *ghttp.Request) {
- r.Response.CORSDefault()
- r.Middleware.Next()
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/service/encode_pass.go b/周新忠学习笔记/4.1/gf_demo_02/internal/service/encode_pass.go
deleted file mode 100644
index 83bc5ae..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/service/encode_pass.go
+++ /dev/null
@@ -1,21 +0,0 @@
-package service
-
-import (
- "fmt"
-
- "golang.org/x/crypto/bcrypt"
-)
-
-// bcrypt加密
-func encode() {
- password, err := bcrypt.GenerateFromPassword([]byte("123"), 10)
- if err != nil {
- panic(err)
- }
- fmt.Println(string(password))
- err = bcrypt.CompareHashAndPassword(password, []byte("123"))
- if err != nil {
- panic(err)
- }
- fmt.Println("correct")
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/service/encode_pass_test.go b/周新忠学习笔记/4.1/gf_demo_02/internal/service/encode_pass_test.go
deleted file mode 100644
index ceaa417..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/service/encode_pass_test.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package service
-
-import "testing"
-
-func TestEncode(T *testing.T) {
- encode()
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/internal/service/user.go b/周新忠学习笔记/4.1/gf_demo_02/internal/service/user.go
deleted file mode 100644
index dfc3d44..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/internal/service/user.go
+++ /dev/null
@@ -1,40 +0,0 @@
-// ================================================================================
-// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
-// You can delete these comments if you wish manually maintain this interface file.
-// ================================================================================
-
-package service
-
-import (
- "context"
- "gf_demo_02/api/user/v1"
- "gf_demo_02/internal/model/entity"
-
- "github.com/gogf/gf/v2/frame/g"
-)
-
-type (
- IUser interface {
- GetUser(cond g.Map) (user *entity.User, err error)
- GetUserList(ctx context.Context) (users []entity.User, err error)
- AddUser(ctx context.Context, req *user.EditUserReq) error
- UpdateUser(ctx context.Context, req *user.EditUserReq) error
- DeleteUser(ctx context.Context, req *user.DeleteUserReq) error
- SearchUser(ctx context.Context, keyword string) ([]entity.User, error)
- }
-)
-
-var (
- localUser IUser
-)
-
-func User() IUser {
- if localUser == nil {
- panic("implement not found for interface IUser, forgot register?")
- }
- return localUser
-}
-
-func RegisterUser(i IUser) {
- localUser = i
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/main.exe~ b/周新忠学习笔记/4.1/gf_demo_02/main.exe~
deleted file mode 100644
index 295dc8d..0000000
Binary files a/周新忠学习笔记/4.1/gf_demo_02/main.exe~ and /dev/null differ
diff --git a/周新忠学习笔记/4.1/gf_demo_02/main.go b/周新忠学习笔记/4.1/gf_demo_02/main.go
deleted file mode 100644
index bde3d57..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/main.go
+++ /dev/null
@@ -1,17 +0,0 @@
-package main
-
-import (
- _ "gf_demo_02/internal/packed"
-
- _ "gf_demo_02/internal/logic"
-
- "github.com/gogf/gf/v2/os/gctx"
-
- "gf_demo_02/internal/cmd"
-
- _ "github.com/gogf/gf/contrib/drivers/mysql/v2"
-)
-
-func main() {
- cmd.Main.Run(gctx.GetInitCtx())
-}
diff --git a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/base/deployment.yaml b/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/base/deployment.yaml
deleted file mode 100644
index 28f1d69..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/base/deployment.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: template-single
- labels:
- app: template-single
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: template-single
- template:
- metadata:
- labels:
- app: template-single
- spec:
- containers:
- - name : main
- image: template-single
- imagePullPolicy: Always
-
diff --git a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/base/kustomization.yaml b/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/base/kustomization.yaml
deleted file mode 100644
index 302d92d..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/base/kustomization.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
-- deployment.yaml
-- service.yaml
-
-
-
diff --git a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/base/service.yaml b/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/base/service.yaml
deleted file mode 100644
index 608771c..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/base/service.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: template-single
-spec:
- ports:
- - port: 80
- protocol: TCP
- targetPort: 8000
- selector:
- app: template-single
-
diff --git a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/overlays/develop/configmap.yaml b/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/overlays/develop/configmap.yaml
deleted file mode 100644
index 3b1d0af..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/overlays/develop/configmap.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: template-single-configmap
-data:
- config.yaml: |
- server:
- address: ":8000"
- openapiPath: "/api.json"
- swaggerPath: "/swagger"
-
- logger:
- level : "all"
- stdout: true
diff --git a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/overlays/develop/deployment.yaml b/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/overlays/develop/deployment.yaml
deleted file mode 100644
index 04e4851..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/overlays/develop/deployment.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: template-single
-spec:
- template:
- spec:
- containers:
- - name : main
- image: template-single:develop
\ No newline at end of file
diff --git a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/overlays/develop/kustomization.yaml b/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/overlays/develop/kustomization.yaml
deleted file mode 100644
index 4731c47..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/manifest/deploy/kustomize/overlays/develop/kustomization.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-
-resources:
-- ../../base
-- configmap.yaml
-
-patchesStrategicMerge:
-- deployment.yaml
-
-namespace: default
-
-
-
diff --git a/周新忠学习笔记/4.1/gf_demo_02/manifest/docker/Dockerfile b/周新忠学习笔记/4.1/gf_demo_02/manifest/docker/Dockerfile
deleted file mode 100644
index d3abe8f..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/manifest/docker/Dockerfile
+++ /dev/null
@@ -1,16 +0,0 @@
-FROM loads/alpine:3.8
-
-###############################################################################
-# INSTALLATION
-###############################################################################
-
-ENV WORKDIR /app
-ADD resource $WORKDIR/
-ADD ./temp/linux_amd64/main $WORKDIR/main
-RUN chmod +x $WORKDIR/main
-
-###############################################################################
-# START
-###############################################################################
-WORKDIR $WORKDIR
-CMD ./main
diff --git a/周新忠学习笔记/4.1/gf_demo_02/manifest/docker/docker.sh b/周新忠学习笔记/4.1/gf_demo_02/manifest/docker/docker.sh
deleted file mode 100644
index ff393f9..0000000
--- a/周新忠学习笔记/4.1/gf_demo_02/manifest/docker/docker.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-# This shell is executed before docker build.
-
-
-
-
-
diff --git a/周新忠学习笔记/4.1/gf_demo_02/manifest/i18n/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/manifest/i18n/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/manifest/protobuf/.keep-if-necessary b/周新忠学习笔记/4.1/gf_demo_02/manifest/protobuf/.keep-if-necessary
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/resource/public/html/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/resource/public/html/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/resource/public/plugin/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/resource/public/plugin/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/resource/public/resource/css/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/resource/public/resource/css/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/resource/public/resource/image/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/resource/public/resource/image/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/resource/public/resource/js/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/resource/public/resource/js/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/resource/template/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/resource/template/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/gf_demo_02/utility/.gitkeep b/周新忠学习笔记/4.1/gf_demo_02/utility/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/周新忠学习笔记/4.1/vue_prj/.editorconfig b/周新忠学习笔记/4.1/vue_prj/.editorconfig
deleted file mode 100644
index 3b510aa..0000000
--- a/周新忠学习笔记/4.1/vue_prj/.editorconfig
+++ /dev/null
@@ -1,8 +0,0 @@
-[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue,css,scss,sass,less,styl}]
-charset = utf-8
-indent_size = 2
-indent_style = space
-insert_final_newline = true
-trim_trailing_whitespace = true
-end_of_line = lf
-max_line_length = 100
diff --git a/周新忠学习笔记/4.1/vue_prj/.gitattributes b/周新忠学习笔记/4.1/vue_prj/.gitattributes
deleted file mode 100644
index 6313b56..0000000
--- a/周新忠学习笔记/4.1/vue_prj/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* text=auto eol=lf
diff --git a/周新忠学习笔记/4.1/vue_prj/.gitignore b/周新忠学习笔记/4.1/vue_prj/.gitignore
deleted file mode 100644
index f81ee87..0000000
--- a/周新忠学习笔记/4.1/vue_prj/.gitignore
+++ /dev/null
@@ -1,42 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-lerna-debug.log*
-
-node_modules
-.DS_Store
-dist
-dist-ssr
-coverage
-*.local
-
-# Editor directories and files
-.vscode/*
-!.vscode/extensions.json
-.idea
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
-
-*.tsbuildinfo
-
-.eslintcache
-
-# Cypress
-/cypress/videos/
-/cypress/screenshots/
-
-# Vitest
-__screenshots__/
-
-# Vite
-*.timestamp-*-*.mjs
-
-test-results/
-playwright-report/
diff --git a/周新忠学习笔记/4.1/vue_prj/.oxlintrc.json b/周新忠学习笔记/4.1/vue_prj/.oxlintrc.json
deleted file mode 100644
index 86b5cc2..0000000
--- a/周新忠学习笔记/4.1/vue_prj/.oxlintrc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "$schema": "./node_modules/oxlint/configuration_schema.json",
- "plugins": ["eslint", "typescript", "unicorn", "oxc", "vue", "vitest"],
- "env": {
- "browser": true
- },
- "categories": {
- "correctness": "error"
- }
-}
diff --git a/周新忠学习笔记/4.1/vue_prj/.prettierrc.json b/周新忠学习笔记/4.1/vue_prj/.prettierrc.json
deleted file mode 100644
index 29a2402..0000000
--- a/周新忠学习笔记/4.1/vue_prj/.prettierrc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "$schema": "https://json.schemastore.org/prettierrc",
- "semi": false,
- "singleQuote": true,
- "printWidth": 100
-}
diff --git a/周新忠学习笔记/4.1/vue_prj/.vscode/extensions.json b/周新忠学习笔记/4.1/vue_prj/.vscode/extensions.json
deleted file mode 100644
index 0c4e4ea..0000000
--- a/周新忠学习笔记/4.1/vue_prj/.vscode/extensions.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "recommendations": [
- "Vue.volar",
- "vitest.explorer",
- "ms-playwright.playwright",
- "dbaeumer.vscode-eslint",
- "EditorConfig.EditorConfig",
- "oxc.oxc-vscode",
- "esbenp.prettier-vscode"
- ]
-}
diff --git a/周新忠学习笔记/4.1/vue_prj/README.md b/周新忠学习笔记/4.1/vue_prj/README.md
deleted file mode 100644
index 5679eee..0000000
--- a/周新忠学习笔记/4.1/vue_prj/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# vue_prj
-
-This template should help get you started developing with Vue 3 in Vite.
-
-## Recommended IDE Setup
-
-[VS Code](https://code.visualstudio.com/) + [Vue (Official)](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
-
-## Recommended Browser Setup
-
-- Chromium-based browsers (Chrome, Edge, Brave, etc.):
- - [Vue.js devtools](https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd)
- - [Turn on Custom Object Formatter in Chrome DevTools](http://bit.ly/object-formatters)
-- Firefox:
- - [Vue.js devtools](https://addons.mozilla.org/en-US/firefox/addon/vue-js-devtools/)
- - [Turn on Custom Object Formatter in Firefox DevTools](https://fxdx.dev/firefox-devtools-custom-object-formatters/)
-
-## Type Support for `.vue` Imports in TS
-
-TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types.
-
-## Customize configuration
-
-See [Vite Configuration Reference](https://vite.dev/config/).
-
-## Project Setup
-
-```sh
-npm install
-```
-
-### Compile and Hot-Reload for Development
-
-```sh
-npm run dev
-```
-
-### Type-Check, Compile and Minify for Production
-
-```sh
-npm run build
-```
-
-### Run Unit Tests with [Vitest](https://vitest.dev/)
-
-```sh
-npm run test:unit
-```
-
-### Run End-to-End Tests with [Playwright](https://playwright.dev)
-
-```sh
-# Install browsers for the first run
-npx playwright install
-
-# When testing on CI, must build the project first
-npm run build
-
-# Runs the end-to-end tests
-npm run test:e2e
-# Runs the tests only on Chromium
-npm run test:e2e -- --project=chromium
-# Runs the tests of a specific file
-npm run test:e2e -- tests/example.spec.ts
-# Runs the tests in debug mode
-npm run test:e2e -- --debug
-```
-
-### Lint with [ESLint](https://eslint.org/)
-
-```sh
-npm run lint
-```
diff --git a/周新忠学习笔记/4.1/vue_prj/e2e/tsconfig.json b/周新忠学习笔记/4.1/vue_prj/e2e/tsconfig.json
deleted file mode 100644
index 9f69f27..0000000
--- a/周新忠学习笔记/4.1/vue_prj/e2e/tsconfig.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "extends": "@tsconfig/node24/tsconfig.json",
- "include": ["./**/*"]
-}
diff --git a/周新忠学习笔记/4.1/vue_prj/e2e/vue.spec.ts b/周新忠学习笔记/4.1/vue_prj/e2e/vue.spec.ts
deleted file mode 100644
index 87c0605..0000000
--- a/周新忠学习笔记/4.1/vue_prj/e2e/vue.spec.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { test, expect } from '@playwright/test'
-
-// See here how to get started:
-// https://playwright.dev/docs/intro
-test('visits the app root url', async ({ page }) => {
- await page.goto('/')
- await expect(page.locator('h1')).toHaveText('You did it!')
-})
diff --git a/周新忠学习笔记/4.1/vue_prj/env.d.ts b/周新忠学习笔记/4.1/vue_prj/env.d.ts
deleted file mode 100644
index 11f02fe..0000000
--- a/周新忠学习笔记/4.1/vue_prj/env.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-///
diff --git a/周新忠学习笔记/4.1/vue_prj/eslint.config.ts b/周新忠学习笔记/4.1/vue_prj/eslint.config.ts
deleted file mode 100644
index cd447ee..0000000
--- a/周新忠学习笔记/4.1/vue_prj/eslint.config.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { globalIgnores } from 'eslint/config'
-import { defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript'
-import pluginVue from 'eslint-plugin-vue'
-import pluginPlaywright from 'eslint-plugin-playwright'
-import pluginVitest from '@vitest/eslint-plugin'
-import pluginOxlint from 'eslint-plugin-oxlint'
-import skipFormatting from 'eslint-config-prettier/flat'
-
-// To allow more languages other than `ts` in `.vue` files, uncomment the following lines:
-// import { configureVueProject } from '@vue/eslint-config-typescript'
-// configureVueProject({ scriptLangs: ['ts', 'tsx'] })
-// More info at https://github.com/vuejs/eslint-config-typescript/#advanced-setup
-
-export default defineConfigWithVueTs(
- {
- name: 'app/files-to-lint',
- files: ['**/*.{vue,ts,mts,tsx}'],
- },
-
- globalIgnores(['**/dist/**', '**/dist-ssr/**', '**/coverage/**']),
-
- ...pluginVue.configs['flat/essential'],
- vueTsConfigs.recommended,
-
- {
- ...pluginPlaywright.configs['flat/recommended'],
- files: ['e2e/**/*.{test,spec}.{js,ts,jsx,tsx}'],
- },
-
- {
- ...pluginVitest.configs.recommended,
- files: ['src/**/__tests__/*'],
- },
-
- ...pluginOxlint.buildFromOxlintConfigFile('.oxlintrc.json'),
-
- skipFormatting,
-)
diff --git a/周新忠学习笔记/4.1/vue_prj/index.html b/周新忠学习笔记/4.1/vue_prj/index.html
deleted file mode 100644
index 9e5fc8f..0000000
--- a/周新忠学习笔记/4.1/vue_prj/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
- Vite App
-
-
-
-
-
-
diff --git a/周新忠学习笔记/4.1/vue_prj/package-lock.json b/周新忠学习笔记/4.1/vue_prj/package-lock.json
deleted file mode 100644
index 216b79d..0000000
--- a/周新忠学习笔记/4.1/vue_prj/package-lock.json
+++ /dev/null
@@ -1,7739 +0,0 @@
-{
- "name": "vue_prj",
- "version": "0.0.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "vue_prj",
- "version": "0.0.0",
- "dependencies": {
- "@element-plus/icons-vue": "^2.3.2",
- "axios": "^1.14.0",
- "element-plus": "^2.13.6",
- "lucide-vue-next": "^1.0.0",
- "pinia": "^3.0.4",
- "vue": "^3.5.30",
- "vue-router": "^4.6.4"
- },
- "devDependencies": {
- "@playwright/test": "^1.58.2",
- "@tsconfig/node24": "^24.0.4",
- "@types/jsdom": "^28.0.0",
- "@types/node": "^24.12.0",
- "@vitejs/plugin-vue": "^6.0.4",
- "@vitejs/plugin-vue-jsx": "^5.1.4",
- "@vitest/eslint-plugin": "^1.6.10",
- "@vue/eslint-config-typescript": "^14.7.0",
- "@vue/test-utils": "^2.4.6",
- "@vue/tsconfig": "^0.9.0",
- "eslint": "^10.0.3",
- "eslint-config-prettier": "^10.1.8",
- "eslint-plugin-oxlint": "~1.51.0",
- "eslint-plugin-playwright": "^2.9.0",
- "eslint-plugin-vue": "~10.8.0",
- "jiti": "^2.6.1",
- "jsdom": "^28.1.0",
- "npm-run-all2": "^8.0.4",
- "oxlint": "~1.51.0",
- "prettier": "3.8.1",
- "typescript": "~5.9.3",
- "unplugin-auto-import": "^21.0.0",
- "unplugin-vue-components": "^32.0.0",
- "vite": "^7.3.1",
- "vite-plugin-vue-devtools": "^8.0.7",
- "vitest": "^4.0.18",
- "vue-tsc": "^3.2.5"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@acemir/cssom": {
- "version": "0.9.31",
- "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz",
- "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@asamuzakjp/css-color": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.0.1.tgz",
- "integrity": "sha512-2SZFvqMyvboVV1d15lMf7XiI3m7SDqXUuKaTymJYLN6dSGadqp+fVojqJlVoMlbZnlTmu3S0TLwLTJpvBMO1Aw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@csstools/css-calc": "^3.1.1",
- "@csstools/css-color-parser": "^4.0.2",
- "@csstools/css-parser-algorithms": "^4.0.0",
- "@csstools/css-tokenizer": "^4.0.0",
- "lru-cache": "^11.2.6"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
- }
- },
- "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
- "version": "11.2.7",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
- "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/@asamuzakjp/dom-selector": {
- "version": "6.8.1",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz",
- "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@asamuzakjp/nwsapi": "^2.3.9",
- "bidi-js": "^1.0.3",
- "css-tree": "^3.1.0",
- "is-potential-custom-element-name": "^1.0.1",
- "lru-cache": "^11.2.6"
- }
- },
- "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": {
- "version": "11.2.7",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
- "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/@asamuzakjp/nwsapi": {
- "version": "2.3.9",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz",
- "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==",
- "dev": true,
- "license": "MIT"
- },
- "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.29.2",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
- "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.28.6",
- "@babel/types": "^7.29.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.29.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
- "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.29.0"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-proposal-decorators": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.0.tgz",
- "integrity": "sha512-CVBVv3VY/XRMxRYq5dwr2DS7/MvqPm23cOCjbwNnVrfOqcWlnefua1uUs0sjdKOGjvPUG633o07uWzJq4oI6dA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.28.6",
- "@babel/helper-plugin-utils": "^7.28.6",
- "@babel/plugin-syntax-decorators": "^7.28.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-decorators": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.28.6.tgz",
- "integrity": "sha512-71EYI0ONURHJBL4rSFXnITXqXrrY8q4P0q006DPfN+Rk+ASM+++IBXem/ruokgBZR8YNEWZ8R6B+rCb8VcUTqA==",
- "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-import-attributes": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz",
- "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==",
- "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-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.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/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/@bramus/specificity": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz",
- "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "css-tree": "^3.0.0"
- },
- "bin": {
- "specificity": "bin/cli.js"
- }
- },
- "node_modules/@csstools/color-helpers": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz",
- "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=20.19.0"
- }
- },
- "node_modules/@csstools/css-calc": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz",
- "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=20.19.0"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^4.0.0",
- "@csstools/css-tokenizer": "^4.0.0"
- }
- },
- "node_modules/@csstools/css-color-parser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz",
- "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@csstools/color-helpers": "^6.0.2",
- "@csstools/css-calc": "^3.1.1"
- },
- "engines": {
- "node": ">=20.19.0"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^4.0.0",
- "@csstools/css-tokenizer": "^4.0.0"
- }
- },
- "node_modules/@csstools/css-parser-algorithms": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz",
- "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=20.19.0"
- },
- "peerDependencies": {
- "@csstools/css-tokenizer": "^4.0.0"
- }
- },
- "node_modules/@csstools/css-syntax-patches-for-csstree": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.2.tgz",
- "integrity": "sha512-5GkLzz4prTIpoyeUiIu3iV6CSG3Plo7xRVOFPKI7FVEJ3mZ0A8SwK0XU3Gl7xAkiQ+mDyam+NNp875/C5y+jSA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "peerDependencies": {
- "css-tree": "^3.2.1"
- },
- "peerDependenciesMeta": {
- "css-tree": {
- "optional": true
- }
- }
- },
- "node_modules/@csstools/css-tokenizer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz",
- "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=20.19.0"
- }
- },
- "node_modules/@ctrl/tinycolor": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.2.0.tgz",
- "integrity": "sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@element-plus/icons-vue": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz",
- "integrity": "sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==",
- "license": "MIT",
- "peerDependencies": {
- "vue": "^3.2.0"
- }
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz",
- "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz",
- "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz",
- "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz",
- "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz",
- "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz",
- "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz",
- "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz",
- "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz",
- "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz",
- "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz",
- "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz",
- "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz",
- "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz",
- "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz",
- "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz",
- "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz",
- "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-arm64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz",
- "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz",
- "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz",
- "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz",
- "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openharmony-arm64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz",
- "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz",
- "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz",
- "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz",
- "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.27.4",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz",
- "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "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/config-array": {
- "version": "0.23.3",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz",
- "integrity": "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@eslint/object-schema": "^3.0.3",
- "debug": "^4.3.1",
- "minimatch": "^10.2.4"
- },
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- }
- },
- "node_modules/@eslint/config-helpers": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz",
- "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@eslint/core": "^1.1.1"
- },
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- }
- },
- "node_modules/@eslint/core": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz",
- "integrity": "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@types/json-schema": "^7.0.15"
- },
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- }
- },
- "node_modules/@eslint/object-schema": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz",
- "integrity": "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- }
- },
- "node_modules/@eslint/plugin-kit": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz",
- "integrity": "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@eslint/core": "^1.1.1",
- "levn": "^0.4.1"
- },
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- }
- },
- "node_modules/@exodus/bytes": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.0.tgz",
- "integrity": "sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
- },
- "peerDependencies": {
- "@noble/hashes": "^1.8.0 || ^2.0.0"
- },
- "peerDependenciesMeta": {
- "@noble/hashes": {
- "optional": true
- }
- }
- },
- "node_modules/@floating-ui/core": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz",
- "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/utils": "^0.2.11"
- }
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.7.6",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz",
- "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/core": "^1.7.5",
- "@floating-ui/utils": "^0.2.11"
- }
- },
- "node_modules/@floating-ui/utils": {
- "version": "0.2.11",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz",
- "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
- "license": "MIT"
- },
- "node_modules/@humanfs/core": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
- "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=18.18.0"
- }
- },
- "node_modules/@humanfs/node": {
- "version": "0.16.7",
- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz",
- "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@humanfs/core": "^0.19.1",
- "@humanwhocodes/retry": "^0.4.0"
- },
- "engines": {
- "node": ">=18.18.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/retry": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
- "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=18.18"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "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/@one-ini/wasm": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz",
- "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@oxlint/binding-android-arm-eabi": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.51.0.tgz",
- "integrity": "sha512-jJYIqbx4sX+suIxWstc4P7SzhEwb4ArWA2KVrmEuu9vH2i0qM6QIHz/ehmbGE4/2fZbpuMuBzTl7UkfNoqiSgw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-android-arm64": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.51.0.tgz",
- "integrity": "sha512-GtXyBCcH4ti98YdiMNCrpBNGitx87EjEWxevnyhcBK12k/Vu4EzSB45rzSC4fGFUD6sQgeaxItRCEEWeVwPafw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-darwin-arm64": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.51.0.tgz",
- "integrity": "sha512-3QJbeYaMHn6Bh2XeBXuITSsbnIctyTjvHf5nRjKYrT9pPeErNIpp5VDEeAXC0CZSwSVTsc8WOSDwgrAI24JolQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-darwin-x64": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.51.0.tgz",
- "integrity": "sha512-NzErhMaTEN1cY0E8C5APy74lw5VwsNfJfVPBMWPVQLqAbO0k4FFLjvHURvkUL+Y18Wu+8Vs1kbqPh2hjXYA4pg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-freebsd-x64": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.51.0.tgz",
- "integrity": "sha512-msAIh3vPAoKoHlOE/oe6Q5C/n9umypv/k81lED82ibrJotn+3YG2Qp1kiR8o/Dg5iOEU97c6tl0utxcyFenpFw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-linux-arm-gnueabihf": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.51.0.tgz",
- "integrity": "sha512-CqQPcvqYyMe9ZBot2stjGogEzk1z8gGAngIX7srSzrzexmXixwVxBdFZyxTVM0CjGfDeV+Ru0w25/WNjlMM2Hw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-linux-arm-musleabihf": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.51.0.tgz",
- "integrity": "sha512-dstrlYQgZMnyOssxSbolGCge/sDbko12N/35RBNuqLpoPbft2aeBidBAb0dvQlyBd9RJ6u8D4o4Eh8Un6iTgyQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-linux-arm64-gnu": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.51.0.tgz",
- "integrity": "sha512-QEjUpXO7d35rP1/raLGGbAsBLLGZIzV3ZbeSjqWlD3oRnxpRIZ6iL4o51XQHkconn3uKssc+1VKdtHJ81BBhDA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-linux-arm64-musl": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.51.0.tgz",
- "integrity": "sha512-YSJua5irtG4DoMAjUapDTPhkQLHhBIY0G9JqlZS6/SZPzqDkPku/1GdWs0D6h/wyx0Iz31lNCfIaWKBQhzP0wQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-linux-ppc64-gnu": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.51.0.tgz",
- "integrity": "sha512-7L4Wj2IEUNDETKssB9IDYt16T6WlF+X2jgC/hBq3diGHda9vJLpAgb09+D3quFq7TdkFtI7hwz/jmuQmQFPc1Q==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-linux-riscv64-gnu": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.51.0.tgz",
- "integrity": "sha512-cBUHqtOXy76G41lOB401qpFoKx1xq17qYkhWrLSM7eEjiHM9sOtYqpr6ZdqCnN9s6ZpzudX4EkeHOFH2E9q0vA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-linux-riscv64-musl": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.51.0.tgz",
- "integrity": "sha512-WKbg8CysgZcHfZX0ixQFBRSBvFZUHa3SBnEjHY2FVYt2nbNJEjzTxA3ZR5wMU0NOCNKIAFUFvAh5/XJKPRJuJg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-linux-s390x-gnu": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.51.0.tgz",
- "integrity": "sha512-N1QRUvJTxqXNSu35YOufdjsAVmKVx5bkrggOWAhTWBc3J4qjcBwr1IfyLh/6YCg8sYRSR1GraldS9jUgJL/U4A==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-linux-x64-gnu": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.51.0.tgz",
- "integrity": "sha512-e0Mz0DizsCoqNIjeOg6OUKe8JKJWZ5zZlwsd05Bmr51Jo3AOL4UJnPvwKumr4BBtBrDZkCmOLhCvDGm95nJM2g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-linux-x64-musl": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.51.0.tgz",
- "integrity": "sha512-wD8HGTWhYBKXvRDvoBVB1y+fEYV01samhWQSy1Zkxq2vpezvMnjaFKRuiP6tBNITLGuffbNDEXOwcAhJ3gI5Ug==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-openharmony-arm64": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.51.0.tgz",
- "integrity": "sha512-5NSwQ2hDEJ0GPXqikjWtwzgAQCsS7P9aLMNenjjKa+gknN3lTCwwwERsT6lKXSirfU3jLjexA2XQvQALh5h27w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-win32-arm64-msvc": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.51.0.tgz",
- "integrity": "sha512-JEZyah1M0RHMw8d+jjSSJmSmO8sABA1J1RtrHYujGPeCkYg1NeH0TGuClpe2h5QtioRTaF57y/TZfn/2IFV6fA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-win32-ia32-msvc": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.51.0.tgz",
- "integrity": "sha512-q3cEoKH6kwjz/WRyHwSf0nlD2F5Qw536kCXvmlSu+kaShzgrA0ojmh45CA81qL+7udfCaZL2SdKCZlLiGBVFlg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@oxlint/binding-win32-x64-msvc": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.51.0.tgz",
- "integrity": "sha512-Q14+fOGb9T28nWF/0EUsYqERiRA7cl1oy4TJrGmLaqhm+aO2cV+JttboHI3CbdeMCAyDI1+NoSlrM7Melhp/cw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@playwright/test": {
- "version": "1.58.2",
- "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.2.tgz",
- "integrity": "sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "playwright": "1.58.2"
- },
- "bin": {
- "playwright": "cli.js"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@polka/url": {
- "version": "1.0.0-next.29",
- "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
- "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@popperjs/core": {
- "name": "@sxzz/popperjs-es",
- "version": "2.11.8",
- "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.8.tgz",
- "integrity": "sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/popperjs"
- }
- },
- "node_modules/@rolldown/pluginutils": {
- "version": "1.0.0-rc.2",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.2.tgz",
- "integrity": "sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz",
- "integrity": "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz",
- "integrity": "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz",
- "integrity": "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz",
- "integrity": "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz",
- "integrity": "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz",
- "integrity": "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz",
- "integrity": "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz",
- "integrity": "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz",
- "integrity": "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz",
- "integrity": "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loong64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz",
- "integrity": "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loong64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz",
- "integrity": "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-ppc64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz",
- "integrity": "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-ppc64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz",
- "integrity": "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz",
- "integrity": "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz",
- "integrity": "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz",
- "integrity": "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz",
- "integrity": "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz",
- "integrity": "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-openbsd-x64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz",
- "integrity": "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ]
- },
- "node_modules/@rollup/rollup-openharmony-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz",
- "integrity": "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ]
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz",
- "integrity": "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz",
- "integrity": "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz",
- "integrity": "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz",
- "integrity": "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@standard-schema/spec": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
- "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tsconfig/node24": {
- "version": "24.0.4",
- "resolved": "https://registry.npmjs.org/@tsconfig/node24/-/node24-24.0.4.tgz",
- "integrity": "sha512-2A933l5P5oCbv6qSxHs7ckKwobs8BDAe9SJ/Xr2Hy+nDlwmLE1GhFh/g/vXGRZWgxBg9nX/5piDtHR9Dkw/XuA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/chai": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
- "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/deep-eql": "*",
- "assertion-error": "^2.0.1"
- }
- },
- "node_modules/@types/deep-eql": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
- "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/esrecurse": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
- "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==",
- "dev": true,
- "license": "MIT"
- },
- "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/jsdom": {
- "version": "28.0.1",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-28.0.1.tgz",
- "integrity": "sha512-GJq2QE4TAZ5ajSoCasn5DOFm8u1mI3tIFvM5tIq3W5U/RTB6gsHwc6Yhpl91X9VSDOUVblgXmG+2+sSvFQrdlw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "@types/tough-cookie": "*",
- "parse5": "^7.0.0",
- "undici-types": "^7.21.0"
- }
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/lodash": {
- "version": "4.17.24",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.24.tgz",
- "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==",
- "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==",
- "license": "MIT",
- "dependencies": {
- "@types/lodash": "*"
- }
- },
- "node_modules/@types/node": {
- "version": "24.12.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.0.tgz",
- "integrity": "sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "undici-types": "~7.16.0"
- }
- },
- "node_modules/@types/node/node_modules/undici-types": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
- "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/tough-cookie": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
- "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/web-bluetooth": {
- "version": "0.0.20",
- "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
- "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==",
- "license": "MIT"
- },
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz",
- "integrity": "sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/regexpp": "^4.12.2",
- "@typescript-eslint/scope-manager": "8.57.2",
- "@typescript-eslint/type-utils": "8.57.2",
- "@typescript-eslint/utils": "8.57.2",
- "@typescript-eslint/visitor-keys": "8.57.2",
- "ignore": "^7.0.5",
- "natural-compare": "^1.4.0",
- "ts-api-utils": "^2.4.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^8.57.2",
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
- "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/@typescript-eslint/parser": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.2.tgz",
- "integrity": "sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/scope-manager": "8.57.2",
- "@typescript-eslint/types": "8.57.2",
- "@typescript-eslint/typescript-estree": "8.57.2",
- "@typescript-eslint/visitor-keys": "8.57.2",
- "debug": "^4.4.3"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/project-service": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.2.tgz",
- "integrity": "sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.57.2",
- "@typescript-eslint/types": "^8.57.2",
- "debug": "^4.4.3"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.2.tgz",
- "integrity": "sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.57.2",
- "@typescript-eslint/visitor-keys": "8.57.2"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.2.tgz",
- "integrity": "sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/type-utils": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.2.tgz",
- "integrity": "sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.57.2",
- "@typescript-eslint/typescript-estree": "8.57.2",
- "@typescript-eslint/utils": "8.57.2",
- "debug": "^4.4.3",
- "ts-api-utils": "^2.4.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/types": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.2.tgz",
- "integrity": "sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.2.tgz",
- "integrity": "sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/project-service": "8.57.2",
- "@typescript-eslint/tsconfig-utils": "8.57.2",
- "@typescript-eslint/types": "8.57.2",
- "@typescript-eslint/visitor-keys": "8.57.2",
- "debug": "^4.4.3",
- "minimatch": "^10.2.2",
- "semver": "^7.7.3",
- "tinyglobby": "^0.2.15",
- "ts-api-utils": "^2.4.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/utils": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.2.tgz",
- "integrity": "sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.57.2",
- "@typescript-eslint/types": "8.57.2",
- "@typescript-eslint/typescript-estree": "8.57.2"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.2.tgz",
- "integrity": "sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.57.2",
- "eslint-visitor-keys": "^5.0.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
- "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@vitejs/plugin-vue": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.5.tgz",
- "integrity": "sha512-bL3AxKuQySfk1iGcBsQnoRVexTPJq0Z/ixFVM8OhVJAP6ZXXXLtM7NFKWhLl30Kg7uTBqIaPXbh+nuQCuBDedg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rolldown/pluginutils": "1.0.0-rc.2"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "peerDependencies": {
- "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0",
- "vue": "^3.2.25"
- }
- },
- "node_modules/@vitejs/plugin-vue-jsx": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-5.1.5.tgz",
- "integrity": "sha512-jIAsvHOEtWpslLOI2MeElGFxH7M8pM83BU/Tor4RLyiwH0FM4nUW3xdvbw20EeU9wc5IspQwMq225K3CMnJEpA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.29.0",
- "@babel/plugin-syntax-typescript": "^7.28.6",
- "@babel/plugin-transform-typescript": "^7.28.6",
- "@rolldown/pluginutils": "^1.0.0-rc.2",
- "@vue/babel-plugin-jsx": "^2.0.1"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "peerDependencies": {
- "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0",
- "vue": "^3.0.0"
- }
- },
- "node_modules/@vitest/eslint-plugin": {
- "version": "1.6.13",
- "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.6.13.tgz",
- "integrity": "sha512-ui7JGWBoQpS5NKKW0FDb1eTuFEZ5EupEv2Psemuyfba7DfA5K52SeDLelt6P4pQJJ/4UGkker/BgMk/KrjH3WQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/scope-manager": "^8.55.0",
- "@typescript-eslint/utils": "^8.55.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@typescript-eslint/eslint-plugin": "*",
- "eslint": ">=8.57.0",
- "typescript": ">=5.0.0",
- "vitest": "*"
- },
- "peerDependenciesMeta": {
- "@typescript-eslint/eslint-plugin": {
- "optional": true
- },
- "typescript": {
- "optional": true
- },
- "vitest": {
- "optional": true
- }
- }
- },
- "node_modules/@vitest/expect": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.2.tgz",
- "integrity": "sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@standard-schema/spec": "^1.1.0",
- "@types/chai": "^5.2.2",
- "@vitest/spy": "4.1.2",
- "@vitest/utils": "4.1.2",
- "chai": "^6.2.2",
- "tinyrainbow": "^3.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/mocker": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.2.tgz",
- "integrity": "sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/spy": "4.1.2",
- "estree-walker": "^3.0.3",
- "magic-string": "^0.30.21"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "msw": "^2.4.9",
- "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "msw": {
- "optional": true
- },
- "vite": {
- "optional": true
- }
- }
- },
- "node_modules/@vitest/mocker/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/@vitest/pretty-format": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz",
- "integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tinyrainbow": "^3.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/runner": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.2.tgz",
- "integrity": "sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/utils": "4.1.2",
- "pathe": "^2.0.3"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/snapshot": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz",
- "integrity": "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/pretty-format": "4.1.2",
- "@vitest/utils": "4.1.2",
- "magic-string": "^0.30.21",
- "pathe": "^2.0.3"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/spy": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.2.tgz",
- "integrity": "sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/utils": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz",
- "integrity": "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/pretty-format": "4.1.2",
- "convert-source-map": "^2.0.0",
- "tinyrainbow": "^3.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@volar/language-core": {
- "version": "2.4.28",
- "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz",
- "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@volar/source-map": "2.4.28"
- }
- },
- "node_modules/@volar/source-map": {
- "version": "2.4.28",
- "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz",
- "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@volar/typescript": {
- "version": "2.4.28",
- "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz",
- "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@volar/language-core": "2.4.28",
- "path-browserify": "^1.0.1",
- "vscode-uri": "^3.0.8"
- }
- },
- "node_modules/@vue/babel-helper-vue-transform-on": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-2.0.1.tgz",
- "integrity": "sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vue/babel-plugin-jsx": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-2.0.1.tgz",
- "integrity": "sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA==",
- "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.4",
- "@babel/types": "^7.28.4",
- "@vue/babel-helper-vue-transform-on": "2.0.1",
- "@vue/babel-plugin-resolve-type": "2.0.1",
- "@vue/shared": "^3.5.22"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- }
- }
- },
- "node_modules/@vue/babel-plugin-resolve-type": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-2.0.1.tgz",
- "integrity": "sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ==",
- "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.4",
- "@vue/compiler-sfc": "^3.5.22"
- },
- "funding": {
- "url": "https://github.com/sponsors/sxzz"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@vue/compiler-core": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.31.tgz",
- "integrity": "sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.29.2",
- "@vue/shared": "3.5.31",
- "entities": "^7.0.1",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.2.1"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.31.tgz",
- "integrity": "sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-core": "3.5.31",
- "@vue/shared": "3.5.31"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.31.tgz",
- "integrity": "sha512-M8wpPgR9UJ8MiRGjppvx9uWJfLV7A/T+/rL8s/y3QG3u0c2/YZgff3d6SuimKRIhcYnWg5fTfDMlz2E6seUW8Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.29.2",
- "@vue/compiler-core": "3.5.31",
- "@vue/compiler-dom": "3.5.31",
- "@vue/compiler-ssr": "3.5.31",
- "@vue/shared": "3.5.31",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.21",
- "postcss": "^8.5.8",
- "source-map-js": "^1.2.1"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.31.tgz",
- "integrity": "sha512-h0xIMxrt/LHOvJKMri+vdYT92BrK3HFLtDqq9Pr/lVVfE4IyKZKvWf0vJFW10Yr6nX02OR4MkJwI0c1HDa1hog==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-dom": "3.5.31",
- "@vue/shared": "3.5.31"
- }
- },
- "node_modules/@vue/devtools-api": {
- "version": "7.7.9",
- "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.9.tgz",
- "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==",
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-kit": "^7.7.9"
- }
- },
- "node_modules/@vue/devtools-core": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-8.1.1.tgz",
- "integrity": "sha512-bCCsSABp1/ot4j8xJEycM6Mtt2wbuucfByr6hMgjbYhrtlscOJypZKvy8f1FyWLYrLTchB5Qz216Lm92wfbq0A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-kit": "^8.1.1",
- "@vue/devtools-shared": "^8.1.1"
- },
- "peerDependencies": {
- "vue": "^3.0.0"
- }
- },
- "node_modules/@vue/devtools-core/node_modules/@vue/devtools-kit": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.1.1.tgz",
- "integrity": "sha512-gVBaBv++i+adg4JpH71k9ppl4soyR7Y2McEqO5YNgv0BI1kMZ7BDX5gnwkZ5COYgiCyhejZG+yGNrBAjj6Coqg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-shared": "^8.1.1",
- "birpc": "^2.6.1",
- "hookable": "^5.5.3",
- "perfect-debounce": "^2.0.0"
- }
- },
- "node_modules/@vue/devtools-core/node_modules/@vue/devtools-shared": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.1.1.tgz",
- "integrity": "sha512-+h4ttmJYl/txpxHKaoZcaKpC+pvckgLzIDiSQlaQ7kKthKh8KuwoLW2D8hPJEnqKzXOvu15UHEoGyngAXCz0EQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vue/devtools-core/node_modules/perfect-debounce": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz",
- "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vue/devtools-kit": {
- "version": "7.7.9",
- "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz",
- "integrity": "sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==",
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-shared": "^7.7.9",
- "birpc": "^2.3.0",
- "hookable": "^5.5.3",
- "mitt": "^3.0.1",
- "perfect-debounce": "^1.0.0",
- "speakingurl": "^14.0.1",
- "superjson": "^2.2.2"
- }
- },
- "node_modules/@vue/devtools-shared": {
- "version": "7.7.9",
- "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz",
- "integrity": "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==",
- "license": "MIT",
- "dependencies": {
- "rfdc": "^1.4.1"
- }
- },
- "node_modules/@vue/eslint-config-typescript": {
- "version": "14.7.0",
- "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.7.0.tgz",
- "integrity": "sha512-iegbMINVc+seZ/QxtzWiOBozctrHiF2WvGedruu2EbLujg9VuU0FQiNcN2z1ycuaoKKpF4m2qzB5HDEMKbxtIg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/utils": "^8.56.0",
- "fast-glob": "^3.3.3",
- "typescript-eslint": "^8.56.0",
- "vue-eslint-parser": "^10.4.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "peerDependencies": {
- "eslint": "^9.10.0 || ^10.0.0",
- "eslint-plugin-vue": "^9.28.0 || ^10.0.0",
- "typescript": ">=4.8.4"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@vue/language-core": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.6.tgz",
- "integrity": "sha512-xYYYX3/aVup576tP/23sEUpgiEnujrENaoNRbaozC1/MA9I6EGFQRJb4xrt/MmUCAGlxTKL2RmT8JLTPqagCkg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@volar/language-core": "2.4.28",
- "@vue/compiler-dom": "^3.5.0",
- "@vue/shared": "^3.5.0",
- "alien-signals": "^3.0.0",
- "muggle-string": "^0.4.1",
- "path-browserify": "^1.0.1",
- "picomatch": "^4.0.2"
- }
- },
- "node_modules/@vue/language-core/node_modules/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/@vue/reactivity": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.31.tgz",
- "integrity": "sha512-DtKXxk9E/KuVvt8VxWu+6Luc9I9ETNcqR1T1oW1gf02nXaZ1kuAx58oVu7uX9XxJR0iJCro6fqBLw9oSBELo5g==",
- "license": "MIT",
- "dependencies": {
- "@vue/shared": "3.5.31"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.31.tgz",
- "integrity": "sha512-AZPmIHXEAyhpkmN7aWlqjSfYynmkWlluDNPHMCZKFHH+lLtxP/30UJmoVhXmbDoP1Ng0jG0fyY2zCj1PnSSA6Q==",
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "3.5.31",
- "@vue/shared": "3.5.31"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.31.tgz",
- "integrity": "sha512-xQJsNRmGPeDCJq/u813tyonNgWBFjzfVkBwDREdEWndBnGdHLHgkwNBQxLtg4zDrzKTEcnikUy1UUNecb3lJ6g==",
- "license": "MIT",
- "dependencies": {
- "@vue/reactivity": "3.5.31",
- "@vue/runtime-core": "3.5.31",
- "@vue/shared": "3.5.31",
- "csstype": "^3.2.3"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.31.tgz",
- "integrity": "sha512-GJuwRvMcdZX/CriUnyIIOGkx3rMV3H6sOu0JhdKbduaeCji6zb60iOGMY7tFoN24NfsUYoFBhshZtGxGpxO4iA==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-ssr": "3.5.31",
- "@vue/shared": "3.5.31"
- },
- "peerDependencies": {
- "vue": "3.5.31"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.31.tgz",
- "integrity": "sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==",
- "license": "MIT"
- },
- "node_modules/@vue/test-utils": {
- "version": "2.4.6",
- "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.6.tgz",
- "integrity": "sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "js-beautify": "^1.14.9",
- "vue-component-type-helpers": "^2.0.0"
- }
- },
- "node_modules/@vue/tsconfig": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.9.1.tgz",
- "integrity": "sha512-buvjm+9NzLCJL29KY1j1991YYJ5e6275OiK+G4jtmfIb+z4POywbdm0wXusT9adVWqe0xqg70TbI7+mRx4uU9w==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "typescript": ">= 5.8",
- "vue": "^3.4.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- },
- "vue": {
- "optional": true
- }
- }
- },
- "node_modules/@vueuse/core": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.0.0.tgz",
- "integrity": "sha512-C12RukhXiJCbx4MGhjmd/gH52TjJsc3G0E0kQj/kb19H3Nt6n1CA4DRWuTdWWcaFRdlTe0npWDS942mvacvNBw==",
- "license": "MIT",
- "dependencies": {
- "@types/web-bluetooth": "^0.0.20",
- "@vueuse/metadata": "12.0.0",
- "@vueuse/shared": "12.0.0",
- "vue": "^3.5.13"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@vueuse/metadata": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.0.0.tgz",
- "integrity": "sha512-Yzimd1D3sjxTDOlF05HekU5aSGdKjxhuhRFHA7gDWLn57PRbBIh+SF5NmjhJ0WRgF3my7T8LBucyxdFJjIfRJQ==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@vueuse/shared": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.0.0.tgz",
- "integrity": "sha512-3i6qtcq2PIio5i/vVYidkkcgvmTjCqrf26u+Fd4LhnbBmIT6FN8y6q/GJERp8lfcB9zVEfjdV0Br0443qZuJpw==",
- "license": "MIT",
- "dependencies": {
- "vue": "^3.5.13"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/abbrev": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
- "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/acorn": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
- "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
- "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/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/ajv": {
- "version": "6.14.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
- "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
- "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/alien-signals": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz",
- "integrity": "sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/ansi-regex": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
- "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/ansi-styles": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
- "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/ansis": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz",
- "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/assertion-error": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- }
- },
- "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.14.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.14.0.tgz",
- "integrity": "sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ==",
- "license": "MIT",
- "dependencies": {
- "follow-redirects": "^1.15.11",
- "form-data": "^4.0.5",
- "proxy-from-env": "^2.1.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
- "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "node_modules/baseline-browser-mapping": {
- "version": "2.10.11",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.11.tgz",
- "integrity": "sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "baseline-browser-mapping": "dist/cli.cjs"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/bidi-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
- "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "require-from-string": "^2.0.2"
- }
- },
- "node_modules/birpc": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz",
- "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/brace-expansion": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
- "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^4.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "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/bundle-name": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
- "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "run-applescript": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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/caniuse-lite": {
- "version": "1.0.30001781",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
- "integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
- "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/chai": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz",
- "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/chokidar": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
- "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "readdirp": "^5.0.0"
- },
- "engines": {
- "node": ">= 20.19.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "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/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- }
- },
- "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/config-chain": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
- "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ini": "^1.3.4",
- "proto-list": "~1.2.1"
- }
- },
- "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/copy-anything": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-4.0.5.tgz",
- "integrity": "sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==",
- "license": "MIT",
- "dependencies": {
- "is-what": "^5.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/mesqueeb"
- }
- },
- "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/css-tree": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
- "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mdn-data": "2.27.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/cssstyle": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-6.2.0.tgz",
- "integrity": "sha512-Fm5NvhYathRnXNVndkUsCCuR63DCLVVwGOOwQw782coXFi5HhkXdu289l59HlXZBawsyNccXfWRYvLzcDCdDig==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@asamuzakjp/css-color": "^5.0.1",
- "@csstools/css-syntax-patches-for-csstree": "^1.0.28",
- "css-tree": "^3.1.0",
- "lru-cache": "^11.2.6"
- },
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/cssstyle/node_modules/lru-cache": {
- "version": "11.2.7",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
- "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "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/data-urls": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz",
- "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "whatwg-mimetype": "^5.0.0",
- "whatwg-url": "^16.0.0"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
- }
- },
- "node_modules/dayjs": {
- "version": "1.11.20",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz",
- "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==",
- "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/decimal.js": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
- "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
- "dev": true,
- "license": "MIT"
- },
- "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/default-browser": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz",
- "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bundle-name": "^4.1.0",
- "default-browser-id": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/default-browser-id": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
- "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/define-lazy-prop": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
- "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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/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/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/editorconfig": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.7.tgz",
- "integrity": "sha512-e0GOtq/aTQhVdNyDU9e02+wz9oDDM+SIOQxWME2QRjzRX5yyLAuHDE+0aE8vHb9XRC8XD37eO2u57+F09JqFhw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@one-ini/wasm": "0.1.1",
- "commander": "^10.0.0",
- "minimatch": "^9.0.1",
- "semver": "^7.5.3"
- },
- "bin": {
- "editorconfig": "bin/editorconfig"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/editorconfig/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/editorconfig/node_modules/brace-expansion": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
- "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/editorconfig/node_modules/minimatch": {
- "version": "9.0.9",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
- "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.2"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/editorconfig/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/electron-to-chromium": {
- "version": "1.5.328",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.328.tgz",
- "integrity": "sha512-QNQ5l45DzYytThO21403XN3FvK0hOkWDG8viNf6jqS42msJ8I4tGDSpBCgvDRRPnkffafiwAym2X2eHeGD2V0w==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/element-plus": {
- "version": "2.13.6",
- "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.13.6.tgz",
- "integrity": "sha512-XHgwXr8Fjz6i+6BaqFhAbae/dJbG7bBAAlHrY3pWL7dpj+JcqcOyKYt4Oy5KP86FQwS1k4uIZDjCx2FyUR5lDg==",
- "license": "MIT",
- "dependencies": {
- "@ctrl/tinycolor": "^4.2.0",
- "@element-plus/icons-vue": "^2.3.2",
- "@floating-ui/dom": "^1.0.1",
- "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
- "@types/lodash": "^4.17.20",
- "@types/lodash-es": "^4.17.12",
- "@vueuse/core": "12.0.0",
- "async-validator": "^4.2.5",
- "dayjs": "^1.11.19",
- "lodash": "^4.17.23",
- "lodash-es": "^4.17.23",
- "lodash-unified": "^1.0.3",
- "memoize-one": "^6.0.0",
- "normalize-wheel-es": "^1.2.0",
- "vue-component-type-helpers": "^3.2.4"
- },
- "peerDependencies": {
- "vue": "^3.3.0"
- }
- },
- "node_modules/element-plus/node_modules/vue-component-type-helpers": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-3.2.6.tgz",
- "integrity": "sha512-O02tnvIfOQVmnvoWwuSydwRoHjZVt8UEBR+2p4rT35p8GAy5VTlWP8o5qXfJR/GWCN0nVZoYWsVUvx2jwgdBmQ==",
- "license": "MIT"
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true,
- "license": "MIT"
- },
- "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/error-stack-parser-es": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz",
- "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "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-module-lexer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz",
- "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==",
- "dev": true,
- "license": "MIT"
- },
- "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.27.4",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz",
- "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.27.4",
- "@esbuild/android-arm": "0.27.4",
- "@esbuild/android-arm64": "0.27.4",
- "@esbuild/android-x64": "0.27.4",
- "@esbuild/darwin-arm64": "0.27.4",
- "@esbuild/darwin-x64": "0.27.4",
- "@esbuild/freebsd-arm64": "0.27.4",
- "@esbuild/freebsd-x64": "0.27.4",
- "@esbuild/linux-arm": "0.27.4",
- "@esbuild/linux-arm64": "0.27.4",
- "@esbuild/linux-ia32": "0.27.4",
- "@esbuild/linux-loong64": "0.27.4",
- "@esbuild/linux-mips64el": "0.27.4",
- "@esbuild/linux-ppc64": "0.27.4",
- "@esbuild/linux-riscv64": "0.27.4",
- "@esbuild/linux-s390x": "0.27.4",
- "@esbuild/linux-x64": "0.27.4",
- "@esbuild/netbsd-arm64": "0.27.4",
- "@esbuild/netbsd-x64": "0.27.4",
- "@esbuild/openbsd-arm64": "0.27.4",
- "@esbuild/openbsd-x64": "0.27.4",
- "@esbuild/openharmony-arm64": "0.27.4",
- "@esbuild/sunos-x64": "0.27.4",
- "@esbuild/win32-arm64": "0.27.4",
- "@esbuild/win32-ia32": "0.27.4",
- "@esbuild/win32-x64": "0.27.4"
- }
- },
- "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": "10.1.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.1.0.tgz",
- "integrity": "sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.8.0",
- "@eslint-community/regexpp": "^4.12.2",
- "@eslint/config-array": "^0.23.3",
- "@eslint/config-helpers": "^0.5.3",
- "@eslint/core": "^1.1.1",
- "@eslint/plugin-kit": "^0.6.1",
- "@humanfs/node": "^0.16.6",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@humanwhocodes/retry": "^0.4.2",
- "@types/estree": "^1.0.6",
- "ajv": "^6.14.0",
- "cross-spawn": "^7.0.6",
- "debug": "^4.3.2",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^9.1.2",
- "eslint-visitor-keys": "^5.0.1",
- "espree": "^11.2.0",
- "esquery": "^1.7.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^8.0.0",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "minimatch": "^10.2.4",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- },
- "funding": {
- "url": "https://eslint.org/donate"
- },
- "peerDependencies": {
- "jiti": "*"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-config-prettier": {
- "version": "10.1.8",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz",
- "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "eslint-config-prettier": "bin/cli.js"
- },
- "funding": {
- "url": "https://opencollective.com/eslint-config-prettier"
- },
- "peerDependencies": {
- "eslint": ">=7.0.0"
- }
- },
- "node_modules/eslint-plugin-oxlint": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-oxlint/-/eslint-plugin-oxlint-1.51.0.tgz",
- "integrity": "sha512-lct8LD1AxfHF1PcsuK6mFYals+zX0mx/WP2G4i16h0iR8jpT3xCfGTmTNwXiImcevzGIiJ/VDBgQ7t0B9z2Jeg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "jsonc-parser": "^3.3.1"
- }
- },
- "node_modules/eslint-plugin-playwright": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-2.10.1.tgz",
- "integrity": "sha512-qea3UxBOb8fTwJ77FMApZKvRye5DOluDHcev0LDJwID3RELeun0JlqzrNIXAB/SXCyB/AesCW/6sZfcT9q3Edg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "globals": "^17.3.0"
- },
- "engines": {
- "node": ">=16.9.0"
- },
- "peerDependencies": {
- "eslint": ">=8.40.0"
- }
- },
- "node_modules/eslint-plugin-vue": {
- "version": "10.8.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.8.0.tgz",
- "integrity": "sha512-f1J/tcbnrpgC8suPN5AtdJ5MQjuXbSU9pGRSSYAuF3SHoiYCOdEX6O22pLaRyLHXvDcOe+O5ENgc1owQ587agA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "natural-compare": "^1.4.0",
- "nth-check": "^2.1.1",
- "postcss-selector-parser": "^7.1.0",
- "semver": "^7.6.3",
- "xml-name-validator": "^4.0.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "peerDependencies": {
- "@stylistic/eslint-plugin": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0",
- "@typescript-eslint/parser": "^7.0.0 || ^8.0.0",
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "vue-eslint-parser": "^10.0.0"
- },
- "peerDependenciesMeta": {
- "@stylistic/eslint-plugin": {
- "optional": true
- },
- "@typescript-eslint/parser": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-plugin-vue/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/eslint-scope": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz",
- "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "@types/esrecurse": "^4.3.1",
- "@types/estree": "^1.0.8",
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- },
- "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/eslint/node_modules/eslint-visitor-keys": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
- "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/espree": {
- "version": "11.2.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz",
- "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "acorn": "^8.16.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^5.0.1"
- },
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
- "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- },
- "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/expect-type": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz",
- "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.0.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": "8.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
- "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flat-cache": "^4.0.0"
- },
- "engines": {
- "node": ">=16.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": "4.0.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
- "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.4"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/flatted": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
- "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
- "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/foreground-child": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
- "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "cross-spawn": "^7.0.6",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "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/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "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": "10.5.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
- "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
- "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": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "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/glob/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/glob/node_modules/brace-expansion": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
- "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/glob/node_modules/minimatch": {
- "version": "9.0.9",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
- "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.2"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/globals": {
- "version": "17.4.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz",
- "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "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/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/hookable": {
- "version": "5.5.3",
- "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz",
- "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==",
- "license": "MIT"
- },
- "node_modules/html-encoding-sniffer": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz",
- "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@exodus/bytes": "^1.6.0"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
- }
- },
- "node_modules/http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "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/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/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/is-docker": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
- "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "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-inside-container": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
- "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-docker": "^3.0.0"
- },
- "bin": {
- "is-inside-container": "cli.js"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/is-what": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/is-what/-/is-what-5.5.0.tgz",
- "integrity": "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==",
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/mesqueeb"
- }
- },
- "node_modules/is-wsl": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
- "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-inside-container": "^1.0.0"
- },
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/jiti": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
- "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "jiti": "lib/jiti-cli.mjs"
- }
- },
- "node_modules/js-beautify": {
- "version": "1.15.4",
- "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz",
- "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "config-chain": "^1.1.13",
- "editorconfig": "^1.0.4",
- "glob": "^10.4.2",
- "js-cookie": "^3.0.5",
- "nopt": "^7.2.1"
- },
- "bin": {
- "css-beautify": "js/bin/css-beautify.js",
- "html-beautify": "js/bin/html-beautify.js",
- "js-beautify": "js/bin/js-beautify.js"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/js-cookie": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz",
- "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- }
- },
- "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==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jsdom": {
- "version": "28.1.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-28.1.0.tgz",
- "integrity": "sha512-0+MoQNYyr2rBHqO1xilltfDjV9G7ymYGlAUazgcDLQaUf8JDHbuGwsxN6U9qWaElZ4w1B2r7yEGIL3GdeW3Rug==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@acemir/cssom": "^0.9.31",
- "@asamuzakjp/dom-selector": "^6.8.1",
- "@bramus/specificity": "^2.4.2",
- "@exodus/bytes": "^1.11.0",
- "cssstyle": "^6.0.1",
- "data-urls": "^7.0.0",
- "decimal.js": "^10.6.0",
- "html-encoding-sniffer": "^6.0.0",
- "http-proxy-agent": "^7.0.2",
- "https-proxy-agent": "^7.0.6",
- "is-potential-custom-element-name": "^1.0.1",
- "parse5": "^8.0.0",
- "saxes": "^6.0.0",
- "symbol-tree": "^3.2.4",
- "tough-cookie": "^6.0.0",
- "undici": "^7.21.0",
- "w3c-xmlserializer": "^5.0.0",
- "webidl-conversions": "^8.0.1",
- "whatwg-mimetype": "^5.0.0",
- "whatwg-url": "^16.0.0",
- "xml-name-validator": "^5.0.0"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
- },
- "peerDependencies": {
- "canvas": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
- "node_modules/jsdom/node_modules/entities": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
- "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/jsdom/node_modules/parse5": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz",
- "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "entities": "^6.0.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/jsdom/node_modules/xml-name-validator": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
- "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=18"
- }
- },
- "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-parse-even-better-errors": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz",
- "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "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/jsonc-parser": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
- "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
- "dev": true,
- "license": "MIT"
- },
- "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/kolorist": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
- "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
- "dev": true,
- "license": "MIT"
- },
- "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": "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/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-unified": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz",
- "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
- "license": "MIT",
- "peerDependencies": {
- "@types/lodash-es": "*",
- "lodash": "*",
- "lodash-es": "*"
- }
- },
- "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/lucide-vue-next": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-1.0.0.tgz",
- "integrity": "sha512-V6SPvx1IHTj/UY+FrIYWV5faISsPSb8BnWSFDxAtezWKvWc9ZZ40PDrdu1/Qb5vg4lHWr1hs1BAMGVGm6V1Xdg==",
- "license": "ISC",
- "peerDependencies": {
- "vue": ">=3.0.1"
- }
- },
- "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/mdn-data": {
- "version": "2.27.1",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
- "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
- "dev": true,
- "license": "CC0-1.0"
- },
- "node_modules/memoize-one": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
- "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==",
- "license": "MIT"
- },
- "node_modules/memorystream": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
- "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
- "dev": true,
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "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/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": "10.2.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
- "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "brace-expansion": "^5.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/minipass": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
- "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/mitt": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
- "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
- "license": "MIT"
- },
- "node_modules/mlly": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz",
- "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.16.0",
- "pathe": "^2.0.3",
- "pkg-types": "^1.3.1",
- "ufo": "^1.6.3"
- }
- },
- "node_modules/mlly/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/mlly/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/mrmime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
- "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "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.4.1",
- "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz",
- "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
- "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/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.36",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
- "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/nopt": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
- "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "abbrev": "^2.0.0"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/normalize-wheel-es": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
- "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==",
- "license": "BSD-3-Clause"
- },
- "node_modules/npm-normalize-package-bin": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz",
- "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "node_modules/npm-run-all2": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-8.0.4.tgz",
- "integrity": "sha512-wdbB5My48XKp2ZfJUlhnLVihzeuA1hgBnqB2J9ahV77wLS+/YAJAlN8I+X3DIFIPZ3m5L7nplmlbhNiFDmXRDA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.2.1",
- "cross-spawn": "^7.0.6",
- "memorystream": "^0.3.1",
- "picomatch": "^4.0.2",
- "pidtree": "^0.6.0",
- "read-package-json-fast": "^4.0.0",
- "shell-quote": "^1.7.3",
- "which": "^5.0.0"
- },
- "bin": {
- "npm-run-all": "bin/npm-run-all/index.js",
- "npm-run-all2": "bin/npm-run-all/index.js",
- "run-p": "bin/run-p/index.js",
- "run-s": "bin/run-s/index.js"
- },
- "engines": {
- "node": "^20.5.0 || >=22.0.0",
- "npm": ">= 10"
- }
- },
- "node_modules/npm-run-all2/node_modules/isexe": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
- "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/npm-run-all2/node_modules/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/npm-run-all2/node_modules/which": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz",
- "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^3.1.1"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
- "node_modules/obug": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz",
- "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/sxzz",
- "https://opencollective.com/debug"
- ],
- "license": "MIT"
- },
- "node_modules/ohash": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz",
- "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/open": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
- "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "default-browser": "^5.2.1",
- "define-lazy-prop": "^3.0.0",
- "is-inside-container": "^1.0.0",
- "wsl-utils": "^0.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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/oxlint": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.51.0.tgz",
- "integrity": "sha512-g6DNPaV9/WI9MoX2XllafxQuxwY1TV++j7hP8fTJByVBuCoVtm3dy9f/2vtH/HU40JztcgWF4G7ua+gkainklQ==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "oxlint": "bin/oxlint"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/Boshen"
- },
- "optionalDependencies": {
- "@oxlint/binding-android-arm-eabi": "1.51.0",
- "@oxlint/binding-android-arm64": "1.51.0",
- "@oxlint/binding-darwin-arm64": "1.51.0",
- "@oxlint/binding-darwin-x64": "1.51.0",
- "@oxlint/binding-freebsd-x64": "1.51.0",
- "@oxlint/binding-linux-arm-gnueabihf": "1.51.0",
- "@oxlint/binding-linux-arm-musleabihf": "1.51.0",
- "@oxlint/binding-linux-arm64-gnu": "1.51.0",
- "@oxlint/binding-linux-arm64-musl": "1.51.0",
- "@oxlint/binding-linux-ppc64-gnu": "1.51.0",
- "@oxlint/binding-linux-riscv64-gnu": "1.51.0",
- "@oxlint/binding-linux-riscv64-musl": "1.51.0",
- "@oxlint/binding-linux-s390x-gnu": "1.51.0",
- "@oxlint/binding-linux-x64-gnu": "1.51.0",
- "@oxlint/binding-linux-x64-musl": "1.51.0",
- "@oxlint/binding-openharmony-arm64": "1.51.0",
- "@oxlint/binding-win32-arm64-msvc": "1.51.0",
- "@oxlint/binding-win32-ia32-msvc": "1.51.0",
- "@oxlint/binding-win32-x64-msvc": "1.51.0"
- },
- "peerDependencies": {
- "oxlint-tsgolint": ">=0.15.0"
- },
- "peerDependenciesMeta": {
- "oxlint-tsgolint": {
- "optional": true
- }
- }
- },
- "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/package-json-from-dist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
- "dev": true,
- "license": "BlueOak-1.0.0"
- },
- "node_modules/parse5": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
- "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "entities": "^6.0.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/parse5/node_modules/entities": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
- "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "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-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-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
- "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/perfect-debounce": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
- "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==",
- "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": "2.3.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
- "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pidtree": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
- "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "pidtree": "bin/pidtree.js"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/pinia": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.4.tgz",
- "integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==",
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-api": "^7.7.7"
- },
- "funding": {
- "url": "https://github.com/sponsors/posva"
- },
- "peerDependencies": {
- "typescript": ">=4.5.0",
- "vue": "^3.5.11"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "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/playwright": {
- "version": "1.58.2",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz",
- "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "playwright-core": "1.58.2"
- },
- "bin": {
- "playwright": "cli.js"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "fsevents": "2.3.2"
- }
- },
- "node_modules/playwright-core": {
- "version": "1.58.2",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz",
- "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "playwright-core": "cli.js"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/postcss": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
- "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
- "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/postcss-selector-parser": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
- "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "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/proto-list": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
- "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/proxy-from-env": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
- "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "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/read-package-json-fast": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz",
- "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "json-parse-even-better-errors": "^4.0.0",
- "npm-normalize-package-bin": "^4.0.0"
- },
- "engines": {
- "node": "^18.17.0 || >=20.5.0"
- }
- },
- "node_modules/readdirp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
- "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 20.19.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "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/rfdc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
- "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
- "license": "MIT"
- },
- "node_modules/rollup": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz",
- "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==",
- "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.60.0",
- "@rollup/rollup-android-arm64": "4.60.0",
- "@rollup/rollup-darwin-arm64": "4.60.0",
- "@rollup/rollup-darwin-x64": "4.60.0",
- "@rollup/rollup-freebsd-arm64": "4.60.0",
- "@rollup/rollup-freebsd-x64": "4.60.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.60.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.60.0",
- "@rollup/rollup-linux-arm64-gnu": "4.60.0",
- "@rollup/rollup-linux-arm64-musl": "4.60.0",
- "@rollup/rollup-linux-loong64-gnu": "4.60.0",
- "@rollup/rollup-linux-loong64-musl": "4.60.0",
- "@rollup/rollup-linux-ppc64-gnu": "4.60.0",
- "@rollup/rollup-linux-ppc64-musl": "4.60.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.60.0",
- "@rollup/rollup-linux-riscv64-musl": "4.60.0",
- "@rollup/rollup-linux-s390x-gnu": "4.60.0",
- "@rollup/rollup-linux-x64-gnu": "4.60.0",
- "@rollup/rollup-linux-x64-musl": "4.60.0",
- "@rollup/rollup-openbsd-x64": "4.60.0",
- "@rollup/rollup-openharmony-arm64": "4.60.0",
- "@rollup/rollup-win32-arm64-msvc": "4.60.0",
- "@rollup/rollup-win32-ia32-msvc": "4.60.0",
- "@rollup/rollup-win32-x64-gnu": "4.60.0",
- "@rollup/rollup-win32-x64-msvc": "4.60.0",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/run-applescript": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
- "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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/saxes": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
- "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "xmlchars": "^2.2.0"
- },
- "engines": {
- "node": ">=v12.22.7"
- }
- },
- "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/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/shell-quote": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
- "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/siginfo": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/sirv": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz",
- "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@polka/url": "^1.0.0-next.24",
- "mrmime": "^2.0.0",
- "totalist": "^3.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "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/speakingurl": {
- "version": "14.0.1",
- "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz",
- "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/stackback": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
- "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/std-env": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.0.0.tgz",
- "integrity": "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/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/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/string-width-cjs/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-ansi": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
- "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.2.2"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "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-ansi-cjs/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/strip-literal": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz",
- "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==",
- "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/superjson": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.6.tgz",
- "integrity": "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==",
- "license": "MIT",
- "dependencies": {
- "copy-anything": "^4"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/symbol-tree": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinybench": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
- "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinyexec": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz",
- "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tinyglobby": {
- "version": "0.2.15",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
- "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.5.0",
- "picomatch": "^4.0.3"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
- }
- },
- "node_modules/tinyglobby/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/tinyrainbow": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
- "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tldts": {
- "version": "7.0.27",
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.27.tgz",
- "integrity": "sha512-I4FZcVFcqCRuT0ph6dCDpPuO4Xgzvh+spkcTr1gK7peIvxWauoloVO0vuy1FQnijT63ss6AsHB6+OIM4aXHbPg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tldts-core": "^7.0.27"
- },
- "bin": {
- "tldts": "bin/cli.js"
- }
- },
- "node_modules/tldts-core": {
- "version": "7.0.27",
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.27.tgz",
- "integrity": "sha512-YQ7uPjgWUibIK6DW5lrKujGwUKhLevU4hcGbP5O6TcIUb+oTjJYJVWPS4nZsIHrEEEG6myk/oqAJUEQmpZrHsg==",
- "dev": true,
- "license": "MIT"
- },
- "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/totalist": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
- "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tough-cookie": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz",
- "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "tldts": "^7.0.5"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/tr46": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz",
- "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.3.1"
- },
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/ts-api-utils": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",
- "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18.12"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4"
- }
- },
- "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/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/typescript-eslint": {
- "version": "8.57.2",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.57.2.tgz",
- "integrity": "sha512-VEPQ0iPgWO/sBaZOU1xo4nuNdODVOajPnTIbog2GKYr31nIlZ0fWPoCQgGfF3ETyBl1vn63F/p50Um9Z4J8O8A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/eslint-plugin": "8.57.2",
- "@typescript-eslint/parser": "8.57.2",
- "@typescript-eslint/typescript-estree": "8.57.2",
- "@typescript-eslint/utils": "8.57.2"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "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": {
- "version": "7.24.6",
- "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.6.tgz",
- "integrity": "sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=20.18.1"
- }
- },
- "node_modules/undici-types": {
- "version": "7.24.6",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz",
- "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/unimport": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/unimport/-/unimport-5.7.0.tgz",
- "integrity": "sha512-njnL6sp8lEA8QQbZrt+52p/g4X0rw3bnGGmUcJnt1jeG8+iiqO779aGz0PirCtydAIVcuTBRlJ52F0u46z309Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.16.0",
- "escape-string-regexp": "^5.0.0",
- "estree-walker": "^3.0.3",
- "local-pkg": "^1.1.2",
- "magic-string": "^0.30.21",
- "mlly": "^1.8.0",
- "pathe": "^2.0.3",
- "picomatch": "^4.0.3",
- "pkg-types": "^2.3.0",
- "scule": "^1.3.0",
- "strip-literal": "^3.1.0",
- "tinyglobby": "^0.2.15",
- "unplugin": "^2.3.11",
- "unplugin-utils": "^0.3.1"
- },
- "engines": {
- "node": ">=18.12.0"
- }
- },
- "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/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/unimport/node_modules/unplugin": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz",
- "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/remapping": "^2.3.5",
- "acorn": "^8.15.0",
- "picomatch": "^4.0.3",
- "webpack-virtual-modules": "^0.6.2"
- },
- "engines": {
- "node": ">=18.12.0"
- }
- },
- "node_modules/unplugin": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.0.0.tgz",
- "integrity": "sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/remapping": "^2.3.5",
- "picomatch": "^4.0.3",
- "webpack-virtual-modules": "^0.6.2"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
- },
- "node_modules/unplugin-auto-import": {
- "version": "21.0.0",
- "resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-21.0.0.tgz",
- "integrity": "sha512-vWuC8SwqJmxZFYwPojhOhOXDb5xFhNNcEVb9K/RFkyk/3VnfaOjzitWN7v+8DEKpMjSsY2AEGXNgt6I0yQrhRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "local-pkg": "^1.1.2",
- "magic-string": "^0.30.21",
- "picomatch": "^4.0.3",
- "unimport": "^5.6.0",
- "unplugin": "^2.3.11",
- "unplugin-utils": "^0.3.1"
- },
- "engines": {
- "node": ">=20.19.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@nuxt/kit": "^4.0.0",
- "@vueuse/core": "*"
- },
- "peerDependenciesMeta": {
- "@nuxt/kit": {
- "optional": true
- },
- "@vueuse/core": {
- "optional": true
- }
- }
- },
- "node_modules/unplugin-auto-import/node_modules/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/unplugin-auto-import/node_modules/unplugin": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz",
- "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/remapping": "^2.3.5",
- "acorn": "^8.15.0",
- "picomatch": "^4.0.3",
- "webpack-virtual-modules": "^0.6.2"
- },
- "engines": {
- "node": ">=18.12.0"
- }
- },
- "node_modules/unplugin-utils": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz",
- "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "pathe": "^2.0.3",
- "picomatch": "^4.0.3"
- },
- "engines": {
- "node": ">=20.19.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sxzz"
- }
- },
- "node_modules/unplugin-utils/node_modules/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/unplugin-vue-components": {
- "version": "32.0.0",
- "resolved": "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-32.0.0.tgz",
- "integrity": "sha512-uLdccgS7mf3pv1bCCP20y/hm+u1eOjAmygVkh+Oa70MPkzgl1eQv1L0CwdHNM3gscO8/GDMGIET98Ja47CBbZg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chokidar": "^5.0.0",
- "local-pkg": "^1.1.2",
- "magic-string": "^0.30.21",
- "mlly": "^1.8.2",
- "obug": "^2.1.1",
- "picomatch": "^4.0.3",
- "tinyglobby": "^0.2.15",
- "unplugin": "^3.0.0",
- "unplugin-utils": "^0.3.1"
- },
- "engines": {
- "node": ">=20.19.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@nuxt/kit": "^3.2.2 || ^4.0.0",
- "vue": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "@nuxt/kit": {
- "optional": true
- }
- }
- },
- "node_modules/unplugin-vue-components/node_modules/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/unplugin/node_modules/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "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/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vite": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz",
- "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "esbuild": "^0.27.0",
- "fdir": "^6.5.0",
- "picomatch": "^4.0.3",
- "postcss": "^8.5.6",
- "rollup": "^4.43.0",
- "tinyglobby": "^0.2.15"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^20.19.0 || >=22.12.0",
- "jiti": ">=1.21.0",
- "less": "^4.0.0",
- "lightningcss": "^1.21.0",
- "sass": "^1.70.0",
- "sass-embedded": "^1.70.0",
- "stylus": ">=0.54.8",
- "sugarss": "^5.0.0",
- "terser": "^5.16.0",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "jiti": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/vite-dev-rpc": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/vite-dev-rpc/-/vite-dev-rpc-1.1.0.tgz",
- "integrity": "sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "birpc": "^2.4.0",
- "vite-hot-client": "^2.1.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0"
- }
- },
- "node_modules/vite-hot-client": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-2.1.0.tgz",
- "integrity": "sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0"
- }
- },
- "node_modules/vite-plugin-inspect": {
- "version": "11.3.3",
- "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-11.3.3.tgz",
- "integrity": "sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansis": "^4.1.0",
- "debug": "^4.4.1",
- "error-stack-parser-es": "^1.0.5",
- "ohash": "^2.0.11",
- "open": "^10.2.0",
- "perfect-debounce": "^2.0.0",
- "sirv": "^3.0.1",
- "unplugin-utils": "^0.3.0",
- "vite-dev-rpc": "^1.1.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "vite": "^6.0.0 || ^7.0.0-0"
- },
- "peerDependenciesMeta": {
- "@nuxt/kit": {
- "optional": true
- }
- }
- },
- "node_modules/vite-plugin-inspect/node_modules/perfect-debounce": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz",
- "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vite-plugin-vue-devtools": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-8.1.1.tgz",
- "integrity": "sha512-9qTpOmZ2vHpvlI9hdVXAQ1Ry4I8GcBArU7aPi0qfIaV7fQIXy0L1nb6X4mFY2Gw0dYshHuLbIl0Ulb572SCjsQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-core": "^8.1.1",
- "@vue/devtools-kit": "^8.1.1",
- "@vue/devtools-shared": "^8.1.1",
- "sirv": "^3.0.2",
- "vite-plugin-inspect": "^11.3.3",
- "vite-plugin-vue-inspector": "^5.3.2"
- },
- "engines": {
- "node": ">=v14.21.3"
- },
- "peerDependencies": {
- "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/vite-plugin-vue-devtools/node_modules/@vue/devtools-kit": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.1.1.tgz",
- "integrity": "sha512-gVBaBv++i+adg4JpH71k9ppl4soyR7Y2McEqO5YNgv0BI1kMZ7BDX5gnwkZ5COYgiCyhejZG+yGNrBAjj6Coqg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vue/devtools-shared": "^8.1.1",
- "birpc": "^2.6.1",
- "hookable": "^5.5.3",
- "perfect-debounce": "^2.0.0"
- }
- },
- "node_modules/vite-plugin-vue-devtools/node_modules/@vue/devtools-shared": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.1.1.tgz",
- "integrity": "sha512-+h4ttmJYl/txpxHKaoZcaKpC+pvckgLzIDiSQlaQ7kKthKh8KuwoLW2D8hPJEnqKzXOvu15UHEoGyngAXCz0EQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vite-plugin-vue-devtools/node_modules/perfect-debounce": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz",
- "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vite-plugin-vue-inspector": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.4.0.tgz",
- "integrity": "sha512-Iq/024CydcE46FZqWPU4t4lw4uYOdLnFSO1RNxJVt2qY9zxIjmnkBqhHnYaReWM82kmNnaXs7OkfgRrV2GEjyw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.23.0",
- "@babel/plugin-proposal-decorators": "^7.23.0",
- "@babel/plugin-syntax-import-attributes": "^7.22.5",
- "@babel/plugin-syntax-import-meta": "^7.10.4",
- "@babel/plugin-transform-typescript": "^7.22.15",
- "@vue/babel-plugin-jsx": "^1.1.5",
- "@vue/compiler-dom": "^3.3.4",
- "kolorist": "^1.8.0",
- "magic-string": "^0.30.4"
- },
- "peerDependencies": {
- "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/vite-plugin-vue-inspector/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/vite-plugin-vue-inspector/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/vite-plugin-vue-inspector/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/vite/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/vite/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/vite/node_modules/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/vitest": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.2.tgz",
- "integrity": "sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/expect": "4.1.2",
- "@vitest/mocker": "4.1.2",
- "@vitest/pretty-format": "4.1.2",
- "@vitest/runner": "4.1.2",
- "@vitest/snapshot": "4.1.2",
- "@vitest/spy": "4.1.2",
- "@vitest/utils": "4.1.2",
- "es-module-lexer": "^2.0.0",
- "expect-type": "^1.3.0",
- "magic-string": "^0.30.21",
- "obug": "^2.1.1",
- "pathe": "^2.0.3",
- "picomatch": "^4.0.3",
- "std-env": "^4.0.0-rc.1",
- "tinybench": "^2.9.0",
- "tinyexec": "^1.0.2",
- "tinyglobby": "^0.2.15",
- "tinyrainbow": "^3.1.0",
- "vite": "^6.0.0 || ^7.0.0 || ^8.0.0",
- "why-is-node-running": "^2.3.0"
- },
- "bin": {
- "vitest": "vitest.mjs"
- },
- "engines": {
- "node": "^20.0.0 || ^22.0.0 || >=24.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "@edge-runtime/vm": "*",
- "@opentelemetry/api": "^1.9.0",
- "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
- "@vitest/browser-playwright": "4.1.2",
- "@vitest/browser-preview": "4.1.2",
- "@vitest/browser-webdriverio": "4.1.2",
- "@vitest/ui": "4.1.2",
- "happy-dom": "*",
- "jsdom": "*",
- "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "@edge-runtime/vm": {
- "optional": true
- },
- "@opentelemetry/api": {
- "optional": true
- },
- "@types/node": {
- "optional": true
- },
- "@vitest/browser-playwright": {
- "optional": true
- },
- "@vitest/browser-preview": {
- "optional": true
- },
- "@vitest/browser-webdriverio": {
- "optional": true
- },
- "@vitest/ui": {
- "optional": true
- },
- "happy-dom": {
- "optional": true
- },
- "jsdom": {
- "optional": true
- },
- "vite": {
- "optional": false
- }
- }
- },
- "node_modules/vitest/node_modules/picomatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
- "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/vscode-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
- "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vue": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.31.tgz",
- "integrity": "sha512-iV/sU9SzOlmA/0tygSmjkEN6Jbs3nPoIPFhCMLD2STrjgOU8DX7ZtzMhg4ahVwf5Rp9KoFzcXeB1ZrVbLBp5/Q==",
- "license": "MIT",
- "dependencies": {
- "@vue/compiler-dom": "3.5.31",
- "@vue/compiler-sfc": "3.5.31",
- "@vue/runtime-dom": "3.5.31",
- "@vue/server-renderer": "3.5.31",
- "@vue/shared": "3.5.31"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/vue-component-type-helpers": {
- "version": "2.2.12",
- "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.2.12.tgz",
- "integrity": "sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vue-eslint-parser": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.4.0.tgz",
- "integrity": "sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "debug": "^4.4.0",
- "eslint-scope": "^8.2.0 || ^9.0.0",
- "eslint-visitor-keys": "^4.2.0 || ^5.0.0",
- "espree": "^10.3.0 || ^11.0.0",
- "esquery": "^1.6.0",
- "semver": "^7.6.3"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0"
- }
- },
- "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
- "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^20.19.0 || ^22.13.0 || >=24"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/vue-eslint-parser/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-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-router/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-tsc": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.6.tgz",
- "integrity": "sha512-gYW/kWI0XrwGzd0PKc7tVB/qpdeAkIZLNZb10/InizkQjHjnT8weZ/vBarZoj4kHKbUTZT/bAVgoOr8x4NsQ/Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@volar/typescript": "2.4.28",
- "@vue/language-core": "3.2.6"
- },
- "bin": {
- "vue-tsc": "bin/vue-tsc.js"
- },
- "peerDependencies": {
- "typescript": ">=5.0.0"
- }
- },
- "node_modules/w3c-xmlserializer": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
- "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "xml-name-validator": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
- "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz",
- "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=20"
- }
- },
- "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/whatwg-mimetype": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz",
- "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/whatwg-url": {
- "version": "16.0.1",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz",
- "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@exodus/bytes": "^1.11.0",
- "tr46": "^6.0.0",
- "webidl-conversions": "^8.0.1"
- },
- "engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
- }
- },
- "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/why-is-node-running": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
- "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "siginfo": "^2.0.0",
- "stackback": "0.0.2"
- },
- "bin": {
- "why-is-node-running": "cli.js"
- },
- "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/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/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/wrap-ansi-cjs/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/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/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/wsl-utils": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
- "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-wsl": "^3.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/xml-name-validator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/xmlchars": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
- "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true,
- "license": "MIT"
- },
- "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/周新忠学习笔记/4.1/vue_prj/package.json b/周新忠学习笔记/4.1/vue_prj/package.json
deleted file mode 100644
index 2ca94cd..0000000
--- a/周新忠学习笔记/4.1/vue_prj/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "vue_prj",
- "version": "0.0.0",
- "private": true,
- "type": "module",
- "scripts": {
- "dev": "vite",
- "build": "run-p type-check \"build-only {@}\" --",
- "preview": "vite preview",
- "test:unit": "vitest",
- "test:e2e": "playwright test",
- "build-only": "vite build",
- "type-check": "vue-tsc --build",
- "lint": "run-s lint:*",
- "lint:oxlint": "oxlint . --fix",
- "lint:eslint": "eslint . --fix --cache",
- "format": "prettier --write --experimental-cli src/"
- },
- "dependencies": {
- "@element-plus/icons-vue": "^2.3.2",
- "axios": "^1.14.0",
- "element-plus": "^2.13.6",
- "lucide-vue-next": "^1.0.0",
- "pinia": "^3.0.4",
- "vue": "^3.5.30",
- "vue-router": "^4.6.4"
- },
- "devDependencies": {
- "@playwright/test": "^1.58.2",
- "@tsconfig/node24": "^24.0.4",
- "@types/jsdom": "^28.0.0",
- "@types/node": "^24.12.0",
- "@vitejs/plugin-vue": "^6.0.4",
- "@vitejs/plugin-vue-jsx": "^5.1.4",
- "@vitest/eslint-plugin": "^1.6.10",
- "@vue/eslint-config-typescript": "^14.7.0",
- "@vue/test-utils": "^2.4.6",
- "@vue/tsconfig": "^0.9.0",
- "eslint": "^10.0.3",
- "eslint-config-prettier": "^10.1.8",
- "eslint-plugin-oxlint": "~1.51.0",
- "eslint-plugin-playwright": "^2.9.0",
- "eslint-plugin-vue": "~10.8.0",
- "jiti": "^2.6.1",
- "jsdom": "^28.1.0",
- "npm-run-all2": "^8.0.4",
- "oxlint": "~1.51.0",
- "prettier": "3.8.1",
- "typescript": "~5.9.3",
- "unplugin-auto-import": "^21.0.0",
- "unplugin-vue-components": "^32.0.0",
- "vite": "^7.3.1",
- "vite-plugin-vue-devtools": "^8.0.7",
- "vitest": "^4.0.18",
- "vue-tsc": "^3.2.5"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- }
-}
diff --git a/周新忠学习笔记/4.1/vue_prj/playwright.config.ts b/周新忠学习笔记/4.1/vue_prj/playwright.config.ts
deleted file mode 100644
index 5ece956..0000000
--- a/周新忠学习笔记/4.1/vue_prj/playwright.config.ts
+++ /dev/null
@@ -1,110 +0,0 @@
-import process from 'node:process'
-import { defineConfig, devices } from '@playwright/test'
-
-/**
- * Read environment variables from file.
- * https://github.com/motdotla/dotenv
- */
-// require('dotenv').config();
-
-/**
- * See https://playwright.dev/docs/test-configuration.
- */
-export default defineConfig({
- testDir: './e2e',
- /* Maximum time one test can run for. */
- timeout: 30 * 1000,
- expect: {
- /**
- * Maximum time expect() should wait for the condition to be met.
- * For example in `await expect(locator).toHaveText();`
- */
- timeout: 5000,
- },
- /* Fail the build on CI if you accidentally left test.only in the source code. */
- forbidOnly: !!process.env.CI,
- /* Retry on CI only */
- retries: process.env.CI ? 2 : 0,
- /* Opt out of parallel tests on CI. */
- workers: process.env.CI ? 1 : undefined,
- /* Reporter to use. See https://playwright.dev/docs/test-reporters */
- reporter: 'html',
- /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
- use: {
- /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
- actionTimeout: 0,
- /* Base URL to use in actions like `await page.goto('/')`. */
- baseURL: process.env.CI ? 'http://localhost:4173' : 'http://localhost:5173',
-
- /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
- trace: 'on-first-retry',
-
- /* Only on CI systems run the tests headless */
- headless: !!process.env.CI,
- },
-
- /* Configure projects for major browsers */
- projects: [
- {
- name: 'chromium',
- use: {
- ...devices['Desktop Chrome'],
- },
- },
- {
- name: 'firefox',
- use: {
- ...devices['Desktop Firefox'],
- },
- },
- {
- name: 'webkit',
- use: {
- ...devices['Desktop Safari'],
- },
- },
-
- /* Test against mobile viewports. */
- // {
- // name: 'Mobile Chrome',
- // use: {
- // ...devices['Pixel 5'],
- // },
- // },
- // {
- // name: 'Mobile Safari',
- // use: {
- // ...devices['iPhone 12'],
- // },
- // },
-
- /* Test against branded browsers. */
- // {
- // name: 'Microsoft Edge',
- // use: {
- // channel: 'msedge',
- // },
- // },
- // {
- // name: 'Google Chrome',
- // use: {
- // channel: 'chrome',
- // },
- // },
- ],
-
- /* Folder for test artifacts such as screenshots, videos, traces, etc. */
- // outputDir: 'test-results/',
-
- /* Run your local dev server before starting the tests */
- webServer: {
- /**
- * Use the dev server by default for faster feedback loop.
- * Use the preview server on CI for more realistic testing.
- * Playwright will re-use the local server if there is already a dev-server running.
- */
- command: process.env.CI ? 'npm run preview' : 'npm run dev',
- port: process.env.CI ? 4173 : 5173,
- reuseExistingServer: !process.env.CI,
- },
-})
diff --git a/周新忠学习笔记/4.1/vue_prj/public/favicon.ico b/周新忠学习笔记/4.1/vue_prj/public/favicon.ico
deleted file mode 100644
index df36fcf..0000000
Binary files a/周新忠学习笔记/4.1/vue_prj/public/favicon.ico and /dev/null differ
diff --git a/周新忠学习笔记/4.1/vue_prj/src/App.vue b/周新忠学习笔记/4.1/vue_prj/src/App.vue
deleted file mode 100644
index 98240ae..0000000
--- a/周新忠学习笔记/4.1/vue_prj/src/App.vue
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/周新忠学习笔记/4.1/vue_prj/src/__tests__/App.spec.ts b/周新忠学习笔记/4.1/vue_prj/src/__tests__/App.spec.ts
deleted file mode 100644
index 5b17801..0000000
--- a/周新忠学习笔记/4.1/vue_prj/src/__tests__/App.spec.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { describe, it, expect } from 'vitest'
-
-import { mount } from '@vue/test-utils'
-import App from '../App.vue'
-
-describe('App', () => {
- it('mounts renders properly', () => {
- const wrapper = mount(App)
- expect(wrapper.text()).toContain('You did it!')
- })
-})
diff --git a/周新忠学习笔记/4.1/vue_prj/src/api/service.ts b/周新忠学习笔记/4.1/vue_prj/src/api/service.ts
deleted file mode 100644
index ba81eb2..0000000
--- a/周新忠学习笔记/4.1/vue_prj/src/api/service.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import axios from "axios";
-import {ElMessage} from "element-plus";
-
-const service =axios.create({baseURL:"http://localhost:8000",timeout:5000})
-
-service.interceptors.request.use(
- (config) => {
- const token = localStorage.getItem('token')
- if (token) {
- // 统一加上 Header,后端 JWTMiddleware 就能拿到了
- config.headers['Authorization'] = token
- }
- return config
- }
-)
-
-// --- 响应拦截器 ---
-service.interceptors.response.use(
- (response) => {
- const res = response.data
- return res
- },(error)=>{
- const res = error.response
- // 如果后端返回 401(未授权),强制跳回登录
- if (res.status === 401) {
- localStorage.removeItem('token')
- window.location.href = '/loginPage'
- }
- }
-)
-
-export default service
diff --git a/周新忠学习笔记/4.1/vue_prj/src/components/Home.vue b/周新忠学习笔记/4.1/vue_prj/src/components/Home.vue
deleted file mode 100644
index c9ddbad..0000000
--- a/周新忠学习笔记/4.1/vue_prj/src/components/Home.vue
+++ /dev/null
@@ -1,156 +0,0 @@
-
-
-
-
-
-
diff --git a/周新忠学习笔记/4.1/vue_prj/src/components/LoginPage.vue b/周新忠学习笔记/4.1/vue_prj/src/components/LoginPage.vue
deleted file mode 100644
index 64a582a..0000000
--- a/周新忠学习笔记/4.1/vue_prj/src/components/LoginPage.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
- 系统登录
-
-
-
-
-
-
-
-
-
-
-
-
- 登 录
-
-
-
-
-
-
-
-
-
-
diff --git a/周新忠学习笔记/4.1/vue_prj/src/components/User.vue b/周新忠学习笔记/4.1/vue_prj/src/components/User.vue
deleted file mode 100644
index ca48231..0000000
--- a/周新忠学习笔记/4.1/vue_prj/src/components/User.vue
+++ /dev/null
@@ -1,193 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
diff --git a/周新忠学习笔记/4.1/vue_prj/src/main.ts b/周新忠学习笔记/4.1/vue_prj/src/main.ts
deleted file mode 100644
index 2fa0794..0000000
--- a/周新忠学习笔记/4.1/vue_prj/src/main.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { createApp } from 'vue'
-import { createPinia } from 'pinia'
-
-import App from './App.vue'
-import router from './router'
-import ElementUiPlus from 'element-plus'
-import 'element-plus/dist/index.css'
-import * as ElementPlusIconsVue from '@element-plus/icons-vue'
-
-
-
-const app = createApp(App)
-
-app.use(ElementUiPlus)
-app.use(createPinia())
-// 全局注册所有图标
-for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
- app.component(key, component)
-}
-app.use(router).mount('#app')
-
diff --git a/周新忠学习笔记/4.1/vue_prj/src/router/index.ts b/周新忠学习笔记/4.1/vue_prj/src/router/index.ts
deleted file mode 100644
index 30fafad..0000000
--- a/周新忠学习笔记/4.1/vue_prj/src/router/index.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { createRouter, createWebHistory } from 'vue-router'
-import LoginPage from "@/components/LoginPage.vue";
-import Home from "@/components/Home.vue";
-import User from "@/components/User.vue";
-
-const router = createRouter({
- history: createWebHistory(import.meta.env.BASE_URL),
- routes: [{
- path:"/loginPage",
- component:LoginPage
- },
- {
- path:"/",
- component:Home
- },
- {path:"/user",
- component:User}],
-})
-
-export default router
diff --git a/周新忠学习笔记/4.1/vue_prj/src/stores/counter.ts b/周新忠学习笔记/4.1/vue_prj/src/stores/counter.ts
deleted file mode 100644
index b6757ba..0000000
--- a/周新忠学习笔记/4.1/vue_prj/src/stores/counter.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ref, computed } from 'vue'
-import { defineStore } from 'pinia'
-
-export const useCounterStore = defineStore('counter', () => {
- const count = ref(0)
- const doubleCount = computed(() => count.value * 2)
- function increment() {
- count.value++
- }
-
- return { count, doubleCount, increment }
-})
diff --git a/周新忠学习笔记/4.1/vue_prj/tsconfig.app.json b/周新忠学习笔记/4.1/vue_prj/tsconfig.app.json
deleted file mode 100644
index c0f2d86..0000000
--- a/周新忠学习笔记/4.1/vue_prj/tsconfig.app.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@vue/tsconfig/tsconfig.dom.json",
- "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
- "exclude": ["src/**/__tests__/*"],
- "compilerOptions": {
- // Extra safety for array and object lookups, but may have false positives.
- "noUncheckedIndexedAccess": true,
-
- // Path mapping for cleaner imports.
- "paths": {
- "@/*": ["./src/*"]
- },
-
- // `vue-tsc --build` produces a .tsbuildinfo file for incremental type-checking.
- // Specified here to keep it out of the root directory.
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo"
- }
-}
diff --git a/周新忠学习笔记/4.1/vue_prj/tsconfig.json b/周新忠学习笔记/4.1/vue_prj/tsconfig.json
deleted file mode 100644
index 100cf6a..0000000
--- a/周新忠学习笔记/4.1/vue_prj/tsconfig.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "files": [],
- "references": [
- {
- "path": "./tsconfig.node.json"
- },
- {
- "path": "./tsconfig.app.json"
- },
- {
- "path": "./tsconfig.vitest.json"
- }
- ]
-}
diff --git a/周新忠学习笔记/4.1/vue_prj/tsconfig.node.json b/周新忠学习笔记/4.1/vue_prj/tsconfig.node.json
deleted file mode 100644
index c9b2bad..0000000
--- a/周新忠学习笔记/4.1/vue_prj/tsconfig.node.json
+++ /dev/null
@@ -1,27 +0,0 @@
-// TSConfig for modules that run in Node.js environment via either transpilation or type-stripping.
-{
- "extends": "@tsconfig/node24/tsconfig.json",
- "include": [
- "vite.config.*",
- "vitest.config.*",
- "cypress.config.*",
- "playwright.config.*",
- "eslint.config.*"
- ],
- "compilerOptions": {
- // Most tools use transpilation instead of Node.js's native type-stripping.
- // Bundler mode provides a smoother developer experience.
- "module": "preserve",
- "moduleResolution": "bundler",
-
- // Include Node.js types and avoid accidentally including other `@types/*` packages.
- "types": ["node"],
-
- // Disable emitting output during `vue-tsc --build`, which is used for type-checking only.
- "noEmit": true,
-
- // `vue-tsc --build` produces a .tsbuildinfo file for incremental type-checking.
- // Specified here to keep it out of the root directory.
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo"
- }
-}
diff --git a/周新忠学习笔记/4.1/vue_prj/tsconfig.vitest.json b/周新忠学习笔记/4.1/vue_prj/tsconfig.vitest.json
deleted file mode 100644
index ff1d8c9..0000000
--- a/周新忠学习笔记/4.1/vue_prj/tsconfig.vitest.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "extends": "./tsconfig.app.json",
-
- // Override to include only test files and clear exclusions.
- // Application code imported in tests is automatically included via module resolution.
- "include": ["src/**/__tests__/*", "env.d.ts"],
- "exclude": [],
-
- "compilerOptions": {
- // Vitest runs in a different environment than the application code.
- // Adjust lib and types accordingly.
- "lib": [],
- "types": ["node", "jsdom"],
-
- // `vue-tsc --build` produces a .tsbuildinfo file for incremental type-checking.
- // Specified here to keep it out of the root directory.
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.vitest.tsbuildinfo"
- }
-}
diff --git a/周新忠学习笔记/4.1/vue_prj/vite.config.ts b/周新忠学习笔记/4.1/vue_prj/vite.config.ts
deleted file mode 100644
index 6e846b2..0000000
--- a/周新忠学习笔记/4.1/vue_prj/vite.config.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { fileURLToPath, URL } from 'node:url'
-
-import { defineConfig } from 'vite'
-import vue from '@vitejs/plugin-vue'
-import vueJsx from '@vitejs/plugin-vue-jsx'
-import vueDevTools from 'vite-plugin-vue-devtools'
-
-// https://vite.dev/config/
-export default defineConfig({
- plugins: [
- vue(),
- vueJsx(),
- vueDevTools(),
- ],server:{
- port:5173,
- proxy:{
- '/api':{
- target:"http://localhost:8000",
- changeOrigin:true,
- rewrite:(path)=>path.replace(/^\/api/,'')
- }
- }
- },
- resolve: {
- alias: {
- '@': fileURLToPath(new URL('./src', import.meta.url))
- },
- },
-})
diff --git a/周新忠学习笔记/4.1/vue_prj/vitest.config.ts b/周新忠学习笔记/4.1/vue_prj/vitest.config.ts
deleted file mode 100644
index c328717..0000000
--- a/周新忠学习笔记/4.1/vue_prj/vitest.config.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { fileURLToPath } from 'node:url'
-import { mergeConfig, defineConfig, configDefaults } from 'vitest/config'
-import viteConfig from './vite.config'
-
-export default mergeConfig(
- viteConfig,
- defineConfig({
- test: {
- environment: 'jsdom',
- exclude: [...configDefaults.exclude, 'e2e/**'],
- root: fileURLToPath(new URL('./', import.meta.url)),
- },
- }),
-)
diff --git a/周新忠学习笔记/4.1/周新忠4月1日学习笔记.md b/周新忠学习笔记/4.1/周新忠4月1日学习笔记.md
deleted file mode 100644
index 812955a..0000000
--- a/周新忠学习笔记/4.1/周新忠4月1日学习笔记.md
+++ /dev/null
@@ -1,63 +0,0 @@
-## 技术方面
-
-写了一个vue3+Goframe的demo
-
-目前是有用户一个表,有对用户增删改查的功能,
-
-有按名称模糊搜索用户的功能,在主页上显示当前用户用户名的功能
-
-用token+响应请求拦截器进行登录检验,逻辑如下:
-
-绑定了一个token中间件,当前端向后端发起请求时,若请求接口非/login会尝试从请求头提取"Authorization"参数检验token合法性,若token不合法(加密方式错误、解析失败、解析出的用户信息不存在),直接返回错误,前端响应拦截器接收到此错误时会跳转到登录页。如果token合法,将token对应的用户信息直接存到上下文里以便后续调用不用重复请求数据库
-
-在增删改操作时开启了事务,并进行了数据合法性校验(如密码不得低于6位,用户名不可重复不可为空等)
-
-对密码进行了Bcrpt加密,删除用户使用软删除
-
-后续会增加对Course表的操作和更多功能
-
-## 股票相关
-
-#### 1. 基本面分析 (Fundamental Analysis)
-
-**核心逻辑**:价值决定价格。
-
-**分析维度**:
-
-**宏观**:全球及国内经济形势、政策走向。
-
-**行业**:行业前景、景气度。
-
-**公司**:财务状况、管理层素质、投资方向、每股收益(EPS)。
-
-**目标**:评估公司内在价值,做中长期投资决策。
-
-#### 2. 技术分析 (Technical Analysis)
-
-**核心逻辑**:供求决定价格。
-
- **三大公理**:
-
-1. **市场行为包容消化一切**(核心要素:价格、成交量、时间、参与人)。
-
-2. **价格以趋势方式运行**:
-
- **方向**:上升、下降、横盘。
-
- **周期**:短期(6-10天)、中期(数周至数月)、长期(一年以上)。
-
-3. **历史会不断重演**:虽然不是简单重复,但规律相似。
-
-#### 交易优先原则
-
-**价格优先**:买入报单价高者优先,卖出报单价低者优先。
-
-**时间优先**:同价位时,先申报者优先。
-
-#### A股交易规则 (重点)
-
-**交易时间**(周一至周五,法定节假日休息):
-
-**上午**:9:15-9:25(集合竞价,其中9:20后不可撤单);9:30-11:30(连续竞价)。
-
-**下午**:13:00-14:57(连续竞价);14:57-15:00(收盘集合竞价)。
\ No newline at end of file
diff --git a/昝宇萍学习笔记/昝宇萍_Git学习文档.docx b/昝宇萍学习笔记/昝宇萍_Git学习文档.docx
deleted file mode 100644
index c38483a..0000000
Binary files a/昝宇萍学习笔记/昝宇萍_Git学习文档.docx and /dev/null differ
diff --git a/昝宇萍学习笔记/昝宇萍_Link软件相关功能学习文档.docx b/昝宇萍学习笔记/昝宇萍_Link软件相关功能学习文档.docx
deleted file mode 100644
index d68e01f..0000000
Binary files a/昝宇萍学习笔记/昝宇萍_Link软件相关功能学习文档.docx and /dev/null differ
diff --git a/昝宇萍学习笔记/昝宇萍_股票学习文档.docx b/昝宇萍学习笔记/昝宇萍_股票学习文档.docx
deleted file mode 100644
index 8ca062c..0000000
Binary files a/昝宇萍学习笔记/昝宇萍_股票学习文档.docx and /dev/null differ
diff --git a/李柏霖学习笔记/2026.3.28.md b/李柏霖学习笔记/2026.3.28.md
deleted file mode 100644
index 05d387e..0000000
--- a/李柏霖学习笔记/2026.3.28.md
+++ /dev/null
@@ -1,284 +0,0 @@
-# 股票基础知识和交易规则
-
-------
-
-1. ```
- 一、股票与证券市场基础
- 证券定义 :多种经济权益凭证的统称,通常指有价证券。
- 股票本质 :一种有价证券,是上市公司为筹集资金向出资人发行的股份凭证。
- 市场三大功能 :
- 筹资功能 :为资金需求者筹资,为供给者提供投资对象。
- 定价功能 :通过供求竞争为资本决定价格。
- 资本配置功能 :引导资本流向报酬率高、潜力大的企业或行业。
- 股票五大特性 :风险性、收益性、流通性、波动性、永久性。
-
- 二、市场分类与交易规则
- ###1.股票分类
- 按上市地点/投资者划分 :
- A股 :人民币计价,境内上市,面对中国公民。
- B股 :外币计价(美元/港元),境内上市,面对境外投资者。
- H股 :内地注册,香港上市。
- N/S/T股 :分别指在美国、新加坡、日本上市的中国企业股票。
- 多层次资本市场 :包括主板、中小板、创业板(风险较大,需单独开通)及“新三板”(全国中小企业股份转让系统)。
- ###2.交易原则与规制
- 竞价原则 : 价格优先 (买入高价优先、卖出低价优先)与 时间优先 (同价位先申报优先)。
- 交易单位 :股票以“股”为单位, 100股=1手 ;基金以“份”为单位。
- 涨跌幅限制 :通常每只证券交易价格相对前一交易日收盘价涨跌幅度不得超过 10% 。
- 交收制度 :A股实行 T+1交收 ,即次日完成款项与证券收付。
- 三、股票分析流派与核心理论
- ###1.分析流派
- 基本面分析 :核心观点是“价值决定价格”,通过宏观政策、行业前景及公司财务状况进行评估。
- 技术分析 :核心观点是“供求关系决定价格”,基于三大公理:
- 1.市场行为包容和消化一切。
- 2.股价以趋势方式运行(上升、下降、横盘)。
- 3.历史会不断重演,但非简单重复。
-
- ###2.道氏理论(技术分析鼻祖)
- 平均价格包容消化一切 :股价指数反映了市场整体运行趋势。
- 三种价格运动 :
- 基本运动 :主要趋势,持续一年以上。
- 次级运动 :基本运动中的重要回撤,持续三周至数月。
- 日常运动 :波动无序,投资风险大,在策略上应坚决放弃。
- 趋势阶段 :分为积累阶段、稳定上涨阶段及反转过渡阶段。
- ##四、核心专业术语
- K线图 :由实体(开盘/收盘价)和影线(最高/最低价)组成,红色代表上涨(阳线),绿色代表下跌(阴线)。
- 多头与空头 :
- 多头(牛市) :看好后市,先买后卖获利。
- 空头(熊市) :看坏后市,先卖后买(融券等方式)获利。
- 仓位操作 :包括 建仓 (买入)、 平仓 (卖出)、 满仓 、 补仓 (再次买入)及 清仓 。
- 财务指标 :
- 市盈率(P/E) :普通股每股市价/每股获利额。
- 市净率(P/B) :每股市价/每股净资产。
- 特别标示 :
- N :新股上市首日标志。
- ST/\*ST :财务或其他状况异常,提示市场风险。
- ```
-
-
-
-
-
-
-
-# java复习:
-
-
-
-数组在计算机中的执行原理:
-
-(1)
-
-
-
-(2)
-
-
-
-同类型的变量可以相互赋值的;
-
-理解了浅拷贝,深拷贝的具体过程和区别
-
-复习方法相关内容:
-
-
-
-
-
-
-
-# redis复习:
-
-五大数据类型:string、list set hash zset
-
-## string:
-
-### 基础指令
-
-
-
-### 浏览量实现指令
-
-
-
-```
-127.0.0.1:6379> set views 0# 初始浏览量为0 #set article:10000:views 查看id为10000的文章的浏览量
-OK
-127.0.0.1:6379> get views
-"o"
-127.0.0.1:6379> incr views # 自增1 浏览量变为1
-(integer) 1
-127.0.0.1:6379> incr views
-(integer) 2
-127.0.0.1:6379> get views
-"2"
-127.0.0.1:6379> decr views # 自减1
-浏览量-1
-(integer) 1
-127.0.0.1:6379> decr views
-(integer) 0
-127.0.0.1:6379> decr views
-(integer) -1
-127.0.0.1:6379> get views
-“-1"
-127.0.0.1:6379> INCRBY Views10 #可以设置步长,指定增量!
-(integer) 9
-127.0.0.1:6379> INCRBY VIEWS 10
-(integer) 19
-127.0.0.1:6379> DECRBY Views 5
-(integer) 14
-```
-
-
-
-### #字符串范围 range
-
-```
-127.0.0.1:6379>setkey1"hello,kuangshen"# 设置 key1 的值
-OK
-127.0.0.1:6379> get keyl
-"hello,kuangshen"
-127.0.0.1:6379> GETRANGE key1 03
-#截取字符串[0,3]
-"hel1"
-127.0.0.1:6379> GETRANGE key1 0 -1
-#获取全部的字符串和getkey是一样的
-"hello,kuangshen"
-```
-
-
-
-### #替换!
-
-```
-127.0.0.1:6379> set key2 abcdefg
-OK
-127.0.0.1:6379> get key2
-"abcdefg""
-127.0.0.1:6379> SETRANGE key2 1 XX
-(integer)7
-127.0.0.1:6379> get key2
-"axxdefg"
-```
-
-
-
-### setex (set with expire) #设置过期时间
-### setnx (set if not exist) #不存在在设置 (在分布式锁中会常常使用!)
-```
-127.0.0.1:6379>setex key3 30 "hello" #设置key3的值为hello,30秒后过期
-OK
-127.0.0.1:6379> ttl key3
-(integer) 26
-127.0.0.1:6379> get key3
-"hello"
-127.0.0.1:6379>setnx mykey"redis" # 如果mykey 不存在,创建mykey
-(integer)1
-127.0.0.1:6379> keys *
-
-1) "key2"
-2) "mykey""
-3) "keyl"
-
-127.0.0.1:6379> ttl key3
-Cinteger) -2
-127.0.0.1:6379>setnxmykey"MongoDB"#如果mykey存在,创建失败!
-(integer) 0
-127.0.0.1:6379> get mykey
-"redis"
-```
-
-
-
-### 对象
-```
-set user:1 {name:zhangsan,age:3} #设置一个user:1对象 值为json字符来保存一个对象!
-#这里的key是一个巧妙的设计:user:{id}:{filed},如此设计在Redis中是完全ok了!
-127.0.0.1:6379> mset user:1:name zhangsan user:1:age 2
-OK
-127.0.0.1:6379> mget user:1:name user:1:age
-
-1) "zhangsan"
-2) "2"
-
-getset #先get然后在set
-```
-
-## List
-
-所有的list命令用l开头
-
-1. ```
- lpush
-
- 127.0.0.1:6379> lpush list one
- (integer) 1
- 127.0.0.1:6379> lpush list two
- (integer) 2
- 127.0.0.1:6379> lpush list three
- (integer) 3
- 127.0.0.1:6379> lrange list 0 -1
-
- 1) "three"
- 2) "two"
- 3) "one"
- 127.0.0.1:6379> lrange list 0 1
- 4) "three"
- 5) "two"
- 倒着输出
-
- ```
-
-lindex 通过下表获得值
-
- ```
-127.0.0.1:6379> lindex list 1
-"one"
-127.0.0.1:6379> lindex list 0
-"two"
-
-```
-
-llen返回列表长度
-
-```
-127.0.0.1:6379> lpush list one
-(integer) 1
-127.0.0.1:6379> lpush list two
-(integer) 2
-127.0.0.1:6379> lpush list three
-(integer) 3
-127.0.0.1:6379> llen list
-(integer) 3
-```
-
-移除指定值
-取关 uid
-lrem
-
-linset 在指定值的前面或者后面插入值
-
-```
-127.0.0.1:6379> rpush mylist hello
-(integer) 1
-127.0.0.1:6379> rpush mylist world
-(integer) 2
-127.0.0.1:6379> linsert mylist before world other
-(integer) 3
-127.0.0.1:6379> lrange mylist 0 -1
-1) "hello"
-2) "other"
-
-"world"
-127.0.0.1:6379>
-
-```
-
-
-
-### 总结:
-
-1.实际上是一个双向链表
-2.key不存在,创建新链表
-3.移除所有元素,空链表也代表不存在
-4.在两边插入或者改动值,效率高,中间元素,相对效率低
-消息队列
\ No newline at end of file
diff --git a/李柏霖学习笔记/3.26李柏霖.docx b/李柏霖学习笔记/3.26李柏霖.docx
deleted file mode 100644
index 63197a6..0000000
Binary files a/李柏霖学习笔记/3.26李柏霖.docx and /dev/null differ
diff --git a/李柏霖学习笔记/3.30.md b/李柏霖学习笔记/3.30.md
deleted file mode 100644
index 25213e5..0000000
--- a/李柏霖学习笔记/3.30.md
+++ /dev/null
@@ -1,206 +0,0 @@
-# go语言
-
-## 执行流程
-
-
-
-Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错
-
-## 转义字符
-
-\t:制表符
-
-\n:换行
-
-**\\"**:一个"
-
-\r:回车
-
-fmt包提供格式化,输出,输入函数。
-
-## 基本语法
-
-使用gofmt进行格式化
-
-**(1)**
-
-所有的Go文件以package 开头,对于独立运行的执行文件必须是package main;
-
-fmt.Printf("Hello, world; or 世界") 这是说需要将fmt包加入main。不是main的其他包都被称为库,其他许多编程语言有 着类似的概念。
-
- package main 必须首先出现,紧跟着是import。
-
-在 Go 中,package 总是首先出现, 然后是import,然后是其他所有内容。当Go程序在执行的时候,首先调用的函数 是main.main(),这是从C中继承而来。这里定义了这个函数;
-
-Go 同其他语言不同的地方在于变量的类型在变量名的后面。不是:int a,而是a int。 当定义了一个变量,它默认赋值为其类型的null值。这意味着,在var a int后,a的 值为0。而var s string,意味着s被赋值为零长度字符串,也就是""。
-
-**(2)**
-
-var a int
-
-var b bool
-
-a = 15
-
-b = false
-
-------
-
-用:= 声明
-
-a := 15
-
- b := false
-
-在左边使用了关键字var声明变量,然后赋值给它。右边的代码使用了:= 使得在一 步内完成了声明和赋值(这一形式只可用在函数内)。在这种情况下,变量的类型是由 值推演出来的。值15表示是int类型,值false告诉Go它的类型应当是bool。多 个var声明可以成组;const和import同样允许这么做。留意圆括号的使用: var ( x int b
-
-### Go 语言的字符串连接可以通过 **+** 实现:
-
-```go
-package main
-import "fmt"
-func main() {
- fmt.Println("Google" + "Runoob")
-}
-```
-
-```
-GoogleRunoob
-```
-
-Go 语言中使用 **fmt.Sprintf** 或 **fmt.Printf** 格式化字符串并赋值给新串:
-
-- **Sprintf** 根据格式化参数生成格式化的字符串并返回该字符串。
-- **Printf** 根据格式化参数生成格式化的字符串并写入标准输出。
-
-| **概念** | **Java 对应** | **Go 派生类型** |
-| -------------- | ---------------- | ------------------------ |
-| **对象属性** | Class (Fields) | **Struct** |
-| **动态列表** | ArrayList | **Slice** |
-| **键值对** | HashMap | **Map** |
-| **抽象定义** | Interface | **Interface** (隐式实现) |
-| **内存操作** | 引用 (Reference) | **Pointer** (显式指针) |
-| **多线程通信** | BlockingQueue | **Channel** |
-
-声明变量的一般形式是使用 var 关键字:
-
-```go
-var identifier type
-```
-
-可以一次声明多个变量:
-
-```go
-var identifier1, identifier2 type
-```
-
-### 变量声明
-
-**第一种,指定变量类型,如果没有初始化,则变量默认为零值**。
-
-```
-var v_name v_type
-v_name = value
-```
-
-bool 零值为 false
-
-没有初始化就为零值
-
-**第二种,根据值自行判定变量类型。**
-
-```
-var v_name = value
-```
-
-**第三种,如果变量已经使用 var 声明过了,再使用 \**:=\** 声明变量,就产生编译错误,格式:**
-
-```
-v_name := value
-```
-
-例如:
-
-```
-var intVal int
-intVal :=1 // 这时候会产生编译错误,因为 intVal 已经声明,不需要重新声明
-```
-
-直接使用下面的语句即可:
-
-```
-intVal := 1 // 此时不会产生编译错误,因为有声明新的变量,因为 := 是一个声明语句
-```
-
-**intVal := 1** 相等于:
-
-```
-var intVal int
-intVal =1
-```
-
-```
-//类型相同多个变量, 非全局变量
-var vname1, vname2, vname3 type
-vname1, vname2, vname3 = v1, v2, v3
-```
-
-**所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值:**
-
-可以通过 &i 来获取变量 i 的内存地址
-
-一个引用类型的变量 r1 存储的是 r1 的值所在的内存地址(数字),或内存地址中第一个字所在的位置。
-
-
-
-这个内存地址称之为指针,这个指针实际上也被存在另外的某一个值中。
-
-变量的初始化时省略变量的类型而由系统自动推断,声明语句写上 var 关键字其实是显得有些多余了,因此我们可以将它们简写为 a := 50 或 b := false。
-
-### go的常量
-
-- 显式类型定义: `const b string = "abc"`
-- 隐式类型定义: `const b = "abc"`
-
-#### iota,特殊常量,可以认为是一个可以被编译器修改的常量。
-
-iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
-
-iota 可以被用作枚举值
-
-**`iota` 只能读,不能写**:永远不要写 `iota = x` 或 `iota += 1`,这是 Go 语法严格禁止的。
-
-**`const` 块内类型一致**:同一组 `const` 里,要么全是数字,要么全是字符串,不能混用。
-
-Go 语言支持的位运算符如下表所示。假定 A 为60,B 为13:
-
-| 运算符 | 描述 | 实例 |
-| :----- | :----------------------------------------------------------- | :------------------------------------- |
-| & | 按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。 | (A & B) 结果为 12, 二进制为 0000 1100 |
-| \| | 按位或运算符"\|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或 | (A \| B) 结果为 61, 二进制为 0011 1101 |
-| ^ | 按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 | (A ^ B) 结果为 49, 二进制为 0011 0001 |
-| << | 左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | A << 2 结果为 240 ,二进制为 1111 0000 |
-| >> | 右移运算符">>"是双目运算符。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。 | A >> 2 结果为 15 ,二进制为 0000 1111 |
-
-# 夺宝奇兵之时空预测:
-
-AI时空共振:
-
-股价不可能一直涨或者跌,时间决定了一切,空间决定了你的收益到底有多大
-
-AI时空共振功能
-• 追踪股价运行背后的超级临界点,预判转折位置。
-• 适用于所有股票,结合时间和空间分析。
-• 以英伟达为例展示功能,识别连续上涨后的临界点。
-
-未来预测技术
-• 包含股价预测和时空预测两大内容。
-• 提前标注变盘点,如距离下个变盘点5或13个交易日。
-• 通过案例验证预测准确性,如高低点与实际走势吻合。
-• 结合高阶数据科学与AI技术,逐步完善预测模型。
-
-高低点规律总结
-• 高点提前易暴跌,低点提前易暴涨。
-• 高点延后易续涨,低点延后易续跌。
-• 牛市中低点易提前,高点易延后。
-• 熊市中高点易提前,低点易延后。
\ No newline at end of file
diff --git a/李柏霖学习笔记/3.31.md b/李柏霖学习笔记/3.31.md
deleted file mode 100644
index b61a998..0000000
--- a/李柏霖学习笔记/3.31.md
+++ /dev/null
@@ -1,210 +0,0 @@
-
-
-# 布尔
-
-bool : true false
-
-默认为false
-
-主要在if判断中用、
-
-# 数字型
-
-| 序号 | 类型和描述 |
-| :--- | :----------------------------------------------------------- |
-| 1 | **uint8** 无符号 8 位整型 (0 到 255) |
-| 2 | **uint16** 无符号 16 位整型 (0 到 65535) |
-| 3 | **uint32** 无符号 32 位整型 (0 到 4294967295) |
-| 4 | **uint64** 无符号 64 位整型 (0 到 18446744073709551615) |
-| 5 | **int8** 有符号 8 位整型 (-128 到 127) |
-| 6 | **int16** 有符号 16 位整型 (-32768 到 32767) |
-| 7 | **int32** 有符号 32 位整型 (-2147483648 到 2147483647) |
-| 8 | **int64**有符号 64 位整型 (-9223372036854775808 到 9223372036854775807) |
-
-| 1 | byte类似 uint8 |
-| ---- | --------------------------------------- |
-| 2 | **rune类似 int32** |
-| 3 | **uint 32或64位** |
-| 4 | **int与 uint 一样大小** |
-| 5 | **uintptr无符号整型,用于存放一个指针** |
-
-整形不能转化为bool类型的。
-
-按位与&、按位或|、按位异或^它们的运算规则是:
-按位与& 两位全为1,结果为1,否则为0
-按位或I 两位有一个为1,结果为1,否则为0
-按位异或^ 两位一个为0,一个为1,结果为1,否则为0
-
-左移运算符:<<
-
-右移运算符:>>
-
-&、|、^ 、<<、>>都是补码计算
-
-### 单分支
-
-var age int
-
-fmt.Scanln(&age)
-
-if age > 18 {
-
- fmt.println()
-
-}
-
-### 双分支
-
-if。。。else
-
-
-
-*Go 没有三目运算符,所以不支持* **?:** *形式的条件判断。*
-
-| [break 语句](https://www.runoob.com/go/go-break-statement.html) | 经常用于中断当前 for 循环或跳出 switch 语句 |
-| ------------------------------------------------------------ | ------------------------------------------------ |
-| [continue 语句](https://www.runoob.com/go/go-continue-statement.html) | 跳过当前循环的剩余语句,然后继续进行下一轮循环。 |
-| [goto 语句](https://www.runoob.com/go/go-goto-statement.html) | 将控制转移到被标记的语句。 |
-
-#### goto:它通常只出现在**底层框架、状态机**或者**需要极其高效地退出深层嵌套**的情况下。
-
-例子:在多维数组中找一个数字,找到了就立刻停止所有循环
-
-```go
-package main
-
-import "fmt"
-
-func main() {
- target := 5
- matrix := [][]int{
- {1, 2, 3},
- {4, 5, 6},
- {7, 8, 9},
- }
-
- for i := 0; i < len(matrix); i++ {
- for j := 0; j < len(matrix[i]); j++ {
- if matrix[i][j] == target {
- // 发现了目标,直接“瞬移”到循环外面
- goto Found
- }
- }
- }
-
- fmt.Println("没找到...")
- return // 如果没找到,执行完这里就退出了
-
-Found:
- fmt.Printf("找到了!目标 %d 在矩阵中。\n", target)
-}
-```
-
-### 数组
-
-初始化数组
-
-```go
-var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
-或
-balance := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
-```
-
-### 指针
-
-格式:
-
-```
-var var_name *var-type
-
-```
-
-例子:
-
-```go
-package main
-
-import "fmt"
-
-func main() {
- var a int= 20 /* 声明实际变量 */
- var ip *int /* 声明指针变量 */
-
- ip = &a /* 指针变量的存储地址 */
-
- fmt.Printf("a 变量的地址是: %x\n", &a )
-
- /* 指针变量的存储地址 */
- fmt.Printf("ip 变量储存的指针地址: %x\n", ip )
-
- /* 使用指针访问值 */
- fmt.Printf("*ip 变量的值: %d\n", *ip )
-}
-```
-
-### Go 语言指针作为函数参数
-
-```go
-package main
-
-import "fmt"
-
-func main() {
- /* 定义局部变量 */
- var a int = 100
- var b int= 200
-
- fmt.Printf("交换前 a 的值 : %d\n", a )
- fmt.Printf("交换前 b 的值 : %d\n", b )
-
- /* 调用函数用于交换值
- * &a 指向 a 变量的地址
- * &b 指向 b 变量的地址
- */
- swap(&a, &b);
-
- fmt.Printf("交换后 a 的值 : %d\n", a )
- fmt.Printf("交换后 b 的值 : %d\n", b )
-}
-
-func swap(x *int, y *int) {
- var temp int
- temp = *x /* 保存 x 地址的值 */
- *x = *y /* 将 y 赋值给 x */
- *y = temp /* 将 temp 赋值给 y */
-}
-```
-
-### 结构体
-
-结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体中有一个或多个成员。type 语句设定了结构体的名称。结构体的格式如下:
-
-```go
-type struct_variable_type struct {
- member definition
- member definition
- ...
- member definition
-}
-```
-
-# homily link学习:ai雷达
-
-1. AI雷达的核心定位与功能
-• AI雷达的核心定位是“跨越空间透视未来”,通过降维打击实现空间跨越。
-• 天地双轨系统是天轨(蓝色线)与地轨(下方线)构成的股价空间测算模型,地轨支撑位决定反弹机会。
-• 股价触及地轨可能触发反弹,但持续上涨需满足天轨突破且地轨同步上移的条件。
-• 空间测算强调“无空间无利润”,股价突破天轨时若地轨已拐头向上,则可能加速上涨。
-2. 天地双轨系统的实战应用
-• 反弹有效性验证:股价首次反弹至天轨但地轨未动时,通常难以持续上涨。
-• 三级机会判定:一级机会(反弹未破天轨)、二级机会(突破天轨且地轨启动)、三级机会(天眼雷达信号+地轨强力支撑)。
-• 前兆信号识别:股价下跌至地轨前,下方异动(如地轨提前上拐)提示潜在反转机会。
-• 空间极值测算:天地双轨间距对应利润空间,股价触及预警线(如天线凹口)提示风险。
-3. 透视未来的三大操作流程
-• 探测阶段:通过前兆信号(如地轨异动)发现潜在机会,区分一级至三级机会强度。
-• 扫射阶段:雷达方向指示力度(向右为弱、向左为强),三级天眼雷达信号预示暴涨。
-• 预警阶段:天线系统在股价高位形成凹口预警,跌破天轨确认趋势终结。
-4. AI雷达的差异化价值
-• 空间视角独特性:区别于传统技术分析,专注空间维度测算与高维趋势预判。
-• 全周期覆盖:从地轨支撑探测到天轨突破扫射,最终通过天线预警完成闭环。
-• 2025年应用前景:针对市场不确定性,提供跨越空间层级的预判解决方案。
\ No newline at end of file
diff --git a/李柏霖学习笔记/4.1.md b/李柏霖学习笔记/4.1.md
deleted file mode 100644
index cb341da..0000000
--- a/李柏霖学习笔记/4.1.md
+++ /dev/null
@@ -1,137 +0,0 @@
-# goframe
-
-```
-s.BindHandler("/say", hello.SayHello)
-```
-
-默认method是all
-
-```
-s.BindHandler("GET:/say", hello.SayHello)
-```
-
-将请求方式变味了get
-
-
-
-bindObject:批量绑定方法
-
-例:
-
-```
-func (s *Server) BindObject(pattern string, object interface{}, method ...string)
-```
-
-method ...string指定绑定的方法,不指定全都有;
-
-
-
-BindObjectMethod:只能绑定一个方法;需要特殊路径,或一个 Controller 只想暴露少量接口时。
-
-```
-func (s *Server) BindObjectMethod(pattern string, object interface{}, method string)
-```
-
-BindObjectRest:只能绑定指定的方法名如:GET POST DELECT 只能匹配动词的方法;纯粹的资源操作(CRUD),符合标准 REST 规范。最常用的get,post
-
-## 规范路由
-
-GoFrame中提供了规范化的路由注册方式,注册方法如下
-
-```
-func Handler(ctx context.Context, req *Request) (res *Response, err error)
-```
-
-其中`Request`与`Response`为自定义的结构体。
-
-通过如下方式指定请求方法与路径
-
-```go
-type HelloReq struct {
- g.Meta `path:"/hello" method:"get"`
-}
-```
-
-api内一般定义请求和响应的结构体的
-
-```go
-
-func (c *Hello) Params(ctx context.Context, req *hello.ParamsReq) (res *hello.ParamsRes, error error) {
- r := g.RequestFromCtx(ctx)
- name := r.GetQuery("name")
- r.Response.WriteJson(name)
- return
-}
-```
-
-name位置是一个var的泛型
-
-getquery第二个参数是个默认值;
-
-| **方法名** | **返回类型** | **核心优势** | **Java 类比** |
-| --------------------- | ------------------------ | -------------------------- | ------------------- |
-| **GetQuery** | `*gvar.Var` | 链式转换类型极方便 | `getParameter()` |
-| **GetQueryMap** | `map[string]interface{}` | 快速获取全部原始数据 | `getParameterMap()` |
-| **GetQueryStruct** | `error` | **全自动绑定,代码最优雅** | **DTO 自动注入** |
-| **GetQueryMapStrStr** | `map[string]string` | 类型统一,无需转型 | - |
-
-用GetQueryMap来
-
-```go
-func (c *Hello) Params(ctx context.Context, req *hello.ParamsReq) (res *hello.ParamsRes, error error) {
- r := g.RequestFromCtx(ctx)
- data := r.GetQueryMap(map[string]interface{}{"name": "lisi", "age": "20"})
- r.Response.Writeln(data)
- return
-}
-```
-
-## goframe的动态路由
-
-主要写在g.Meta的path标签里
-
-| **占位符格式** | **名称** | **匹配规则** | **示例** |
-| --------------- | -------------- | --------------------------------- | ------------------------------------ |
-| **`:name`** | **命名占位符** | 匹配两个 `/` 之间的内容(最常用) | `/user/:id` 匹配 `/user/123` |
-| **`\*any`** | **模糊占位符** | 匹配从当前位置开始的所有后续内容 | `/file/*path` 匹配 `/file/img/a.png` |
-| **`{pattern}`** | **正则占位符** | 使用正则表达式进行精确匹配 | `/user/{[0-9]+}` 只匹配数字 ID |
-
-api
-
-```
-package api
-
-import (
- "github.com/gogf/gf/v2/frame/g"
-)
-
-type Res struct {
- g.Meta `mime:"text/html"`
-}
-
-type ParamReq struct {
- g.Meta `path:"/params/:name" method:"all"`
-}
-```
-
-
-
-# homily link的ai预测大模型
-
-1. AI预测大模型功能与特点
-• 模型包含六个关键价格:买回价、卖出价、两个预测低点与两个预测高点。
-• 采用深度学习算法分析历史数据,实时调整策略以捕捉市场趋势变化。
-• 处理流程分为数据预处理、模型构建和数据分析决策三个阶段。
-• 已从8月2日开始实际体验,用户可测试其预测功能。
-2. 实际预测案例验证
-• 英伟达案例显示7月31日预测的8月1日高低点与实际价格误差约0.2%-1%。
-• 苹果案例中8月6日预测的次日高点214.81与实际213.64相差1.17美元。
-• 通过计算预测价格中值并与当日收盘价对比,可预判次日涨跌方向。
-3. 核心使用场景与方法
-• 涨跌预判:用前日预测高低点均值对比当日收盘价,高于中值则预判次日上涨。
-• 日内交易:依据模型提供的买回价、卖出价在日内进行低吸高抛操作。
-• 上涨趋势中参考买回价寻找低吸机会,下跌趋势中按卖出价或预测高点挂单。
-4. 模型应用原则与局限性
-• 预测结果需结合趋势判断使用,如先确认涨跌概率再执行交易策略。
-• 明确告知所有预测存在误差,核心价值在于提供量化参考依据。
-• 强调通过AI技术辅助交易决策,但需保持对市场动态的独立判断。
\ No newline at end of file
diff --git a/李柏霖学习笔记/images/021099bd151272c630107ed552ab7af2.png b/李柏霖学习笔记/images/021099bd151272c630107ed552ab7af2.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/images/QQ20260330-143952.png b/李柏霖学习笔记/images/QQ20260330-143952.png
deleted file mode 100644
index fa2a0fb..0000000
Binary files a/李柏霖学习笔记/images/QQ20260330-143952.png and /dev/null differ
diff --git a/李柏霖学习笔记/images/image-20260328093542705.png b/李柏霖学习笔记/images/image-20260328093542705.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/images/image-20260328093613551.png b/李柏霖学习笔记/images/image-20260328093613551.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/images/image-20260328112106933.png b/李柏霖学习笔记/images/image-20260328112106933.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/images/image-20260328135132711.png b/李柏霖学习笔记/images/image-20260328135132711.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/images/image-20260328135416809.png b/李柏霖学习笔记/images/image-20260328135416809.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/imges/021099bd151272c630107ed552ab7af2.png b/李柏霖学习笔记/imges/021099bd151272c630107ed552ab7af2.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/imges/image-20260328093542705.png b/李柏霖学习笔记/imges/image-20260328093542705.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/imges/image-20260328093613551.png b/李柏霖学习笔记/imges/image-20260328093613551.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/imges/image-20260328112106933.png b/李柏霖学习笔记/imges/image-20260328112106933.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/imges/image-20260328135132711.png b/李柏霖学习笔记/imges/image-20260328135132711.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/imges/image-20260328135416809.png b/李柏霖学习笔记/imges/image-20260328135416809.png
deleted file mode 100644
index e69de29..0000000
diff --git a/李柏霖学习笔记/第二天.docx b/李柏霖学习笔记/第二天.docx
deleted file mode 100644
index 177df33..0000000
Binary files a/李柏霖学习笔记/第二天.docx and /dev/null differ
diff --git a/田庆昂学习笔记/田庆昂4.2学习笔记.docx b/田庆昂学习笔记/田庆昂4.2学习笔记.docx
deleted file mode 100644
index 076148f..0000000
Binary files a/田庆昂学习笔记/田庆昂4.2学习笔记.docx and /dev/null differ
diff --git a/田庆昂学习笔记/田庆昂4.3学习笔记.docx b/田庆昂学习笔记/田庆昂4.3学习笔记.docx
deleted file mode 100644
index 0969aa8..0000000
Binary files a/田庆昂学习笔记/田庆昂4.3学习笔记.docx and /dev/null differ
diff --git a/黄永兴学习笔记/3.26黄永兴.docx b/黄永兴学习笔记/3.26黄永兴.docx
deleted file mode 100644
index b44782d..0000000
Binary files a/黄永兴学习笔记/3.26黄永兴.docx and /dev/null differ
diff --git a/黄永兴学习笔记/3.27黄永兴-股票学习笔记.docx b/黄永兴学习笔记/3.27黄永兴-股票学习笔记.docx
deleted file mode 100644
index b7f07f0..0000000
Binary files a/黄永兴学习笔记/3.27黄永兴-股票学习笔记.docx and /dev/null differ
diff --git a/黄永兴学习笔记/3.27黄永兴.docx b/黄永兴学习笔记/3.27黄永兴.docx
deleted file mode 100644
index 71549dd..0000000
Binary files a/黄永兴学习笔记/3.27黄永兴.docx and /dev/null differ
diff --git a/黄永兴学习笔记/3.28黄永兴-股票学习笔记.docx b/黄永兴学习笔记/3.28黄永兴-股票学习笔记.docx
deleted file mode 100644
index f029fd4..0000000
Binary files a/黄永兴学习笔记/3.28黄永兴-股票学习笔记.docx and /dev/null differ
diff --git a/黄永兴学习笔记/3.28黄永兴.docx b/黄永兴学习笔记/3.28黄永兴.docx
deleted file mode 100644
index 00e1fa9..0000000
Binary files a/黄永兴学习笔记/3.28黄永兴.docx and /dev/null differ
diff --git a/黄永兴学习笔记/3.30黄永兴-软件功能总结.docx b/黄永兴学习笔记/3.30黄永兴-软件功能总结.docx
deleted file mode 100644
index c6d3ba9..0000000
Binary files a/黄永兴学习笔记/3.30黄永兴-软件功能总结.docx and /dev/null differ
diff --git a/黄永兴学习笔记/3.30黄永兴.docx b/黄永兴学习笔记/3.30黄永兴.docx
deleted file mode 100644
index 2ce79f3..0000000
Binary files a/黄永兴学习笔记/3.30黄永兴.docx and /dev/null differ
diff --git a/黄永兴学习笔记/3.31黄永兴-软件功能总结.docx b/黄永兴学习笔记/3.31黄永兴-软件功能总结.docx
deleted file mode 100644
index 9182081..0000000
Binary files a/黄永兴学习笔记/3.31黄永兴-软件功能总结.docx and /dev/null differ
diff --git a/黄永兴学习笔记/3.31黄永兴.docx b/黄永兴学习笔记/3.31黄永兴.docx
deleted file mode 100644
index 2640443..0000000
Binary files a/黄永兴学习笔记/3.31黄永兴.docx and /dev/null differ
diff --git a/黄永兴学习笔记/4.1黄永兴-项目案例笔记.docx b/黄永兴学习笔记/4.1黄永兴-项目案例笔记.docx
deleted file mode 100644
index 158b0f1..0000000
Binary files a/黄永兴学习笔记/4.1黄永兴-项目案例笔记.docx and /dev/null differ
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/.gitignore b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/.gitignore
deleted file mode 100644
index 667aaef..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/.gitignore
+++ /dev/null
@@ -1,33 +0,0 @@
-HELP.md
-target/
-.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-build/
-!**/src/main/**/build/
-!**/src/test/**/build/
-
-### VS Code ###
-.vscode/
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/.mvn/wrapper/maven-wrapper.properties b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index c595b00..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-wrapperVersion=3.3.4
-distributionType=only-script
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.14/apache-maven-3.9.14-bin.zip
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/pom.xml b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/pom.xml
deleted file mode 100644
index 8ca984d..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/pom.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 3.5.13
-
-
- com.example
- SpringAIEmbedding
- 0.0.1-SNAPSHOT
- SpringAIEmbedding
- SpringAIEmbedding
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 17
- 1.1.3
-
-
-
-
-
- org.springframework.ai
- spring-ai-bom
- 1.0.0-SNAPSHOT
- pom
- import
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- org.springframework.ai
- spring-ai-starter-model-zhipuai
-
-
-
-
- org.springframework.ai
- spring-ai-client-chat
- 1.0.0
-
-
-
-
-
-
-
-
- spring-milestones
- Spring Milestones
- https://repo.spring.io/milestone
-
- false
-
-
-
-
- spring-snapshots
- Spring Snapshots
- https://repo.spring.io/snapshot
-
- false
-
-
- true
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/SpringAiEmbeddingApplication.java b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/SpringAiEmbeddingApplication.java
deleted file mode 100644
index 8b2eadb..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/SpringAiEmbeddingApplication.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.example.springaiembedding;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class SpringAiEmbeddingApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(SpringAiEmbeddingApplication.class, args);
- }
-
-}
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/controller/EmbeddingController.java b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/controller/EmbeddingController.java
deleted file mode 100644
index e21032d..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/controller/EmbeddingController.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.example.springaiembedding.controller;
-
-import com.example.springaiembedding.service.TextSimilarityService;
-import jakarta.annotation.Resource;
-import jakarta.servlet.http.HttpServlet;
-import jakarta.servlet.http.HttpServletResponse;
-import org.springframework.ai.embedding.EmbeddingModel;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Arrays;
-import java.util.Map;
-
-@RestController
-@RequestMapping("/ai")
-public class EmbeddingController {
-
- @Autowired
- private EmbeddingModel embeddingModel;
-
- //对用户传入的文本进行向量化处理,测试embedding模型
-
- @RequestMapping("/embedding")
- public Map embedding(
- @RequestParam(value = "message",defaultValue = "给我讲个笑话") String message
- ){
-
- // 对用户传入的文本进行向量化处理
- float[] embedding = embeddingModel.embed(message);
-
- return Map.of("message",message,
- "vector",embedding);
- }
-
-
- @Resource
- private TextSimilarityService textSimilarityService;
-
- /**
- * 查找相似文本接口
- * @param message 查询文本
- * @return 相似文本+相似度
- */
- @GetMapping("/similarity")
- public Map findSimilarText(@RequestParam String message) {
- // 查询Top3相似文本
- return textSimilarityService.findSimilarTexts(message, 3);
- }
-
-
-}
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/controller/RagController.java b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/controller/RagController.java
deleted file mode 100644
index bdcc487..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/controller/RagController.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.example.springaiembedding.controller;
-
-import com.example.springaiembedding.service.RagService;
-import jakarta.annotation.Resource;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-
-@RestController
-@RequestMapping("/ai/rag")
-public class RagController {
- @Resource
- private RagService ragService;
-
- // 问答接口
- @GetMapping("/query")
- public String query(@RequestParam String question) {
- return ragService.generateAnswer(question);
- }
-}
\ No newline at end of file
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/service/RagService.java b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/service/RagService.java
deleted file mode 100644
index 1dcbab8..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/service/RagService.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.example.springaiembedding.service;
-
-import com.example.springaiembedding.tool.DocumentLoader;
-import jakarta.annotation.PostConstruct;
-import jakarta.annotation.Resource;
-import org.springframework.ai.chat.client.ChatClient;
-import org.springframework.ai.chat.model.ChatModel;
-import org.springframework.ai.embedding.EmbeddingModel;
-import org.springframework.ai.embedding.EmbeddingResponse;
-import org.springframework.stereotype.Service;
-
-import java.io.IOException;
-import java.util.*;
-import java.util.stream.Collectors;
-
-@Service
-public class RagService {
- @Resource
- private EmbeddingModel embeddingModel;
- @Resource
- private ChatModel chatModel;
-
- // 内存存储:知识库片段 → 对应向量
- private Map knowledgeVectors = new HashMap<>();
-
- // 项目启动时自动加载并向量化知识库
- @PostConstruct
- public void initKnowledgeBase() throws IOException {
- // 1. 加载并拆分文档
- List chunks = DocumentLoader.loadAndSplit("knowledge.txt");
- // 2. 批量向量化(一次请求生成所有片段向量)
- EmbeddingResponse embeddingResponse = embeddingModel.embedForResponse(chunks);
- // 3. 存储片段与向量的映射
- for (int i = 0; i < chunks.size(); i++) {
- knowledgeVectors.put(chunks.get(i), embeddingResponse.getResults().get(i).getOutput());
- }
- }
-
- // 检索与用户问题最相似的 Top N 片段
- private List retrieveSimilarChunks(String query, int topN) {
- // 1. 用户问题向量化
- float[] queryVector = embeddingModel.embed(query);
- // 2. 计算与所有知识库片段的相似度
- Map similarityMap = new HashMap<>();
- //Entry是什么?Map.Entry entry 是一个 Map.Entry 对象,用于遍历 Map 中的键值对。
- for (Map.Entry entry : knowledgeVectors.entrySet()) {
- similarityMap.put(entry.getKey(), CosineSimilarityCalculator.calculate(queryVector, entry.getValue()));
- }
- // 3. 按相似度降序排序,取 Top N
- return similarityMap.entrySet().stream()
- .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
- .limit(topN)
- .map(Map.Entry::getKey)
- .collect(Collectors.toList());
- }
-
- // 生成最终回答
- public String generateAnswer(String query) {
- // 1. 检索相似片段(取 Top 2)
- List similarChunks = retrieveSimilarChunks(query, 2);
- // 2. 拼接 Prompt(约束模型基于知识库回答)
- StringBuilder prompt = new StringBuilder();
- prompt.append("请基于以下知识库内容回答用户问题,禁止编造信息:\n");
- for (String chunk : similarChunks) {
- prompt.append("- ").append(chunk).append("\n");
- }
- prompt.append("\n用户问题:").append(query);
- // 3. 调用 Chat 模型生成回答
- ChatClient chatClient = ChatClient.builder(chatModel).build();
- return chatClient.prompt().user(prompt.toString()).call().content();
- }
-
- public class CosineSimilarityCalculator {
- // 计算两个 float[] 向量的余弦相似度
- public static double calculate(float[] vectorA, float[] vectorB) {
- double dotProduct = 0.0;
- double normA = 0.0;
- double normB = 0.0;
- for (int i = 0; i < vectorA.length; i++) {
- dotProduct += vectorA[i] * vectorB[i];
- normA += Math.pow(vectorA[i], 2);
- normB += Math.pow(vectorB[i], 2);
- }
- return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
- }
- }
-}
\ No newline at end of file
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/service/TextSimilarityService.java b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/service/TextSimilarityService.java
deleted file mode 100644
index 819acd7..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/service/TextSimilarityService.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.example.springaiembedding.service;
-
-import org.springframework.ai.embedding.EmbeddingModel;
-import org.springframework.ai.embedding.EmbeddingResponse;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-@Service
-public class TextSimilarityService {
-
- @Autowired
- private EmbeddingModel embeddingModel;
-
- // 模拟本地文本库(可替换为数据库/向量库)
- private final List TEXT_LIBRARY = Arrays.asList(
- "我爱Java编程",
- "SpringBoot是最流行的后端框架",
- "人工智能改变世界",
- "大模型应用开发",
- "我喜欢学习编程",
- "向量数据库用于存储Embedding",
- "SpringAI简化大模型开发"
- );
-
- /**
- * 查找最相似的文本
- * @param queryText 查询文本
- * @param topN 返回前N条结果
- * @return 相似文本+相似度
- */
-
- public Map findSimilarTexts(String queryText, int topN) {
- // 1. 将查询文本转为向量
- //float[] queryVector = embeddingModel.embed(queryText);
- EmbeddingResponse queryEmbedding = embeddingModel.embedForResponse(List.of(queryText));
- float[] queryVector = queryEmbedding.getResults().get(0).getOutput();
-
- // 2. 将文本库所有文本转为向量
- // 2. 将文本库所有文本转为向量
- Map textVectorMap = new HashMap<>();
- for (String text : TEXT_LIBRARY) {
- float[] textVector = embeddingModel.embed(text);
- //put是将文本和向量存储到Map中
- textVectorMap.put(text, textVector);
- }
-
- // 3. 计算相似度并排序
- Map similarityMap = new HashMap<>();
- for (Map.Entry entry : textVectorMap.entrySet()) {
- double similarity = CosineSimilarityCalculator.calculate(queryVector, entry.getValue());
- similarityMap.put(entry.getKey(), similarity);
- }
-
- // 4. 按相似度降序排序,取TopN
- return similarityMap.entrySet().stream()
- .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
- .limit(topN)
- .collect(Collectors.toMap(
- Map.Entry::getKey,
- Map.Entry::getValue,
- (oldValue, newValue) -> oldValue,
- LinkedHashMap::new
- ));
- }
-
- /**
- * 余弦相似度工具类(计算文本向量相似度)
- */
- public class CosineSimilarityCalculator {
-
- /**
- * 计算两个向量的余弦相似度
- * @param vectorA 向量A
- * @param vectorB 向量B
- * @return 相似度 0~1,值越大越相似
- */
- public static double calculate(float[] vectorA, float[] vectorB) {
- double dotProduct = 0.0;
- double normA = 0.0;
- double normB = 0.0;
-
- for (int i = 0; i < vectorA.length; i++) {
- dotProduct += vectorA[i] * vectorB[i];
- normA += Math.pow(vectorA[i], 2);
- normB += Math.pow(vectorB[i], 2);
- }
- return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
- }
-}
-}
\ No newline at end of file
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/tool/DocumentLoader.java b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/tool/DocumentLoader.java
deleted file mode 100644
index 784bbeb..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/java/com/example/springaiembedding/tool/DocumentLoader.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.example.springaiembedding.tool;
-
-import org.springframework.core.io.ClassPathResource;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-
-// 文档加载工具类
-public class DocumentLoader {
- // 加载并拆分知识库文档
- public static List loadAndSplit(String resourcePath) throws IOException {
- ClassPathResource resource = new ClassPathResource(resourcePath); // 从类路径加载资源
- BufferedReader reader = new BufferedReader(new InputStreamReader(resource.getInputStream())); // 按行读取
- String content = reader.lines().collect(Collectors.joining("\n")); // 读取文件内容,将所有行连接起来一个字符串
-
- // 按 "---" 拆分片段,过滤空内容
- List chunks = new ArrayList<>();
- for (String chunk : content.split("---")) {
- String trimmed = chunk.trim();
- if (!trimmed.isEmpty()) chunks.add(trimmed);
- }
- return chunks;
- }
-}
\ No newline at end of file
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/resources/application.properties b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/resources/application.properties
deleted file mode 100644
index 2d4fc1e..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/resources/application.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-spring.application.name=SpringAIEmbedding
-
-server.port=8080
-
-## ????AI ????
-# Embedding ??
-spring.ai.zhipuai.api-key=c721340a438942d0942148b48a22e50e.5VCKagzmQdyHpwyc
-spring.ai.zhipuai.base-url=https://open.bigmodel.cn/api/paas
-
-# Embedding ??
-spring.ai.zhipuai.embedding-model=embedding-2
-# Chat ??
-spring.ai.zhipuai.chat.options.model=GLM-4.7-Flash
-
-# ??????
-logging.pattern.console=%-5level %logger - %msg%n
-
-
-
-
-
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/resources/knowledge.txt b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/resources/knowledge.txt
deleted file mode 100644
index 88cf6fb..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/main/resources/knowledge.txt
+++ /dev/null
@@ -1,8 +0,0 @@
----
-Spring AI 是一个用于简化大模型应用开发的框架,支持智谱AI、OpenAI 等多种大模型厂商。
----
-智谱AI Embedding 模型可将文本转换为向量,用于语义检索、相似匹配等场景。
----
-RAG(检索增强生成)通过检索本地知识库内容,辅助大模型生成更准确的回答,避免幻觉。
----
-Spring AI 提供 EmbeddingModel 和 ChatModel 接口,让开发者快速接入大模型能力。
\ No newline at end of file
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/test/java/com/example/springaiembedding/SpringAiEmbeddingApplicationTests.java b/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/test/java/com/example/springaiembedding/SpringAiEmbeddingApplicationTests.java
deleted file mode 100644
index b79cd15..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIEmbedding/src/test/java/com/example/springaiembedding/SpringAiEmbeddingApplicationTests.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.example.springaiembedding;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class SpringAiEmbeddingApplicationTests {
-
- @Test
- void contextLoads() {
- }
-
-}
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/.gitignore b/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/.gitignore
deleted file mode 100644
index 667aaef..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/.gitignore
+++ /dev/null
@@ -1,33 +0,0 @@
-HELP.md
-target/
-.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-build/
-!**/src/main/**/build/
-!**/src/test/**/build/
-
-### VS Code ###
-.vscode/
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/.mvn/wrapper/maven-wrapper.properties b/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index c595b00..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-wrapperVersion=3.3.4
-distributionType=only-script
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.14/apache-maven-3.9.14-bin.zip
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/pom.xml b/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/pom.xml
deleted file mode 100644
index f9ec54f..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/pom.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 3.5.13
-
-
- com.example
- SpringAIQuickStart
- 0.0.1-SNAPSHOT
- SpringAIQuickStart
- SpringAIQuickStart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 17
-
-
-
-
-
- org.springframework.ai
- spring-ai-bom
- 1.0.0-SNAPSHOT
- pom
- import
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-starter
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
-
- org.springframework.ai
- spring-ai-starter-model-deepseek
-
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
-
-
-
-
- spring-milestones
- Spring Milestones
- https://repo.spring.io/milestone
-
- false
-
-
-
-
- spring-snapshots
- Spring Snapshots
- https://repo.spring.io/snapshot
-
- false
-
-
- true
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/java/com/example/springaiquickstart/SpringAiQuickStartApplication.java b/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/java/com/example/springaiquickstart/SpringAiQuickStartApplication.java
deleted file mode 100644
index 42f5322..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/java/com/example/springaiquickstart/SpringAiQuickStartApplication.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.example.springaiquickstart;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class SpringAiQuickStartApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(SpringAiQuickStartApplication.class, args);
- }
-
-}
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/java/com/example/springaiquickstart/controller/ChatController.java b/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/java/com/example/springaiquickstart/controller/ChatController.java
deleted file mode 100644
index a755f92..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/java/com/example/springaiquickstart/controller/ChatController.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.example.springaiquickstart.controller;
-
-
-import jakarta.servlet.http.HttpServlet;
-import jakarta.servlet.http.HttpServletResponse;
-import org.springframework.ai.chat.messages.AssistantMessage;
-import org.springframework.ai.chat.messages.Message;
-import org.springframework.ai.chat.messages.SystemMessage;
-import org.springframework.ai.chat.messages.UserMessage;
-import org.springframework.ai.chat.model.ChatResponse;
-import org.springframework.ai.chat.model.Generation;
-import org.springframework.ai.chat.prompt.ChatOptions;
-import org.springframework.ai.chat.prompt.Prompt;
-import org.springframework.ai.deepseek.DeepSeekChatModel;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpRequest;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import reactor.core.publisher.Flux;
-
-import java.util.Arrays;
-import java.util.List;
-
-@RestController
-@RequestMapping("/ai")
-public class ChatController {
-
- @Autowired
- private DeepSeekChatModel chatModel;
-
- // 与模型直接对话,返回字符串响应
- @GetMapping("/generate")
- public String generate(@RequestParam(value = "message",defaultValue = "你好,你是谁?") String message) {
- System.out.println("message: " + message);
-
- // 与模型直接对话,调用chatModel的call方法生成响应
- String response = chatModel.call(message);
-
- System.out.println("response: " + response);
-
- return response;
- }
-
- // 与模型对话,流式返回内容
- @GetMapping("/generateStream1")
- public Flux generateStream1(@RequestParam(value = "message",defaultValue = "你好,你是谁?") String message) {
- System.out.println("message: " + message);
-
- // 与模型对话,流式返回内容
- Prompt prompt = new Prompt(message);
- Flux stream = chatModel.stream(prompt);
-
- System.out.println("stream: " + stream);
-
- return stream;
- }
-
- // 与模型对话,流式返回内容,转换为字符串流
- // 解决中文乱码问题
- // 用lambda表达式简化
- @GetMapping("/generateStream2")
- public Flux generateStream2(
- @RequestParam(value = "message",defaultValue = "你好,你是谁?") String message,
- HttpServletResponse response
- ) {
- //设置字符编码为UTF-8,解决中文乱码问题
- response.setCharacterEncoding("UTF-8");
- System.out.println("message: " + message);
-
- // 与模型对话,流式返回内容
- Prompt prompt = new Prompt(message);
- Flux stream = chatModel.stream(prompt);
-
- // 转换为字符串流,用lambda表达式简化
- Flux result = stream.map(ChatResponse ->
- ChatResponse.getResult().getOutput().getText()
- );
- // 转换为字符串流,用方法引用简化
-// Flux result = stream.map(ChatResponse::getResult)
-// .map(Generation::getOutput)
-// .map(AssistantMessage::getText);
-
-
- System.out.println("result: " + result);
-
- return result;
- }
-
- //运行时设置模型参数
- @GetMapping("/runtimeOptions")
- public Flux runtimeOptions(
- @RequestParam(value = "message",defaultValue = "你好,你是谁?") String message,
- @RequestParam(value = "temperature",required = false) Double temp,
- HttpServletResponse response
- ) {
- //设置字符编码为UTF-8,解决中文乱码问题
- response.setCharacterEncoding("UTF-8");
- // 构建系统提示
- SystemMessage systemMessage = new SystemMessage("你是一个资深Java开发工程师,回答要简洁专业");
- // 构建用户消息
- UserMessage userMessage = new UserMessage(message);
- // 构建历史消息(多轮对话时加入)
- List messages = Arrays.asList(systemMessage, userMessage);
-
- // 封装成 Prompt,还可以设置模型参数
- Prompt prompt = new Prompt(messages,
- ChatOptions.builder()
- .temperature(temp)
- .maxTokens(1000)
- .build()
- );
-
- // 流式调用
- Flux stream = chatModel.stream(prompt);
- // 转换为字符串流,用lambda表达式简化
- Flux result = stream.map(ChatResponse ->
- ChatResponse.getResult().getOutput().getText()
- );
-
- System.out.println("result: " + result);
- return result;
- }
-
-
-}
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/resources/application.properties b/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/resources/application.properties
deleted file mode 100644
index 04b888c..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/resources/application.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-spring.application.name=SpringAIQuickStart
-
-server.port=8080
-
-#?? Deepseek ???????url?????????
-spring.ai.deepseek.base-url=https://api.deepseek.com
-spring.ai.deepseek.api-key=sk-ccbfe09f433148129cd98df6150653e8
-spring.ai.deepseek.chat.options.model=deepseek-chat
-
-#??0-2???0????????2???????
-spring.ai.deepseek.chat.options.temperature=0.8
-
-
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/resources/static/index.html b/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/resources/static/index.html
deleted file mode 100644
index b15dd6d..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/main/resources/static/index.html
+++ /dev/null
@@ -1,224 +0,0 @@
-
-
-
-
-
- Spring AI 聊天助手
-
-
-
-
-
-
-
-
-
-
-
-
Spring AI 聊天助手
-
-
-
-
- 在线
-
-
-
-
-
-
-
-
-
-
-
-
AI 助手
-
基于 DeepSeek 模型
-
-
-
-
-
-
-
-
-
-
-
-
AI 助手
-
你好!我是基于 DeepSeek 模型的 AI 助手,有什么可以帮助你的吗?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
功能说明
-
- -
-
- 支持自然语言对话
-
- -
-
- 基于 DeepSeek 大语言模型
-
- -
-
- 实时响应生成
-
- -
-
- 简洁美观的用户界面
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/test/java/com/example/springaiquickstart/SpringAiQuickStartApplicationTests.java b/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/test/java/com/example/springaiquickstart/SpringAiQuickStartApplicationTests.java
deleted file mode 100644
index 85ad504..0000000
--- a/黄永兴学习笔记/StudySpringAI/SpringAIQuickStart/src/test/java/com/example/springaiquickstart/SpringAiQuickStartApplicationTests.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.example.springaiquickstart;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class SpringAiQuickStartApplicationTests {
-
- @Test
- void contextLoads() {
- }
-
-}
diff --git a/黄永兴学习笔记/StudySpringAI/StudySpringAI.iml b/黄永兴学习笔记/StudySpringAI/StudySpringAI.iml
deleted file mode 100644
index 9a5cfce..0000000
--- a/黄永兴学习笔记/StudySpringAI/StudySpringAI.iml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/.mvn/wrapper/maven-wrapper.properties b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index c595b00..0000000
--- a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-wrapperVersion=3.3.4
-distributionType=only-script
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.14/apache-maven-3.9.14-bin.zip
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/SpringAIAlibaba.iml b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/SpringAIAlibaba.iml
deleted file mode 100644
index d62c586..0000000
--- a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/SpringAIAlibaba.iml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/pom.xml b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/pom.xml
deleted file mode 100644
index 2f3e575..0000000
--- a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/pom.xml
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 3.5.13
-
-
- com.example
- SpringAIAlibaba
- 1.1.2.0
- SpringAIAlibaba
- SpringAIAlibaba
-
-
- 17
-
- 2.22.13
-
- 2.2.21
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- com.alibaba.cloud.ai
- spring-ai-alibaba-bom
- 1.1.2.0
- pom
- import
-
-
- org.springframework.ai
- spring-ai-bom
- 1.1.2
- pom
- import
-
-
- com.alibaba.cloud.ai
- spring-ai-alibaba-extensions-bom
- 1.1.2.1
- pom
- import
-
-
-
-
-
-
-
-
-
- com.alibaba.cloud.ai
- spring-ai-alibaba-agent-framework
- 1.1.2.0
-
-
-
-
- com.alibaba.cloud.ai
- spring-ai-alibaba-starter-dashscope
- 1.1.2.0
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- io.projectreactor.addons
- reactor-adapter
- 3.5.0
-
-
-
- org.projectlombok
- lombok
- true
-
-
-
-
- com.alibaba
- dashscope-sdk-java
- ${dashscope.version}
-
-
-
-
- io.reactivex.rxjava2
- rxjava
- ${rxjava.version}
-
-
-
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
\ No newline at end of file
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/main/java/com/example/springaialibaba/SpringAiAlibabaApplication.java b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/main/java/com/example/springaialibaba/SpringAiAlibabaApplication.java
deleted file mode 100644
index 3b60de0..0000000
--- a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/main/java/com/example/springaialibaba/SpringAiAlibabaApplication.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.example.springaialibaba;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class SpringAiAlibabaApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(SpringAiAlibabaApplication.class, args);
- }
-
-}
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/main/java/com/example/springaialibaba/controller/CustomerServiceController.java b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/main/java/com/example/springaialibaba/controller/CustomerServiceController.java
deleted file mode 100644
index d42acb0..0000000
--- a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/main/java/com/example/springaialibaba/controller/CustomerServiceController.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package com.example.springaialibaba.controller;
-
-
-import com.alibaba.cloud.ai.dashscope.agent.DashScopeAgent;
-import com.alibaba.cloud.ai.dashscope.agent.DashScopeAgentOptions;
-import com.alibaba.dashscope.app.Application;
-import com.alibaba.dashscope.app.ApplicationParam;
-import com.alibaba.dashscope.app.ApplicationResult;
-import com.alibaba.dashscope.app.FlowStreamMode;
-import com.alibaba.dashscope.exception.InputRequiredException;
-import com.alibaba.dashscope.exception.NoApiKeyException;
-import io.reactivex.Flowable;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.ai.chat.model.ChatResponse;
-import org.springframework.ai.chat.prompt.Prompt;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import reactor.adapter.rxjava.RxJava2Adapter;
-import reactor.core.publisher.Flux;
-
-import java.nio.charset.StandardCharsets;
-
-@Slf4j
-@RestController
-@RequiredArgsConstructor //使用RequiredArgsConstructor注解,自动注入final类型的字段
-@RequestMapping("/customer")
-public class CustomerServiceController {
-
- //注入Spring AI Alibaba Agent
- //@Autowired
- private final DashScopeAgent dashScopeAgent;
-
- /**
- * 智能客服接口(非流式,同步获取结果)
- * @param question 用户问题
- * @return 知识库标准答案
- */
- @GetMapping("/service")
- public String customerService(@RequestParam("question") String question) {
-
- try {
- /*
- DashScopeAgentOptions 是工作流 / 智能体的调用参数,它只负责「触发工作流」,不负责「修改大模型的推理参数」。
- 因为 Spring AI Alibaba 的自动配置在工作流(Agent)模式下不生效!
- */
-
- //
- /* ChatResponse response = dashScopeAgent.call(
- new Prompt(question, DashScopeAgentOptions.builder()
- .appId("df04e1abf24a416c8702260e88863ac4")
- .build()
- )
- );
-
- return response.getResult().getOutput().getText();*/
-
- ApplicationParam param = ApplicationParam.builder()
- // 若没有配置环境变量,可用百炼API Key将下行替换为:.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
- .apiKey(System.getenv("sk-f7d2253302b547c7a2fe257673cb854b"))
- .appId("df04e1abf24a416c8702260e88863ac4")
- .prompt(question)
- .build();
-
- Application application = new Application();
- ApplicationResult result = application.call(param);
- return result.getOutput().getText();
-
- } catch (Exception e) {
- log.error("客服调用失败", e);
- return "抱歉,智能客服暂时无法响应,请联系人工客服。";
- }
- }
-
- // 官方原生流式调用(1:1对照文档)
- @GetMapping(value = "/service2", produces = MediaType.TEXT_HTML_VALUE + ";charset=UTF-8")
- public Flux customerService2(
- @RequestParam("question") String question,
- HttpServletResponse response
- ) {
- //设置字符编码为UTF-8,解决中文乱码问题
- response.setCharacterEncoding("UTF-8");
-
- try {
- // ==============================================
- // 【官方原版写法】
- // ==============================================
- ApplicationParam param = ApplicationParam.builder()
- .apiKey("sk-f7d2253302b547c7a2fe257673cb854b") // 你的API Key
- .appId("df04e1abf24a416c8702260e88863ac4")
- .prompt(question)
- .incrementalOutput(true) // 官方:流式必须开
- .flowStreamMode(FlowStreamMode.MESSAGE_FORMAT) // 设置为流模式
- .build();
-
- Application application = new Application();
-
- // 官方流式调用
- Flowable resultFlowable = application.streamCall(param);
-
- // 把 RxJava Flowable → Spring Flux(用于SSE输出)
- // 正确的流式处理逻辑
- System.out.println(resultFlowable);
-
-/* return Flux.create(sink -> {
- resultFlowable.subscribe(
- res -> {
- try {
- if (res != null && res.getOutput() != null) {
- String content = null;
-
- if ("stop".equals(res.getOutput().getFinishReason())) {
- // 流结束
- content = res.getOutput().getText();
- if (content != null && !content.trim().isEmpty()) {
- sink.next("data: " + content + "\n\n");
- }
- } else {
- // 流式输出
- if (res.getOutput().getWorkflowMessage() != null &&
- res.getOutput().getWorkflowMessage().getMessage() != null) {
-
- content = res.getOutput().getWorkflowMessage()
- .getMessage().getContent();
-
- if (content != null && !content.trim().isEmpty()) {
- sink.next("data: " + content + "\n\n");
- }
- }
- }
- }
- } catch (Exception e) {
- log.error("处理响应异常", e);
- }
- },
- error -> {
- log.error("流式调用异常", error);
- sink.next("data: 服务调用异常\n\n");
- sink.complete();
- },
- () -> {
- log.info("流式调用完成");
- sink.complete();
- }
- );
- });*/
-
- // RxJava适配器 flowable 转换为 flux
- return RxJava2Adapter.flowableToFlux(resultFlowable)
- .map(this::extractContent)
- .filter(content -> content != null && !content.trim().isEmpty())
- .map(content -> "data: " + content + "\n\n");
-
-
- } catch (Exception e) {
- log.error("客服调用失败", e);
- return Flux.error(e);
- }
- }
-
- // 从 ApplicationResult 中提取内容
- private String extractContent(ApplicationResult res) {
- if (res == null || res.getOutput() == null) return null;
-
- if ("stop".equals(res.getOutput().getFinishReason())) {
- return res.getOutput().getText();
- } else if (res.getOutput().getWorkflowMessage() != null &&
- res.getOutput().getWorkflowMessage().getMessage() != null) {
- return res.getOutput().getWorkflowMessage().getMessage().getContent();
- }
- return null;
- }
-}
\ No newline at end of file
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/main/resources/application.yml b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/main/resources/application.yml
deleted file mode 100644
index fecb5d1..0000000
--- a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/main/resources/application.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-server:
- port: 8080
-
-spring:
- ai:
- dashscope:
- # 核心:工作流应用的AppId
- agent:
- app-id: df04e1abf24a416c8702260e88863ac4
- # 核心:你的API-Key
- api-key: sk-f7d2253302b547c7a2fe257673cb854b
- # 业务空间ID
- workspace-id: llm-fuczq7vkh8vyz716
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/test/java/com/example/springaialibaba/SpringAiAlibabaApplicationTests.java b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/test/java/com/example/springaialibaba/SpringAiAlibabaApplicationTests.java
deleted file mode 100644
index ac8a730..0000000
--- a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/src/test/java/com/example/springaialibaba/SpringAiAlibabaApplicationTests.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.example.springaialibaba;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class SpringAiAlibabaApplicationTests {
-
- @Test
- void contextLoads() {
- }
-
-}
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/classes/application.yml b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/classes/application.yml
deleted file mode 100644
index fecb5d1..0000000
--- a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/classes/application.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-server:
- port: 8080
-
-spring:
- ai:
- dashscope:
- # 核心:工作流应用的AppId
- agent:
- app-id: df04e1abf24a416c8702260e88863ac4
- # 核心:你的API-Key
- api-key: sk-f7d2253302b547c7a2fe257673cb854b
- # 业务空间ID
- workspace-id: llm-fuczq7vkh8vyz716
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/classes/com/example/springaialibaba/SpringAiAlibabaApplication.class b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/classes/com/example/springaialibaba/SpringAiAlibabaApplication.class
deleted file mode 100644
index a7758aa..0000000
Binary files a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/classes/com/example/springaialibaba/SpringAiAlibabaApplication.class and /dev/null differ
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/classes/com/example/springaialibaba/controller/CustomerServiceController.class b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/classes/com/example/springaialibaba/controller/CustomerServiceController.class
deleted file mode 100644
index 94e874d..0000000
Binary files a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/classes/com/example/springaialibaba/controller/CustomerServiceController.class and /dev/null differ
diff --git a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/test-classes/com/example/springaialibaba/SpringAiAlibabaApplicationTests.class b/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/test-classes/com/example/springaialibaba/SpringAiAlibabaApplicationTests.class
deleted file mode 100644
index bdf7b50..0000000
Binary files a/黄永兴学习笔记/智能客服demo/SpringAIAlibaba/target/test-classes/com/example/springaialibaba/SpringAiAlibabaApplicationTests.class and /dev/null differ