diff --git a/.gitignore b/.gitignore index 891cb3d..2213c54 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ /.idea /dist /dist.zip +/.claude +/.serena +/scripts/node_modules diff --git a/docs/1management/next.md b/docs/1management/next.md new file mode 100644 index 0000000..491ddbf --- /dev/null +++ b/docs/1management/next.md @@ -0,0 +1,33 @@ +我正在开发 yys-editor 项目(阴阳师编辑器),这是一个基于 Vue 3 + LogicFlow 的可视化编辑器。 + +请按以下流程工作: + +1. **读取计划**:先读取 docs/1management/plan.md,了解项目当前状态和下一步行动计划 + +2. **确认任务**:根据 plan.md 中的"下一步行动计划",向我确认要开发哪个功能 + +3. **开发实现**: + - 使用 Serena 的符号工具高效读取代码 + - 使用 Context7 的查询Logic-flow相关文档 + - 遵循项目现有的代码风格和架构 + - 关键文件位置: + - 画布:src/components/flow/FlowEditor.vue + - 属性面板:src/components/flow/panels/ + - Store:src/ts/useStore.ts + - Schema:src/ts/schema.ts + +4. **等待测试**:开发完成后,等我测试并确认功能正常 + +5. **更新文档**:测试通过后,更新 docs/1management/plan.md: + - 更新相关模块的完成度 + - 标记已完成的步骤 + - 更新总体完成度百分比 + +技术栈:Vue 3 + Vite + LogicFlow + Pinia + Element Plus + +当前优先级(从 plan.md): +- 🔴 高优先级:注册 textNode +- 🟡 中优先级:实现撤销重做系统 +- 🟢 低优先级:矢量节点 MVP、导出增强 + +请开始第一步:读取 plan.md 并确认下一步任务。 diff --git a/public/assets/Shikigami/g/414.png b/public/assets/Shikigami/g/414.png index e6621a7..7290474 100644 Binary files a/public/assets/Shikigami/g/414.png and b/public/assets/Shikigami/g/414.png differ diff --git a/public/assets/Shikigami/g/415.png b/public/assets/Shikigami/g/415.png index fc91618..cc1e82f 100644 Binary files a/public/assets/Shikigami/g/415.png and b/public/assets/Shikigami/g/415.png differ diff --git a/public/assets/Shikigami/g/416.png b/public/assets/Shikigami/g/416.png index 57935eb..227bbe7 100644 Binary files a/public/assets/Shikigami/g/416.png and b/public/assets/Shikigami/g/416.png differ diff --git a/public/assets/Shikigami/g/417.png b/public/assets/Shikigami/g/417.png index c0d92a3..1a0d2e0 100644 Binary files a/public/assets/Shikigami/g/417.png and b/public/assets/Shikigami/g/417.png differ diff --git a/public/assets/Shikigami/g/418.png b/public/assets/Shikigami/g/418.png index 368f41f..d962a6e 100644 Binary files a/public/assets/Shikigami/g/418.png and b/public/assets/Shikigami/g/418.png differ diff --git a/public/assets/Shikigami/g/419.png b/public/assets/Shikigami/g/419.png index b6c218a..e45e95c 100644 Binary files a/public/assets/Shikigami/g/419.png and b/public/assets/Shikigami/g/419.png differ diff --git a/public/assets/Shikigami/g/420.png b/public/assets/Shikigami/g/420.png index 2f3d6f9..6138136 100644 Binary files a/public/assets/Shikigami/g/420.png and b/public/assets/Shikigami/g/420.png differ diff --git a/public/assets/Shikigami/g/421.png b/public/assets/Shikigami/g/421.png index 1e5efe8..afbf5ac 100644 Binary files a/public/assets/Shikigami/g/421.png and b/public/assets/Shikigami/g/421.png differ diff --git a/public/assets/Shikigami/g/422.png b/public/assets/Shikigami/g/422.png index 84f0b7b..f62cc59 100644 Binary files a/public/assets/Shikigami/g/422.png and b/public/assets/Shikigami/g/422.png differ diff --git a/public/assets/Shikigami/g/423.png b/public/assets/Shikigami/g/423.png index 10f17db..9db33b9 100644 Binary files a/public/assets/Shikigami/g/423.png and b/public/assets/Shikigami/g/423.png differ diff --git a/public/assets/Shikigami/g/424.png b/public/assets/Shikigami/g/424.png index 6c87394..4338053 100644 Binary files a/public/assets/Shikigami/g/424.png and b/public/assets/Shikigami/g/424.png differ diff --git a/public/assets/Shikigami/g/425.png b/public/assets/Shikigami/g/425.png index 437d6c9..b4537e6 100644 Binary files a/public/assets/Shikigami/g/425.png and b/public/assets/Shikigami/g/425.png differ diff --git a/public/assets/Shikigami/g/426.png b/public/assets/Shikigami/g/426.png index 074e8e4..f06f2ee 100644 Binary files a/public/assets/Shikigami/g/426.png and b/public/assets/Shikigami/g/426.png differ diff --git a/public/assets/Shikigami/g/427.png b/public/assets/Shikigami/g/427.png index b6e080a..cc51eae 100644 Binary files a/public/assets/Shikigami/g/427.png and b/public/assets/Shikigami/g/427.png differ diff --git a/public/assets/Shikigami/g/428.png b/public/assets/Shikigami/g/428.png index 288d112..e266ffa 100644 Binary files a/public/assets/Shikigami/g/428.png and b/public/assets/Shikigami/g/428.png differ diff --git a/public/assets/Shikigami/g/429.png b/public/assets/Shikigami/g/429.png index 50f8a6a..d534059 100644 Binary files a/public/assets/Shikigami/g/429.png and b/public/assets/Shikigami/g/429.png differ diff --git a/public/assets/Shikigami/g/430.png b/public/assets/Shikigami/g/430.png index f356968..8e80f01 100644 Binary files a/public/assets/Shikigami/g/430.png and b/public/assets/Shikigami/g/430.png differ diff --git a/public/assets/Shikigami/l/294.png b/public/assets/Shikigami/l/294.png index 82ee78f..890371a 100644 Binary files a/public/assets/Shikigami/l/294.png and b/public/assets/Shikigami/l/294.png differ diff --git a/public/assets/Shikigami/l/305.png b/public/assets/Shikigami/l/305.png index d0e0ce0..4517729 100644 Binary files a/public/assets/Shikigami/l/305.png and b/public/assets/Shikigami/l/305.png differ diff --git a/public/assets/Shikigami/l/308.png b/public/assets/Shikigami/l/308.png index 8794f87..411b062 100644 Binary files a/public/assets/Shikigami/l/308.png and b/public/assets/Shikigami/l/308.png differ diff --git a/public/assets/Shikigami/l/309.png b/public/assets/Shikigami/l/309.png index bd35f87..4bef197 100644 Binary files a/public/assets/Shikigami/l/309.png and b/public/assets/Shikigami/l/309.png differ diff --git a/public/assets/Shikigami/l/310.png b/public/assets/Shikigami/l/310.png index 14c6755..37f4a10 100644 Binary files a/public/assets/Shikigami/l/310.png and b/public/assets/Shikigami/l/310.png differ diff --git a/public/assets/Shikigami/l/313.png b/public/assets/Shikigami/l/313.png index 95e8f09..89bcf0c 100644 Binary files a/public/assets/Shikigami/l/313.png and b/public/assets/Shikigami/l/313.png differ diff --git a/public/assets/Shikigami/l/314.png b/public/assets/Shikigami/l/314.png index eec1dea..bedaf43 100644 Binary files a/public/assets/Shikigami/l/314.png and b/public/assets/Shikigami/l/314.png differ diff --git a/public/assets/Shikigami/l/319.png b/public/assets/Shikigami/l/319.png index 85ec2a6..c522004 100644 Binary files a/public/assets/Shikigami/l/319.png and b/public/assets/Shikigami/l/319.png differ diff --git a/public/assets/Shikigami/l/336.png b/public/assets/Shikigami/l/336.png index 12170e4..4aa9f1e 100644 Binary files a/public/assets/Shikigami/l/336.png and b/public/assets/Shikigami/l/336.png differ diff --git a/public/assets/Shikigami/l/337.png b/public/assets/Shikigami/l/337.png index ce23aa9..1461bdf 100644 Binary files a/public/assets/Shikigami/l/337.png and b/public/assets/Shikigami/l/337.png differ diff --git a/public/assets/Shikigami/l/359.png b/public/assets/Shikigami/l/359.png index d7b2c57..ed73c70 100644 Binary files a/public/assets/Shikigami/l/359.png and b/public/assets/Shikigami/l/359.png differ diff --git a/public/assets/Shikigami/l/360.png b/public/assets/Shikigami/l/360.png index 6640f0b..e6591ff 100644 Binary files a/public/assets/Shikigami/l/360.png and b/public/assets/Shikigami/l/360.png differ diff --git a/public/assets/Shikigami/l/373.png b/public/assets/Shikigami/l/373.png index e51ac88..a5626dc 100644 Binary files a/public/assets/Shikigami/l/373.png and b/public/assets/Shikigami/l/373.png differ diff --git a/public/assets/Shikigami/l/386.png b/public/assets/Shikigami/l/386.png index fc50ad0..4edd4c1 100644 Binary files a/public/assets/Shikigami/l/386.png and b/public/assets/Shikigami/l/386.png differ diff --git a/public/assets/Shikigami/l/387.png b/public/assets/Shikigami/l/387.png index 455cf0d..cfd61f4 100644 Binary files a/public/assets/Shikigami/l/387.png and b/public/assets/Shikigami/l/387.png differ diff --git a/public/assets/Shikigami/l/397.png b/public/assets/Shikigami/l/397.png index d374aeb..ae96d6c 100644 Binary files a/public/assets/Shikigami/l/397.png and b/public/assets/Shikigami/l/397.png differ diff --git a/public/assets/Shikigami/l/500.png b/public/assets/Shikigami/l/500.png index a2fd8da..7ce1327 100644 Binary files a/public/assets/Shikigami/l/500.png and b/public/assets/Shikigami/l/500.png differ diff --git a/public/assets/Shikigami/l/553.png b/public/assets/Shikigami/l/553.png index 1201fde..84b127b 100644 Binary files a/public/assets/Shikigami/l/553.png and b/public/assets/Shikigami/l/553.png differ diff --git a/public/assets/Shikigami/l/563.png b/public/assets/Shikigami/l/563.png index 10ad108..9f557ea 100644 Binary files a/public/assets/Shikigami/l/563.png and b/public/assets/Shikigami/l/563.png differ diff --git a/public/assets/Shikigami/l/564.png b/public/assets/Shikigami/l/564.png index b1241ba..ca3a83e 100644 Binary files a/public/assets/Shikigami/l/564.png and b/public/assets/Shikigami/l/564.png differ diff --git a/public/assets/Shikigami/l/567.png b/public/assets/Shikigami/l/567.png index 9177d22..1de2610 100644 Binary files a/public/assets/Shikigami/l/567.png and b/public/assets/Shikigami/l/567.png differ diff --git a/public/assets/Shikigami/l/576.png b/public/assets/Shikigami/l/576.png index 2c04482..fdfb26d 100644 Binary files a/public/assets/Shikigami/l/576.png and b/public/assets/Shikigami/l/576.png differ diff --git a/public/assets/Shikigami/l/582.png b/public/assets/Shikigami/l/582.png index 6176d13..c5e268f 100644 Binary files a/public/assets/Shikigami/l/582.png and b/public/assets/Shikigami/l/582.png differ diff --git a/public/assets/Shikigami/n/203.png b/public/assets/Shikigami/n/203.png index 3951515..3095282 100644 Binary files a/public/assets/Shikigami/n/203.png and b/public/assets/Shikigami/n/203.png differ diff --git a/public/assets/Shikigami/n/245.png b/public/assets/Shikigami/n/245.png index 6f6bf74..67b0b37 100644 Binary files a/public/assets/Shikigami/n/245.png and b/public/assets/Shikigami/n/245.png differ diff --git a/public/assets/Shikigami/n/246.png b/public/assets/Shikigami/n/246.png index d8fa6ea..b3f4d76 100644 Binary files a/public/assets/Shikigami/n/246.png and b/public/assets/Shikigami/n/246.png differ diff --git a/public/assets/Shikigami/n/400.png b/public/assets/Shikigami/n/400.png index 96b0ad5..66057d8 100644 Binary files a/public/assets/Shikigami/n/400.png and b/public/assets/Shikigami/n/400.png differ diff --git a/public/assets/Shikigami/n/401.png b/public/assets/Shikigami/n/401.png index 3f65963..d4f845e 100644 Binary files a/public/assets/Shikigami/n/401.png and b/public/assets/Shikigami/n/401.png differ diff --git a/public/assets/Shikigami/n/403.png b/public/assets/Shikigami/n/403.png index cf5a14c..4d3489b 100644 Binary files a/public/assets/Shikigami/n/403.png and b/public/assets/Shikigami/n/403.png differ diff --git a/public/assets/Shikigami/n/404.png b/public/assets/Shikigami/n/404.png index 08bc4a9..94e40f5 100644 Binary files a/public/assets/Shikigami/n/404.png and b/public/assets/Shikigami/n/404.png differ diff --git a/public/assets/Shikigami/n/405.png b/public/assets/Shikigami/n/405.png index beda71f..5d2f88d 100644 Binary files a/public/assets/Shikigami/n/405.png and b/public/assets/Shikigami/n/405.png differ diff --git a/public/assets/Shikigami/n/406.png b/public/assets/Shikigami/n/406.png index a007b47..6a6f013 100644 Binary files a/public/assets/Shikigami/n/406.png and b/public/assets/Shikigami/n/406.png differ diff --git a/public/assets/Shikigami/n/407.png b/public/assets/Shikigami/n/407.png index 4de058d..6c96dc2 100644 Binary files a/public/assets/Shikigami/n/407.png and b/public/assets/Shikigami/n/407.png differ diff --git a/public/assets/Shikigami/n/408.png b/public/assets/Shikigami/n/408.png index 5fbcdbf..e53ec86 100644 Binary files a/public/assets/Shikigami/n/408.png and b/public/assets/Shikigami/n/408.png differ diff --git a/public/assets/Shikigami/n/409.png b/public/assets/Shikigami/n/409.png index e4c8684..ad74ee7 100644 Binary files a/public/assets/Shikigami/n/409.png and b/public/assets/Shikigami/n/409.png differ diff --git a/public/assets/Shikigami/r/202.png b/public/assets/Shikigami/r/202.png index bb69563..d463a97 100644 Binary files a/public/assets/Shikigami/r/202.png and b/public/assets/Shikigami/r/202.png differ diff --git a/public/assets/Shikigami/r/205.png b/public/assets/Shikigami/r/205.png index 2618da0..b5afcde 100644 Binary files a/public/assets/Shikigami/r/205.png and b/public/assets/Shikigami/r/205.png differ diff --git a/public/assets/Shikigami/r/206.png b/public/assets/Shikigami/r/206.png index 3af13b5..a0b616b 100644 Binary files a/public/assets/Shikigami/r/206.png and b/public/assets/Shikigami/r/206.png differ diff --git a/public/assets/Shikigami/r/207.png b/public/assets/Shikigami/r/207.png index af3a6ac..3ae46de 100644 Binary files a/public/assets/Shikigami/r/207.png and b/public/assets/Shikigami/r/207.png differ diff --git a/public/assets/Shikigami/r/208.png b/public/assets/Shikigami/r/208.png index 0489f30..34ac4ae 100644 Binary files a/public/assets/Shikigami/r/208.png and b/public/assets/Shikigami/r/208.png differ diff --git a/public/assets/Shikigami/r/209.png b/public/assets/Shikigami/r/209.png index 28b0f08..e0159d6 100644 Binary files a/public/assets/Shikigami/r/209.png and b/public/assets/Shikigami/r/209.png differ diff --git a/public/assets/Shikigami/r/212.png b/public/assets/Shikigami/r/212.png index 6b915d5..7927e74 100644 Binary files a/public/assets/Shikigami/r/212.png and b/public/assets/Shikigami/r/212.png differ diff --git a/public/assets/Shikigami/r/213.png b/public/assets/Shikigami/r/213.png index ceb69c7..09892a0 100644 Binary files a/public/assets/Shikigami/r/213.png and b/public/assets/Shikigami/r/213.png differ diff --git a/public/assets/Shikigami/r/214.png b/public/assets/Shikigami/r/214.png index 5a22f60..afacd85 100644 Binary files a/public/assets/Shikigami/r/214.png and b/public/assets/Shikigami/r/214.png differ diff --git a/public/assets/Shikigami/r/216.png b/public/assets/Shikigami/r/216.png index 905e9f1..80d0d4d 100644 Binary files a/public/assets/Shikigami/r/216.png and b/public/assets/Shikigami/r/216.png differ diff --git a/public/assets/Shikigami/r/218.png b/public/assets/Shikigami/r/218.png index 098d43f..e3ab54c 100644 Binary files a/public/assets/Shikigami/r/218.png and b/public/assets/Shikigami/r/218.png differ diff --git a/public/assets/Shikigami/r/221.png b/public/assets/Shikigami/r/221.png index 8cc7ae9..182ed05 100644 Binary files a/public/assets/Shikigami/r/221.png and b/public/assets/Shikigami/r/221.png differ diff --git a/public/assets/Shikigami/r/222.png b/public/assets/Shikigami/r/222.png index 616db75..724d6c8 100644 Binary files a/public/assets/Shikigami/r/222.png and b/public/assets/Shikigami/r/222.png differ diff --git a/public/assets/Shikigami/r/224.png b/public/assets/Shikigami/r/224.png index 0490e05..d1b4370 100644 Binary files a/public/assets/Shikigami/r/224.png and b/public/assets/Shikigami/r/224.png differ diff --git a/public/assets/Shikigami/r/225.png b/public/assets/Shikigami/r/225.png index 52bf4a8..54c7ded 100644 Binary files a/public/assets/Shikigami/r/225.png and b/public/assets/Shikigami/r/225.png differ diff --git a/public/assets/Shikigami/r/226.png b/public/assets/Shikigami/r/226.png index ef7a507..227f1ec 100644 Binary files a/public/assets/Shikigami/r/226.png and b/public/assets/Shikigami/r/226.png differ diff --git a/public/assets/Shikigami/r/227.png b/public/assets/Shikigami/r/227.png index 7b540d9..f36fb12 100644 Binary files a/public/assets/Shikigami/r/227.png and b/public/assets/Shikigami/r/227.png differ diff --git a/public/assets/Shikigami/r/228.png b/public/assets/Shikigami/r/228.png index f69d7e4..ac40e59 100644 Binary files a/public/assets/Shikigami/r/228.png and b/public/assets/Shikigami/r/228.png differ diff --git a/public/assets/Shikigami/r/230.png b/public/assets/Shikigami/r/230.png index 102216a..aecd8ae 100644 Binary files a/public/assets/Shikigami/r/230.png and b/public/assets/Shikigami/r/230.png differ diff --git a/public/assets/Shikigami/r/232.png b/public/assets/Shikigami/r/232.png index e7e21c3..aab4269 100644 Binary files a/public/assets/Shikigami/r/232.png and b/public/assets/Shikigami/r/232.png differ diff --git a/public/assets/Shikigami/r/234.png b/public/assets/Shikigami/r/234.png index 07f6f50..bb922a8 100644 Binary files a/public/assets/Shikigami/r/234.png and b/public/assets/Shikigami/r/234.png differ diff --git a/public/assets/Shikigami/r/236.png b/public/assets/Shikigami/r/236.png index 664abee..ebba052 100644 Binary files a/public/assets/Shikigami/r/236.png and b/public/assets/Shikigami/r/236.png differ diff --git a/public/assets/Shikigami/r/237.png b/public/assets/Shikigami/r/237.png index 60ac6df..1b6c9b2 100644 Binary files a/public/assets/Shikigami/r/237.png and b/public/assets/Shikigami/r/237.png differ diff --git a/public/assets/Shikigami/r/238.png b/public/assets/Shikigami/r/238.png index a65372c..b60a44c 100644 Binary files a/public/assets/Shikigami/r/238.png and b/public/assets/Shikigami/r/238.png differ diff --git a/public/assets/Shikigami/r/241.png b/public/assets/Shikigami/r/241.png index fb62cfb..cf6f6eb 100644 Binary files a/public/assets/Shikigami/r/241.png and b/public/assets/Shikigami/r/241.png differ diff --git a/public/assets/Shikigami/r/243.png b/public/assets/Shikigami/r/243.png index ab61140..2507cc0 100644 Binary files a/public/assets/Shikigami/r/243.png and b/public/assets/Shikigami/r/243.png differ diff --git a/public/assets/Shikigami/r/244.png b/public/assets/Shikigami/r/244.png index d86ac2c..ad9217d 100644 Binary files a/public/assets/Shikigami/r/244.png and b/public/assets/Shikigami/r/244.png differ diff --git a/public/assets/Shikigami/r/249.png b/public/assets/Shikigami/r/249.png index 78fa191..08e2b54 100644 Binary files a/public/assets/Shikigami/r/249.png and b/public/assets/Shikigami/r/249.png differ diff --git a/public/assets/Shikigami/r/250.png b/public/assets/Shikigami/r/250.png index 8adeacd..988683e 100644 Binary files a/public/assets/Shikigami/r/250.png and b/public/assets/Shikigami/r/250.png differ diff --git a/public/assets/Shikigami/r/274.png b/public/assets/Shikigami/r/274.png index 50f6c27..48f927f 100644 Binary files a/public/assets/Shikigami/r/274.png and b/public/assets/Shikigami/r/274.png differ diff --git a/public/assets/Shikigami/r/289.png b/public/assets/Shikigami/r/289.png index 6831384..28850ac 100644 Binary files a/public/assets/Shikigami/r/289.png and b/public/assets/Shikigami/r/289.png differ diff --git a/public/assets/Shikigami/r/301.png b/public/assets/Shikigami/r/301.png index 1a21ce4..df9ea43 100644 Binary files a/public/assets/Shikigami/r/301.png and b/public/assets/Shikigami/r/301.png differ diff --git a/public/assets/Shikigami/r/302.png b/public/assets/Shikigami/r/302.png index 8ec75dc..e49938a 100644 Binary files a/public/assets/Shikigami/r/302.png and b/public/assets/Shikigami/r/302.png differ diff --git a/public/assets/Shikigami/r/306.png b/public/assets/Shikigami/r/306.png index 977d1ed..692ef39 100644 Binary files a/public/assets/Shikigami/r/306.png and b/public/assets/Shikigami/r/306.png differ diff --git a/public/assets/Shikigami/r/323.png b/public/assets/Shikigami/r/323.png index 999bf60..40c06fc 100644 Binary files a/public/assets/Shikigami/r/323.png and b/public/assets/Shikigami/r/323.png differ diff --git a/public/assets/Shikigami/r/361.png b/public/assets/Shikigami/r/361.png index d358878..84afa95 100644 Binary files a/public/assets/Shikigami/r/361.png and b/public/assets/Shikigami/r/361.png differ diff --git a/public/assets/Shikigami/r/375.png b/public/assets/Shikigami/r/375.png index ecaa49d..f46d39d 100644 Binary files a/public/assets/Shikigami/r/375.png and b/public/assets/Shikigami/r/375.png differ diff --git a/public/assets/Shikigami/sp/315.png b/public/assets/Shikigami/sp/315.png index 8c3a845..f68b39b 100644 Binary files a/public/assets/Shikigami/sp/315.png and b/public/assets/Shikigami/sp/315.png differ diff --git a/public/assets/Shikigami/sp/322.png b/public/assets/Shikigami/sp/322.png index e664348..61befb1 100644 Binary files a/public/assets/Shikigami/sp/322.png and b/public/assets/Shikigami/sp/322.png differ diff --git a/public/assets/Shikigami/sp/326.png b/public/assets/Shikigami/sp/326.png index 02f37a0..0a5e7d0 100644 Binary files a/public/assets/Shikigami/sp/326.png and b/public/assets/Shikigami/sp/326.png differ diff --git a/public/assets/Shikigami/sp/327.png b/public/assets/Shikigami/sp/327.png index 3718989..8bc5f65 100644 Binary files a/public/assets/Shikigami/sp/327.png and b/public/assets/Shikigami/sp/327.png differ diff --git a/public/assets/Shikigami/sp/328.png b/public/assets/Shikigami/sp/328.png index 21e81ec..e07abfc 100644 Binary files a/public/assets/Shikigami/sp/328.png and b/public/assets/Shikigami/sp/328.png differ diff --git a/public/assets/Shikigami/sp/331.png b/public/assets/Shikigami/sp/331.png index 5f6dfaf..d73a505 100644 Binary files a/public/assets/Shikigami/sp/331.png and b/public/assets/Shikigami/sp/331.png differ diff --git a/public/assets/Shikigami/sp/334.png b/public/assets/Shikigami/sp/334.png index e95802f..2209821 100644 Binary files a/public/assets/Shikigami/sp/334.png and b/public/assets/Shikigami/sp/334.png differ diff --git a/public/assets/Shikigami/sp/339.png b/public/assets/Shikigami/sp/339.png index a869b48..aadbfec 100644 Binary files a/public/assets/Shikigami/sp/339.png and b/public/assets/Shikigami/sp/339.png differ diff --git a/public/assets/Shikigami/sp/341.png b/public/assets/Shikigami/sp/341.png index fcf1aa0..eb63326 100644 Binary files a/public/assets/Shikigami/sp/341.png and b/public/assets/Shikigami/sp/341.png differ diff --git a/public/assets/Shikigami/sp/343.png b/public/assets/Shikigami/sp/343.png index faaf1cf..873cd27 100644 Binary files a/public/assets/Shikigami/sp/343.png and b/public/assets/Shikigami/sp/343.png differ diff --git a/public/assets/Shikigami/sp/346.png b/public/assets/Shikigami/sp/346.png index 8c0c923..1f7b8d4 100644 Binary files a/public/assets/Shikigami/sp/346.png and b/public/assets/Shikigami/sp/346.png differ diff --git a/public/assets/Shikigami/sp/348.png b/public/assets/Shikigami/sp/348.png index 5c7377b..414f70f 100644 Binary files a/public/assets/Shikigami/sp/348.png and b/public/assets/Shikigami/sp/348.png differ diff --git a/public/assets/Shikigami/sp/352.png b/public/assets/Shikigami/sp/352.png index 00d356f..9cb0972 100644 Binary files a/public/assets/Shikigami/sp/352.png and b/public/assets/Shikigami/sp/352.png differ diff --git a/public/assets/Shikigami/sp/354.png b/public/assets/Shikigami/sp/354.png index 019326a..a1d90cc 100644 Binary files a/public/assets/Shikigami/sp/354.png and b/public/assets/Shikigami/sp/354.png differ diff --git a/public/assets/Shikigami/sp/355.png b/public/assets/Shikigami/sp/355.png index d6b858f..5d3a527 100644 Binary files a/public/assets/Shikigami/sp/355.png and b/public/assets/Shikigami/sp/355.png differ diff --git a/public/assets/Shikigami/sp/357.png b/public/assets/Shikigami/sp/357.png index bec0dc3..fefecaa 100644 Binary files a/public/assets/Shikigami/sp/357.png and b/public/assets/Shikigami/sp/357.png differ diff --git a/public/assets/Shikigami/sp/358.png b/public/assets/Shikigami/sp/358.png index d20084d..1158a27 100644 Binary files a/public/assets/Shikigami/sp/358.png and b/public/assets/Shikigami/sp/358.png differ diff --git a/public/assets/Shikigami/sp/362.png b/public/assets/Shikigami/sp/362.png index 5b1d532..8834949 100644 Binary files a/public/assets/Shikigami/sp/362.png and b/public/assets/Shikigami/sp/362.png differ diff --git a/public/assets/Shikigami/sp/366.png b/public/assets/Shikigami/sp/366.png index 43c4c49..e2b14c4 100644 Binary files a/public/assets/Shikigami/sp/366.png and b/public/assets/Shikigami/sp/366.png differ diff --git a/public/assets/Shikigami/sp/367.png b/public/assets/Shikigami/sp/367.png index 6d95e15..f431165 100644 Binary files a/public/assets/Shikigami/sp/367.png and b/public/assets/Shikigami/sp/367.png differ diff --git a/public/assets/Shikigami/sp/372.png b/public/assets/Shikigami/sp/372.png index d8d98cb..b1d3595 100644 Binary files a/public/assets/Shikigami/sp/372.png and b/public/assets/Shikigami/sp/372.png differ diff --git a/public/assets/Shikigami/sp/377.png b/public/assets/Shikigami/sp/377.png index 8ae0425..cd7758e 100644 Binary files a/public/assets/Shikigami/sp/377.png and b/public/assets/Shikigami/sp/377.png differ diff --git a/public/assets/Shikigami/sp/383.png b/public/assets/Shikigami/sp/383.png index 4a931e9..84d87b1 100644 Binary files a/public/assets/Shikigami/sp/383.png and b/public/assets/Shikigami/sp/383.png differ diff --git a/public/assets/Shikigami/sp/385.png b/public/assets/Shikigami/sp/385.png index 23cfb6b..8e7ac72 100644 Binary files a/public/assets/Shikigami/sp/385.png and b/public/assets/Shikigami/sp/385.png differ diff --git a/public/assets/Shikigami/sp/388.png b/public/assets/Shikigami/sp/388.png index b1e6e47..c91a56a 100644 Binary files a/public/assets/Shikigami/sp/388.png and b/public/assets/Shikigami/sp/388.png differ diff --git a/public/assets/Shikigami/sp/390.png b/public/assets/Shikigami/sp/390.png index 6a5c137..abe8452 100644 Binary files a/public/assets/Shikigami/sp/390.png and b/public/assets/Shikigami/sp/390.png differ diff --git a/public/assets/Shikigami/sp/393.png b/public/assets/Shikigami/sp/393.png index 2579889..b5d37b1 100644 Binary files a/public/assets/Shikigami/sp/393.png and b/public/assets/Shikigami/sp/393.png differ diff --git a/public/assets/Shikigami/sp/395.png b/public/assets/Shikigami/sp/395.png index af1adf2..b4f9f45 100644 Binary files a/public/assets/Shikigami/sp/395.png and b/public/assets/Shikigami/sp/395.png differ diff --git a/public/assets/Shikigami/sp/396.png b/public/assets/Shikigami/sp/396.png index 1980c53..7ef0f30 100644 Binary files a/public/assets/Shikigami/sp/396.png and b/public/assets/Shikigami/sp/396.png differ diff --git a/public/assets/Shikigami/sp/551.png b/public/assets/Shikigami/sp/551.png index 4bff1ce..14afa01 100644 Binary files a/public/assets/Shikigami/sp/551.png and b/public/assets/Shikigami/sp/551.png differ diff --git a/public/assets/Shikigami/sp/554.png b/public/assets/Shikigami/sp/554.png index f3af099..14b4750 100644 Binary files a/public/assets/Shikigami/sp/554.png and b/public/assets/Shikigami/sp/554.png differ diff --git a/public/assets/Shikigami/sp/555.png b/public/assets/Shikigami/sp/555.png index de4b094..9e625aa 100644 Binary files a/public/assets/Shikigami/sp/555.png and b/public/assets/Shikigami/sp/555.png differ diff --git a/public/assets/Shikigami/sp/559.png b/public/assets/Shikigami/sp/559.png index e8e1386..149f293 100644 Binary files a/public/assets/Shikigami/sp/559.png and b/public/assets/Shikigami/sp/559.png differ diff --git a/public/assets/Shikigami/sp/562.png b/public/assets/Shikigami/sp/562.png index 5ea838b..4fbcc61 100644 Binary files a/public/assets/Shikigami/sp/562.png and b/public/assets/Shikigami/sp/562.png differ diff --git a/public/assets/Shikigami/sp/565.png b/public/assets/Shikigami/sp/565.png index 8ea36e9..ba8f0ee 100644 Binary files a/public/assets/Shikigami/sp/565.png and b/public/assets/Shikigami/sp/565.png differ diff --git a/public/assets/Shikigami/sp/566.png b/public/assets/Shikigami/sp/566.png index a5c7be1..7ce6a5d 100644 Binary files a/public/assets/Shikigami/sp/566.png and b/public/assets/Shikigami/sp/566.png differ diff --git a/public/assets/Shikigami/sp/568.png b/public/assets/Shikigami/sp/568.png index ee13d17..3bafe0e 100644 Binary files a/public/assets/Shikigami/sp/568.png and b/public/assets/Shikigami/sp/568.png differ diff --git a/public/assets/Shikigami/sp/572.png b/public/assets/Shikigami/sp/572.png index e0315b9..f70581c 100644 Binary files a/public/assets/Shikigami/sp/572.png and b/public/assets/Shikigami/sp/572.png differ diff --git a/public/assets/Shikigami/sp/574.png b/public/assets/Shikigami/sp/574.png index 223beb7..aa6f98d 100644 Binary files a/public/assets/Shikigami/sp/574.png and b/public/assets/Shikigami/sp/574.png differ diff --git a/public/assets/Shikigami/sp/578.png b/public/assets/Shikigami/sp/578.png index 244b1c7..2143f37 100644 Binary files a/public/assets/Shikigami/sp/578.png and b/public/assets/Shikigami/sp/578.png differ diff --git a/public/assets/Shikigami/sp/579.png b/public/assets/Shikigami/sp/579.png index b74e0b7..baf2209 100644 Binary files a/public/assets/Shikigami/sp/579.png and b/public/assets/Shikigami/sp/579.png differ diff --git a/public/assets/Shikigami/sp/580.png b/public/assets/Shikigami/sp/580.png index aa969de..9c7a5db 100644 Binary files a/public/assets/Shikigami/sp/580.png and b/public/assets/Shikigami/sp/580.png differ diff --git a/public/assets/Shikigami/sp/584.png b/public/assets/Shikigami/sp/584.png index 046e2dd..c36408f 100644 Binary files a/public/assets/Shikigami/sp/584.png and b/public/assets/Shikigami/sp/584.png differ diff --git a/public/assets/Shikigami/sp/586.png b/public/assets/Shikigami/sp/586.png index c40a8bf..bdc082d 100644 Binary files a/public/assets/Shikigami/sp/586.png and b/public/assets/Shikigami/sp/586.png differ diff --git a/public/assets/Shikigami/sp/590.png b/public/assets/Shikigami/sp/590.png index 2972465..b4fc5c2 100644 Binary files a/public/assets/Shikigami/sp/590.png and b/public/assets/Shikigami/sp/590.png differ diff --git a/public/assets/Shikigami/sp/594.png b/public/assets/Shikigami/sp/594.png index df5986b..8dc1aae 100644 Binary files a/public/assets/Shikigami/sp/594.png and b/public/assets/Shikigami/sp/594.png differ diff --git a/public/assets/Shikigami/sp/595.png b/public/assets/Shikigami/sp/595.png new file mode 100644 index 0000000..779ad51 Binary files /dev/null and b/public/assets/Shikigami/sp/595.png differ diff --git a/public/assets/Shikigami/sp/598.png b/public/assets/Shikigami/sp/598.png new file mode 100644 index 0000000..42a6971 Binary files /dev/null and b/public/assets/Shikigami/sp/598.png differ diff --git a/public/assets/Shikigami/sr/200.png b/public/assets/Shikigami/sr/200.png index 58ac50b..933e4bc 100644 Binary files a/public/assets/Shikigami/sr/200.png and b/public/assets/Shikigami/sr/200.png differ diff --git a/public/assets/Shikigami/sr/201.png b/public/assets/Shikigami/sr/201.png index 90cebbc..f735bd5 100644 Binary files a/public/assets/Shikigami/sr/201.png and b/public/assets/Shikigami/sr/201.png differ diff --git a/public/assets/Shikigami/sr/210.png b/public/assets/Shikigami/sr/210.png index 79038f8..c59900b 100644 Binary files a/public/assets/Shikigami/sr/210.png and b/public/assets/Shikigami/sr/210.png differ diff --git a/public/assets/Shikigami/sr/211.png b/public/assets/Shikigami/sr/211.png index 92d59c9..9f4d8ef 100644 Binary files a/public/assets/Shikigami/sr/211.png and b/public/assets/Shikigami/sr/211.png differ diff --git a/public/assets/Shikigami/sr/215.png b/public/assets/Shikigami/sr/215.png index 9a6c937..ba8472f 100644 Binary files a/public/assets/Shikigami/sr/215.png and b/public/assets/Shikigami/sr/215.png differ diff --git a/public/assets/Shikigami/sr/220.png b/public/assets/Shikigami/sr/220.png index 4b2ad31..be0dc29 100644 Binary files a/public/assets/Shikigami/sr/220.png and b/public/assets/Shikigami/sr/220.png differ diff --git a/public/assets/Shikigami/sr/223.png b/public/assets/Shikigami/sr/223.png index a1ea2d1..94f8530 100644 Binary files a/public/assets/Shikigami/sr/223.png and b/public/assets/Shikigami/sr/223.png differ diff --git a/public/assets/Shikigami/sr/231.png b/public/assets/Shikigami/sr/231.png index 1dc564e..f8bb5ea 100644 Binary files a/public/assets/Shikigami/sr/231.png and b/public/assets/Shikigami/sr/231.png differ diff --git a/public/assets/Shikigami/sr/233.png b/public/assets/Shikigami/sr/233.png index 181814e..f40c144 100644 Binary files a/public/assets/Shikigami/sr/233.png and b/public/assets/Shikigami/sr/233.png differ diff --git a/public/assets/Shikigami/sr/242.png b/public/assets/Shikigami/sr/242.png index e50b1eb..c7a6b19 100644 Binary files a/public/assets/Shikigami/sr/242.png and b/public/assets/Shikigami/sr/242.png differ diff --git a/public/assets/Shikigami/sr/247.png b/public/assets/Shikigami/sr/247.png index 187dd08..4b12f48 100644 Binary files a/public/assets/Shikigami/sr/247.png and b/public/assets/Shikigami/sr/247.png differ diff --git a/public/assets/Shikigami/sr/251.png b/public/assets/Shikigami/sr/251.png index f870fd5..de7cab3 100644 Binary files a/public/assets/Shikigami/sr/251.png and b/public/assets/Shikigami/sr/251.png differ diff --git a/public/assets/Shikigami/sr/252.png b/public/assets/Shikigami/sr/252.png index 018c6c8..1619e49 100644 Binary files a/public/assets/Shikigami/sr/252.png and b/public/assets/Shikigami/sr/252.png differ diff --git a/public/assets/Shikigami/sr/253.png b/public/assets/Shikigami/sr/253.png index aa87aa0..a58a505 100644 Binary files a/public/assets/Shikigami/sr/253.png and b/public/assets/Shikigami/sr/253.png differ diff --git a/public/assets/Shikigami/sr/254.png b/public/assets/Shikigami/sr/254.png index 043abf1..d8454d4 100644 Binary files a/public/assets/Shikigami/sr/254.png and b/public/assets/Shikigami/sr/254.png differ diff --git a/public/assets/Shikigami/sr/256.png b/public/assets/Shikigami/sr/256.png index 3ffa675..66085f9 100644 Binary files a/public/assets/Shikigami/sr/256.png and b/public/assets/Shikigami/sr/256.png differ diff --git a/public/assets/Shikigami/sr/257.png b/public/assets/Shikigami/sr/257.png index 45ad1ba..4dfb0c0 100644 Binary files a/public/assets/Shikigami/sr/257.png and b/public/assets/Shikigami/sr/257.png differ diff --git a/public/assets/Shikigami/sr/260.png b/public/assets/Shikigami/sr/260.png index 6a82212..8c1e09a 100644 Binary files a/public/assets/Shikigami/sr/260.png and b/public/assets/Shikigami/sr/260.png differ diff --git a/public/assets/Shikigami/sr/261.png b/public/assets/Shikigami/sr/261.png index 24f0ceb..b15ceb2 100644 Binary files a/public/assets/Shikigami/sr/261.png and b/public/assets/Shikigami/sr/261.png differ diff --git a/public/assets/Shikigami/sr/262.png b/public/assets/Shikigami/sr/262.png index b6f450c..fb0198a 100644 Binary files a/public/assets/Shikigami/sr/262.png and b/public/assets/Shikigami/sr/262.png differ diff --git a/public/assets/Shikigami/sr/263.png b/public/assets/Shikigami/sr/263.png index 4afebf2..34e2bda 100644 Binary files a/public/assets/Shikigami/sr/263.png and b/public/assets/Shikigami/sr/263.png differ diff --git a/public/assets/Shikigami/sr/264.png b/public/assets/Shikigami/sr/264.png index cc2a0ed..dee1b2c 100644 Binary files a/public/assets/Shikigami/sr/264.png and b/public/assets/Shikigami/sr/264.png differ diff --git a/public/assets/Shikigami/sr/267.png b/public/assets/Shikigami/sr/267.png index d92b00d..39623d5 100644 Binary files a/public/assets/Shikigami/sr/267.png and b/public/assets/Shikigami/sr/267.png differ diff --git a/public/assets/Shikigami/sr/268.png b/public/assets/Shikigami/sr/268.png index 4382d1a..2041340 100644 Binary files a/public/assets/Shikigami/sr/268.png and b/public/assets/Shikigami/sr/268.png differ diff --git a/public/assets/Shikigami/sr/270.png b/public/assets/Shikigami/sr/270.png index 9b81706..ed87fa7 100644 Binary files a/public/assets/Shikigami/sr/270.png and b/public/assets/Shikigami/sr/270.png differ diff --git a/public/assets/Shikigami/sr/271.png b/public/assets/Shikigami/sr/271.png index f7ba0e5..bf70f68 100644 Binary files a/public/assets/Shikigami/sr/271.png and b/public/assets/Shikigami/sr/271.png differ diff --git a/public/assets/Shikigami/sr/273.png b/public/assets/Shikigami/sr/273.png index 557e9a3..73c3248 100644 Binary files a/public/assets/Shikigami/sr/273.png and b/public/assets/Shikigami/sr/273.png differ diff --git a/public/assets/Shikigami/sr/275.png b/public/assets/Shikigami/sr/275.png index 92f53a2..02df060 100644 Binary files a/public/assets/Shikigami/sr/275.png and b/public/assets/Shikigami/sr/275.png differ diff --git a/public/assets/Shikigami/sr/276.png b/public/assets/Shikigami/sr/276.png index e4d8451..c59b9cc 100644 Binary files a/public/assets/Shikigami/sr/276.png and b/public/assets/Shikigami/sr/276.png differ diff --git a/public/assets/Shikigami/sr/277.png b/public/assets/Shikigami/sr/277.png index 787bf67..2356360 100644 Binary files a/public/assets/Shikigami/sr/277.png and b/public/assets/Shikigami/sr/277.png differ diff --git a/public/assets/Shikigami/sr/278.png b/public/assets/Shikigami/sr/278.png index 3f6665b..1211044 100644 Binary files a/public/assets/Shikigami/sr/278.png and b/public/assets/Shikigami/sr/278.png differ diff --git a/public/assets/Shikigami/sr/281.png b/public/assets/Shikigami/sr/281.png index 07f7c22..982f55a 100644 Binary files a/public/assets/Shikigami/sr/281.png and b/public/assets/Shikigami/sr/281.png differ diff --git a/public/assets/Shikigami/sr/282.png b/public/assets/Shikigami/sr/282.png index 56529f6..2007573 100644 Binary files a/public/assets/Shikigami/sr/282.png and b/public/assets/Shikigami/sr/282.png differ diff --git a/public/assets/Shikigami/sr/285.png b/public/assets/Shikigami/sr/285.png index 2280886..0cdabe7 100644 Binary files a/public/assets/Shikigami/sr/285.png and b/public/assets/Shikigami/sr/285.png differ diff --git a/public/assets/Shikigami/sr/286.png b/public/assets/Shikigami/sr/286.png index 61ab449..80b01d5 100644 Binary files a/public/assets/Shikigami/sr/286.png and b/public/assets/Shikigami/sr/286.png differ diff --git a/public/assets/Shikigami/sr/287.png b/public/assets/Shikigami/sr/287.png index 14412ce..8736b45 100644 Binary files a/public/assets/Shikigami/sr/287.png and b/public/assets/Shikigami/sr/287.png differ diff --git a/public/assets/Shikigami/sr/290.png b/public/assets/Shikigami/sr/290.png index 52bd488..3bcb81f 100644 Binary files a/public/assets/Shikigami/sr/290.png and b/public/assets/Shikigami/sr/290.png differ diff --git a/public/assets/Shikigami/sr/291.png b/public/assets/Shikigami/sr/291.png index 8f42f57..5404fac 100644 Binary files a/public/assets/Shikigami/sr/291.png and b/public/assets/Shikigami/sr/291.png differ diff --git a/public/assets/Shikigami/sr/293.png b/public/assets/Shikigami/sr/293.png index 5dba97d..3c587b0 100644 Binary files a/public/assets/Shikigami/sr/293.png and b/public/assets/Shikigami/sr/293.png differ diff --git a/public/assets/Shikigami/sr/295.png b/public/assets/Shikigami/sr/295.png index bc54a6f..3c272c8 100644 Binary files a/public/assets/Shikigami/sr/295.png and b/public/assets/Shikigami/sr/295.png differ diff --git a/public/assets/Shikigami/sr/297.png b/public/assets/Shikigami/sr/297.png index 8c947b6..90698a5 100644 Binary files a/public/assets/Shikigami/sr/297.png and b/public/assets/Shikigami/sr/297.png differ diff --git a/public/assets/Shikigami/sr/298.png b/public/assets/Shikigami/sr/298.png index 539b3ec..847d7c4 100644 Binary files a/public/assets/Shikigami/sr/298.png and b/public/assets/Shikigami/sr/298.png differ diff --git a/public/assets/Shikigami/sr/303.png b/public/assets/Shikigami/sr/303.png index 156ad04..2fcd839 100644 Binary files a/public/assets/Shikigami/sr/303.png and b/public/assets/Shikigami/sr/303.png differ diff --git a/public/assets/Shikigami/sr/307.png b/public/assets/Shikigami/sr/307.png index a158236..ca54ed0 100644 Binary files a/public/assets/Shikigami/sr/307.png and b/public/assets/Shikigami/sr/307.png differ diff --git a/public/assets/Shikigami/sr/317.png b/public/assets/Shikigami/sr/317.png index 5fda6b8..febeff4 100644 Binary files a/public/assets/Shikigami/sr/317.png and b/public/assets/Shikigami/sr/317.png differ diff --git a/public/assets/Shikigami/sr/318.png b/public/assets/Shikigami/sr/318.png index d9bf82e..73f0969 100644 Binary files a/public/assets/Shikigami/sr/318.png and b/public/assets/Shikigami/sr/318.png differ diff --git a/public/assets/Shikigami/sr/320.png b/public/assets/Shikigami/sr/320.png index 3ff776e..5f63e35 100644 Binary files a/public/assets/Shikigami/sr/320.png and b/public/assets/Shikigami/sr/320.png differ diff --git a/public/assets/Shikigami/sr/321.png b/public/assets/Shikigami/sr/321.png index b383be9..7e07dc9 100644 Binary files a/public/assets/Shikigami/sr/321.png and b/public/assets/Shikigami/sr/321.png differ diff --git a/public/assets/Shikigami/sr/324.png b/public/assets/Shikigami/sr/324.png index 00ae27b..67b1250 100644 Binary files a/public/assets/Shikigami/sr/324.png and b/public/assets/Shikigami/sr/324.png differ diff --git a/public/assets/Shikigami/sr/329.png b/public/assets/Shikigami/sr/329.png index da7a11d..ace440c 100644 Binary files a/public/assets/Shikigami/sr/329.png and b/public/assets/Shikigami/sr/329.png differ diff --git a/public/assets/Shikigami/sr/332.png b/public/assets/Shikigami/sr/332.png index a2a57f3..9eb3790 100644 Binary files a/public/assets/Shikigami/sr/332.png and b/public/assets/Shikigami/sr/332.png differ diff --git a/public/assets/Shikigami/sr/335.png b/public/assets/Shikigami/sr/335.png index bfabacc..ea04add 100644 Binary files a/public/assets/Shikigami/sr/335.png and b/public/assets/Shikigami/sr/335.png differ diff --git a/public/assets/Shikigami/sr/340.png b/public/assets/Shikigami/sr/340.png index e74d28b..9b60664 100644 Binary files a/public/assets/Shikigami/sr/340.png and b/public/assets/Shikigami/sr/340.png differ diff --git a/public/assets/Shikigami/sr/342.png b/public/assets/Shikigami/sr/342.png index b10b5c0..39d4fa9 100644 Binary files a/public/assets/Shikigami/sr/342.png and b/public/assets/Shikigami/sr/342.png differ diff --git a/public/assets/Shikigami/sr/349.png b/public/assets/Shikigami/sr/349.png index 7eda431..aaaeafc 100644 Binary files a/public/assets/Shikigami/sr/349.png and b/public/assets/Shikigami/sr/349.png differ diff --git a/public/assets/Shikigami/sr/350.png b/public/assets/Shikigami/sr/350.png index 1287374..f427ecf 100644 Binary files a/public/assets/Shikigami/sr/350.png and b/public/assets/Shikigami/sr/350.png differ diff --git a/public/assets/Shikigami/sr/365.png b/public/assets/Shikigami/sr/365.png index 1c6ac98..6c69492 100644 Binary files a/public/assets/Shikigami/sr/365.png and b/public/assets/Shikigami/sr/365.png differ diff --git a/public/assets/Shikigami/sr/368.png b/public/assets/Shikigami/sr/368.png index 1d79529..84bbf32 100644 Binary files a/public/assets/Shikigami/sr/368.png and b/public/assets/Shikigami/sr/368.png differ diff --git a/public/assets/Shikigami/sr/371.png b/public/assets/Shikigami/sr/371.png index 020995b..6e9c4a3 100644 Binary files a/public/assets/Shikigami/sr/371.png and b/public/assets/Shikigami/sr/371.png differ diff --git a/public/assets/Shikigami/sr/378.png b/public/assets/Shikigami/sr/378.png index 52425c7..b410832 100644 Binary files a/public/assets/Shikigami/sr/378.png and b/public/assets/Shikigami/sr/378.png differ diff --git a/public/assets/Shikigami/sr/382.png b/public/assets/Shikigami/sr/382.png index a9efbbb..7da5fac 100644 Binary files a/public/assets/Shikigami/sr/382.png and b/public/assets/Shikigami/sr/382.png differ diff --git a/public/assets/Shikigami/sr/384.png b/public/assets/Shikigami/sr/384.png index bd94512..0c065d1 100644 Binary files a/public/assets/Shikigami/sr/384.png and b/public/assets/Shikigami/sr/384.png differ diff --git a/public/assets/Shikigami/sr/398.png b/public/assets/Shikigami/sr/398.png index 097c4d6..fef6f24 100644 Binary files a/public/assets/Shikigami/sr/398.png and b/public/assets/Shikigami/sr/398.png differ diff --git a/public/assets/Shikigami/sr/552.png b/public/assets/Shikigami/sr/552.png index b91c168..a02db85 100644 Binary files a/public/assets/Shikigami/sr/552.png and b/public/assets/Shikigami/sr/552.png differ diff --git a/public/assets/Shikigami/sr/558.png b/public/assets/Shikigami/sr/558.png index 0674995..dc55c04 100644 Binary files a/public/assets/Shikigami/sr/558.png and b/public/assets/Shikigami/sr/558.png differ diff --git a/public/assets/Shikigami/sr/571.png b/public/assets/Shikigami/sr/571.png new file mode 100644 index 0000000..837d2bb Binary files /dev/null and b/public/assets/Shikigami/sr/571.png differ diff --git a/public/assets/Shikigami/ssr/217.png b/public/assets/Shikigami/ssr/217.png index 67a8583..b2d85e0 100644 Binary files a/public/assets/Shikigami/ssr/217.png and b/public/assets/Shikigami/ssr/217.png differ diff --git a/public/assets/Shikigami/ssr/219.png b/public/assets/Shikigami/ssr/219.png index 57432f3..1aef6db 100644 Binary files a/public/assets/Shikigami/ssr/219.png and b/public/assets/Shikigami/ssr/219.png differ diff --git a/public/assets/Shikigami/ssr/248.png b/public/assets/Shikigami/ssr/248.png index 183e763..a7e9904 100644 Binary files a/public/assets/Shikigami/ssr/248.png and b/public/assets/Shikigami/ssr/248.png differ diff --git a/public/assets/Shikigami/ssr/255.png b/public/assets/Shikigami/ssr/255.png index ffcfc43..2d649d5 100644 Binary files a/public/assets/Shikigami/ssr/255.png and b/public/assets/Shikigami/ssr/255.png differ diff --git a/public/assets/Shikigami/ssr/258.png b/public/assets/Shikigami/ssr/258.png index d454bb3..d71b212 100644 Binary files a/public/assets/Shikigami/ssr/258.png and b/public/assets/Shikigami/ssr/258.png differ diff --git a/public/assets/Shikigami/ssr/259.png b/public/assets/Shikigami/ssr/259.png index 93db454..4ffd6e6 100644 Binary files a/public/assets/Shikigami/ssr/259.png and b/public/assets/Shikigami/ssr/259.png differ diff --git a/public/assets/Shikigami/ssr/265.png b/public/assets/Shikigami/ssr/265.png index e011e50..6a7390d 100644 Binary files a/public/assets/Shikigami/ssr/265.png and b/public/assets/Shikigami/ssr/265.png differ diff --git a/public/assets/Shikigami/ssr/266.png b/public/assets/Shikigami/ssr/266.png index 98baf93..7735b4d 100644 Binary files a/public/assets/Shikigami/ssr/266.png and b/public/assets/Shikigami/ssr/266.png differ diff --git a/public/assets/Shikigami/ssr/269.png b/public/assets/Shikigami/ssr/269.png index 67a806f..204b6e9 100644 Binary files a/public/assets/Shikigami/ssr/269.png and b/public/assets/Shikigami/ssr/269.png differ diff --git a/public/assets/Shikigami/ssr/272.png b/public/assets/Shikigami/ssr/272.png index a5f6287..65cc44d 100644 Binary files a/public/assets/Shikigami/ssr/272.png and b/public/assets/Shikigami/ssr/272.png differ diff --git a/public/assets/Shikigami/ssr/279.png b/public/assets/Shikigami/ssr/279.png index 87f8303..ee14a9c 100644 Binary files a/public/assets/Shikigami/ssr/279.png and b/public/assets/Shikigami/ssr/279.png differ diff --git a/public/assets/Shikigami/ssr/280.png b/public/assets/Shikigami/ssr/280.png index da26b53..1ce6c3c 100644 Binary files a/public/assets/Shikigami/ssr/280.png and b/public/assets/Shikigami/ssr/280.png differ diff --git a/public/assets/Shikigami/ssr/283.png b/public/assets/Shikigami/ssr/283.png index 8770773..0d91814 100644 Binary files a/public/assets/Shikigami/ssr/283.png and b/public/assets/Shikigami/ssr/283.png differ diff --git a/public/assets/Shikigami/ssr/288.png b/public/assets/Shikigami/ssr/288.png index 6b40dc6..34491ce 100644 Binary files a/public/assets/Shikigami/ssr/288.png and b/public/assets/Shikigami/ssr/288.png differ diff --git a/public/assets/Shikigami/ssr/292.png b/public/assets/Shikigami/ssr/292.png index b197bdd..5ab9647 100644 Binary files a/public/assets/Shikigami/ssr/292.png and b/public/assets/Shikigami/ssr/292.png differ diff --git a/public/assets/Shikigami/ssr/296.png b/public/assets/Shikigami/ssr/296.png index c9dbbbc..ce209b6 100644 Binary files a/public/assets/Shikigami/ssr/296.png and b/public/assets/Shikigami/ssr/296.png differ diff --git a/public/assets/Shikigami/ssr/300.png b/public/assets/Shikigami/ssr/300.png index 680a2f1..e7556a5 100644 Binary files a/public/assets/Shikigami/ssr/300.png and b/public/assets/Shikigami/ssr/300.png differ diff --git a/public/assets/Shikigami/ssr/304.png b/public/assets/Shikigami/ssr/304.png index 949ef14..50ab635 100644 Binary files a/public/assets/Shikigami/ssr/304.png and b/public/assets/Shikigami/ssr/304.png differ diff --git a/public/assets/Shikigami/ssr/311.png b/public/assets/Shikigami/ssr/311.png index 1582a84..1ac8253 100644 Binary files a/public/assets/Shikigami/ssr/311.png and b/public/assets/Shikigami/ssr/311.png differ diff --git a/public/assets/Shikigami/ssr/312.png b/public/assets/Shikigami/ssr/312.png index 3eb8c2e..a1f15ff 100644 Binary files a/public/assets/Shikigami/ssr/312.png and b/public/assets/Shikigami/ssr/312.png differ diff --git a/public/assets/Shikigami/ssr/316.png b/public/assets/Shikigami/ssr/316.png index ebb2d22..79abaf4 100644 Binary files a/public/assets/Shikigami/ssr/316.png and b/public/assets/Shikigami/ssr/316.png differ diff --git a/public/assets/Shikigami/ssr/325.png b/public/assets/Shikigami/ssr/325.png index a1a8670..0979b7c 100644 Binary files a/public/assets/Shikigami/ssr/325.png and b/public/assets/Shikigami/ssr/325.png differ diff --git a/public/assets/Shikigami/ssr/330.png b/public/assets/Shikigami/ssr/330.png index 3d76e99..482504b 100644 Binary files a/public/assets/Shikigami/ssr/330.png and b/public/assets/Shikigami/ssr/330.png differ diff --git a/public/assets/Shikigami/ssr/333.png b/public/assets/Shikigami/ssr/333.png index 8c223da..5cf983f 100644 Binary files a/public/assets/Shikigami/ssr/333.png and b/public/assets/Shikigami/ssr/333.png differ diff --git a/public/assets/Shikigami/ssr/338.png b/public/assets/Shikigami/ssr/338.png index 6f459f2..c920793 100644 Binary files a/public/assets/Shikigami/ssr/338.png and b/public/assets/Shikigami/ssr/338.png differ diff --git a/public/assets/Shikigami/ssr/344.png b/public/assets/Shikigami/ssr/344.png index 8654bd5..74c3cca 100644 Binary files a/public/assets/Shikigami/ssr/344.png and b/public/assets/Shikigami/ssr/344.png differ diff --git a/public/assets/Shikigami/ssr/345.png b/public/assets/Shikigami/ssr/345.png index 34df7ba..e3e4d48 100644 Binary files a/public/assets/Shikigami/ssr/345.png and b/public/assets/Shikigami/ssr/345.png differ diff --git a/public/assets/Shikigami/ssr/347.png b/public/assets/Shikigami/ssr/347.png index 74a8357..30b70fb 100644 Binary files a/public/assets/Shikigami/ssr/347.png and b/public/assets/Shikigami/ssr/347.png differ diff --git a/public/assets/Shikigami/ssr/351.png b/public/assets/Shikigami/ssr/351.png index 753a9c4..eabab2b 100644 Binary files a/public/assets/Shikigami/ssr/351.png and b/public/assets/Shikigami/ssr/351.png differ diff --git a/public/assets/Shikigami/ssr/353.png b/public/assets/Shikigami/ssr/353.png index e4dbc8f..198dde0 100644 Binary files a/public/assets/Shikigami/ssr/353.png and b/public/assets/Shikigami/ssr/353.png differ diff --git a/public/assets/Shikigami/ssr/356.png b/public/assets/Shikigami/ssr/356.png index 27b5ea3..1859a83 100644 Binary files a/public/assets/Shikigami/ssr/356.png and b/public/assets/Shikigami/ssr/356.png differ diff --git a/public/assets/Shikigami/ssr/363.png b/public/assets/Shikigami/ssr/363.png index 0664144..4e03cc9 100644 Binary files a/public/assets/Shikigami/ssr/363.png and b/public/assets/Shikigami/ssr/363.png differ diff --git a/public/assets/Shikigami/ssr/364.png b/public/assets/Shikigami/ssr/364.png index 51c4ea4..79826d3 100644 Binary files a/public/assets/Shikigami/ssr/364.png and b/public/assets/Shikigami/ssr/364.png differ diff --git a/public/assets/Shikigami/ssr/369.png b/public/assets/Shikigami/ssr/369.png index abaf6dc..c01d810 100644 Binary files a/public/assets/Shikigami/ssr/369.png and b/public/assets/Shikigami/ssr/369.png differ diff --git a/public/assets/Shikigami/ssr/370.png b/public/assets/Shikigami/ssr/370.png index ca71b60..a93f4bf 100644 Binary files a/public/assets/Shikigami/ssr/370.png and b/public/assets/Shikigami/ssr/370.png differ diff --git a/public/assets/Shikigami/ssr/376.png b/public/assets/Shikigami/ssr/376.png index 7a4cecc..fcefe3c 100644 Binary files a/public/assets/Shikigami/ssr/376.png and b/public/assets/Shikigami/ssr/376.png differ diff --git a/public/assets/Shikigami/ssr/379.png b/public/assets/Shikigami/ssr/379.png index 070eee6..672dd3f 100644 Binary files a/public/assets/Shikigami/ssr/379.png and b/public/assets/Shikigami/ssr/379.png differ diff --git a/public/assets/Shikigami/ssr/389.png b/public/assets/Shikigami/ssr/389.png index 476c76c..e78db1b 100644 Binary files a/public/assets/Shikigami/ssr/389.png and b/public/assets/Shikigami/ssr/389.png differ diff --git a/public/assets/Shikigami/ssr/391.png b/public/assets/Shikigami/ssr/391.png index a5ada2e..f5a3ccc 100644 Binary files a/public/assets/Shikigami/ssr/391.png and b/public/assets/Shikigami/ssr/391.png differ diff --git a/public/assets/Shikigami/ssr/392.png b/public/assets/Shikigami/ssr/392.png index bc05b2c..7c01251 100644 Binary files a/public/assets/Shikigami/ssr/392.png and b/public/assets/Shikigami/ssr/392.png differ diff --git a/public/assets/Shikigami/ssr/394.png b/public/assets/Shikigami/ssr/394.png index c33c54c..ec3bd19 100644 Binary files a/public/assets/Shikigami/ssr/394.png and b/public/assets/Shikigami/ssr/394.png differ diff --git a/public/assets/Shikigami/ssr/399.png b/public/assets/Shikigami/ssr/399.png index 8d59091..9f46607 100644 Binary files a/public/assets/Shikigami/ssr/399.png and b/public/assets/Shikigami/ssr/399.png differ diff --git a/public/assets/Shikigami/ssr/550.png b/public/assets/Shikigami/ssr/550.png index 2a2bfa4..ead00e9 100644 Binary files a/public/assets/Shikigami/ssr/550.png and b/public/assets/Shikigami/ssr/550.png differ diff --git a/public/assets/Shikigami/ssr/556.png b/public/assets/Shikigami/ssr/556.png index ca64b71..d7945a5 100644 Binary files a/public/assets/Shikigami/ssr/556.png and b/public/assets/Shikigami/ssr/556.png differ diff --git a/public/assets/Shikigami/ssr/557.png b/public/assets/Shikigami/ssr/557.png index 4034541..70fef97 100644 Binary files a/public/assets/Shikigami/ssr/557.png and b/public/assets/Shikigami/ssr/557.png differ diff --git a/public/assets/Shikigami/ssr/561.png b/public/assets/Shikigami/ssr/561.png index 9376a4f..4f333c4 100644 Binary files a/public/assets/Shikigami/ssr/561.png and b/public/assets/Shikigami/ssr/561.png differ diff --git a/public/assets/Shikigami/ssr/569.png b/public/assets/Shikigami/ssr/569.png index fb04834..60d1da1 100644 Binary files a/public/assets/Shikigami/ssr/569.png and b/public/assets/Shikigami/ssr/569.png differ diff --git a/public/assets/Shikigami/ssr/570.png b/public/assets/Shikigami/ssr/570.png index 52a4362..1d451d0 100644 Binary files a/public/assets/Shikigami/ssr/570.png and b/public/assets/Shikigami/ssr/570.png differ diff --git a/public/assets/Shikigami/ssr/573.png b/public/assets/Shikigami/ssr/573.png index 6e275be..db9ac4d 100644 Binary files a/public/assets/Shikigami/ssr/573.png and b/public/assets/Shikigami/ssr/573.png differ diff --git a/public/assets/Shikigami/ssr/575.png b/public/assets/Shikigami/ssr/575.png index 407242b..fb37f03 100644 Binary files a/public/assets/Shikigami/ssr/575.png and b/public/assets/Shikigami/ssr/575.png differ diff --git a/public/assets/Shikigami/ssr/577.png b/public/assets/Shikigami/ssr/577.png index de3937d..4ca1147 100644 Binary files a/public/assets/Shikigami/ssr/577.png and b/public/assets/Shikigami/ssr/577.png differ diff --git a/public/assets/Shikigami/ssr/581.png b/public/assets/Shikigami/ssr/581.png index 8f2066a..061f458 100644 Binary files a/public/assets/Shikigami/ssr/581.png and b/public/assets/Shikigami/ssr/581.png differ diff --git a/public/assets/Shikigami/ssr/583.png b/public/assets/Shikigami/ssr/583.png index ccdb4e0..cb9dc50 100644 Binary files a/public/assets/Shikigami/ssr/583.png and b/public/assets/Shikigami/ssr/583.png differ diff --git a/public/assets/Shikigami/ssr/591.png b/public/assets/Shikigami/ssr/591.png index b2ee817..90d9ed2 100644 Binary files a/public/assets/Shikigami/ssr/591.png and b/public/assets/Shikigami/ssr/591.png differ diff --git a/public/assets/Shikigami/ssr/592.png b/public/assets/Shikigami/ssr/592.png index 6c048eb..1577530 100644 Binary files a/public/assets/Shikigami/ssr/592.png and b/public/assets/Shikigami/ssr/592.png differ diff --git a/public/assets/Shikigami/ssr/596.png b/public/assets/Shikigami/ssr/596.png new file mode 100644 index 0000000..9c3cc68 Binary files /dev/null and b/public/assets/Shikigami/ssr/596.png differ diff --git a/public/assets/Shikigami/ssr/597.png b/public/assets/Shikigami/ssr/597.png new file mode 100644 index 0000000..4b8ba3a Binary files /dev/null and b/public/assets/Shikigami/ssr/597.png differ diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000..1630349 --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,36 @@ +# Shikigami Scraper + +This script scrapes Shikigami data from the official Onmyoji website and updates the configuration. + +## Usage + +1. Install dependencies: +```bash +cd scripts +npm install +``` + +2. Run the scraper: +```bash +npm run scrape +``` + +The script will: +- Fetch all Shikigami from different rarity types (SSR, SP, UR, SR, R, N, L, G) +- Download images to `public/assets/Shikigami/{rarity}/` +- Update `src/data/Shikigami.json` with the new data + +## Output Structure + +Images: `public/assets/Shikigami/{rarity}/{id}.png` +JSON: `src/data/Shikigami.json` + +```json +[ + { + "avatar": "/assets/Shikigami/ssr/596.png", + "name": "神无月", + "rarity": "SSR" + } +] +``` diff --git a/scripts/package-lock.json b/scripts/package-lock.json new file mode 100644 index 0000000..869306c --- /dev/null +++ b/scripts/package-lock.json @@ -0,0 +1,836 @@ +{ + "name": "yys-editor-scripts", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "yys-editor-scripts", + "version": "1.0.0", + "dependencies": { + "jsdom": "^23.0.0" + } + }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-2.0.2.tgz", + "integrity": "sha512-x1KXOatwofR6ZAYzXRBL5wrdV0vwNxlTCK9NCuLqAzQYARqGcvFwiJA6A1ERuh+dgeA4Dxm3JBYictIes+SqUQ==", + "license": "MIT", + "dependencies": { + "bidi-js": "^1.0.3", + "css-tree": "^2.3.1", + "is-potential-custom-element-name": "^1.0.1" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "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/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "license": "MIT", + "dependencies": { + "require-from-string": "^2.0.2" + } + }, + "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/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/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssstyle": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "license": "MIT" + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "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==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/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/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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/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/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/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/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "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==", + "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==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.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==", + "license": "MIT" + }, + "node_modules/jsdom": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-23.2.0.tgz", + "integrity": "sha512-L88oL7D/8ufIES+Zjz7v0aes+oBMh2Xnh3ygWvL0OaICOomKEPKuPnIfBJekiXr+BHbbMjrWn/xqrDQuxFTeyA==", + "license": "MIT", + "dependencies": { + "@asamuzakjp/dom-selector": "^2.0.1", + "cssstyle": "^4.0.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "is-potential-custom-element-name": "^1.0.1", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.3", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.16.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "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==", + "license": "ISC" + }, + "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.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "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/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "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/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==", + "license": "MIT" + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.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==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "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==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + } + } +} diff --git a/scripts/package.json b/scripts/package.json new file mode 100644 index 0000000..db9956f --- /dev/null +++ b/scripts/package.json @@ -0,0 +1,13 @@ +{ + "name": "yys-editor-scripts", + "version": "1.0.0", + "description": "Scripts for YYS Editor", + "scripts": { + "scrape": "node scrape-shikigami.js", + "scrape-puppeteer": "node scrape-shikigami-puppeteer.js" + }, + "dependencies": { + "jsdom": "^23.0.0", + "puppeteer": "^21.0.0" + } +} diff --git a/scripts/scrape-shikigami-puppeteer.js b/scripts/scrape-shikigami-puppeteer.js new file mode 100644 index 0000000..ff602d9 --- /dev/null +++ b/scripts/scrape-shikigami-puppeteer.js @@ -0,0 +1,200 @@ +const puppeteer = require('puppeteer'); +const https = require('https'); +const http = require('http'); +const fs = require('fs'); +const path = require('path'); + +const IMAGE_DIR = path.join(__dirname, '../public/assets/Shikigami'); +const JSON_FILE = path.join(__dirname, '../src/data/Shikigami.json'); + +// Rarity types mapping: URL parameter -> directory name +const RARITY_TYPES = [ + { urlParam: 'ssr', dir: 'ssr' }, + { urlParam: 'sp', dir: 'sp' }, + { urlParam: 'ur', dir: 'ur' }, + { urlParam: 'sr', dir: 'sr' }, + { urlParam: 'r', dir: 'r' }, + { urlParam: 'n', dir: 'n' }, + { urlParam: 'ld', dir: 'l' }, + { urlParam: 'gt', dir: 'g' } +]; + +// Ensure image directory exists +function ensureDir(dir) { + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } +} + +// Download image +function downloadImage(url, filepath) { + return new Promise((resolve, reject) => { + const protocol = url.startsWith('https') ? https : http; + const file = fs.createWriteStream(filepath); + + protocol.get(url, (response) => { + if (response.statusCode === 200) { + response.pipe(file); + file.on('finish', () => { + file.close(); + resolve(); + }); + } else if (response.statusCode === 302 || response.statusCode === 301) { + downloadImage(response.headers.location, filepath).then(resolve).catch(reject); + } else { + reject(new Error(`Failed: ${response.statusCode}`)); + } + }).on('error', (err) => { + fs.unlink(filepath, () => {}); + reject(err); + }); + }); +} + +// Main function +async function main() { + let browser; + + try { + console.log('Starting Shikigami scraper with Puppeteer...\n'); + + // Launch browser + console.log('Launching browser...'); + browser = await puppeteer.launch({ + headless: 'new', + args: ['--no-sandbox', '--disable-setuid-sandbox'] + }); + + const page = await browser.newPage(); + await page.setViewport({ width: 1920, height: 1080 }); + + const allShikigami = []; + const seenIds = new Set(); + + // Scrape each rarity type + for (const rarity of RARITY_TYPES) { + console.log(`Fetching ${rarity.dir.toUpperCase()} Shikigami (type=${rarity.urlParam})...`); + const url = `https://yys.163.com/shishen/index.html?type=${rarity.urlParam}`; + + try { + await page.goto(url, { waitUntil: 'networkidle2', timeout: 30000 }); + + // Wait for content to load + await page.waitForSelector('.shishen_item', { timeout: 10000 }); + + // Extract data from page + const shikigami = await page.evaluate((rarityDir) => { + const items = document.querySelectorAll('.shishen_item'); + const results = []; + + items.forEach(item => { + const link = item.querySelector('a'); + const img = item.querySelector('img'); + const nameSpan = item.querySelector('.name'); + + if (link && img && nameSpan) { + const href = link.getAttribute('href'); + const imgSrc = img.getAttribute('src'); + const name = nameSpan.textContent.trim(); + const id = href.replace('.html', ''); + + results.push({ + id, + name, + imgSrc, + rarity: rarityDir.toUpperCase() + }); + } + }); + + return results; + }, rarity.dir); + + // Add only unique shikigami (avoid duplicates) + shikigami.forEach(s => { + if (!seenIds.has(s.id)) { + seenIds.add(s.id); + allShikigami.push(s); + } + }); + + console.log(`Found ${shikigami.length} ${rarity.dir.toUpperCase()} Shikigami (${seenIds.size} unique total)\n`); + + // Small delay + await new Promise(resolve => setTimeout(resolve, 500)); + } catch (err) { + console.error(`Error fetching ${rarity}:`, err.message); + } + } + + await browser.close(); + + console.log(`\nTotal unique Shikigami found: ${allShikigami.length}`); + + if (allShikigami.length === 0) { + console.log('\n⚠ No Shikigami found. Please check the website manually.'); + return; + } + + // Sort by ID descending (newest first) + allShikigami.sort((a, b) => parseInt(b.id) - parseInt(a.id)); + console.log(`Sorted by ID (newest first): ${allShikigami[0].id} -> ${allShikigami[allShikigami.length - 1].id}`); + + console.log('\nDownloading images...\n'); + + // Ensure directories exist + RARITY_TYPES.forEach(rarity => { + ensureDir(path.join(IMAGE_DIR, rarity.dir)); + }); + + // Download images with progress + let downloaded = 0; + const total = allShikigami.length; + + for (let i = 0; i < allShikigami.length; i++) { + const shikigami = allShikigami[i]; + const { id, imgSrc, rarity, name } = shikigami; + const filename = `${id}.png`; + const filepath = path.join(IMAGE_DIR, rarity.toLowerCase(), filename); + + // Skip if file already exists + if (fs.existsSync(filepath)) { + downloaded++; + process.stdout.write(`\rProgress: ${downloaded}/${total} (${name}) - skipped`); + continue; + } + + try { + await downloadImage(imgSrc, filepath); + downloaded++; + process.stdout.write(`\rProgress: ${downloaded}/${total} (${name})`); + } catch (err) { + console.error(`\n✗ Failed ${id} (${name}): ${err.message}`); + } + } + + console.log(`\n\nDownloaded ${downloaded}/${total} images`); + + // Update JSON file + console.log('\nUpdating JSON configuration...'); + const jsonData = allShikigami.map(s => ({ + avatar: `/assets/Shikigami/${s.rarity.toLowerCase()}/${s.id}.png`, + name: s.name, + rarity: s.rarity + })); + + fs.writeFileSync(JSON_FILE, JSON.stringify(jsonData, null, 4), 'utf8'); + console.log(`✓ Updated ${JSON_FILE}`); + + console.log('\n✓ Scraping completed successfully!'); + console.log(`Total: ${allShikigami.length} unique Shikigami`); + console.log(`Sorted by ID descending (newest first)`); + + } catch (error) { + console.error('Error:', error); + if (browser) await browser.close(); + process.exit(1); + } +} + +main(); diff --git a/scripts/scrape-shikigami.js b/scripts/scrape-shikigami.js new file mode 100644 index 0000000..25ff40c --- /dev/null +++ b/scripts/scrape-shikigami.js @@ -0,0 +1,155 @@ +const https = require('https'); +const http = require('http'); +const fs = require('fs'); +const path = require('path'); + +const IMAGE_DIR = path.join(__dirname, '../public/assets/Shikigami'); +const JSON_FILE = path.join(__dirname, '../src/data/Shikigami.json'); + +// Rarity types mapping +const RARITY_TYPES = ['ssr', 'sp', 'ur', 'sr', 'r', 'n', 'l', 'g']; + +// Ensure image directory exists +function ensureDir(dir) { + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } +} + +// Download image +function downloadImage(url, filepath) { + return new Promise((resolve, reject) => { + const protocol = url.startsWith('https') ? https : http; + const file = fs.createWriteStream(filepath); + + protocol.get(url, (response) => { + if (response.statusCode === 200) { + response.pipe(file); + file.on('finish', () => { + file.close(); + console.log(`✓ Downloaded: ${path.basename(filepath)}`); + resolve(); + }); + } else if (response.statusCode === 302 || response.statusCode === 301) { + // Handle redirect + downloadImage(response.headers.location, filepath).then(resolve).catch(reject); + } else { + reject(new Error(`Failed: ${response.statusCode}`)); + } + }).on('error', (err) => { + fs.unlink(filepath, () => {}); + reject(err); + }); + }); +} + +// Fetch HTML content +function fetchHTML(url) { + return new Promise((resolve, reject) => { + https.get(url, (response) => { + let data = ''; + response.on('data', (chunk) => data += chunk); + response.on('end', () => resolve(data)); + }).on('error', reject); + }); +} + +// Parse shikigami data from HTML using regex +function parseShikigami(html, rarity) { + const results = []; + + // Match pattern:
............ + const itemRegex = /
[\s\S]*?[\s\S]*?([^<]+)<\/span>/g; + + let match; + while ((match = itemRegex.exec(html)) !== null) { + const [, id, imgSrc, name] = match; + results.push({ + id, + name: name.trim(), + imgSrc, + rarity: rarity.toUpperCase() + }); + } + + return results; +} + +// Main function +async function main() { + try { + console.log('Starting Shikigami scraper...\n'); + + const allShikigami = []; + + // Scrape each rarity type + for (const rarity of RARITY_TYPES) { + console.log(`Fetching ${rarity.toUpperCase()} Shikigami...`); + const url = `https://yys.163.com/shishen/index.html?type=${rarity}`; + + try { + const html = await fetchHTML(url); + const shikigami = parseShikigami(html, rarity); + console.log(`Found ${shikigami.length} ${rarity.toUpperCase()} Shikigami\n`); + allShikigami.push(...shikigami); + + // Small delay to avoid overwhelming the server + await new Promise(resolve => setTimeout(resolve, 500)); + } catch (err) { + console.error(`Error fetching ${rarity}:`, err.message); + } + } + + console.log(`\nTotal Shikigami found: ${allShikigami.length}`); + + if (allShikigami.length === 0) { + console.log('\n⚠ No Shikigami found. The website structure may have changed.'); + console.log('Please check the HTML structure manually or use browser DevTools.'); + return; + } + + console.log('\nDownloading images...\n'); + + // Ensure directories exist + RARITY_TYPES.forEach(rarity => { + ensureDir(path.join(IMAGE_DIR, rarity)); + }); + + // Download images with progress + let downloaded = 0; + for (const shikigami of allShikigami) { + const { id, imgSrc, rarity } = shikigami; + const filename = `${id}.png`; + const filepath = path.join(IMAGE_DIR, rarity.toLowerCase(), filename); + + try { + await downloadImage(imgSrc, filepath); + downloaded++; + } catch (err) { + console.error(`✗ Failed ${id}: ${err.message}`); + } + } + + console.log(`\nDownloaded ${downloaded}/${allShikigami.length} images`); + + // Update JSON file + console.log('\nUpdating JSON configuration...'); + const jsonData = allShikigami.map(s => ({ + avatar: `/assets/Shikigami/${s.rarity.toLowerCase()}/${s.id}.png`, + name: s.name, + rarity: s.rarity + })); + + fs.writeFileSync(JSON_FILE, JSON.stringify(jsonData, null, 4), 'utf8'); + console.log(`✓ Updated ${JSON_FILE}`); + + console.log('\n✓ Scraping completed successfully!'); + console.log(`Total: ${allShikigami.length} Shikigami`); + + } catch (error) { + console.error('Error:', error); + process.exit(1); + } +} + +main(); diff --git a/src/data/Shikigami.json b/src/data/Shikigami.json index ce21924..1cbf8ad 100644 --- a/src/data/Shikigami.json +++ b/src/data/Shikigami.json @@ -1,4 +1,24 @@ [ + { + "avatar": "/assets/Shikigami/sp/598.png", + "name": "灼华桃花妖", + "rarity": "SP" + }, + { + "avatar": "/assets/Shikigami/ssr/597.png", + "name": "葛叶", + "rarity": "SSR" + }, + { + "avatar": "/assets/Shikigami/ssr/596.png", + "name": "神无月", + "rarity": "SSR" + }, + { + "avatar": "/assets/Shikigami/sp/595.png", + "name": "梦山白藏主", + "rarity": "SP" + }, { "avatar": "/assets/Shikigami/sp/594.png", "name": "梦引蝴蝶精", @@ -109,6 +129,11 @@ "name": "遥念烟烟罗", "rarity": "SP" }, + { + "avatar": "/assets/Shikigami/sr/571.png", + "name": "湍津姬", + "rarity": "SR" + }, { "avatar": "/assets/Shikigami/ssr/570.png", "name": "祸津神",