Compare commits
No commits in common. "master" and "v0.1.0-beta" have entirely different histories.
master
...
v0.1.0-bet
Before Width: | Height: | Size: 128 KiB |
Before Width: | Height: | Size: 225 KiB |
@ -1,70 +0,0 @@
|
|||||||
{
|
|
||||||
"projectName": "exam-showboard-next",
|
|
||||||
"projectOwner": "ProjectCampus-CH",
|
|
||||||
"files": [
|
|
||||||
"README.md"
|
|
||||||
],
|
|
||||||
"commitType": "docs",
|
|
||||||
"commitConvention": "angular",
|
|
||||||
"contributorsPerLine": 7,
|
|
||||||
"contributors": [
|
|
||||||
{
|
|
||||||
"login": "MKStoler4096",
|
|
||||||
"name": "MKStoler",
|
|
||||||
"avatar_url": "https://avatars.githubusercontent.com/u/178344462?v=4",
|
|
||||||
"profile": "http://qsgz.edicdn.eu.org",
|
|
||||||
"contributions": [
|
|
||||||
"code",
|
|
||||||
"bug"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "Jursin",
|
|
||||||
"name": "Jursin",
|
|
||||||
"avatar_url": "https://avatars.githubusercontent.com/u/127487914?v=4",
|
|
||||||
"profile": "https://github.com/Jursin",
|
|
||||||
"contributions": [
|
|
||||||
"content",
|
|
||||||
"design"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "hello8693DSZ",
|
|
||||||
"name": "Hello8693",
|
|
||||||
"avatar_url": "https://avatars.githubusercontent.com/u/88492699?v=4",
|
|
||||||
"profile": "https://github.com/hello8693DSZ",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "fhzit",
|
|
||||||
"name": "fhzit",
|
|
||||||
"avatar_url": "https://avatars.githubusercontent.com/u/152045732?v=4",
|
|
||||||
"profile": "https://github.com/fhzit",
|
|
||||||
"contributions": [
|
|
||||||
"code",
|
|
||||||
"bug",
|
|
||||||
"doc"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "wjj-8283",
|
|
||||||
"name": "wjj-8283",
|
|
||||||
"avatar_url": "https://avatars.githubusercontent.com/u/82750345?v=4",
|
|
||||||
"profile": "https://github.com/wjj-8283",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "dependabot",
|
|
||||||
"name": "Dependabot",
|
|
||||||
"avatar_url": "https://avatars.githubusercontent.com/u/27347476?v=4",
|
|
||||||
"profile": "https://github.com/features/security",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
90
.github/ISSUE_TEMPLATE/BugReport.yml
vendored
@ -1,90 +0,0 @@
|
|||||||
name: Bug 反馈
|
|
||||||
description: 在使用考试看板 Next 的过程中遇到了 Bug 。
|
|
||||||
title: (在这里输入你的标题)
|
|
||||||
labels: ['Bug', '未阅读']
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
感谢您进行 Bug 反馈。请在上面的文本框⬆️起一个能够清晰描述您的问题的标题,便于开发者解决您的问题。
|
|
||||||
|
|
||||||
> [!important]
|
|
||||||
>
|
|
||||||
> 如果要提出**多个 Bug **,请为每一个 Bug 开一个单独的 issue。
|
|
||||||
>
|
|
||||||
> 如果您不知道如何有效、精准地表述,建议先阅读[《提问的智慧》](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md)。
|
|
||||||
|
|
||||||
- type: checkboxes
|
|
||||||
id: checklist
|
|
||||||
attributes:
|
|
||||||
label: 检查清单
|
|
||||||
description: 在开始反馈这个问题之前,请先检查:
|
|
||||||
options:
|
|
||||||
- label: 我已更新到最新版  ,并看过[最新提交](https://github.com/ProjectCampus-CH/dsz-exam-showboard-next/commits/dev/),确认这一 Bug 还没有修复。
|
|
||||||
required: true
|
|
||||||
- label: 我已在 [Issues](https://github.com/ProjectCampus-CH/dsz-exam-showboard-next/issues?q=label%3ABug) 中检索,确认这一 Bug 未被提交过。
|
|
||||||
required: true
|
|
||||||
- label: 我已知晓并同意,此处仅用于汇报程序中存在的问题(关于其他非程序本身的问题应当在 Discussion 板块提出)。
|
|
||||||
required: true
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
### Bug 信息
|
|
||||||
|
|
||||||
描述您遇到的 Bug。您可以附上截图、录屏、堆栈跟踪、日志等材料,便于开发者追踪问题。
|
|
||||||
- type: textarea
|
|
||||||
id: excepted
|
|
||||||
attributes:
|
|
||||||
label: 期望的行为
|
|
||||||
description: 详细的描述你期望发生的行为,突出与目前(可能不正确的)行为的不同。
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: what-happened
|
|
||||||
attributes:
|
|
||||||
label: 实际结果
|
|
||||||
description: 实际发生的行为。
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: reproduce-steps
|
|
||||||
attributes:
|
|
||||||
label: 重现步骤
|
|
||||||
description: |
|
|
||||||
详细描述怎么操作能再次触发这个 Bug 。
|
|
||||||
placeholder: |
|
|
||||||
1. 首先……
|
|
||||||
2. 然后……
|
|
||||||
3. ……
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: stacktrace
|
|
||||||
attributes:
|
|
||||||
label: 堆栈跟踪(可选)
|
|
||||||
description: 如果在遇到这个 Bug 时发生了崩溃(弹出崩溃提示),或者产生了错误日志,请将产生的堆栈跟踪信息粘贴到此处,便于开发者定位 Bug 。
|
|
||||||
render: shell
|
|
||||||
- type: input
|
|
||||||
id: app_version
|
|
||||||
attributes:
|
|
||||||
label: 应用版本
|
|
||||||
description: 您当前使用的考试看板 Next 版本号,可以在【关于】中查看。
|
|
||||||
placeholder: 如:1.2.0
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: input
|
|
||||||
id: os_version
|
|
||||||
attributes:
|
|
||||||
label: 操作系统版本
|
|
||||||
description: |
|
|
||||||
您当前使用的 Windows 操作系统版本,可以运行 `winver.exe` 查看。
|
|
||||||
如果您不能肯定此 Bug 与操作系统无关,请填写此项。
|
|
||||||
placeholder: 如:10.0.22000.0
|
|
||||||
- type: checkboxes
|
|
||||||
id: revision
|
|
||||||
attributes:
|
|
||||||
label: 最后一步
|
|
||||||
description: 回顾您的回答
|
|
||||||
options:
|
|
||||||
- label: 我认为上述的描述已经足以详细,以允许开发人员能复现该问题。如果我的 issue 没有按照上述的要求填写,可能会被无条件关闭。
|
|
||||||
required: true
|
|
48
.github/ISSUE_TEMPLATE/FeatureRequest.yml
vendored
@ -1,48 +0,0 @@
|
|||||||
name: 功能请求
|
|
||||||
description: 提出一项新的功能。
|
|
||||||
title: (在这里输入你的标题)
|
|
||||||
labels: ['新功能', '未阅读']
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
感谢您贡献您的想法。请在上面的文本框⬆️起一个能够清晰概括此功能的标题,便于开发者了解您的想法。
|
|
||||||
|
|
||||||
> [!important]
|
|
||||||
> 重要:如果您想要提出 **多项功能**,请为每一个功能开一个单独的 issue。
|
|
||||||
- type: checkboxes
|
|
||||||
id: checklist
|
|
||||||
attributes:
|
|
||||||
label: 检查清单
|
|
||||||
description: 在开始反馈这个问题之前,请先检查:
|
|
||||||
options:
|
|
||||||
- label: 我已将本应用更新到最新测试版 ,并看过[最新提交](https://github.com/ClassIsland/ClassIsland/commits/dev/),确认我想要的功能还没有实现。
|
|
||||||
required: true
|
|
||||||
- label: 我已在 [Issues](https://github.com/ProjectCampus-CH/dsz-exam-showboard-next/issues?q=label%3A新功能) 确认我想要的功能未被提交过。
|
|
||||||
required: true
|
|
||||||
- label: 我认为我想要的功能是用户广泛需要的,且没有超出考试看板 Next 的开发目标,而非添加与之无关的内容。
|
|
||||||
required: true
|
|
||||||
- label: 我已知晓由于开发者时间精力有限,加上已经积压了大量的功能请求,我提交的功能请求可能需要比较久的时间才能实现。
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: back
|
|
||||||
attributes:
|
|
||||||
label: 背景与动机
|
|
||||||
description: 添加此功能的理由。
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: req
|
|
||||||
attributes:
|
|
||||||
label: 想要实现或优化的功能
|
|
||||||
description: 详细地描述一下你想要的功能,描述的越具体,采纳的可能性越高。
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: checkboxes
|
|
||||||
id: revision
|
|
||||||
attributes:
|
|
||||||
label: 最后一步
|
|
||||||
description: 回顾您的回答
|
|
||||||
options:
|
|
||||||
- label: 我认为上述的描述已经足以详细,以便开发人员理解您想要的功能。如果我的 issue 没有按照上述的要求填写,可能会被无条件关闭。
|
|
||||||
required: true
|
|
5
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,5 +0,0 @@
|
|||||||
blank_issues_enabled: false
|
|
||||||
contact_links:
|
|
||||||
- name: 讨论区
|
|
||||||
url: https://github.com/ProjectCampus-CH/dsz-exam-showboard-next/discussions
|
|
||||||
about: 使用中若遇到问题或有新点子新需求,请先在这里求助和征求意见。
|
|
11
.github/dependabot.yml
vendored
@ -1,11 +0,0 @@
|
|||||||
# To get started with Dependabot version updates, you'll need to specify which
|
|
||||||
# package ecosystems to update and where the package manifests are located.
|
|
||||||
# Please see the documentation for all configuration options:
|
|
||||||
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
|
|
||||||
|
|
||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: "npm" # See documentation for possible values
|
|
||||||
directory: "/" # Location of package manifests
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
7
.github/workflows/build.yaml
vendored
@ -1,10 +1,9 @@
|
|||||||
name: 推送时构建
|
name: Build and Package Electron App
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
- dev
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@ -12,8 +11,8 @@ jobs:
|
|||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [windows-latest]
|
os: [ windows-latest ]
|
||||||
node-version: [20.x]
|
node-version: [ 20.x ]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
26
.github/workflows/inactive.yaml
vendored
@ -1,26 +0,0 @@
|
|||||||
name: 关闭不活跃 Issue 和 Pull Request
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
schedule:
|
|
||||||
- cron: "30 1 * * *"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
close-issues:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
issues: write
|
|
||||||
pull-requests: write
|
|
||||||
steps:
|
|
||||||
- uses: actions/stale@v9
|
|
||||||
with:
|
|
||||||
any-of-labels: 进一步提供信息, 不正确
|
|
||||||
days-before-issue-stale: 14
|
|
||||||
days-before-issue-close: 7
|
|
||||||
days-before-pr-stale: 14
|
|
||||||
days-before-pr-close: 7
|
|
||||||
stale-issue-label: "陈旧"
|
|
||||||
stale-pr-label: "陈旧"
|
|
||||||
stale-issue-message: "由于此 Issue 在 14 天内没有动态,已被标记为陈旧。如果此 Issue 没有更多动态(评论等),将在 7 天后被关闭。"
|
|
||||||
stale-pr-message: "由于此 Pull Request 在 14 天内没有动态,已被标记为陈旧。如果此 Pull Request 没有更多动态(评论等),将在 7 天后被关闭。"
|
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
@ -1,17 +1,14 @@
|
|||||||
name: 打包并生成应用
|
name: Release Build and Package
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
|
||||||
release:
|
release:
|
||||||
types: [published]
|
types: [published]
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
matrix:
|
||||||
os: [windows-latest, macos-latest, ubuntu-latest]
|
os: [windows-latest, macos-latest, ubuntu-latest]
|
||||||
node-version: [20.x]
|
node-version: [20.x]
|
||||||
@ -19,25 +16,30 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4.1.7
|
uses: actions/checkout@v4.1.7
|
||||||
|
if: github.event.release.prerelease == false || matrix.os == 'windows-latest'
|
||||||
|
|
||||||
|
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
if: github.event.release.prerelease == false || matrix.os == 'windows-latest'
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: yarn install
|
run: yarn install
|
||||||
|
if: github.event.release.prerelease == false || matrix.os == 'windows-latest'
|
||||||
|
|
||||||
|
|
||||||
- name: Build and package for Windows
|
- name: Build and package for Windows
|
||||||
if: matrix.os == 'windows-latest'
|
if: github.event.release.prerelease == false && matrix.os == 'windows-latest'
|
||||||
run: yarn build:win
|
run: yarn build:win
|
||||||
|
|
||||||
- name: Build and package for macOS
|
- name: Build and package for macOS
|
||||||
if: matrix.os == 'macos-latest'
|
if: github.event.release.prerelease == true && matrix.os == 'macos-latest'
|
||||||
run: yarn build:mac
|
run: yarn build:mac
|
||||||
|
|
||||||
- name: Build and package for Linux
|
- name: Build and package for Linux
|
||||||
if: matrix.os == 'ubuntu-latest'
|
if: github.event.release.prerelease == true && matrix.os == 'ubuntu-latest'
|
||||||
run: yarn build:linux
|
run: yarn build:linux
|
||||||
|
|
||||||
- name: Upload artifact for Windows
|
- name: Upload artifact for Windows
|
||||||
@ -48,26 +50,15 @@ jobs:
|
|||||||
path: dist/*.exe
|
path: dist/*.exe
|
||||||
|
|
||||||
- name: Upload artifact for macOS
|
- name: Upload artifact for macOS
|
||||||
if: matrix.os == 'macos-latest'
|
if: github.event.release.prerelease == true && matrix.os == 'macos-latest'
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ExamShowboard-macOS
|
name: ExamShowboard-macOS
|
||||||
path: dist/*.dmg
|
path: dist/*.dmg
|
||||||
|
|
||||||
- name: Upload artifact for Linux
|
- name: Upload artifact for Linux
|
||||||
if: matrix.os == 'ubuntu-latest'
|
if: github.event.release.prerelease == true && matrix.os == 'ubuntu-latest'
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ExamShowboard-Linux
|
name: ExamShowboard-Linux
|
||||||
path: dist/*.AppImage
|
path: dist/*.AppImage
|
||||||
|
|
||||||
- name: Upload assets to GitHub Release
|
|
||||||
if: github.event_name == 'release' && github.event.action == 'published'
|
|
||||||
uses: softprops/action-gh-release@v1
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
dist/*.exe
|
|
||||||
dist/*.dmg
|
|
||||||
dist/*.AppImage
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
21
.github/workflows/similarity.yaml
vendored
@ -1,21 +0,0 @@
|
|||||||
name: 相似 Issues 分析
|
|
||||||
|
|
||||||
on:
|
|
||||||
issues:
|
|
||||||
types: [opened, edited]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
similarity-analysis:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: analysis
|
|
||||||
uses: actions-cool/issues-similarity-analysis@v1
|
|
||||||
with:
|
|
||||||
filter-threshold: 0.5
|
|
||||||
comment-title: |
|
|
||||||
### 相似 Issues
|
|
||||||
comment-body: '${index}. ${similarity} #${number}'
|
|
||||||
title-excludes: "(在这里输入你的标题),bug"
|
|
||||||
since-days: 365
|
|
||||||
show-footer: false
|
|
||||||
show-mentioned: true
|
|
@ -4,5 +4,3 @@ pnpm-lock.yaml
|
|||||||
LICENSE.md
|
LICENSE.md
|
||||||
tsconfig.json
|
tsconfig.json
|
||||||
tsconfig.*.json
|
tsconfig.*.json
|
||||||
.all-contributorsrc
|
|
||||||
.github/dependabot.yml
|
|
3
.vscode/settings.json
vendored
@ -25,6 +25,5 @@
|
|||||||
"command": "extension.execute",
|
"command": "extension.execute",
|
||||||
"priority": 4
|
"priority": 4
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"Codegeex.RepoIndex": true
|
|
||||||
}
|
}
|
||||||
|
674
LICENSE
@ -1,674 +0,0 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 3, 29 June 2007
|
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The GNU General Public License is a free, copyleft license for
|
|
||||||
software and other kinds of works.
|
|
||||||
|
|
||||||
The licenses for most software and other practical works are designed
|
|
||||||
to take away your freedom to share and change the works. By contrast,
|
|
||||||
the GNU General Public License is intended to guarantee your freedom to
|
|
||||||
share and change all versions of a program--to make sure it remains free
|
|
||||||
software for all its users. We, the Free Software Foundation, use the
|
|
||||||
GNU General Public License for most of our software; it applies also to
|
|
||||||
any other work released this way by its authors. You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
them if you wish), that you receive source code or can get it if you
|
|
||||||
want it, that you can change the software or use pieces of it in new
|
|
||||||
free programs, and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to prevent others from denying you
|
|
||||||
these rights or asking you to surrender the rights. Therefore, you have
|
|
||||||
certain responsibilities if you distribute copies of the software, or if
|
|
||||||
you modify it: responsibilities to respect the freedom of others.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must pass on to the recipients the same
|
|
||||||
freedoms that you received. You must make sure that they, too, receive
|
|
||||||
or can get the source code. And you must show them these terms so they
|
|
||||||
know their rights.
|
|
||||||
|
|
||||||
Developers that use the GNU GPL protect your rights with two steps:
|
|
||||||
(1) assert copyright on the software, and (2) offer you this License
|
|
||||||
giving you legal permission to copy, distribute and/or modify it.
|
|
||||||
|
|
||||||
For the developers' and authors' protection, the GPL clearly explains
|
|
||||||
that there is no warranty for this free software. For both users' and
|
|
||||||
authors' sake, the GPL requires that modified versions be marked as
|
|
||||||
changed, so that their problems will not be attributed erroneously to
|
|
||||||
authors of previous versions.
|
|
||||||
|
|
||||||
Some devices are designed to deny users access to install or run
|
|
||||||
modified versions of the software inside them, although the manufacturer
|
|
||||||
can do so. This is fundamentally incompatible with the aim of
|
|
||||||
protecting users' freedom to change the software. The systematic
|
|
||||||
pattern of such abuse occurs in the area of products for individuals to
|
|
||||||
use, which is precisely where it is most unacceptable. Therefore, we
|
|
||||||
have designed this version of the GPL to prohibit the practice for those
|
|
||||||
products. If such problems arise substantially in other domains, we
|
|
||||||
stand ready to extend this provision to those domains in future versions
|
|
||||||
of the GPL, as needed to protect the freedom of users.
|
|
||||||
|
|
||||||
Finally, every program is threatened constantly by software patents.
|
|
||||||
States should not allow patents to restrict development and use of
|
|
||||||
software on general-purpose computers, but in those that do, we wish to
|
|
||||||
avoid the special danger that patents applied to a free program could
|
|
||||||
make it effectively proprietary. To prevent this, the GPL assures that
|
|
||||||
patents cannot be used to render the program non-free.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
0. Definitions.
|
|
||||||
|
|
||||||
"This License" refers to version 3 of the GNU General Public License.
|
|
||||||
|
|
||||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
|
||||||
works, such as semiconductor masks.
|
|
||||||
|
|
||||||
"The Program" refers to any copyrightable work licensed under this
|
|
||||||
License. Each licensee is addressed as "you". "Licensees" and
|
|
||||||
"recipients" may be individuals or organizations.
|
|
||||||
|
|
||||||
To "modify" a work means to copy from or adapt all or part of the work
|
|
||||||
in a fashion requiring copyright permission, other than the making of an
|
|
||||||
exact copy. The resulting work is called a "modified version" of the
|
|
||||||
earlier work or a work "based on" the earlier work.
|
|
||||||
|
|
||||||
A "covered work" means either the unmodified Program or a work based
|
|
||||||
on the Program.
|
|
||||||
|
|
||||||
To "propagate" a work means to do anything with it that, without
|
|
||||||
permission, would make you directly or secondarily liable for
|
|
||||||
infringement under applicable copyright law, except executing it on a
|
|
||||||
computer or modifying a private copy. Propagation includes copying,
|
|
||||||
distribution (with or without modification), making available to the
|
|
||||||
public, and in some countries other activities as well.
|
|
||||||
|
|
||||||
To "convey" a work means any kind of propagation that enables other
|
|
||||||
parties to make or receive copies. Mere interaction with a user through
|
|
||||||
a computer network, with no transfer of a copy, is not conveying.
|
|
||||||
|
|
||||||
An interactive user interface displays "Appropriate Legal Notices"
|
|
||||||
to the extent that it includes a convenient and prominently visible
|
|
||||||
feature that (1) displays an appropriate copyright notice, and (2)
|
|
||||||
tells the user that there is no warranty for the work (except to the
|
|
||||||
extent that warranties are provided), that licensees may convey the
|
|
||||||
work under this License, and how to view a copy of this License. If
|
|
||||||
the interface presents a list of user commands or options, such as a
|
|
||||||
menu, a prominent item in the list meets this criterion.
|
|
||||||
|
|
||||||
1. Source Code.
|
|
||||||
|
|
||||||
The "source code" for a work means the preferred form of the work
|
|
||||||
for making modifications to it. "Object code" means any non-source
|
|
||||||
form of a work.
|
|
||||||
|
|
||||||
A "Standard Interface" means an interface that either is an official
|
|
||||||
standard defined by a recognized standards body, or, in the case of
|
|
||||||
interfaces specified for a particular programming language, one that
|
|
||||||
is widely used among developers working in that language.
|
|
||||||
|
|
||||||
The "System Libraries" of an executable work include anything, other
|
|
||||||
than the work as a whole, that (a) is included in the normal form of
|
|
||||||
packaging a Major Component, but which is not part of that Major
|
|
||||||
Component, and (b) serves only to enable use of the work with that
|
|
||||||
Major Component, or to implement a Standard Interface for which an
|
|
||||||
implementation is available to the public in source code form. A
|
|
||||||
"Major Component", in this context, means a major essential component
|
|
||||||
(kernel, window system, and so on) of the specific operating system
|
|
||||||
(if any) on which the executable work runs, or a compiler used to
|
|
||||||
produce the work, or an object code interpreter used to run it.
|
|
||||||
|
|
||||||
The "Corresponding Source" for a work in object code form means all
|
|
||||||
the source code needed to generate, install, and (for an executable
|
|
||||||
work) run the object code and to modify the work, including scripts to
|
|
||||||
control those activities. However, it does not include the work's
|
|
||||||
System Libraries, or general-purpose tools or generally available free
|
|
||||||
programs which are used unmodified in performing those activities but
|
|
||||||
which are not part of the work. For example, Corresponding Source
|
|
||||||
includes interface definition files associated with source files for
|
|
||||||
the work, and the source code for shared libraries and dynamically
|
|
||||||
linked subprograms that the work is specifically designed to require,
|
|
||||||
such as by intimate data communication or control flow between those
|
|
||||||
subprograms and other parts of the work.
|
|
||||||
|
|
||||||
The Corresponding Source need not include anything that users
|
|
||||||
can regenerate automatically from other parts of the Corresponding
|
|
||||||
Source.
|
|
||||||
|
|
||||||
The Corresponding Source for a work in source code form is that
|
|
||||||
same work.
|
|
||||||
|
|
||||||
2. Basic Permissions.
|
|
||||||
|
|
||||||
All rights granted under this License are granted for the term of
|
|
||||||
copyright on the Program, and are irrevocable provided the stated
|
|
||||||
conditions are met. This License explicitly affirms your unlimited
|
|
||||||
permission to run the unmodified Program. The output from running a
|
|
||||||
covered work is covered by this License only if the output, given its
|
|
||||||
content, constitutes a covered work. This License acknowledges your
|
|
||||||
rights of fair use or other equivalent, as provided by copyright law.
|
|
||||||
|
|
||||||
You may make, run and propagate covered works that you do not
|
|
||||||
convey, without conditions so long as your license otherwise remains
|
|
||||||
in force. You may convey covered works to others for the sole purpose
|
|
||||||
of having them make modifications exclusively for you, or provide you
|
|
||||||
with facilities for running those works, provided that you comply with
|
|
||||||
the terms of this License in conveying all material for which you do
|
|
||||||
not control copyright. Those thus making or running the covered works
|
|
||||||
for you must do so exclusively on your behalf, under your direction
|
|
||||||
and control, on terms that prohibit them from making any copies of
|
|
||||||
your copyrighted material outside their relationship with you.
|
|
||||||
|
|
||||||
Conveying under any other circumstances is permitted solely under
|
|
||||||
the conditions stated below. Sublicensing is not allowed; section 10
|
|
||||||
makes it unnecessary.
|
|
||||||
|
|
||||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
|
||||||
|
|
||||||
No covered work shall be deemed part of an effective technological
|
|
||||||
measure under any applicable law fulfilling obligations under article
|
|
||||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
|
||||||
similar laws prohibiting or restricting circumvention of such
|
|
||||||
measures.
|
|
||||||
|
|
||||||
When you convey a covered work, you waive any legal power to forbid
|
|
||||||
circumvention of technological measures to the extent such circumvention
|
|
||||||
is effected by exercising rights under this License with respect to
|
|
||||||
the covered work, and you disclaim any intention to limit operation or
|
|
||||||
modification of the work as a means of enforcing, against the work's
|
|
||||||
users, your or third parties' legal rights to forbid circumvention of
|
|
||||||
technological measures.
|
|
||||||
|
|
||||||
4. Conveying Verbatim Copies.
|
|
||||||
|
|
||||||
You may convey verbatim copies of the Program's source code as you
|
|
||||||
receive it, in any medium, provided that you conspicuously and
|
|
||||||
appropriately publish on each copy an appropriate copyright notice;
|
|
||||||
keep intact all notices stating that this License and any
|
|
||||||
non-permissive terms added in accord with section 7 apply to the code;
|
|
||||||
keep intact all notices of the absence of any warranty; and give all
|
|
||||||
recipients a copy of this License along with the Program.
|
|
||||||
|
|
||||||
You may charge any price or no price for each copy that you convey,
|
|
||||||
and you may offer support or warranty protection for a fee.
|
|
||||||
|
|
||||||
5. Conveying Modified Source Versions.
|
|
||||||
|
|
||||||
You may convey a work based on the Program, or the modifications to
|
|
||||||
produce it from the Program, in the form of source code under the
|
|
||||||
terms of section 4, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The work must carry prominent notices stating that you modified
|
|
||||||
it, and giving a relevant date.
|
|
||||||
|
|
||||||
b) The work must carry prominent notices stating that it is
|
|
||||||
released under this License and any conditions added under section
|
|
||||||
7. This requirement modifies the requirement in section 4 to
|
|
||||||
"keep intact all notices".
|
|
||||||
|
|
||||||
c) You must license the entire work, as a whole, under this
|
|
||||||
License to anyone who comes into possession of a copy. This
|
|
||||||
License will therefore apply, along with any applicable section 7
|
|
||||||
additional terms, to the whole of the work, and all its parts,
|
|
||||||
regardless of how they are packaged. This License gives no
|
|
||||||
permission to license the work in any other way, but it does not
|
|
||||||
invalidate such permission if you have separately received it.
|
|
||||||
|
|
||||||
d) If the work has interactive user interfaces, each must display
|
|
||||||
Appropriate Legal Notices; however, if the Program has interactive
|
|
||||||
interfaces that do not display Appropriate Legal Notices, your
|
|
||||||
work need not make them do so.
|
|
||||||
|
|
||||||
A compilation of a covered work with other separate and independent
|
|
||||||
works, which are not by their nature extensions of the covered work,
|
|
||||||
and which are not combined with it such as to form a larger program,
|
|
||||||
in or on a volume of a storage or distribution medium, is called an
|
|
||||||
"aggregate" if the compilation and its resulting copyright are not
|
|
||||||
used to limit the access or legal rights of the compilation's users
|
|
||||||
beyond what the individual works permit. Inclusion of a covered work
|
|
||||||
in an aggregate does not cause this License to apply to the other
|
|
||||||
parts of the aggregate.
|
|
||||||
|
|
||||||
6. Conveying Non-Source Forms.
|
|
||||||
|
|
||||||
You may convey a covered work in object code form under the terms
|
|
||||||
of sections 4 and 5, provided that you also convey the
|
|
||||||
machine-readable Corresponding Source under the terms of this License,
|
|
||||||
in one of these ways:
|
|
||||||
|
|
||||||
a) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by the
|
|
||||||
Corresponding Source fixed on a durable physical medium
|
|
||||||
customarily used for software interchange.
|
|
||||||
|
|
||||||
b) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by a
|
|
||||||
written offer, valid for at least three years and valid for as
|
|
||||||
long as you offer spare parts or customer support for that product
|
|
||||||
model, to give anyone who possesses the object code either (1) a
|
|
||||||
copy of the Corresponding Source for all the software in the
|
|
||||||
product that is covered by this License, on a durable physical
|
|
||||||
medium customarily used for software interchange, for a price no
|
|
||||||
more than your reasonable cost of physically performing this
|
|
||||||
conveying of source, or (2) access to copy the
|
|
||||||
Corresponding Source from a network server at no charge.
|
|
||||||
|
|
||||||
c) Convey individual copies of the object code with a copy of the
|
|
||||||
written offer to provide the Corresponding Source. This
|
|
||||||
alternative is allowed only occasionally and noncommercially, and
|
|
||||||
only if you received the object code with such an offer, in accord
|
|
||||||
with subsection 6b.
|
|
||||||
|
|
||||||
d) Convey the object code by offering access from a designated
|
|
||||||
place (gratis or for a charge), and offer equivalent access to the
|
|
||||||
Corresponding Source in the same way through the same place at no
|
|
||||||
further charge. You need not require recipients to copy the
|
|
||||||
Corresponding Source along with the object code. If the place to
|
|
||||||
copy the object code is a network server, the Corresponding Source
|
|
||||||
may be on a different server (operated by you or a third party)
|
|
||||||
that supports equivalent copying facilities, provided you maintain
|
|
||||||
clear directions next to the object code saying where to find the
|
|
||||||
Corresponding Source. Regardless of what server hosts the
|
|
||||||
Corresponding Source, you remain obligated to ensure that it is
|
|
||||||
available for as long as needed to satisfy these requirements.
|
|
||||||
|
|
||||||
e) Convey the object code using peer-to-peer transmission, provided
|
|
||||||
you inform other peers where the object code and Corresponding
|
|
||||||
Source of the work are being offered to the general public at no
|
|
||||||
charge under subsection 6d.
|
|
||||||
|
|
||||||
A separable portion of the object code, whose source code is excluded
|
|
||||||
from the Corresponding Source as a System Library, need not be
|
|
||||||
included in conveying the object code work.
|
|
||||||
|
|
||||||
A "User Product" is either (1) a "consumer product", which means any
|
|
||||||
tangible personal property which is normally used for personal, family,
|
|
||||||
or household purposes, or (2) anything designed or sold for incorporation
|
|
||||||
into a dwelling. In determining whether a product is a consumer product,
|
|
||||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
|
||||||
product received by a particular user, "normally used" refers to a
|
|
||||||
typical or common use of that class of product, regardless of the status
|
|
||||||
of the particular user or of the way in which the particular user
|
|
||||||
actually uses, or expects or is expected to use, the product. A product
|
|
||||||
is a consumer product regardless of whether the product has substantial
|
|
||||||
commercial, industrial or non-consumer uses, unless such uses represent
|
|
||||||
the only significant mode of use of the product.
|
|
||||||
|
|
||||||
"Installation Information" for a User Product means any methods,
|
|
||||||
procedures, authorization keys, or other information required to install
|
|
||||||
and execute modified versions of a covered work in that User Product from
|
|
||||||
a modified version of its Corresponding Source. The information must
|
|
||||||
suffice to ensure that the continued functioning of the modified object
|
|
||||||
code is in no case prevented or interfered with solely because
|
|
||||||
modification has been made.
|
|
||||||
|
|
||||||
If you convey an object code work under this section in, or with, or
|
|
||||||
specifically for use in, a User Product, and the conveying occurs as
|
|
||||||
part of a transaction in which the right of possession and use of the
|
|
||||||
User Product is transferred to the recipient in perpetuity or for a
|
|
||||||
fixed term (regardless of how the transaction is characterized), the
|
|
||||||
Corresponding Source conveyed under this section must be accompanied
|
|
||||||
by the Installation Information. But this requirement does not apply
|
|
||||||
if neither you nor any third party retains the ability to install
|
|
||||||
modified object code on the User Product (for example, the work has
|
|
||||||
been installed in ROM).
|
|
||||||
|
|
||||||
The requirement to provide Installation Information does not include a
|
|
||||||
requirement to continue to provide support service, warranty, or updates
|
|
||||||
for a work that has been modified or installed by the recipient, or for
|
|
||||||
the User Product in which it has been modified or installed. Access to a
|
|
||||||
network may be denied when the modification itself materially and
|
|
||||||
adversely affects the operation of the network or violates the rules and
|
|
||||||
protocols for communication across the network.
|
|
||||||
|
|
||||||
Corresponding Source conveyed, and Installation Information provided,
|
|
||||||
in accord with this section must be in a format that is publicly
|
|
||||||
documented (and with an implementation available to the public in
|
|
||||||
source code form), and must require no special password or key for
|
|
||||||
unpacking, reading or copying.
|
|
||||||
|
|
||||||
7. Additional Terms.
|
|
||||||
|
|
||||||
"Additional permissions" are terms that supplement the terms of this
|
|
||||||
License by making exceptions from one or more of its conditions.
|
|
||||||
Additional permissions that are applicable to the entire Program shall
|
|
||||||
be treated as though they were included in this License, to the extent
|
|
||||||
that they are valid under applicable law. If additional permissions
|
|
||||||
apply only to part of the Program, that part may be used separately
|
|
||||||
under those permissions, but the entire Program remains governed by
|
|
||||||
this License without regard to the additional permissions.
|
|
||||||
|
|
||||||
When you convey a copy of a covered work, you may at your option
|
|
||||||
remove any additional permissions from that copy, or from any part of
|
|
||||||
it. (Additional permissions may be written to require their own
|
|
||||||
removal in certain cases when you modify the work.) You may place
|
|
||||||
additional permissions on material, added by you to a covered work,
|
|
||||||
for which you have or can give appropriate copyright permission.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, for material you
|
|
||||||
add to a covered work, you may (if authorized by the copyright holders of
|
|
||||||
that material) supplement the terms of this License with terms:
|
|
||||||
|
|
||||||
a) Disclaiming warranty or limiting liability differently from the
|
|
||||||
terms of sections 15 and 16 of this License; or
|
|
||||||
|
|
||||||
b) Requiring preservation of specified reasonable legal notices or
|
|
||||||
author attributions in that material or in the Appropriate Legal
|
|
||||||
Notices displayed by works containing it; or
|
|
||||||
|
|
||||||
c) Prohibiting misrepresentation of the origin of that material, or
|
|
||||||
requiring that modified versions of such material be marked in
|
|
||||||
reasonable ways as different from the original version; or
|
|
||||||
|
|
||||||
d) Limiting the use for publicity purposes of names of licensors or
|
|
||||||
authors of the material; or
|
|
||||||
|
|
||||||
e) Declining to grant rights under trademark law for use of some
|
|
||||||
trade names, trademarks, or service marks; or
|
|
||||||
|
|
||||||
f) Requiring indemnification of licensors and authors of that
|
|
||||||
material by anyone who conveys the material (or modified versions of
|
|
||||||
it) with contractual assumptions of liability to the recipient, for
|
|
||||||
any liability that these contractual assumptions directly impose on
|
|
||||||
those licensors and authors.
|
|
||||||
|
|
||||||
All other non-permissive additional terms are considered "further
|
|
||||||
restrictions" within the meaning of section 10. If the Program as you
|
|
||||||
received it, or any part of it, contains a notice stating that it is
|
|
||||||
governed by this License along with a term that is a further
|
|
||||||
restriction, you may remove that term. If a license document contains
|
|
||||||
a further restriction but permits relicensing or conveying under this
|
|
||||||
License, you may add to a covered work material governed by the terms
|
|
||||||
of that license document, provided that the further restriction does
|
|
||||||
not survive such relicensing or conveying.
|
|
||||||
|
|
||||||
If you add terms to a covered work in accord with this section, you
|
|
||||||
must place, in the relevant source files, a statement of the
|
|
||||||
additional terms that apply to those files, or a notice indicating
|
|
||||||
where to find the applicable terms.
|
|
||||||
|
|
||||||
Additional terms, permissive or non-permissive, may be stated in the
|
|
||||||
form of a separately written license, or stated as exceptions;
|
|
||||||
the above requirements apply either way.
|
|
||||||
|
|
||||||
8. Termination.
|
|
||||||
|
|
||||||
You may not propagate or modify a covered work except as expressly
|
|
||||||
provided under this License. Any attempt otherwise to propagate or
|
|
||||||
modify it is void, and will automatically terminate your rights under
|
|
||||||
this License (including any patent licenses granted under the third
|
|
||||||
paragraph of section 11).
|
|
||||||
|
|
||||||
However, if you cease all violation of this License, then your
|
|
||||||
license from a particular copyright holder is reinstated (a)
|
|
||||||
provisionally, unless and until the copyright holder explicitly and
|
|
||||||
finally terminates your license, and (b) permanently, if the copyright
|
|
||||||
holder fails to notify you of the violation by some reasonable means
|
|
||||||
prior to 60 days after the cessation.
|
|
||||||
|
|
||||||
Moreover, your license from a particular copyright holder is
|
|
||||||
reinstated permanently if the copyright holder notifies you of the
|
|
||||||
violation by some reasonable means, this is the first time you have
|
|
||||||
received notice of violation of this License (for any work) from that
|
|
||||||
copyright holder, and you cure the violation prior to 30 days after
|
|
||||||
your receipt of the notice.
|
|
||||||
|
|
||||||
Termination of your rights under this section does not terminate the
|
|
||||||
licenses of parties who have received copies or rights from you under
|
|
||||||
this License. If your rights have been terminated and not permanently
|
|
||||||
reinstated, you do not qualify to receive new licenses for the same
|
|
||||||
material under section 10.
|
|
||||||
|
|
||||||
9. Acceptance Not Required for Having Copies.
|
|
||||||
|
|
||||||
You are not required to accept this License in order to receive or
|
|
||||||
run a copy of the Program. Ancillary propagation of a covered work
|
|
||||||
occurring solely as a consequence of using peer-to-peer transmission
|
|
||||||
to receive a copy likewise does not require acceptance. However,
|
|
||||||
nothing other than this License grants you permission to propagate or
|
|
||||||
modify any covered work. These actions infringe copyright if you do
|
|
||||||
not accept this License. Therefore, by modifying or propagating a
|
|
||||||
covered work, you indicate your acceptance of this License to do so.
|
|
||||||
|
|
||||||
10. Automatic Licensing of Downstream Recipients.
|
|
||||||
|
|
||||||
Each time you convey a covered work, the recipient automatically
|
|
||||||
receives a license from the original licensors, to run, modify and
|
|
||||||
propagate that work, subject to this License. You are not responsible
|
|
||||||
for enforcing compliance by third parties with this License.
|
|
||||||
|
|
||||||
An "entity transaction" is a transaction transferring control of an
|
|
||||||
organization, or substantially all assets of one, or subdividing an
|
|
||||||
organization, or merging organizations. If propagation of a covered
|
|
||||||
work results from an entity transaction, each party to that
|
|
||||||
transaction who receives a copy of the work also receives whatever
|
|
||||||
licenses to the work the party's predecessor in interest had or could
|
|
||||||
give under the previous paragraph, plus a right to possession of the
|
|
||||||
Corresponding Source of the work from the predecessor in interest, if
|
|
||||||
the predecessor has it or can get it with reasonable efforts.
|
|
||||||
|
|
||||||
You may not impose any further restrictions on the exercise of the
|
|
||||||
rights granted or affirmed under this License. For example, you may
|
|
||||||
not impose a license fee, royalty, or other charge for exercise of
|
|
||||||
rights granted under this License, and you may not initiate litigation
|
|
||||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
|
||||||
any patent claim is infringed by making, using, selling, offering for
|
|
||||||
sale, or importing the Program or any portion of it.
|
|
||||||
|
|
||||||
11. Patents.
|
|
||||||
|
|
||||||
A "contributor" is a copyright holder who authorizes use under this
|
|
||||||
License of the Program or a work on which the Program is based. The
|
|
||||||
work thus licensed is called the contributor's "contributor version".
|
|
||||||
|
|
||||||
A contributor's "essential patent claims" are all patent claims
|
|
||||||
owned or controlled by the contributor, whether already acquired or
|
|
||||||
hereafter acquired, that would be infringed by some manner, permitted
|
|
||||||
by this License, of making, using, or selling its contributor version,
|
|
||||||
but do not include claims that would be infringed only as a
|
|
||||||
consequence of further modification of the contributor version. For
|
|
||||||
purposes of this definition, "control" includes the right to grant
|
|
||||||
patent sublicenses in a manner consistent with the requirements of
|
|
||||||
this License.
|
|
||||||
|
|
||||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
|
||||||
patent license under the contributor's essential patent claims, to
|
|
||||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
|
||||||
propagate the contents of its contributor version.
|
|
||||||
|
|
||||||
In the following three paragraphs, a "patent license" is any express
|
|
||||||
agreement or commitment, however denominated, not to enforce a patent
|
|
||||||
(such as an express permission to practice a patent or covenant not to
|
|
||||||
sue for patent infringement). To "grant" such a patent license to a
|
|
||||||
party means to make such an agreement or commitment not to enforce a
|
|
||||||
patent against the party.
|
|
||||||
|
|
||||||
If you convey a covered work, knowingly relying on a patent license,
|
|
||||||
and the Corresponding Source of the work is not available for anyone
|
|
||||||
to copy, free of charge and under the terms of this License, through a
|
|
||||||
publicly available network server or other readily accessible means,
|
|
||||||
then you must either (1) cause the Corresponding Source to be so
|
|
||||||
available, or (2) arrange to deprive yourself of the benefit of the
|
|
||||||
patent license for this particular work, or (3) arrange, in a manner
|
|
||||||
consistent with the requirements of this License, to extend the patent
|
|
||||||
license to downstream recipients. "Knowingly relying" means you have
|
|
||||||
actual knowledge that, but for the patent license, your conveying the
|
|
||||||
covered work in a country, or your recipient's use of the covered work
|
|
||||||
in a country, would infringe one or more identifiable patents in that
|
|
||||||
country that you have reason to believe are valid.
|
|
||||||
|
|
||||||
If, pursuant to or in connection with a single transaction or
|
|
||||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
|
||||||
covered work, and grant a patent license to some of the parties
|
|
||||||
receiving the covered work authorizing them to use, propagate, modify
|
|
||||||
or convey a specific copy of the covered work, then the patent license
|
|
||||||
you grant is automatically extended to all recipients of the covered
|
|
||||||
work and works based on it.
|
|
||||||
|
|
||||||
A patent license is "discriminatory" if it does not include within
|
|
||||||
the scope of its coverage, prohibits the exercise of, or is
|
|
||||||
conditioned on the non-exercise of one or more of the rights that are
|
|
||||||
specifically granted under this License. You may not convey a covered
|
|
||||||
work if you are a party to an arrangement with a third party that is
|
|
||||||
in the business of distributing software, under which you make payment
|
|
||||||
to the third party based on the extent of your activity of conveying
|
|
||||||
the work, and under which the third party grants, to any of the
|
|
||||||
parties who would receive the covered work from you, a discriminatory
|
|
||||||
patent license (a) in connection with copies of the covered work
|
|
||||||
conveyed by you (or copies made from those copies), or (b) primarily
|
|
||||||
for and in connection with specific products or compilations that
|
|
||||||
contain the covered work, unless you entered into that arrangement,
|
|
||||||
or that patent license was granted, prior to 28 March 2007.
|
|
||||||
|
|
||||||
Nothing in this License shall be construed as excluding or limiting
|
|
||||||
any implied license or other defenses to infringement that may
|
|
||||||
otherwise be available to you under applicable patent law.
|
|
||||||
|
|
||||||
12. No Surrender of Others' Freedom.
|
|
||||||
|
|
||||||
If conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot convey a
|
|
||||||
covered work so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you may
|
|
||||||
not convey it at all. For example, if you agree to terms that obligate you
|
|
||||||
to collect a royalty for further conveying from those to whom you convey
|
|
||||||
the Program, the only way you could satisfy both those terms and this
|
|
||||||
License would be to refrain entirely from conveying the Program.
|
|
||||||
|
|
||||||
13. Use with the GNU Affero General Public License.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, you have
|
|
||||||
permission to link or combine any covered work with a work licensed
|
|
||||||
under version 3 of the GNU Affero General Public License into a single
|
|
||||||
combined work, and to convey the resulting work. The terms of this
|
|
||||||
License will continue to apply to the part which is the covered work,
|
|
||||||
but the special requirements of the GNU Affero General Public License,
|
|
||||||
section 13, concerning interaction through a network will apply to the
|
|
||||||
combination as such.
|
|
||||||
|
|
||||||
14. Revised Versions of this License.
|
|
||||||
|
|
||||||
The Free Software Foundation may publish revised and/or new versions of
|
|
||||||
the GNU General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the
|
|
||||||
Program specifies that a certain numbered version of the GNU General
|
|
||||||
Public License "or any later version" applies to it, you have the
|
|
||||||
option of following the terms and conditions either of that numbered
|
|
||||||
version or of any later version published by the Free Software
|
|
||||||
Foundation. If the Program does not specify a version number of the
|
|
||||||
GNU General Public License, you may choose any version ever published
|
|
||||||
by the Free Software Foundation.
|
|
||||||
|
|
||||||
If the Program specifies that a proxy can decide which future
|
|
||||||
versions of the GNU General Public License can be used, that proxy's
|
|
||||||
public statement of acceptance of a version permanently authorizes you
|
|
||||||
to choose that version for the Program.
|
|
||||||
|
|
||||||
Later license versions may give you additional or different
|
|
||||||
permissions. However, no additional obligations are imposed on any
|
|
||||||
author or copyright holder as a result of your choosing to follow a
|
|
||||||
later version.
|
|
||||||
|
|
||||||
15. Disclaimer of Warranty.
|
|
||||||
|
|
||||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
|
||||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
|
||||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
|
||||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
|
||||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
|
||||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. Limitation of Liability.
|
|
||||||
|
|
||||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
|
||||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
|
||||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
|
||||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
|
||||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
|
||||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
|
||||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGES.
|
|
||||||
|
|
||||||
17. Interpretation of Sections 15 and 16.
|
|
||||||
|
|
||||||
If the disclaimer of warranty and limitation of liability provided
|
|
||||||
above cannot be given local legal effect according to their terms,
|
|
||||||
reviewing courts shall apply local law that most closely approximates
|
|
||||||
an absolute waiver of all civil liability in connection with the
|
|
||||||
Program, unless a warranty or assumption of liability accompanies a
|
|
||||||
copy of the Program in return for a fee.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
state the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program does terminal interaction, make it output a short
|
|
||||||
notice like this when it starts in an interactive mode:
|
|
||||||
|
|
||||||
<program> Copyright (C) <year> <name of author>
|
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, your program's commands
|
|
||||||
might be different; for a GUI interface, you would use an "about box".
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or school,
|
|
||||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
|
||||||
For more information on this, and how to apply and follow the GNU GPL, see
|
|
||||||
<https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
The GNU General Public License does not permit incorporating your program
|
|
||||||
into proprietary programs. If your program is a subroutine library, you
|
|
||||||
may consider it more useful to permit linking proprietary applications with
|
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
|
||||||
Public License instead of this License. But first, please read
|
|
||||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
|
139
README.md
@ -1,112 +1,30 @@
|
|||||||
<div align="center">
|
# dsz-exam-composer
|
||||||
|
|
||||||
# <image src="resources/icon.png" height="36"/> ExamShowboard-Legacy
|
An Electron application with Vue and TypeScript
|
||||||
|
|
||||||
[](https://github.com/ExamAware/dsz-exam-showboard/stargazers)
|
## Recommended IDE Setup
|
||||||
[](https://github.com/ExamAware/dsz-exam-showboard/forks)
|
|
||||||
[](https://github.com/ExamAware/dsz-exam-showboard/watchers)
|
|
||||||
[](https://github.com/ExamAware/dsz-exam-showboard/releases)
|
|
||||||
[](https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2FExamAware%2Fdsz-exam-showboard)
|
|
||||||
[](https://github.com/ExamAware/dsz-exam-showboard/issues)
|
|
||||||
[](https://github.com/ExamAware/dsz-exam-showboard)
|
|
||||||
[](https://github.com/ExamAware/dsz-exam-showboard/commits/master)
|
|
||||||
[](LICENSE)
|
|
||||||
[](https://qm.qq.com/q/zDiEipHsaI)
|
|
||||||
[](#贡献者)
|
|
||||||
[](https://github.com/ExamAware/dsz-exam-showboard/actions/workflows/build.yaml)
|
|
||||||
|
|
||||||

|
- [VSCode](https://code.visualstudio.com/) + [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin)
|
||||||

|
|
||||||
|
|
||||||
一款显示当前时间与考试详细信息的显示工具
|
## 注意事项
|
||||||
|
|
||||||
| | 🚀**发行版** | **🚧当前构建** |
|
必须使用Yarn包管理。Node版本要求为20。
|
||||||
| --- | --- | --- |
|
|
||||||
| **下载** | [Releases](https://github.com/ExamAware/dsz-exam-showboard/releases) | [Actions](https://github.com/ExamAware/dsz-exam-showboard/actions) |
|
|
||||||
|
|
||||||
</div>
|
## Project Setup
|
||||||
|
|
||||||
>[!tip]
|
### Install
|
||||||
>
|
|
||||||
> ExamShowboard-Legacy(考试看板-Legacy)已过时
|
|
||||||
>新版考试看板 知试ExamAware 2 请前往 `ExamAware2-Desktop` 仓库[获取](https://github.com/ExamAware/ExamAware2-Desktop)
|
|
||||||
|
|
||||||
|
|
||||||
## 功能
|
|
||||||
|
|
||||||
- 起始页展示 `打开配置` 、 `直接进入看板` 按钮
|
|
||||||
- 看板页面
|
|
||||||
- 上方展示 `考试标题` 、 `信息`
|
|
||||||
- 左侧展示 `当前时间` 、 `当前科目` 、 `考试时间` 、 `考试状态`
|
|
||||||
- 右侧展示考试科目列表,包括 `科目` 、 `开始` 、 `结束` 、 `状态`
|
|
||||||
- 考试结束前15分钟黄字提醒
|
|
||||||
- 集控功能(早期测试)
|
|
||||||
- 设置页面(正在开发)
|
|
||||||
|
|
||||||
## 开始使用
|
|
||||||
|
|
||||||
- 下载安装程序并运行
|
|
||||||
- 编写 `json` 配置文件
|
|
||||||
- 您可以前往 [ `ExamShowBoardEditor`](https://github.com/ExamAware/DSZExamShowBoardEditor/releases) 或 [`Jursin/exam-config-editor`](https://github.com/Jursin/exam-config-editor) 获取配置文件编辑器
|
|
||||||
- 您可以按照[手动编写 `json` 配置文件](https://github.com/ExamAware/dsz-exam-showboard/tree/master/doc/Manually-write-JSON-configuration-file.md)教程编写配置文件
|
|
||||||
- 打开软件,进入起始页面,点击 `打开配置` 按钮,选择配置文件
|
|
||||||
- 或使用集控(仿照 [`ClassIsland` 集控使用方法](https://docs.classisland.tech/management/tutorial-create-management-config.html))
|
|
||||||
- 新建 GitHub 公开存储仓库
|
|
||||||
- 上传上面提到的 `exam_config.json` 文件
|
|
||||||
- 复制 `Raw` 直链粘贴到应用 `请求地址` 文本框并保存
|
|
||||||
|
|
||||||
> [!tip]
|
|
||||||
>
|
|
||||||
> 可以在 `Raw 文件` 前加上镜像源链接,如
|
|
||||||
>
|
|
||||||
> ```txt
|
|
||||||
> https://github.moeyy.xyz/https://raw.githubusercontent.com/{owner}/{repo}/refs/heads/main/exam_config.json
|
|
||||||
> ```
|
|
||||||
|
|
||||||
- 点击`请求配置`加载配置文件并进入看板(下次可直接点击`直接进入看板`加载上次配置文件)
|
|
||||||
|
|
||||||
## 遇到问题
|
|
||||||
|
|
||||||
💡 如果您遇到 `Bug` ,或需要提出`优化`建议或新的`功能`,请提交 [`Issues`](https://github.com/ExamAware/dsz-exam-showboard/issues) 或在 [`Discussions`](https://github.com/ExamAware/dsz-exam-showboard/discussions) 中讨论。
|
|
||||||
|
|
||||||
👥 您也可以加入 [`QQ群|901670561`](https://qm.qq.com/q/zDiEipHsaI)获取帮助或交流讨论。
|
|
||||||
|
|
||||||
🛠️ 欢迎为本软件进行改进或编写新功能提交 [`Pull Request`](https://github.com/ExamAware/dsz-exam-showboard/pulls)
|
|
||||||
|
|
||||||
## 开发
|
|
||||||
|
|
||||||
### 推荐开发环境
|
|
||||||
|
|
||||||
- [VSCode](https://code.visualstudio.com/)
|
|
||||||
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
|
|
||||||
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
|
|
||||||
- [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar)
|
|
||||||
|
|
||||||
> [!Caution]
|
|
||||||
>
|
|
||||||
> **必须使用 Yarn 包管理。Node 版本要求为20。**
|
|
||||||
|
|
||||||
### 工程构建
|
|
||||||
|
|
||||||
#### 配置
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ yarn
|
$ yarn
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 开发
|
### Development
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ yarn dev
|
$ yarn dev
|
||||||
# 如果无法显示,可以尝试使用下面的命令(不支持热重载):
|
|
||||||
$ yarn start
|
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!important]
|
### Build
|
||||||
>
|
|
||||||
> **如果 dev 模式页面不显示或按钮点击无效等问题,请连续刷新至少3次后再进行操作。 build 后没有此问题。**
|
|
||||||
|
|
||||||
#### 构建
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# For windows
|
# For windows
|
||||||
@ -119,39 +37,6 @@ $ yarn build:mac
|
|||||||
$ yarn build:linux
|
$ yarn build:linux
|
||||||
```
|
```
|
||||||
|
|
||||||
### 开发进度
|
## 说明
|
||||||
|
|
||||||
- 正在 [`master`](https://github.com/ExamAware/dsz-exam-showboard/commits/master) 分支上维护`v1.2`版本。
|
如果dev模式页面不显示或按钮点击无效等问题,请连续刷新至少3次后再进行操作。build后没有此问题。
|
||||||
|
|
||||||
## 贡献者
|
|
||||||
|
|
||||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
||||||
<!-- prettier-ignore-start -->
|
|
||||||
<!-- markdownlint-disable -->
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td align="center" valign="top" width="14.28%"><a href="http://qsgz.edicdn.eu.org"><img src="https://avatars.githubusercontent.com/u/178344462?v=4?s=100" width="100px;" alt="MKStoler"/><br /><sub><b>MKStoler</b></sub></a><br /><a href="#code-MKStoler4096" title="Code">💻</a> <a href="#bug-MKStoler4096" title="Bug reports">🐛</a></td>
|
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Jursin"><img src="https://avatars.githubusercontent.com/u/127487914?v=4?s=100" width="100px;" alt="Jursin"/><br /><sub><b>Jursin</b></sub></a><br /><a href="#content-Jursin" title="Content">🖋</a> <a href="#design-Jursin" title="Design">🎨</a></td>
|
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hello8693DSZ"><img src="https://avatars.githubusercontent.com/u/88492699?v=4?s=100" width="100px;" alt="Hello8693"/><br /><sub><b>Hello8693</b></sub></a><br /><a href="#code-hello8693DSZ" title="Code">💻</a></td>
|
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fhzit"><img src="https://avatars.githubusercontent.com/u/152045732?v=4?s=100" width="100px;" alt="fhzit"/><br /><sub><b>fhzit</b></sub></a><br /><a href="#code-fhzit" title="Code">💻</a> <a href="#bug-fhzit" title="Bug reports">🐛</a> <a href="#doc-fhzit" title="Documentation">📖</a></td>
|
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wjj-8283"><img src="https://avatars.githubusercontent.com/u/82750345?v=4?s=100" width="100px;" alt="wjj-8283"/><br /><sub><b>wjj-8283</b></sub></a><br /><a href="#code-wjj-8283" title="Code">💻</a></td>
|
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/features/security"><img src="https://avatars.githubusercontent.com/u/27347476?v=4?s=100" width="100px;" alt="Dependabot"/><br /><sub><b>Dependabot</b></sub></a><br /><a href="#code-dependabot" title="Code">💻</a></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- markdownlint-restore -->
|
|
||||||
<!-- prettier-ignore-end -->
|
|
||||||
|
|
||||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
||||||
|
|
||||||
## Stars 历史
|
|
||||||
|
|
||||||
<div align="center">
|
|
||||||
|
|
||||||
[](https://starchart.cc/ExamAware/dsz-exam-showboard/stargazers)
|
|
||||||
|
|
||||||
如果这个项目对您有帮助,请点亮 Star ⭐|[返回顶部](#%20%3Cimage%20src=%22resources/icon.png%22%20height=%2236%22/%3E%20ExamShowboard)
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
BIN
build/icon.ico
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 353 KiB |
BIN
build/icon.png
Before Width: | Height: | Size: 800 KiB After Width: | Height: | Size: 163 KiB |
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 353 KiB |
@ -1,34 +0,0 @@
|
|||||||
# 手动编写json配置文件教程<br>
|
|
||||||
## 新建文件 `exam_config.json` ,模板如下
|
|
||||||
|
|
||||||
> [!warning]
|
|
||||||
>
|
|
||||||
> 请确保 `exam_config.json` 文件编码为 `UTF-8`,换行符为 `LF`,按照`json`文件格式填写。**(不然可能会出一些神奇的 Bug)**
|
|
||||||
>
|
|
||||||
> 不确定?可以使用 [VSCode](https://code.visualstudio.com/) 打开、编辑文件,右下角显示编码格式和换行方式,点击即可更改。
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"examName": "考试名称",
|
|
||||||
"message": "信息",
|
|
||||||
"room": "考场号",
|
|
||||||
"examInfos": [
|
|
||||||
{
|
|
||||||
"name": "科目",
|
|
||||||
"start": "2024-12-01T07:00:00",
|
|
||||||
"end": "2024-12-01T08:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "科目/科目",
|
|
||||||
"start": "2024-12-01T09:00:00",
|
|
||||||
"end": "2024-12-01T10:00:00"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
> [!tip]
|
|
||||||
>
|
|
||||||
> `message` 与 `room` 内容必填(可填空格隐藏),`examInfos` 至少需要一条数据。
|
|
||||||
>
|
|
||||||
> 如果有两个以"/"分隔的科目可以自动转化为双行显示
|
|
26
package.json
@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "examshowboard",
|
"name": "dsz-exam-showboard",
|
||||||
"version": "1.2.5",
|
"version": "0.1.0",
|
||||||
"description": "考试展板",
|
"description": "An Electron application with Vue",
|
||||||
"main": "./out/main/index.js",
|
"main": "./out/main/index.js",
|
||||||
"author": "Hello8693&MKStoler <hello8693@hello8693.xyz>",
|
"author": "Hello8693 <hello8693@hello8693.xyz>",
|
||||||
"homepage": "https://edicdn.eu.org/",
|
"homepage": "https://dsz.hello8693.xyz/",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"preinstall": "node -e \"if (process.env.npm_execpath.indexOf('yarn') === -1) throw new Error('Use yarn for installing: https://yarnpkg.com/en/docs/install')\"",
|
"preinstall": "node -e \"if (process.env.npm_execpath.indexOf('yarn') === -1) throw new Error('Use yarn for installing: https://yarnpkg.com/en/docs/install')\"",
|
||||||
"format": "prettier --write .",
|
"format": "prettier --write .",
|
||||||
@ -39,19 +39,19 @@
|
|||||||
"uuid": "^9.0.1",
|
"uuid": "^9.0.1",
|
||||||
"vite-plugin-svg-icons": "^2.0.1",
|
"vite-plugin-svg-icons": "^2.0.1",
|
||||||
"vite-plugin-vue-layouts": "^0.11.0",
|
"vite-plugin-vue-layouts": "^0.11.0",
|
||||||
"vue": "^3.5.13",
|
"vue": "^3.4.34",
|
||||||
"vue-showdown": "^4.2.0",
|
"vue-showdown": "^4.2.0",
|
||||||
"vuetify": "^3.5.8"
|
"vuetify": "^3.5.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/config-conventional": "^19.2.2",
|
"@commitlint/config-conventional": "^19.2.2",
|
||||||
"@electron-toolkit/eslint-config": "^1.0.1",
|
"@electron-toolkit/eslint-config": "^1.0.1",
|
||||||
"@electron-toolkit/eslint-config-ts": "^2.0.0",
|
"@electron-toolkit/eslint-config-ts": "^1.0.1",
|
||||||
"@electron-toolkit/tsconfig": "^1.0.1",
|
"@electron-toolkit/tsconfig": "^1.0.1",
|
||||||
"@rushstack/eslint-patch": "^1.6.1",
|
"@rushstack/eslint-patch": "^1.6.1",
|
||||||
"@types/vue": "^2.0.0",
|
"@types/vue": "^2.0.0",
|
||||||
"@vitejs/plugin-vue": "^5.0.3",
|
"@vitejs/plugin-vue": "^5.0.3",
|
||||||
"@vue/eslint-config-prettier": "^10.2.0",
|
"@vue/eslint-config-prettier": "^9.0.0",
|
||||||
"@vue/eslint-config-typescript": "^13.0.0",
|
"@vue/eslint-config-typescript": "^13.0.0",
|
||||||
"commitlint": "^19.3.0",
|
"commitlint": "^19.3.0",
|
||||||
"core-js": "^3.34.0",
|
"core-js": "^3.34.0",
|
||||||
@ -60,11 +60,11 @@
|
|||||||
"electron-icon-builder": "^2.0.1",
|
"electron-icon-builder": "^2.0.1",
|
||||||
"electron-vite": "^2.0.0",
|
"electron-vite": "^2.0.0",
|
||||||
"eslint": "^8.56.0",
|
"eslint": "^8.56.0",
|
||||||
"eslint-plugin-vue": "^9.32.0",
|
"eslint-plugin-vue": "^9.20.1",
|
||||||
"husky": "^9.1.7",
|
"husky": "^9.1.5",
|
||||||
"lint-staged": "^15.2.9",
|
"lint-staged": "^15.2.9",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "^2.1.7",
|
||||||
"prettier": "^3.4.2",
|
"prettier": "^3.2.4",
|
||||||
"raw-loader": "^4.0.2",
|
"raw-loader": "^4.0.2",
|
||||||
"roboto-fontface": "*",
|
"roboto-fontface": "*",
|
||||||
"sass": "^1.71.1",
|
"sass": "^1.71.1",
|
||||||
@ -72,11 +72,11 @@
|
|||||||
"unplugin-fonts": "^1.1.1",
|
"unplugin-fonts": "^1.1.1",
|
||||||
"unplugin-vue-components": "^0.27.3",
|
"unplugin-vue-components": "^0.27.3",
|
||||||
"unplugin-vue-router": "^0.8.4",
|
"unplugin-vue-router": "^0.8.4",
|
||||||
"vite": "^5.3.6",
|
"vite": "^5.0.12",
|
||||||
"vite-plugin-optimizer": "^1.4.3",
|
"vite-plugin-optimizer": "^1.4.3",
|
||||||
"vite-plugin-svg-icons": "^2.0.1",
|
"vite-plugin-svg-icons": "^2.0.1",
|
||||||
"vite-plugin-vue-layouts": "^0.11.0",
|
"vite-plugin-vue-layouts": "^0.11.0",
|
||||||
"vite-plugin-vuetify": "^2.0.4",
|
"vite-plugin-vuetify": "^2.0.3",
|
||||||
"vue-router": "^4.3.0",
|
"vue-router": "^4.3.0",
|
||||||
"vue-tsc": "^1.8.27"
|
"vue-tsc": "^1.8.27"
|
||||||
},
|
},
|
||||||
|
Before Width: | Height: | Size: 800 KiB After Width: | Height: | Size: 163 KiB |
@ -54,7 +54,7 @@ class WindowManager {
|
|||||||
return this.MainWindow;
|
return this.MainWindow;
|
||||||
}
|
}
|
||||||
this.MainWindow = this.createWindow('mainWindow', {
|
this.MainWindow = this.createWindow('mainWindow', {
|
||||||
title: 'ExamShowboard 考试看板',
|
title: 'DSZ ExamShowboard 考试看板',
|
||||||
fullscreen: true
|
fullscreen: true
|
||||||
});
|
});
|
||||||
this.MainWindow.on('close', () => {
|
this.MainWindow.on('close', () => {
|
||||||
|
@ -5,20 +5,10 @@
|
|||||||
<link rel="icon" href="/favicon.ico" />
|
<link rel="icon" href="/favicon.ico" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>DSZ Exam Showboard</title>
|
<title>DSZ Exam Showboard</title>
|
||||||
<style>
|
|
||||||
/* 隐藏滚动条 */
|
|
||||||
body {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
/* 适用于所有滚动容器 */
|
|
||||||
.no-scrollbar {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="app" class="no-scrollbar"></div>
|
<div id="app"></div>
|
||||||
<script type="module" src="/src/main.ts"></script>
|
<script type="module" src="/src/main.ts"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,12 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<v-system-bar class="position-fixed">
|
||||||
|
<v-icon icon="mdi-window-close" @click="ipcHandleExit"></v-icon>
|
||||||
|
<span class="ms-2">{{
|
||||||
|
new Date().toLocaleTimeString('en-US', {
|
||||||
|
hour: 'numeric',
|
||||||
|
minute: 'numeric',
|
||||||
|
hour12: false
|
||||||
|
})
|
||||||
|
}}</span>
|
||||||
|
</v-system-bar>
|
||||||
<v-app-bar :elevation="2" class="position-fixed">
|
<v-app-bar :elevation="2" class="position-fixed">
|
||||||
<v-app-bar-title>{{ profileStore.appHeader }}</v-app-bar-title>
|
<v-app-bar-title>{{ profileStore.appHeader }}</v-app-bar-title>
|
||||||
|
|
||||||
<template #append>
|
<template #append>
|
||||||
<div class="ga-4">
|
<div class="ga-4">
|
||||||
<v-btn @click="gotoHome">回到主页</v-btn>
|
<v-btn @click="router.push('/mainWindow')">回到主页</v-btn>
|
||||||
<v-btn @click="router.push('/about')">关于</v-btn>
|
|
||||||
<v-icon icon="mdi-window-close" @click="ipcHandleExit"></v-icon>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</v-app-bar>
|
</v-app-bar>
|
||||||
@ -17,11 +25,8 @@ import { useRouter } from 'vue-router';
|
|||||||
import { useProfileStore } from '../stores/app';
|
import { useProfileStore } from '../stores/app';
|
||||||
|
|
||||||
const profileStore = useProfileStore();
|
const profileStore = useProfileStore();
|
||||||
const router = useRouter();
|
|
||||||
|
|
||||||
const ipcHandleExit = () => window.electron.ipcRenderer.send('prog:exit');
|
const ipcHandleExit = () => window.electron.ipcRenderer.send('prog:exit');
|
||||||
|
|
||||||
function gotoHome() {
|
const router = useRouter();
|
||||||
router.push({ path: '/mainWindow', query: { skipAutoEnter: true } });
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
@ -1,51 +1,42 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-card class="mx-auto" max-width="600" flat>
|
<v-card class="mx-auto" max-width="600">
|
||||||
<v-container fluid class="pa-0">
|
<v-container fluid>
|
||||||
<v-row justify="center" class="ma-0">
|
<v-row justify="center">
|
||||||
<v-col cols="12" class="pa-0">
|
<v-col cols="12">
|
||||||
<v-data-table
|
<v-data-table
|
||||||
:items="groupedExams"
|
:items="sortedExams"
|
||||||
:headers="headers"
|
:headers="headers"
|
||||||
item-key="name"
|
item-key="name"
|
||||||
hide-default-footer
|
hide-default-footer
|
||||||
dense
|
dense
|
||||||
class="text-h5"
|
class="text-h5"
|
||||||
>
|
>
|
||||||
<template #item="{ item }">
|
|
||||||
<tr :style="{ lineHeight: item.name.includes('/') ? '2.5rem' : '2.0rem' }">
|
|
||||||
<td v-if="item.showDate" class="text-h5 date-column" :rowspan="item.rowspan">
|
|
||||||
{{ item.date }}<br />{{ item.period }}
|
|
||||||
</td>
|
|
||||||
<td class="text-h5 subject-column">
|
|
||||||
<div v-if="item.name.includes('/')">
|
|
||||||
<div>{{ item.name.split('/')[0] }}</div>
|
|
||||||
<div>{{ item.name.split('/')[1] }}</div>
|
|
||||||
</div>
|
|
||||||
<div v-else>{{ item.name }}</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-h5 time-column">{{ formatTime(item.start) }}</td>
|
|
||||||
<td class="text-h5 time-column">{{ formatTime(item.end) }}</td>
|
|
||||||
<td class="status-column">
|
|
||||||
<v-chip :color="getStatusColor(item)" dark class="exam-status-chip">
|
|
||||||
{{ getStatusText(item) }}
|
|
||||||
</v-chip>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</template>
|
|
||||||
<template #header.date>
|
|
||||||
<span class="text-h5 font-weight-bold no-wrap">日期</span>
|
|
||||||
</template>
|
|
||||||
<template #header.name>
|
<template #header.name>
|
||||||
<span class="text-h5 font-weight-bold no-wrap">科目</span>
|
<span class="text-h5">科目</span>
|
||||||
</template>
|
</template>
|
||||||
<template #header.start>
|
<template #header.start>
|
||||||
<span class="text-h5 font-weight-bold no-wrap">开始</span>
|
<span class="text-h5">开始</span>
|
||||||
</template>
|
</template>
|
||||||
<template #header.end>
|
<template #header.end>
|
||||||
<span class="text-h5 font-weight-bold no-wrap">结束</span>
|
<span class="text-h5">结束</span>
|
||||||
</template>
|
</template>
|
||||||
<template #header.status>
|
<template #header.status>
|
||||||
<span class="text-h5 font-weight-bold no-wrap">状态</span>
|
<span class="text-h5">状态</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #item.name="{ item }">
|
||||||
|
<div class="text-h5">{{ item.name }}</div>
|
||||||
|
</template>
|
||||||
|
<template #item.start="{ item }">
|
||||||
|
<div class="text-h5">{{ formatTime(item.start) }}</div>
|
||||||
|
</template>
|
||||||
|
<template #item.end="{ item }">
|
||||||
|
<div class="text-h5">{{ formatTime(item.end) }}</div>
|
||||||
|
</template>
|
||||||
|
<template #item.status="{ item }">
|
||||||
|
<v-chip :color="getStatusColor(item)" dark class="exam-status-chip">
|
||||||
|
{{ getStatusText(item) }}
|
||||||
|
</v-chip>
|
||||||
</template>
|
</template>
|
||||||
</v-data-table>
|
</v-data-table>
|
||||||
</v-col>
|
</v-col>
|
||||||
@ -55,7 +46,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive, computed, onMounted, onUnmounted } from 'vue';
|
import { reacive, computed } from 'vue';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
exam: {
|
exam: {
|
||||||
@ -64,53 +55,16 @@ const props = defineProps({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const state = reactive({
|
// Computed properties and methods
|
||||||
exams: props.exam
|
const sortedExams = computed(() => {
|
||||||
});
|
return props.exam.sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime());
|
||||||
|
|
||||||
function formatPeriod(isoString: string): string {
|
|
||||||
const hour = new Date(isoString).getHours();
|
|
||||||
if (hour < 12) return '上午';
|
|
||||||
else if (hour < 18) return '下午';
|
|
||||||
else return '晚上';
|
|
||||||
}
|
|
||||||
|
|
||||||
const groupedExams = computed(() => {
|
|
||||||
const grouped = [];
|
|
||||||
let currentDate = '';
|
|
||||||
let currentPeriod = '';
|
|
||||||
sortedExams.value.forEach((exam, index) => {
|
|
||||||
const examDate =
|
|
||||||
new Date(exam.start)
|
|
||||||
.toLocaleDateString('zh-CN', { month: 'numeric', day: 'numeric' })
|
|
||||||
.replace('/', '月') + '日';
|
|
||||||
const period = formatPeriod(exam.start);
|
|
||||||
const showDate = examDate !== currentDate || period !== currentPeriod;
|
|
||||||
if (showDate) {
|
|
||||||
currentDate = examDate;
|
|
||||||
currentPeriod = period;
|
|
||||||
const rowspan = sortedExams.value.filter(
|
|
||||||
(e) =>
|
|
||||||
new Date(e.start)
|
|
||||||
.toLocaleDateString('zh-CN', { month: 'numeric', day: 'numeric' })
|
|
||||||
.replace('/', '月') +
|
|
||||||
'日' ===
|
|
||||||
currentDate && formatPeriod(e.start) === currentPeriod
|
|
||||||
).length;
|
|
||||||
grouped.push({ ...exam, date: examDate, period, showDate, rowspan });
|
|
||||||
} else {
|
|
||||||
grouped.push({ ...exam, date: examDate, period, showDate: false });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return grouped;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const headers = [
|
const headers = [
|
||||||
{ text: '日期', value: 'date', sortable: false, align: 'center' },
|
{ text: '科目', value: 'name' },
|
||||||
{ text: '科目', value: 'name', align: 'center' },
|
{ text: '开始', value: 'start', sortable: false },
|
||||||
{ text: '开始', value: 'start', sortable: false, align: 'center' },
|
{ text: '结束', value: 'end', sortable: false },
|
||||||
{ text: '结束', value: 'end', sortable: false, align: 'center' },
|
{ text: '状态', value: 'status', sortable: false }
|
||||||
{ text: '状态', value: 'status', sortable: false, align: 'center' }
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const formatTime = (isoString: string) => {
|
const formatTime = (isoString: string) => {
|
||||||
@ -122,6 +76,7 @@ function getStatusColor(item: any): string {
|
|||||||
const now = new Date();
|
const now = new Date();
|
||||||
const startTime = new Date(item.start);
|
const startTime = new Date(item.start);
|
||||||
const endTime = new Date(item.end);
|
const endTime = new Date(item.end);
|
||||||
|
|
||||||
if (now < startTime) return 'orange';
|
if (now < startTime) return 'orange';
|
||||||
else if (now >= startTime && now <= endTime) return 'green';
|
else if (now >= startTime && now <= endTime) return 'green';
|
||||||
else return 'red';
|
else return 'red';
|
||||||
@ -131,76 +86,19 @@ function getStatusText(item: any): string {
|
|||||||
const now = new Date();
|
const now = new Date();
|
||||||
const startTime = new Date(item.start);
|
const startTime = new Date(item.start);
|
||||||
const endTime = new Date(item.end);
|
const endTime = new Date(item.end);
|
||||||
if (now < startTime) {
|
|
||||||
return '未开始';
|
if (now < startTime) return '未开始';
|
||||||
} else if (now >= startTime && now <= endTime) {
|
else if (now >= startTime && now <= endTime) return '进行中';
|
||||||
return '进行中';
|
else return '已结束';
|
||||||
} else {
|
|
||||||
return '已结束';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const sortedExams = computed(() => {
|
|
||||||
return state.exams.sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime());
|
|
||||||
});
|
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
const interval = setInterval(() => {
|
|
||||||
state.exams = state.exams.map((exam) => ({
|
|
||||||
...exam,
|
|
||||||
status: getStatusText(exam)
|
|
||||||
}));
|
|
||||||
}, 1000);
|
|
||||||
|
|
||||||
onUnmounted(() => {
|
|
||||||
clearInterval(interval);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.text-h5 {
|
.text-h5 {
|
||||||
font-size: 1.8rem !important;
|
font-size: 1.8rem !important;
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.font-weight-bold {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.exam-status-chip {
|
.exam-status-chip {
|
||||||
font-size: 1.5rem !important;
|
font-size: 1.5rem !important;
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 强制标题行文字不换行 */
|
|
||||||
.no-wrap {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 列样式 */
|
|
||||||
.date-column,
|
|
||||||
.subject-column,
|
|
||||||
.time-column,
|
|
||||||
.status-column {
|
|
||||||
white-space: nowrap;
|
|
||||||
text-align: center;
|
|
||||||
padding: 5px 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.date-column {
|
|
||||||
width: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.subject-column {
|
|
||||||
width: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.time-column {
|
|
||||||
width: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status-column {
|
|
||||||
width: 60px;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,26 +1,21 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-card v-if="exam" class="mx-auto pa-4 subject-info-card" max-width="600" elevation="12">
|
<v-card v-if="exam" class="mx-auto pa-4 subject-info-card" max-width="600" elevation="12">
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<div class="text-h5 line-item">
|
<div class="text-h5">
|
||||||
当前科目:<span class="text-h5 ml-2">{{ exam.name }}</span>
|
当前科目:<span class="text-h5 ml-2">{{ exam.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-h5 line-item">
|
<div class="text-h5">
|
||||||
考试时间: {{ formatDateTime(exam.start) }} ~ {{ formatDateTime(exam.end) }}
|
考试时间: {{ formatDateTime(exam.start) }} ~ {{ formatDateTime(exam.end) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-h5 line-item">
|
<div class="text-h5 mt-4">
|
||||||
考试状态: <span :class="statusColor">{{ statusText }}</span>
|
考试状态: <span :class="statusColor">{{ statusText }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="showCountdown" class="text-h5 text--info line-item">
|
<div v-if="isWarning" class="text-h5 text--warning">考试即将结束</div>
|
||||||
开考倒计时: {{ countdown }}
|
|
||||||
</div>
|
|
||||||
<div v-if="showRemainingTime" :class="['text-h5', remainingTimeColorClass, 'line-item']">
|
|
||||||
剩余时间: {{ remainingTime }}
|
|
||||||
</div>
|
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
</v-card>
|
</v-card>
|
||||||
|
|
||||||
<v-card v-else class="mx-auto pa-4 subject-info-card" max-width="600" elevation="12">
|
<v-card v-else class="mx-auto pa-4 subject-info-card" max-width="600" elevation="12">
|
||||||
<v-card-title class="headline grey lighten-2 text-center text--ended">考试已结束</v-card-title>
|
<v-card-title class="headline grey lighten-2"> 考试已结束 </v-card-title>
|
||||||
</v-card>
|
</v-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -55,7 +50,7 @@ const statusColor = computed(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const statusText = computed(() => {
|
const statusText = computed(() => {
|
||||||
if (!props.exam) return '全部考试均已结束';
|
if (!props.exam) return '考试已结束';
|
||||||
|
|
||||||
const start = new Date(props.exam.start);
|
const start = new Date(props.exam.start);
|
||||||
const end = new Date(props.exam.end);
|
const end = new Date(props.exam.end);
|
||||||
@ -65,56 +60,13 @@ const statusText = computed(() => {
|
|||||||
if (now.value >= end) return '已结束';
|
if (now.value >= end) return '已结束';
|
||||||
});
|
});
|
||||||
|
|
||||||
const showRemainingTime = computed(() => {
|
const isWarning = computed(() => {
|
||||||
if (!props.exam) return false;
|
if (!props.exam) return false;
|
||||||
|
|
||||||
const start = new Date(props.exam.start);
|
|
||||||
const end = new Date(props.exam.end);
|
|
||||||
|
|
||||||
return now.value >= start && now.value < end;
|
|
||||||
});
|
|
||||||
|
|
||||||
const showCountdown = computed(() => {
|
|
||||||
if (!props.exam) return false;
|
|
||||||
|
|
||||||
const start = new Date(props.exam.start);
|
|
||||||
const fifteenMinutesBeforeStart = new Date(start.getTime() - 15 * 60 * 1000);
|
|
||||||
|
|
||||||
return now.value >= fifteenMinutesBeforeStart && now.value < start;
|
|
||||||
});
|
|
||||||
|
|
||||||
const remainingTime = computed(() => {
|
|
||||||
if (!props.exam) return '';
|
|
||||||
|
|
||||||
const end = new Date(props.exam.end);
|
|
||||||
const timeDiff = end.getTime() - now.value.getTime();
|
|
||||||
const minutes = Math.floor(timeDiff / (1000 * 60));
|
|
||||||
const seconds = Math.floor((timeDiff % (1000 * 60)) / 1000);
|
|
||||||
|
|
||||||
return `${minutes}分${seconds}秒`;
|
|
||||||
});
|
|
||||||
|
|
||||||
const countdown = computed(() => {
|
|
||||||
if (!props.exam) return '';
|
|
||||||
|
|
||||||
const start = new Date(props.exam.start);
|
|
||||||
const timeDiff = start.getTime() - now.value.getTime();
|
|
||||||
const minutes = Math.floor(timeDiff / (1000 * 60));
|
|
||||||
const seconds = Math.floor((timeDiff % (1000 * 60)) / 1000);
|
|
||||||
|
|
||||||
return `${minutes}分${seconds}秒`;
|
|
||||||
});
|
|
||||||
|
|
||||||
// 动态颜色样式
|
|
||||||
const remainingTimeColorClass = computed(() => {
|
|
||||||
if (!props.exam) return 'text--default';
|
|
||||||
|
|
||||||
const end = new Date(props.exam.end);
|
const end = new Date(props.exam.end);
|
||||||
const fifteenMinutesBeforeEnd = new Date(end.getTime() - 15 * 60 * 1000);
|
const fifteenMinutesBeforeEnd = new Date(end.getTime() - 15 * 60 * 1000);
|
||||||
|
|
||||||
return now.value >= fifteenMinutesBeforeEnd && now.value < end
|
return now.value >= fifteenMinutesBeforeEnd && now.value < end;
|
||||||
? 'text--warning'
|
|
||||||
: 'text--default';
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Update the current time every second
|
// Update the current time every second
|
||||||
@ -130,25 +82,8 @@ updateNow();
|
|||||||
font-size: 2.5rem !important;
|
font-size: 2.5rem !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-item {
|
|
||||||
margin-bottom: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text--default {
|
|
||||||
color: white !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text--warning {
|
.text--warning {
|
||||||
color: #ff0000 !important;
|
color: #ffc107 !important; /* Vuetify's default warning color */
|
||||||
}
|
|
||||||
|
|
||||||
.text--info {
|
|
||||||
color: #ffff00 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text--ended {
|
|
||||||
font-size: 2.5rem !important;
|
|
||||||
color: #666;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-before {
|
.status-before {
|
||||||
@ -156,7 +91,7 @@ updateNow();
|
|||||||
}
|
}
|
||||||
|
|
||||||
.status-middle {
|
.status-middle {
|
||||||
color: rgb(0, 255, 0);
|
color: green;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-after {
|
.status-after {
|
||||||
@ -166,8 +101,4 @@ updateNow();
|
|||||||
.subject-info-card {
|
.subject-info-card {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-center {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -7,6 +7,5 @@ export interface TimeSlot {
|
|||||||
export interface ExamSchedule {
|
export interface ExamSchedule {
|
||||||
examName: string;
|
examName: string;
|
||||||
message: string;
|
message: string;
|
||||||
room: string;
|
|
||||||
examInfos: TimeSlot[];
|
examInfos: TimeSlot[];
|
||||||
}
|
}
|
||||||
|
@ -1,54 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-app>
|
<v-app>
|
||||||
<AppTopBar />
|
<AppTopBar />
|
||||||
<v-main class="no-scrollbar">
|
<v-main>
|
||||||
<router-view />
|
<router-view />
|
||||||
</v-main>
|
</v-main>
|
||||||
<div class="scale-control">
|
|
||||||
<v-select
|
|
||||||
v-model="fontSize"
|
|
||||||
:items="fontSizeOptions"
|
|
||||||
label="选择字体大小"
|
|
||||||
class="scale-select"
|
|
||||||
></v-select>
|
|
||||||
<div class="scale-label">调整字体大小</div>
|
|
||||||
</div>
|
|
||||||
</v-app>
|
</v-app>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, watch } from 'vue';
|
//
|
||||||
|
|
||||||
const fontSizeOptions = ['75%', '100%', '125%', '150%', '175%', '200%']; // 字体大小选项
|
|
||||||
|
|
||||||
const fontSize = ref('100%'); // 默认值为100%
|
|
||||||
|
|
||||||
watch(fontSize, (newFontSize) => {
|
|
||||||
document.documentElement.style.fontSize = newFontSize; // 动态调整根元素的字体大小
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.no-scrollbar {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scale-control {
|
|
||||||
position: fixed;
|
|
||||||
bottom: 10px;
|
|
||||||
left: 50%;
|
|
||||||
transform: translateX(-50%);
|
|
||||||
width: 300px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scale-select {
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scale-label {
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
@ -25,16 +25,4 @@ app.use(VueShowdownPlugin, {
|
|||||||
|
|
||||||
registerPlugins(app);
|
registerPlugins(app);
|
||||||
|
|
||||||
// 添加全局样式来隐藏滚动条
|
|
||||||
const style = document.createElement('style');
|
|
||||||
style.innerHTML = `
|
|
||||||
body {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.no-scrollbar {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
document.head.appendChild(style);
|
|
||||||
|
|
||||||
app.mount('#app');
|
app.mount('#app');
|
||||||
|
@ -1,85 +0,0 @@
|
|||||||
<template>
|
|
||||||
<v-container class="main-container" fill-height>
|
|
||||||
<v-row justify="center" align="center">
|
|
||||||
<v-col cols="12" md="10">
|
|
||||||
<v-card class="pa-4" outlined>
|
|
||||||
<v-card-title class="text-h3">关于考试看板</v-card-title>
|
|
||||||
<v-card-text>
|
|
||||||
<p class="text-lg">
|
|
||||||
欢迎使用考试看板,这是一款用于展示考试信息的工具,帮助考生更好地了解考试信息与状态。
|
|
||||||
</p>
|
|
||||||
<p class="text-lg">本软件旨在为考生提供便捷的考试信息查看体验。</p>
|
|
||||||
<p class="text-lg developer">
|
|
||||||
开发者:
|
|
||||||
<a href="https://github.com/examaware" target="_blank" class="developer-name"
|
|
||||||
>ExamAware开发团队</a
|
|
||||||
>
|
|
||||||
</p>
|
|
||||||
<v-btn
|
|
||||||
href="https://github.com/ExamAware/ExamShowboard-Legacy"
|
|
||||||
target="_blank"
|
|
||||||
color="primary"
|
|
||||||
class="mt-4 normal-case"
|
|
||||||
>
|
|
||||||
在 GitHub 上查看源代码
|
|
||||||
</v-btn>
|
|
||||||
</v-card-text>
|
|
||||||
</v-card>
|
|
||||||
</v-col>
|
|
||||||
</v-row>
|
|
||||||
</v-container>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.main-container {
|
|
||||||
padding: 20px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-card {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 800px;
|
|
||||||
margin: auto;
|
|
||||||
transition: transform 0.3s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-card:hover {
|
|
||||||
transform: scale(1.05);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 调整字体大小 */
|
|
||||||
.text-h3 {
|
|
||||||
font-size: 2.5em !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-lg {
|
|
||||||
font-size: 1.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.v-btn {
|
|
||||||
height: 48px;
|
|
||||||
font-size: 1.1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.normal-case {
|
|
||||||
text-transform: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 开发者名字背景框 */
|
|
||||||
.developer-name {
|
|
||||||
background-color: #f0f0f0;
|
|
||||||
color: black;
|
|
||||||
padding: 0 6px;
|
|
||||||
border-radius: 4px;
|
|
||||||
display: inline-block;
|
|
||||||
line-height: 1.4em;
|
|
||||||
font-size: 1.2em;
|
|
||||||
margin: 0 5px;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.developer-name:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,13 +1,8 @@
|
|||||||
<!-- eslint-disable @typescript-eslint/no-unused-vars -->
|
|
||||||
<template>
|
<template>
|
||||||
<v-container class="main-area">
|
<v-container class="main-area">
|
||||||
<v-row>
|
<v-row>
|
||||||
<v-col cols="12" class="d-flex justify-space-between align-center">
|
<v-col cols="12">
|
||||||
<h1 class="large-title">{{ globalStore.examName }}</h1>
|
<h1>{{ globalStore.examName }}</h1>
|
||||||
<h2 class="room">{{ globalStore.room }}</h2>
|
|
||||||
</v-col>
|
|
||||||
<v-col v-if="globalStore.message" cols="12">
|
|
||||||
<h3 class="medium-title text-left">{{ globalStore.message }}</h3>
|
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
|
|
||||||
@ -25,47 +20,23 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, computed, onMounted, onUnmounted } from 'vue';
|
|
||||||
import { useProfileStore } from '@renderer/stores/app';
|
import { useProfileStore } from '@renderer/stores/app';
|
||||||
import { getCurrentTimeSlot, getNextExamTimeSlot } from '@renderer/utils/subjectUtils';
|
import { getCurrentTimeSlot, getNextExamTimeSlot } from '@renderer/utils/subjectUtils';
|
||||||
|
|
||||||
const globalStore = useProfileStore();
|
const globalStore = useProfileStore();
|
||||||
const currentExam = ref(null);
|
|
||||||
let timeout = null;
|
|
||||||
|
|
||||||
const updateCurrentExam = () => {
|
getCurrentTimeSlot(globalStore.examInfos);
|
||||||
|
|
||||||
|
const currentExam = computed(() => {
|
||||||
const current = getCurrentTimeSlot(globalStore.examInfos);
|
const current = getCurrentTimeSlot(globalStore.examInfos);
|
||||||
currentExam.value = current ? current : getNextExamTimeSlot(globalStore.examInfos);
|
if (current == null) {
|
||||||
};
|
return getNextExamTimeSlot(globalStore.examInfos);
|
||||||
|
} else {
|
||||||
const scheduleNextUpdate = () => {
|
return current;
|
||||||
if (timeout) {
|
|
||||||
clearTimeout(timeout);
|
|
||||||
}
|
|
||||||
|
|
||||||
const nextExam = getNextExamTimeSlot(globalStore.examInfos);
|
|
||||||
if (nextExam) {
|
|
||||||
const nextEndTime = new Date(nextExam.end).getTime();
|
|
||||||
const now = Date.now();
|
|
||||||
const delay = nextEndTime - now + 60000; // Next exam end time + 1 minute
|
|
||||||
|
|
||||||
timeout = setTimeout(() => {
|
|
||||||
updateCurrentExam();
|
|
||||||
scheduleNextUpdate();
|
|
||||||
}, delay);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
updateCurrentExam();
|
|
||||||
scheduleNextUpdate();
|
|
||||||
});
|
|
||||||
|
|
||||||
onUnmounted(() => {
|
|
||||||
if (timeout) {
|
|
||||||
clearTimeout(timeout);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@ -73,19 +44,4 @@ onUnmounted(() => {
|
|||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
padding-right: 20px;
|
padding-right: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.large-title {
|
|
||||||
font-size: 3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.medium-title {
|
|
||||||
font-size: 2em;
|
|
||||||
color: gray;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.room {
|
|
||||||
font-size: 3em;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,82 +1,28 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-container class="main-container" fill-height>
|
<v-container class="main-container" fill-height>
|
||||||
<v-row justify="center" align="center">
|
<v-row justify="center" align="center">
|
||||||
<v-col cols="12" md="4" class="d-flex flex-column">
|
<v-col cols="12" md="4">
|
||||||
<v-card class="pa-4 fade-in slide-in" outlined>
|
<v-card class="pa-4 fade-in slide-in" outlined>
|
||||||
<v-text-field v-model="remoteUrl" label="请求地址" clearable></v-text-field>
|
<v-btn block color="deep-purple accent-4" dark @click="openDialog">打开配置</v-btn>
|
||||||
<v-btn block color="deep-purple accent-4" dark @click="saveUrl">保存地址</v-btn>
|
<p class="mt-2 text-center">打开 JSON 配置文件</p>
|
||||||
<p class="mt-2 text-center">输入并保存请求地址</p>
|
|
||||||
<v-btn block color="deep-purple accent-4" dark class="mt-2" @click="openDialog"
|
|
||||||
>打开配置</v-btn
|
|
||||||
>
|
|
||||||
<p class="mt-2 text-center">打开 Json 配置文件</p>
|
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="12" md="4" class="d-flex flex-column">
|
<v-col cols="12" md="4" class="mt-4 mt-md-0">
|
||||||
<v-card class="pa-4 fade-in slide-in" outlined>
|
<v-card class="pa-4 fade-in slide-in" outlined>
|
||||||
<v-btn block color="teal accent-4" dark @click="fetchConfig">请求配置</v-btn>
|
<v-btn block color="teal accent-4" dark @click="gotoInfoPage">直接进入看板</v-btn>
|
||||||
<p class="mt-2 text-center">请求并加载配置</p>
|
|
||||||
<v-btn block color="teal accent-4" dark class="mt-2" @click="gotoInfoPage"
|
|
||||||
>直接进入看板</v-btn
|
|
||||||
>
|
|
||||||
<p class="mt-2 text-center">直接进入看板,将继续使用上次加载的配置</p>
|
<p class="mt-2 text-center">直接进入看板,将继续使用上次加载的配置</p>
|
||||||
<v-switch
|
|
||||||
v-model="autoEnter"
|
|
||||||
label="下次自动进入看板"
|
|
||||||
class="mt-2 auto-enter-switch"
|
|
||||||
></v-switch>
|
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
<v-dialog v-model="errorDialog" max-width="500">
|
|
||||||
<v-card>
|
|
||||||
<v-card-title class="headline">错误</v-card-title>
|
|
||||||
<v-card-text>{{ errorMessage }}</v-card-text>
|
|
||||||
<v-card-actions>
|
|
||||||
<v-btn color="red darken-1" text @click="errorDialog = false">关闭</v-btn>
|
|
||||||
</v-card-actions>
|
|
||||||
</v-card>
|
|
||||||
</v-dialog>
|
|
||||||
</v-container>
|
</v-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted, watch } from 'vue';
|
import { useRouter } from 'vue-router';
|
||||||
import { useRouter, useRoute } from 'vue-router';
|
|
||||||
import { useProfileStore } from '@renderer/stores/app';
|
import { useProfileStore } from '@renderer/stores/app';
|
||||||
|
|
||||||
const globalStore = useProfileStore();
|
const globalStore = useProfileStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
|
||||||
const remoteUrl = ref(localStorage.getItem('remoteUrl') || '');
|
|
||||||
const autoEnter = ref(JSON.parse(localStorage.getItem('autoEnter') || 'false'));
|
|
||||||
const errorDialog = ref(false);
|
|
||||||
const errorMessage = ref('');
|
|
||||||
|
|
||||||
function saveUrl() {
|
|
||||||
localStorage.setItem('remoteUrl', remoteUrl.value);
|
|
||||||
alert('地址已保存');
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchConfig() {
|
|
||||||
if (remoteUrl.value) {
|
|
||||||
try {
|
|
||||||
const configResponse = await fetch(remoteUrl.value, { cache: 'no-store' });
|
|
||||||
if (!configResponse.ok) {
|
|
||||||
throw new Error('无法获取配置文件');
|
|
||||||
}
|
|
||||||
const config = await configResponse.json();
|
|
||||||
globalStore.$patch(config);
|
|
||||||
router.push('/infoPage');
|
|
||||||
} catch (error) {
|
|
||||||
errorMessage.value = error.message;
|
|
||||||
errorDialog.value = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
errorMessage.value = '请输入有效的请求地址';
|
|
||||||
errorDialog.value = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function openDialog() {
|
function openDialog() {
|
||||||
window.electron.ipcRenderer.send('prog:loadjson');
|
window.electron.ipcRenderer.send('prog:loadjson');
|
||||||
@ -92,23 +38,6 @@ window.electron.ipcRenderer.on('common:openFile', (event, message) => {
|
|||||||
globalStore.$patch(examData);
|
globalStore.$patch(examData);
|
||||||
router.push('/infoPage');
|
router.push('/infoPage');
|
||||||
});
|
});
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
const savedUrl = localStorage.getItem('remoteUrl');
|
|
||||||
if (savedUrl) {
|
|
||||||
remoteUrl.value = savedUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 检查路由参数是否跳过自动跳转
|
|
||||||
const skipAutoEnter = route.query.skipAutoEnter === 'true';
|
|
||||||
if (!skipAutoEnter && autoEnter.value) {
|
|
||||||
router.push('/infoPage');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
watch(autoEnter, (newVal) => {
|
|
||||||
localStorage.setItem('autoEnter', JSON.stringify(newVal));
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@ -132,11 +61,6 @@ watch(autoEnter, (newVal) => {
|
|||||||
.text-center {
|
.text-center {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.auto-enter-switch {
|
|
||||||
margin-top: 8px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
.fade-in {
|
.fade-in {
|
||||||
animation: fadeIn 1s ease-in-out;
|
animation: fadeIn 1s ease-in-out;
|
||||||
}
|
}
|
||||||
|
19
src/renderer/src/pages/testComponents.vue
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<h1>测试页面</h1>
|
||||||
|
<ExamStatus
|
||||||
|
:exam="{
|
||||||
|
name: '语文',
|
||||||
|
start: '2024-07-25T08:54:52.717Z',
|
||||||
|
end: '2024-07-25T08:55:40.428Z'
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { useRouter } from 'vue-router';
|
||||||
|
|
||||||
|
const router = useRouter();
|
||||||
|
//
|
||||||
|
</script>
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* plugins/vuetify.js
|
* plugins/vuetify.js
|
||||||
*
|
*
|
||||||
* Framework documentation: https://vuetifyjs.com
|
* Framework documentation: https://vuetifyjs.com`
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Styles
|
// Styles
|
||||||
@ -13,25 +13,6 @@ import { createVuetify } from 'vuetify';
|
|||||||
|
|
||||||
import { md3 } from 'vuetify/blueprints';
|
import { md3 } from 'vuetify/blueprints';
|
||||||
|
|
||||||
// 添加全局样式来隐藏滚动条
|
|
||||||
const style = document.createElement('style');
|
|
||||||
style.innerHTML = `
|
|
||||||
body {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.no-scrollbar {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
* {
|
|
||||||
scrollbar-width: none; /* Firefox */
|
|
||||||
-ms-overflow-style: none; /* Internet Explorer 10+ */
|
|
||||||
}
|
|
||||||
*::-webkit-scrollbar {
|
|
||||||
display: none; /* Safari and Chrome */
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
document.head.appendChild(style);
|
|
||||||
|
|
||||||
// https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides
|
// https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides
|
||||||
export default createVuetify({
|
export default createVuetify({
|
||||||
theme: {
|
theme: {
|
||||||
|
@ -4,9 +4,8 @@ import { defineStore } from 'pinia';
|
|||||||
export const useProfileStore = defineStore('app', {
|
export const useProfileStore = defineStore('app', {
|
||||||
state: () => ({
|
state: () => ({
|
||||||
examName: '考试名称',
|
examName: '考试名称',
|
||||||
appHeader: '考试看板',
|
appHeader: 'DSZ考试看板',
|
||||||
message: '考试提醒信息',
|
message: '考试提醒信息',
|
||||||
room: ' ',
|
|
||||||
examInfos: []
|
examInfos: []
|
||||||
}),
|
}),
|
||||||
persist: true
|
persist: true
|
||||||
|
2
src/renderer/src/typed-router.d.ts
vendored
@ -19,8 +19,8 @@ declare module 'vue-router/auto-routes' {
|
|||||||
*/
|
*/
|
||||||
export interface RouteNamedMap {
|
export interface RouteNamedMap {
|
||||||
'/': RouteRecordInfo<'/', '/', Record<never, never>, Record<never, never>>,
|
'/': RouteRecordInfo<'/', '/', Record<never, never>, Record<never, never>>,
|
||||||
'/about': RouteRecordInfo<'/about', '/about', Record<never, never>, Record<never, never>>,
|
|
||||||
'/infoPage': RouteRecordInfo<'/infoPage', '/infoPage', Record<never, never>, Record<never, never>>,
|
'/infoPage': RouteRecordInfo<'/infoPage', '/infoPage', Record<never, never>, Record<never, never>>,
|
||||||
'/mainWindow': RouteRecordInfo<'/mainWindow', '/mainWindow', Record<never, never>, Record<never, never>>,
|
'/mainWindow': RouteRecordInfo<'/mainWindow', '/mainWindow', Record<never, never>, Record<never, never>>,
|
||||||
|
'/testComponents': RouteRecordInfo<'/testComponents', '/testComponents', Record<never, never>, Record<never, never>>,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
578
yarn.lock
@ -139,7 +139,7 @@
|
|||||||
js-tokens "^4.0.0"
|
js-tokens "^4.0.0"
|
||||||
picocolors "^1.0.0"
|
picocolors "^1.0.0"
|
||||||
|
|
||||||
"@babel/parser@^7.24.0", "@babel/parser@^7.24.6", "@babel/parser@^7.24.8", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3":
|
"@babel/parser@^7.24.0", "@babel/parser@^7.24.6", "@babel/parser@^7.24.7", "@babel/parser@^7.24.8", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3":
|
||||||
version "7.25.3"
|
version "7.25.3"
|
||||||
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065"
|
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065"
|
||||||
integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==
|
integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==
|
||||||
@ -355,13 +355,13 @@
|
|||||||
ajv "^6.12.0"
|
ajv "^6.12.0"
|
||||||
ajv-keywords "^3.4.1"
|
ajv-keywords "^3.4.1"
|
||||||
|
|
||||||
"@electron-toolkit/eslint-config-ts@^2.0.0":
|
"@electron-toolkit/eslint-config-ts@^1.0.1":
|
||||||
version "2.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@electron-toolkit/eslint-config-ts/-/eslint-config-ts-2.0.0.tgz#d142cde642f05c7b9552cc8f21460d62113f7842"
|
resolved "https://registry.npmmirror.com/@electron-toolkit/eslint-config-ts/-/eslint-config-ts-1.0.1.tgz#ee5d5e754871568fe2698b0f18d063ab04ef6092"
|
||||||
integrity sha512-NGXadMyWH9+ZsgYe/u5E0mqK2qTDq01kKKnyo7oiq/7v/dWoMoPhqSkn69NZvt7WmnFNOm57l71fv6128mAx3Q==
|
integrity sha512-6RkoGE/W/WVlDozy/u6/lo5THNP5CCAPxdKpdQuYaopUfObs3o+JyxdlSb45imh+nL8nv875970EoyplntXaug==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/eslint-plugin" "^7.5.0"
|
"@typescript-eslint/eslint-plugin" "^6.14.0"
|
||||||
"@typescript-eslint/parser" "^7.5.0"
|
"@typescript-eslint/parser" "^6.14.0"
|
||||||
|
|
||||||
"@electron-toolkit/eslint-config@^1.0.1":
|
"@electron-toolkit/eslint-config@^1.0.1":
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
@ -563,7 +563,7 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
eslint-visitor-keys "^3.3.0"
|
eslint-visitor-keys "^3.3.0"
|
||||||
|
|
||||||
"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1":
|
"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1":
|
||||||
version "4.11.0"
|
version "4.11.0"
|
||||||
resolved "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae"
|
resolved "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae"
|
||||||
integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==
|
integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==
|
||||||
@ -1003,95 +1003,85 @@
|
|||||||
estree-walker "^2.0.2"
|
estree-walker "^2.0.2"
|
||||||
picomatch "^2.3.1"
|
picomatch "^2.3.1"
|
||||||
|
|
||||||
"@rollup/rollup-android-arm-eabi@4.28.0":
|
"@rollup/rollup-android-arm-eabi@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz#462e7ecdd60968bc9eb95a20d185e74f8243ec1b"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz#c3f5660f67030c493a981ac1d34ee9dfe1d8ec0f"
|
||||||
integrity sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==
|
integrity sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==
|
||||||
|
|
||||||
"@rollup/rollup-android-arm64@4.28.0":
|
"@rollup/rollup-android-arm64@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz#78a2b8a8a55f71a295eb860a654ae90a2b168f40"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz#64161f0b67050023a3859e723570af54a82cff5c"
|
||||||
integrity sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==
|
integrity sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==
|
||||||
|
|
||||||
"@rollup/rollup-darwin-arm64@4.28.0":
|
"@rollup/rollup-darwin-arm64@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz#5b783af714f434f1e66e3cdfa3817e0b99216d84"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz#25f3d57b1da433097cfebc89341b355901615763"
|
||||||
integrity sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==
|
integrity sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==
|
||||||
|
|
||||||
"@rollup/rollup-darwin-x64@4.28.0":
|
"@rollup/rollup-darwin-x64@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz#f72484e842521a5261978034e18e20f778a2850d"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz#d8ddaffb636cc2f59222c50316e27771e48966df"
|
||||||
integrity sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==
|
integrity sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==
|
||||||
|
|
||||||
"@rollup/rollup-freebsd-arm64@4.28.0":
|
"@rollup/rollup-linux-arm-gnueabihf@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz#3c919dff72b2fe344811a609c674a8347b033f62"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz#41bd4fcffa20fb84f3dbac6c5071638f46151885"
|
||||||
integrity sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==
|
integrity sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==
|
||||||
|
|
||||||
"@rollup/rollup-freebsd-x64@4.28.0":
|
"@rollup/rollup-linux-arm-musleabihf@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz#b62a3a8365b363b3fdfa6da11a9188b6ab4dca7c"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz#842077c5113a747eb5686f19f2f18c33ecc0acc8"
|
||||||
integrity sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==
|
integrity sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==
|
||||||
|
|
||||||
"@rollup/rollup-linux-arm-gnueabihf@4.28.0":
|
"@rollup/rollup-linux-arm64-gnu@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz#0d02cc55bd229bd8ca5c54f65f916ba5e0591c94"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz#65d1d5b6778848f55b7823958044bf3e8737e5b7"
|
||||||
integrity sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==
|
integrity sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==
|
||||||
|
|
||||||
"@rollup/rollup-linux-arm-musleabihf@4.28.0":
|
"@rollup/rollup-linux-arm64-musl@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz#c51d379263201e88a60e92bd8e90878f0c044425"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz#50eef7d6e24d0fe3332200bb666cad2be8afcf86"
|
||||||
integrity sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==
|
integrity sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==
|
||||||
|
|
||||||
"@rollup/rollup-linux-arm64-gnu@4.28.0":
|
"@rollup/rollup-linux-powerpc64le-gnu@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz#93ce2addc337b5cfa52b84f8e730d2e36eb4339b"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz#8837e858f53c84607f05ad0602943e96d104c6b4"
|
||||||
integrity sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==
|
integrity sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==
|
||||||
|
|
||||||
"@rollup/rollup-linux-arm64-musl@4.28.0":
|
"@rollup/rollup-linux-riscv64-gnu@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz#730af6ddc091a5ba5baac28a3510691725dc808b"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz#c894ade2300caa447757ddf45787cca246e816a4"
|
||||||
integrity sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==
|
integrity sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==
|
||||||
|
|
||||||
"@rollup/rollup-linux-powerpc64le-gnu@4.28.0":
|
"@rollup/rollup-linux-s390x-gnu@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz#b5565aac20b4de60ca1e557f525e76478b5436af"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz#5841e5390d4c82dd5cdf7b2c95a830e3c2f47dd3"
|
||||||
integrity sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==
|
integrity sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==
|
||||||
|
|
||||||
"@rollup/rollup-linux-riscv64-gnu@4.28.0":
|
"@rollup/rollup-linux-x64-gnu@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz#d488290bf9338bad4ae9409c4aa8a1728835a20b"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz#cc1f26398bf777807a99226dc13f47eb0f6c720d"
|
||||||
integrity sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==
|
integrity sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==
|
||||||
|
|
||||||
"@rollup/rollup-linux-s390x-gnu@4.28.0":
|
"@rollup/rollup-linux-x64-musl@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz#eb2e3f3a06acf448115045c11a5a96868c95a556"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz#1507465d9056e0502a590d4c1a00b4d7b1fda370"
|
||||||
integrity sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==
|
integrity sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==
|
||||||
|
|
||||||
"@rollup/rollup-linux-x64-gnu@4.28.0":
|
"@rollup/rollup-win32-arm64-msvc@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz#065952ef2aea7e837dc7e02aa500feeaff4fc507"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz#86a221f01a2c248104dd0defb4da119f2a73642e"
|
||||||
integrity sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==
|
integrity sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==
|
||||||
|
|
||||||
"@rollup/rollup-linux-x64-musl@4.28.0":
|
"@rollup/rollup-win32-ia32-msvc@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz#3435d484d05f5c4d1ffd54541b4facce2887103a"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz#8bc8f77e02760aa664694b4286d6fbea7f1331c5"
|
||||||
integrity sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==
|
integrity sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==
|
||||||
|
|
||||||
"@rollup/rollup-win32-arm64-msvc@4.28.0":
|
"@rollup/rollup-win32-x64-msvc@4.20.0":
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz#69682a2a10d9fedc334f87583cfca83c39c08077"
|
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz#601fffee719a1e8447f908aca97864eec23b2784"
|
||||||
integrity sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==
|
integrity sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==
|
||||||
|
|
||||||
"@rollup/rollup-win32-ia32-msvc@4.28.0":
|
|
||||||
version "4.28.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz#b64470f9ac79abb386829c56750b9a4711be3332"
|
|
||||||
integrity sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==
|
|
||||||
|
|
||||||
"@rollup/rollup-win32-x64-msvc@4.28.0":
|
|
||||||
version "4.28.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz#cb313feef9ac6e3737067fdf34f42804ac65a6f2"
|
|
||||||
integrity sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==
|
|
||||||
|
|
||||||
"@rushstack/eslint-patch@^1.6.1":
|
"@rushstack/eslint-patch@^1.6.1":
|
||||||
version "1.10.4"
|
version "1.10.4"
|
||||||
@ -1230,12 +1220,7 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/ms" "*"
|
"@types/ms" "*"
|
||||||
|
|
||||||
"@types/estree@1.0.6":
|
"@types/estree@1.0.5", "@types/estree@^1.0.0":
|
||||||
version "1.0.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
|
|
||||||
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
|
|
||||||
|
|
||||||
"@types/estree@^1.0.0":
|
|
||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
|
resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
|
||||||
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
|
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
|
||||||
@ -1252,7 +1237,7 @@
|
|||||||
resolved "https://registry.npmmirror.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4"
|
resolved "https://registry.npmmirror.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4"
|
||||||
integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==
|
integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==
|
||||||
|
|
||||||
"@types/json-schema@^7.0.8":
|
"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.8":
|
||||||
version "7.0.15"
|
version "7.0.15"
|
||||||
resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
|
resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
|
||||||
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
|
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
|
||||||
@ -1303,6 +1288,11 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/semver@^7.5.0":
|
||||||
|
version "7.5.8"
|
||||||
|
resolved "https://registry.npmmirror.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
|
||||||
|
integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
|
||||||
|
|
||||||
"@types/showdown@^2.0.1":
|
"@types/showdown@^2.0.1":
|
||||||
version "2.0.6"
|
version "2.0.6"
|
||||||
resolved "https://registry.npmmirror.com/@types/showdown/-/showdown-2.0.6.tgz#3d7affd5f971b4a17783ec2b23b4ad3b97477b7e"
|
resolved "https://registry.npmmirror.com/@types/showdown/-/showdown-2.0.6.tgz#3d7affd5f971b4a17783ec2b23b4ad3b97477b7e"
|
||||||
@ -1339,7 +1329,24 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@^7.1.1", "@typescript-eslint/eslint-plugin@^7.5.0":
|
"@typescript-eslint/eslint-plugin@^6.14.0":
|
||||||
|
version "6.21.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3"
|
||||||
|
integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==
|
||||||
|
dependencies:
|
||||||
|
"@eslint-community/regexpp" "^4.5.1"
|
||||||
|
"@typescript-eslint/scope-manager" "6.21.0"
|
||||||
|
"@typescript-eslint/type-utils" "6.21.0"
|
||||||
|
"@typescript-eslint/utils" "6.21.0"
|
||||||
|
"@typescript-eslint/visitor-keys" "6.21.0"
|
||||||
|
debug "^4.3.4"
|
||||||
|
graphemer "^1.4.0"
|
||||||
|
ignore "^5.2.4"
|
||||||
|
natural-compare "^1.4.0"
|
||||||
|
semver "^7.5.4"
|
||||||
|
ts-api-utils "^1.0.1"
|
||||||
|
|
||||||
|
"@typescript-eslint/eslint-plugin@^7.1.1":
|
||||||
version "7.18.0"
|
version "7.18.0"
|
||||||
resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3"
|
resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3"
|
||||||
integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==
|
integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==
|
||||||
@ -1354,7 +1361,18 @@
|
|||||||
natural-compare "^1.4.0"
|
natural-compare "^1.4.0"
|
||||||
ts-api-utils "^1.3.0"
|
ts-api-utils "^1.3.0"
|
||||||
|
|
||||||
"@typescript-eslint/parser@^7.1.1", "@typescript-eslint/parser@^7.5.0":
|
"@typescript-eslint/parser@^6.14.0":
|
||||||
|
version "6.21.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b"
|
||||||
|
integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==
|
||||||
|
dependencies:
|
||||||
|
"@typescript-eslint/scope-manager" "6.21.0"
|
||||||
|
"@typescript-eslint/types" "6.21.0"
|
||||||
|
"@typescript-eslint/typescript-estree" "6.21.0"
|
||||||
|
"@typescript-eslint/visitor-keys" "6.21.0"
|
||||||
|
debug "^4.3.4"
|
||||||
|
|
||||||
|
"@typescript-eslint/parser@^7.1.1":
|
||||||
version "7.18.0"
|
version "7.18.0"
|
||||||
resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0"
|
resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0"
|
||||||
integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==
|
integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==
|
||||||
@ -1365,6 +1383,14 @@
|
|||||||
"@typescript-eslint/visitor-keys" "7.18.0"
|
"@typescript-eslint/visitor-keys" "7.18.0"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
|
|
||||||
|
"@typescript-eslint/scope-manager@6.21.0":
|
||||||
|
version "6.21.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1"
|
||||||
|
integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==
|
||||||
|
dependencies:
|
||||||
|
"@typescript-eslint/types" "6.21.0"
|
||||||
|
"@typescript-eslint/visitor-keys" "6.21.0"
|
||||||
|
|
||||||
"@typescript-eslint/scope-manager@7.18.0":
|
"@typescript-eslint/scope-manager@7.18.0":
|
||||||
version "7.18.0"
|
version "7.18.0"
|
||||||
resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83"
|
resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83"
|
||||||
@ -1373,6 +1399,16 @@
|
|||||||
"@typescript-eslint/types" "7.18.0"
|
"@typescript-eslint/types" "7.18.0"
|
||||||
"@typescript-eslint/visitor-keys" "7.18.0"
|
"@typescript-eslint/visitor-keys" "7.18.0"
|
||||||
|
|
||||||
|
"@typescript-eslint/type-utils@6.21.0":
|
||||||
|
version "6.21.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e"
|
||||||
|
integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==
|
||||||
|
dependencies:
|
||||||
|
"@typescript-eslint/typescript-estree" "6.21.0"
|
||||||
|
"@typescript-eslint/utils" "6.21.0"
|
||||||
|
debug "^4.3.4"
|
||||||
|
ts-api-utils "^1.0.1"
|
||||||
|
|
||||||
"@typescript-eslint/type-utils@7.18.0":
|
"@typescript-eslint/type-utils@7.18.0":
|
||||||
version "7.18.0"
|
version "7.18.0"
|
||||||
resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b"
|
resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b"
|
||||||
@ -1383,11 +1419,30 @@
|
|||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
ts-api-utils "^1.3.0"
|
ts-api-utils "^1.3.0"
|
||||||
|
|
||||||
|
"@typescript-eslint/types@6.21.0":
|
||||||
|
version "6.21.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d"
|
||||||
|
integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==
|
||||||
|
|
||||||
"@typescript-eslint/types@7.18.0":
|
"@typescript-eslint/types@7.18.0":
|
||||||
version "7.18.0"
|
version "7.18.0"
|
||||||
resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9"
|
resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9"
|
||||||
integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==
|
integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==
|
||||||
|
|
||||||
|
"@typescript-eslint/typescript-estree@6.21.0":
|
||||||
|
version "6.21.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46"
|
||||||
|
integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==
|
||||||
|
dependencies:
|
||||||
|
"@typescript-eslint/types" "6.21.0"
|
||||||
|
"@typescript-eslint/visitor-keys" "6.21.0"
|
||||||
|
debug "^4.3.4"
|
||||||
|
globby "^11.1.0"
|
||||||
|
is-glob "^4.0.3"
|
||||||
|
minimatch "9.0.3"
|
||||||
|
semver "^7.5.4"
|
||||||
|
ts-api-utils "^1.0.1"
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@7.18.0":
|
"@typescript-eslint/typescript-estree@7.18.0":
|
||||||
version "7.18.0"
|
version "7.18.0"
|
||||||
resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931"
|
resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931"
|
||||||
@ -1402,6 +1457,19 @@
|
|||||||
semver "^7.6.0"
|
semver "^7.6.0"
|
||||||
ts-api-utils "^1.3.0"
|
ts-api-utils "^1.3.0"
|
||||||
|
|
||||||
|
"@typescript-eslint/utils@6.21.0":
|
||||||
|
version "6.21.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134"
|
||||||
|
integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==
|
||||||
|
dependencies:
|
||||||
|
"@eslint-community/eslint-utils" "^4.4.0"
|
||||||
|
"@types/json-schema" "^7.0.12"
|
||||||
|
"@types/semver" "^7.5.0"
|
||||||
|
"@typescript-eslint/scope-manager" "6.21.0"
|
||||||
|
"@typescript-eslint/types" "6.21.0"
|
||||||
|
"@typescript-eslint/typescript-estree" "6.21.0"
|
||||||
|
semver "^7.5.4"
|
||||||
|
|
||||||
"@typescript-eslint/utils@7.18.0":
|
"@typescript-eslint/utils@7.18.0":
|
||||||
version "7.18.0"
|
version "7.18.0"
|
||||||
resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f"
|
resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f"
|
||||||
@ -1412,6 +1480,14 @@
|
|||||||
"@typescript-eslint/types" "7.18.0"
|
"@typescript-eslint/types" "7.18.0"
|
||||||
"@typescript-eslint/typescript-estree" "7.18.0"
|
"@typescript-eslint/typescript-estree" "7.18.0"
|
||||||
|
|
||||||
|
"@typescript-eslint/visitor-keys@6.21.0":
|
||||||
|
version "6.21.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47"
|
||||||
|
integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==
|
||||||
|
dependencies:
|
||||||
|
"@typescript-eslint/types" "6.21.0"
|
||||||
|
eslint-visitor-keys "^3.4.1"
|
||||||
|
|
||||||
"@typescript-eslint/visitor-keys@7.18.0":
|
"@typescript-eslint/visitor-keys@7.18.0":
|
||||||
version "7.18.0"
|
version "7.18.0"
|
||||||
resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7"
|
resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7"
|
||||||
@ -1464,60 +1540,60 @@
|
|||||||
local-pkg "^0.5.0"
|
local-pkg "^0.5.0"
|
||||||
magic-string-ast "^0.6.2"
|
magic-string-ast "^0.6.2"
|
||||||
|
|
||||||
"@vue/compiler-core@3.5.13":
|
"@vue/compiler-core@3.4.35":
|
||||||
version "3.5.13"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz#b0ae6c4347f60c03e849a05d34e5bf747c9bda05"
|
resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.35.tgz#421922a75ecabf1aabc6b7a2ce98b5acb2fc2d65"
|
||||||
integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==
|
integrity sha512-gKp0zGoLnMYtw4uS/SJRRO7rsVggLjvot3mcctlMXunYNsX+aRJDqqw/lV5/gHK91nvaAAlWFgdVl020AW1Prg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/parser" "^7.25.3"
|
"@babel/parser" "^7.24.7"
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.4.35"
|
||||||
entities "^4.5.0"
|
entities "^4.5.0"
|
||||||
estree-walker "^2.0.2"
|
estree-walker "^2.0.2"
|
||||||
source-map-js "^1.2.0"
|
source-map-js "^1.2.0"
|
||||||
|
|
||||||
"@vue/compiler-dom@3.5.13", "@vue/compiler-dom@^3.3.0":
|
"@vue/compiler-dom@3.4.35", "@vue/compiler-dom@^3.3.0":
|
||||||
version "3.5.13"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz#bb1b8758dbc542b3658dda973b98a1c9311a8a58"
|
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.35.tgz#cd0881f1b4ed655cd96367bce4845f87023a5a2d"
|
||||||
integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==
|
integrity sha512-pWIZRL76/oE/VMhdv/ovZfmuooEni6JPG1BFe7oLk5DZRo/ImydXijoZl/4kh2406boRQ7lxTYzbZEEXEhj9NQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-core" "3.5.13"
|
"@vue/compiler-core" "3.4.35"
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.4.35"
|
||||||
|
|
||||||
"@vue/compiler-sfc@3.5.13", "@vue/compiler-sfc@^3.4.34":
|
"@vue/compiler-sfc@3.4.35", "@vue/compiler-sfc@^3.4.34":
|
||||||
version "3.5.13"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz#461f8bd343b5c06fac4189c4fef8af32dea82b46"
|
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.35.tgz#16f87dd3bdab64cef14d3a6fcf53f8673e404071"
|
||||||
integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==
|
integrity sha512-xacnRS/h/FCsjsMfxBkzjoNxyxEyKyZfBch/P4vkLRvYJwe5ChXmZZrj8Dsed/752H2Q3JE8kYu9Uyha9J6PgA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/parser" "^7.25.3"
|
"@babel/parser" "^7.24.7"
|
||||||
"@vue/compiler-core" "3.5.13"
|
"@vue/compiler-core" "3.4.35"
|
||||||
"@vue/compiler-dom" "3.5.13"
|
"@vue/compiler-dom" "3.4.35"
|
||||||
"@vue/compiler-ssr" "3.5.13"
|
"@vue/compiler-ssr" "3.4.35"
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.4.35"
|
||||||
estree-walker "^2.0.2"
|
estree-walker "^2.0.2"
|
||||||
magic-string "^0.30.11"
|
magic-string "^0.30.10"
|
||||||
postcss "^8.4.48"
|
postcss "^8.4.40"
|
||||||
source-map-js "^1.2.0"
|
source-map-js "^1.2.0"
|
||||||
|
|
||||||
"@vue/compiler-ssr@3.5.13":
|
"@vue/compiler-ssr@3.4.35":
|
||||||
version "3.5.13"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz#e771adcca6d3d000f91a4277c972a996d07f43ba"
|
resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.35.tgz#0774c9a0afed74d71615209904b38f3fa9711adb"
|
||||||
integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==
|
integrity sha512-7iynB+0KB1AAJKk/biENTV5cRGHRdbdaD7Mx3nWcm1W8bVD6QmnH3B4AHhQQ1qZHhqFwzEzMwiytXm3PX1e60A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-dom" "3.5.13"
|
"@vue/compiler-dom" "3.4.35"
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.4.35"
|
||||||
|
|
||||||
"@vue/devtools-api@^6.6.3":
|
"@vue/devtools-api@^6.6.3":
|
||||||
version "6.6.3"
|
version "6.6.3"
|
||||||
resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz#b23a588154cba8986bba82b6e1d0248bde3fd1a0"
|
resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz#b23a588154cba8986bba82b6e1d0248bde3fd1a0"
|
||||||
integrity sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==
|
integrity sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==
|
||||||
|
|
||||||
"@vue/eslint-config-prettier@^10.2.0":
|
"@vue/eslint-config-prettier@^9.0.0":
|
||||||
version "10.2.0"
|
version "9.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-10.2.0.tgz#49a5ed571acb81820a216e6d88ebf1f3def321d0"
|
resolved "https://registry.npmmirror.com/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#f63394f8f7759d92b6ef3f3e1d30ff6b0c0b97c1"
|
||||||
integrity sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw==
|
integrity sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint-config-prettier "^10.0.1"
|
eslint-config-prettier "^9.0.0"
|
||||||
eslint-plugin-prettier "^5.2.2"
|
eslint-plugin-prettier "^5.0.0"
|
||||||
|
|
||||||
"@vue/eslint-config-typescript@^13.0.0":
|
"@vue/eslint-config-typescript@^13.0.0":
|
||||||
version "13.0.0"
|
version "13.0.0"
|
||||||
@ -1543,43 +1619,43 @@
|
|||||||
path-browserify "^1.0.1"
|
path-browserify "^1.0.1"
|
||||||
vue-template-compiler "^2.7.14"
|
vue-template-compiler "^2.7.14"
|
||||||
|
|
||||||
"@vue/reactivity@3.5.13":
|
"@vue/reactivity@3.4.35":
|
||||||
version "3.5.13"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.13.tgz#b41ff2bb865e093899a22219f5b25f97b6fe155f"
|
resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.35.tgz#dfbb4f5371da1290ac86e3313d0e9a68bb0ab38d"
|
||||||
integrity sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==
|
integrity sha512-Ggtz7ZZHakriKioveJtPlStYardwQH6VCs9V13/4qjHSQb/teE30LVJNrbBVs4+aoYGtTQKJbTe4CWGxVZrvEw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.4.35"
|
||||||
|
|
||||||
"@vue/runtime-core@3.5.13":
|
"@vue/runtime-core@3.4.35":
|
||||||
version "3.5.13"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz#1fafa4bf0b97af0ebdd9dbfe98cd630da363a455"
|
resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.35.tgz#c036013a7b1bbe0d14a6b76eb4355dae6690d2e6"
|
||||||
integrity sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==
|
integrity sha512-D+BAjFoWwT5wtITpSxwqfWZiBClhBbR+bm0VQlWYFOadUUXFo+5wbe9ErXhLvwguPiLZdEF13QAWi2vP3ZD5tA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/reactivity" "3.5.13"
|
"@vue/reactivity" "3.4.35"
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.4.35"
|
||||||
|
|
||||||
"@vue/runtime-dom@3.5.13":
|
"@vue/runtime-dom@3.4.35":
|
||||||
version "3.5.13"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz#610fc795de9246300e8ae8865930d534e1246215"
|
resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.35.tgz#74254c7c327163d692e1d7d2b6d9e92463744e90"
|
||||||
integrity sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==
|
integrity sha512-yGOlbos+MVhlS5NWBF2HDNgblG8e2MY3+GigHEyR/dREAluvI5tuUUgie3/9XeqhPE4LF0i2wjlduh5thnfOqw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/reactivity" "3.5.13"
|
"@vue/reactivity" "3.4.35"
|
||||||
"@vue/runtime-core" "3.5.13"
|
"@vue/runtime-core" "3.4.35"
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.4.35"
|
||||||
csstype "^3.1.3"
|
csstype "^3.1.3"
|
||||||
|
|
||||||
"@vue/server-renderer@3.5.13":
|
"@vue/server-renderer@3.4.35":
|
||||||
version "3.5.13"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz#429ead62ee51de789646c22efe908e489aad46f7"
|
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.35.tgz#188e94e82d8e729ba7b40dd91d10678b85f77c6b"
|
||||||
integrity sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==
|
integrity sha512-iZ0e/u9mRE4T8tNhlo0tbA+gzVkgv8r5BX6s1kRbOZqfpq14qoIvCZ5gIgraOmYkMYrSEZgkkojFPr+Nyq/Mnw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-ssr" "3.5.13"
|
"@vue/compiler-ssr" "3.4.35"
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.4.35"
|
||||||
|
|
||||||
"@vue/shared@3.5.13", "@vue/shared@^3.3.0":
|
"@vue/shared@3.4.35", "@vue/shared@^3.3.0":
|
||||||
version "3.5.13"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f"
|
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.35.tgz#5432f4b1c79e763fcf78cc830faf59ff01248968"
|
||||||
integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
|
integrity sha512-hvuhBYYDe+b1G8KHxsQ0diDqDMA8D9laxWZhNAjE83VZb5UDaXl9Xnz7cGdDSyiHM90qqI/CyGMcpBpiDy6VVQ==
|
||||||
|
|
||||||
"@vuetify/loader-shared@^2.0.3":
|
"@vuetify/loader-shared@^2.0.3":
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
@ -2525,9 +2601,9 @@ crc@^3.8.0:
|
|||||||
buffer "^5.1.0"
|
buffer "^5.1.0"
|
||||||
|
|
||||||
cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
|
cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
|
||||||
version "7.0.6"
|
version "7.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
|
resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
||||||
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
|
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
|
||||||
dependencies:
|
dependencies:
|
||||||
path-key "^3.1.0"
|
path-key "^3.1.0"
|
||||||
shebang-command "^2.0.0"
|
shebang-command "^2.0.0"
|
||||||
@ -3155,30 +3231,30 @@ escape-string-regexp@^5.0.0:
|
|||||||
resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
|
resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
|
||||||
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
|
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
|
||||||
|
|
||||||
eslint-config-prettier@^10.0.1:
|
eslint-config-prettier@^9.0.0:
|
||||||
version "10.0.1"
|
version "9.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz#fbb03bfc8db0651df9ce4e8b7150d11c5fe3addf"
|
resolved "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f"
|
||||||
integrity sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==
|
integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
|
||||||
|
|
||||||
eslint-plugin-prettier@^5.2.2:
|
eslint-plugin-prettier@^5.0.0:
|
||||||
version "5.2.3"
|
version "5.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz#c4af01691a6fa9905207f0fbba0d7bea0902cce5"
|
resolved "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#d1c8f972d8f60e414c25465c163d16f209411f95"
|
||||||
integrity sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==
|
integrity sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==
|
||||||
dependencies:
|
dependencies:
|
||||||
prettier-linter-helpers "^1.0.0"
|
prettier-linter-helpers "^1.0.0"
|
||||||
synckit "^0.9.1"
|
synckit "^0.9.1"
|
||||||
|
|
||||||
eslint-plugin-vue@^9.32.0:
|
eslint-plugin-vue@^9.20.1:
|
||||||
version "9.32.0"
|
version "9.27.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.32.0.tgz#2b558e827886b567dfaa156cc1cad0f596461fab"
|
resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz#c22dae704a03d9ecefa81364ff89f60ce0481f94"
|
||||||
integrity sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==
|
integrity sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/eslint-utils" "^4.4.0"
|
"@eslint-community/eslint-utils" "^4.4.0"
|
||||||
globals "^13.24.0"
|
globals "^13.24.0"
|
||||||
natural-compare "^1.4.0"
|
natural-compare "^1.4.0"
|
||||||
nth-check "^2.1.1"
|
nth-check "^2.1.1"
|
||||||
postcss-selector-parser "^6.0.15"
|
postcss-selector-parser "^6.0.15"
|
||||||
semver "^7.6.3"
|
semver "^7.6.0"
|
||||||
vue-eslint-parser "^9.4.3"
|
vue-eslint-parser "^9.4.3"
|
||||||
xml-name-validator "^4.0.0"
|
xml-name-validator "^4.0.0"
|
||||||
|
|
||||||
@ -4055,10 +4131,10 @@ human-signals@^5.0.0:
|
|||||||
resolved "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
|
resolved "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
|
||||||
integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
|
integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
|
||||||
|
|
||||||
husky@^9.1.7:
|
husky@^9.1.5:
|
||||||
version "9.1.7"
|
version "9.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d"
|
resolved "https://registry.npmmirror.com/husky/-/husky-9.1.5.tgz#2b6edede53ee1adbbd3a3da490628a23f5243b83"
|
||||||
integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==
|
integrity sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==
|
||||||
|
|
||||||
icon-gen@^2.0.0:
|
icon-gen@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
@ -4092,7 +4168,7 @@ ieee754@^1.1.13, ieee754@^1.2.1:
|
|||||||
resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
||||||
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
||||||
|
|
||||||
ignore@^5.2.0, ignore@^5.3.1:
|
ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.1:
|
||||||
version "5.3.1"
|
version "5.3.1"
|
||||||
resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
|
resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
|
||||||
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
|
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
|
||||||
@ -5050,6 +5126,13 @@ min-document@^2.19.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
dom-walk "^0.1.0"
|
dom-walk "^0.1.0"
|
||||||
|
|
||||||
|
minimatch@9.0.3:
|
||||||
|
version "9.0.3"
|
||||||
|
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
|
||||||
|
integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
|
||||||
|
dependencies:
|
||||||
|
brace-expansion "^2.0.1"
|
||||||
|
|
||||||
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
|
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
|
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
|
||||||
@ -5161,11 +5244,6 @@ nanoid@^3.3.7:
|
|||||||
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
|
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
|
||||||
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
||||||
|
|
||||||
nanoid@^3.3.8:
|
|
||||||
version "3.3.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf"
|
|
||||||
integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
|
|
||||||
|
|
||||||
nanomatch@^1.2.1:
|
nanomatch@^1.2.1:
|
||||||
version "1.2.13"
|
version "1.2.13"
|
||||||
resolved "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
|
resolved "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
|
||||||
@ -5558,11 +5636,6 @@ picocolors@^1.0.0, picocolors@^1.0.1:
|
|||||||
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
|
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
|
||||||
integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
|
integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
|
||||||
|
|
||||||
picocolors@^1.1.1:
|
|
||||||
version "1.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
|
|
||||||
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
|
|
||||||
|
|
||||||
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
|
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
|
||||||
version "2.3.1"
|
version "2.3.1"
|
||||||
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||||
@ -5676,7 +5749,7 @@ postcss@^5.2.17:
|
|||||||
source-map "^0.5.6"
|
source-map "^0.5.6"
|
||||||
supports-color "^3.2.3"
|
supports-color "^3.2.3"
|
||||||
|
|
||||||
postcss@^8.4.39:
|
postcss@^8.4.39, postcss@^8.4.40:
|
||||||
version "8.4.40"
|
version "8.4.40"
|
||||||
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8"
|
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8"
|
||||||
integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==
|
integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==
|
||||||
@ -5685,15 +5758,6 @@ postcss@^8.4.39:
|
|||||||
picocolors "^1.0.1"
|
picocolors "^1.0.1"
|
||||||
source-map-js "^1.2.0"
|
source-map-js "^1.2.0"
|
||||||
|
|
||||||
postcss@^8.4.48:
|
|
||||||
version "8.5.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214"
|
|
||||||
integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==
|
|
||||||
dependencies:
|
|
||||||
nanoid "^3.3.8"
|
|
||||||
picocolors "^1.1.1"
|
|
||||||
source-map-js "^1.2.1"
|
|
||||||
|
|
||||||
posthtml-parser@^0.2.0, posthtml-parser@^0.2.1:
|
posthtml-parser@^0.2.0, posthtml-parser@^0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.npmmirror.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz#35d530de386740c2ba24ff2eb2faf39ccdf271dd"
|
resolved "https://registry.npmmirror.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz#35d530de386740c2ba24ff2eb2faf39ccdf271dd"
|
||||||
@ -5744,10 +5808,10 @@ prettier-linter-helpers@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
fast-diff "^1.1.2"
|
fast-diff "^1.1.2"
|
||||||
|
|
||||||
prettier@^3.4.2:
|
prettier@^3.2.4:
|
||||||
version "3.4.2"
|
version "3.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f"
|
resolved "https://registry.npmmirror.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105"
|
||||||
integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==
|
integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==
|
||||||
|
|
||||||
process-nextick-args@~2.0.0:
|
process-nextick-args@~2.0.0:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
@ -6066,30 +6130,28 @@ roboto-fontface@*:
|
|||||||
integrity sha512-OlwfYEgA2RdboZohpldlvJ1xngOins5d7ejqnIBWr9KaMxsnBqotpptRXTyfNRLnFpqzX6sTDt+X+a+6udnU8g==
|
integrity sha512-OlwfYEgA2RdboZohpldlvJ1xngOins5d7ejqnIBWr9KaMxsnBqotpptRXTyfNRLnFpqzX6sTDt+X+a+6udnU8g==
|
||||||
|
|
||||||
rollup@^4.13.0:
|
rollup@^4.13.0:
|
||||||
version "4.28.0"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.28.0.tgz#eb8d28ed43ef60a18f21d0734d230ee79dd0de77"
|
resolved "https://registry.npmmirror.com/rollup/-/rollup-4.20.0.tgz#f9d602161d29e178f0bf1d9f35f0a26f83939492"
|
||||||
integrity sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==
|
integrity sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/estree" "1.0.6"
|
"@types/estree" "1.0.5"
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@rollup/rollup-android-arm-eabi" "4.28.0"
|
"@rollup/rollup-android-arm-eabi" "4.20.0"
|
||||||
"@rollup/rollup-android-arm64" "4.28.0"
|
"@rollup/rollup-android-arm64" "4.20.0"
|
||||||
"@rollup/rollup-darwin-arm64" "4.28.0"
|
"@rollup/rollup-darwin-arm64" "4.20.0"
|
||||||
"@rollup/rollup-darwin-x64" "4.28.0"
|
"@rollup/rollup-darwin-x64" "4.20.0"
|
||||||
"@rollup/rollup-freebsd-arm64" "4.28.0"
|
"@rollup/rollup-linux-arm-gnueabihf" "4.20.0"
|
||||||
"@rollup/rollup-freebsd-x64" "4.28.0"
|
"@rollup/rollup-linux-arm-musleabihf" "4.20.0"
|
||||||
"@rollup/rollup-linux-arm-gnueabihf" "4.28.0"
|
"@rollup/rollup-linux-arm64-gnu" "4.20.0"
|
||||||
"@rollup/rollup-linux-arm-musleabihf" "4.28.0"
|
"@rollup/rollup-linux-arm64-musl" "4.20.0"
|
||||||
"@rollup/rollup-linux-arm64-gnu" "4.28.0"
|
"@rollup/rollup-linux-powerpc64le-gnu" "4.20.0"
|
||||||
"@rollup/rollup-linux-arm64-musl" "4.28.0"
|
"@rollup/rollup-linux-riscv64-gnu" "4.20.0"
|
||||||
"@rollup/rollup-linux-powerpc64le-gnu" "4.28.0"
|
"@rollup/rollup-linux-s390x-gnu" "4.20.0"
|
||||||
"@rollup/rollup-linux-riscv64-gnu" "4.28.0"
|
"@rollup/rollup-linux-x64-gnu" "4.20.0"
|
||||||
"@rollup/rollup-linux-s390x-gnu" "4.28.0"
|
"@rollup/rollup-linux-x64-musl" "4.20.0"
|
||||||
"@rollup/rollup-linux-x64-gnu" "4.28.0"
|
"@rollup/rollup-win32-arm64-msvc" "4.20.0"
|
||||||
"@rollup/rollup-linux-x64-musl" "4.28.0"
|
"@rollup/rollup-win32-ia32-msvc" "4.20.0"
|
||||||
"@rollup/rollup-win32-arm64-msvc" "4.28.0"
|
"@rollup/rollup-win32-x64-msvc" "4.20.0"
|
||||||
"@rollup/rollup-win32-ia32-msvc" "4.28.0"
|
|
||||||
"@rollup/rollup-win32-x64-msvc" "4.28.0"
|
|
||||||
fsevents "~2.3.2"
|
fsevents "~2.3.2"
|
||||||
|
|
||||||
run-parallel@^1.1.9:
|
run-parallel@^1.1.9:
|
||||||
@ -6190,7 +6252,7 @@ semver@^6.2.0, semver@^6.3.1:
|
|||||||
resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
|
resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
|
||||||
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
||||||
|
|
||||||
semver@^7.3.2, semver@^7.3.6, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3:
|
semver@^7.3.2, semver@^7.3.6, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0:
|
||||||
version "7.6.3"
|
version "7.6.3"
|
||||||
resolved "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
|
resolved "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
|
||||||
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
|
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
|
||||||
@ -6350,11 +6412,6 @@ snapdragon@^0.8.1:
|
|||||||
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
|
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
|
||||||
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
|
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
|
||||||
|
|
||||||
source-map-js@^1.2.1:
|
|
||||||
version "1.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
|
|
||||||
integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
|
|
||||||
|
|
||||||
source-map-resolve@^0.5.0:
|
source-map-resolve@^0.5.0:
|
||||||
version "0.5.3"
|
version "0.5.3"
|
||||||
resolved "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
|
resolved "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
|
||||||
@ -6475,7 +6532,7 @@ string-argv@~0.3.2:
|
|||||||
resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6"
|
resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6"
|
||||||
integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
|
integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
|
||||||
|
|
||||||
"string-width-cjs@npm:string-width@^4.2.0":
|
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||||
version "4.2.3"
|
version "4.2.3"
|
||||||
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||||
@ -6493,15 +6550,6 @@ string-width@^1.0.1, string-width@^1.0.2:
|
|||||||
is-fullwidth-code-point "^1.0.0"
|
is-fullwidth-code-point "^1.0.0"
|
||||||
strip-ansi "^3.0.0"
|
strip-ansi "^3.0.0"
|
||||||
|
|
||||||
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
|
||||||
version "4.2.3"
|
|
||||||
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
|
||||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
|
||||||
dependencies:
|
|
||||||
emoji-regex "^8.0.0"
|
|
||||||
is-fullwidth-code-point "^3.0.0"
|
|
||||||
strip-ansi "^6.0.1"
|
|
||||||
|
|
||||||
string-width@^5.0.1, string-width@^5.1.2:
|
string-width@^5.0.1, string-width@^5.1.2:
|
||||||
version "5.1.2"
|
version "5.1.2"
|
||||||
resolved "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
|
resolved "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
|
||||||
@ -6562,7 +6610,7 @@ string_decoder@~1.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "~5.1.0"
|
safe-buffer "~5.1.0"
|
||||||
|
|
||||||
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
|
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||||
version "6.0.1"
|
version "6.0.1"
|
||||||
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||||
@ -6576,13 +6624,6 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ansi-regex "^2.0.0"
|
ansi-regex "^2.0.0"
|
||||||
|
|
||||||
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
|
||||||
version "6.0.1"
|
|
||||||
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
|
||||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
|
||||||
dependencies:
|
|
||||||
ansi-regex "^5.0.1"
|
|
||||||
|
|
||||||
strip-ansi@^7.0.1, strip-ansi@^7.1.0:
|
strip-ansi@^7.0.1, strip-ansi@^7.1.0:
|
||||||
version "7.1.0"
|
version "7.1.0"
|
||||||
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
|
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
|
||||||
@ -6841,7 +6882,7 @@ truncate-utf8-bytes@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
utf8-byte-length "^1.0.1"
|
utf8-byte-length "^1.0.1"
|
||||||
|
|
||||||
ts-api-utils@^1.3.0:
|
ts-api-utils@^1.0.1, ts-api-utils@^1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
|
resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
|
||||||
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
|
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
|
||||||
@ -7210,19 +7251,19 @@ vite-plugin-vue-layouts@^0.11.0:
|
|||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
fast-glob "^3.3.2"
|
fast-glob "^3.3.2"
|
||||||
|
|
||||||
vite-plugin-vuetify@^2.0.4:
|
vite-plugin-vuetify@^2.0.3:
|
||||||
version "2.0.4"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/vite-plugin-vuetify/-/vite-plugin-vuetify-2.0.4.tgz#9beb700ee50da58d83399721d6cf4b0af83202d5"
|
resolved "https://registry.npmmirror.com/vite-plugin-vuetify/-/vite-plugin-vuetify-2.0.3.tgz#b65ee4e05cfc6bf2b478a32b6d58b42398519f1e"
|
||||||
integrity sha512-A4cliYUoP/u4AWSRVRvAPKgpgR987Pss7LpFa7s1GvOe8WjgDq92Rt3eVXrvgxGCWvZsPKziVqfHHdCMqeDhfw==
|
integrity sha512-HbYajgGgb/noaVKNRhnnXIiQZrNXfNIeanUGAwXgOxL6h/KULS40Uf51Kyz8hNmdegF+DwjgXXI/8J1PNS83xw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vuetify/loader-shared" "^2.0.3"
|
"@vuetify/loader-shared" "^2.0.3"
|
||||||
debug "^4.3.3"
|
debug "^4.3.3"
|
||||||
upath "^2.0.1"
|
upath "^2.0.1"
|
||||||
|
|
||||||
vite@^5.3.6:
|
vite@^5.0.12:
|
||||||
version "5.3.6"
|
version "5.3.5"
|
||||||
resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.6.tgz#e097c0a7b79adb2e60bec9ef7907354f09d027bd"
|
resolved "https://registry.npmmirror.com/vite/-/vite-5.3.5.tgz#b847f846fb2b6cb6f6f4ed50a830186138cb83d8"
|
||||||
integrity sha512-es78AlrylO8mTVBygC0gTC0FENv0C6T496vvd33ydbjF/mIi9q3XQ9A3NWo5qLGFKywvz10J26813OkLvcQleA==
|
integrity sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild "^0.21.3"
|
esbuild "^0.21.3"
|
||||||
postcss "^8.4.39"
|
postcss "^8.4.39"
|
||||||
@ -7281,16 +7322,16 @@ vue-tsc@^1.8.27:
|
|||||||
"@vue/language-core" "1.8.27"
|
"@vue/language-core" "1.8.27"
|
||||||
semver "^7.5.4"
|
semver "^7.5.4"
|
||||||
|
|
||||||
vue@*, vue@^3.3.4, vue@^3.5.13:
|
vue@*, vue@^3.3.4, vue@^3.4.34:
|
||||||
version "3.5.13"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a"
|
resolved "https://registry.npmmirror.com/vue/-/vue-3.4.35.tgz#9ad23525919eece40153fdf8675d07ddd879eb33"
|
||||||
integrity sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==
|
integrity sha512-+fl/GLmI4GPileHftVlCdB7fUL4aziPcqTudpTGXCT8s+iZWuOCeNEB5haX6Uz2IpRrbEXOgIFbe+XciCuGbNQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-dom" "3.5.13"
|
"@vue/compiler-dom" "3.4.35"
|
||||||
"@vue/compiler-sfc" "3.5.13"
|
"@vue/compiler-sfc" "3.4.35"
|
||||||
"@vue/runtime-dom" "3.5.13"
|
"@vue/runtime-dom" "3.4.35"
|
||||||
"@vue/server-renderer" "3.5.13"
|
"@vue/server-renderer" "3.4.35"
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.4.35"
|
||||||
|
|
||||||
vuetify@^3.5.8:
|
vuetify@^3.5.8:
|
||||||
version "3.6.14"
|
version "3.6.14"
|
||||||
@ -7353,7 +7394,7 @@ word-wrap@^1.2.5:
|
|||||||
resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
|
resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
|
||||||
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
|
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
|
||||||
|
|
||||||
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
|
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
|
||||||
version "7.0.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
||||||
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
||||||
@ -7370,15 +7411,6 @@ wrap-ansi@^2.0.0:
|
|||||||
string-width "^1.0.1"
|
string-width "^1.0.1"
|
||||||
strip-ansi "^3.0.1"
|
strip-ansi "^3.0.1"
|
||||||
|
|
||||||
wrap-ansi@^7.0.0:
|
|
||||||
version "7.0.0"
|
|
||||||
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
|
||||||
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
|
||||||
dependencies:
|
|
||||||
ansi-styles "^4.0.0"
|
|
||||||
string-width "^4.1.0"
|
|
||||||
strip-ansi "^6.0.0"
|
|
||||||
|
|
||||||
wrap-ansi@^8.1.0:
|
wrap-ansi@^8.1.0:
|
||||||
version "8.1.0"
|
version "8.1.0"
|
||||||
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
|
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
|
||||||
|