Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b33c1d7f4b | ||
|
|
39a74510c1 | ||
|
|
b7db9b9b40 | ||
|
|
2ca0092b71 | ||
|
|
b4bf43910e | ||
|
|
90aa919694 |
@@ -1,3 +1,10 @@
|
|||||||
|
### [0.14.1](https://github.com/stonith404/pingvin-share/compare/v0.14.0...v0.14.1) (2023-04-07)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* boolean config variables can't be set to false ([39a7451](https://github.com/stonith404/pingvin-share/commit/39a74510c1f00466acaead39f7bee003b3db60d7))
|
||||||
|
|
||||||
## [0.14.0](https://github.com/stonith404/pingvin-share/compare/v0.13.1...v0.14.0) (2023-04-01)
|
## [0.14.0](https://github.com/stonith404/pingvin-share/compare/v0.13.1...v0.14.0) (2023-04-01)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*Read this in another language: [Spanish](CONTRIBUTING.es.md), [English](CONTRIBUTING.md)*
|
_Read this in another language: [Spanish](/docs/CONTRIBUTING.es.md), [English](/CONTRIBUTING.md), [Simplified Chinese](/docs/CONTRIBUTING.zh-cn.md)_
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Read this in another language: [Spanish](README.es.md), [English](README.md)*
|
_Read this in another language: [Spanish](/docs/README.es.md), [English](/README.md), [Simplified Chinese](/docs/README.zh-cn.md)_
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -95,10 +95,11 @@ docker compose up -d
|
|||||||
#### Stand-alone
|
#### Stand-alone
|
||||||
|
|
||||||
1. Stop the running app
|
1. Stop the running app
|
||||||
```bash
|
```bash
|
||||||
pm2 stop pingvin-share-backend pingvin-share-frontend
|
pm2 stop pingvin-share-backend pingvin-share-frontend
|
||||||
```
|
```
|
||||||
2. Repeat the steps from the [installation guide](#stand-alone-installation) except the `git clone` step.
|
2. Repeat the steps from the [installation guide](#stand-alone-installation) except the `git clone` step.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd pingvin-share
|
cd pingvin-share
|
||||||
|
|
||||||
|
|||||||
4
backend/package-lock.json
generated
4
backend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-backend",
|
"name": "pingvin-share-backend",
|
||||||
"version": "0.14.0",
|
"version": "0.14.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "pingvin-share-backend",
|
"name": "pingvin-share-backend",
|
||||||
"version": "0.14.0",
|
"version": "0.14.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nestjs/common": "^9.3.9",
|
"@nestjs/common": "^9.3.9",
|
||||||
"@nestjs/config": "^2.3.1",
|
"@nestjs/config": "^2.3.1",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-backend",
|
"name": "pingvin-share-backend",
|
||||||
"version": "0.14.0",
|
"version": "0.14.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "nest build",
|
"build": "nest build",
|
||||||
"dev": "cross-env NODE_ENV=development nest start --watch",
|
"dev": "cross-env NODE_ENV=development nest start --watch",
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ export class ConfigService {
|
|||||||
if (!configVariable || configVariable.locked)
|
if (!configVariable || configVariable.locked)
|
||||||
throw new NotFoundException("Config variable not found");
|
throw new NotFoundException("Config variable not found");
|
||||||
|
|
||||||
if (value == "") {
|
if (value === "") {
|
||||||
value = null;
|
value = null;
|
||||||
} else if (
|
} else if (
|
||||||
typeof value != configVariable.type &&
|
typeof value != configVariable.type &&
|
||||||
@@ -100,7 +100,7 @@ export class ConfigService {
|
|||||||
name: key.split(".")[1],
|
name: key.split(".")[1],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data: { value: value ? value.toString() : null },
|
data: { value: value === null ? null : value.toString() },
|
||||||
});
|
});
|
||||||
|
|
||||||
this.configVariables = await this.prisma.config.findMany();
|
this.configVariables = await this.prisma.config.findMany();
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
*Leer esto en otro idioma: [Inglés](CONTRIBUTING.md), [Español](CONTRIBUTING.es.md)*
|
_Leer esto en otro idioma: [Inglés](/CONTRIBUTING.md), [Español](/docs/CONTRIBUTING.es.md), [Chino Simplificado](/docs/CONTRIBUTING.zh-cn.md)_
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Contribuyendo
|
# Contribuyendo
|
||||||
|
|
||||||
¡Nos ❤️ encantaría que contribuyas a Pingvin Share y nos ayudes a hacerlo mejor! Todas las contribuciones son bienvenidas, incluyendo problemas, sugerencias, *pull requests* y más.
|
¡Nos ❤️ encantaría que contribuyas a Pingvin Share y nos ayudes a hacerlo mejor! Todas las contribuciones son bienvenidas, incluyendo problemas, sugerencias, _pull requests_ y más.
|
||||||
|
|
||||||
## Para comenzar
|
## Para comenzar
|
||||||
|
|
||||||
@@ -15,17 +15,17 @@ Si encontraste un error, tienes una sugerencia o algo más, simplemente crea un
|
|||||||
Antes de enviar la pull request para su revisión, asegúrate de que:
|
Antes de enviar la pull request para su revisión, asegúrate de que:
|
||||||
|
|
||||||
- El nombre de la pull request sigue las [especificaciones de Commits Convencionales](https://www.conventionalcommits.org/):
|
- El nombre de la pull request sigue las [especificaciones de Commits Convencionales](https://www.conventionalcommits.org/):
|
||||||
|
|
||||||
`<tipo>[ámbito opcional]: <descripción>`
|
`<tipo>[ámbito opcional]: <descripción>`
|
||||||
|
|
||||||
ejemplo:
|
ejemplo:
|
||||||
|
|
||||||
```
|
```
|
||||||
feat(share): agregar protección con contraseña
|
feat(share): agregar protección con contraseña
|
||||||
```
|
```
|
||||||
|
|
||||||
Donde `tipo` puede ser:
|
Donde `tipo` puede ser:
|
||||||
|
|
||||||
- **feat** - es una nueva función
|
- **feat** - es una nueva función
|
||||||
- **doc** - cambios solo en la documentación
|
- **doc** - cambios solo en la documentación
|
||||||
- **fix** - una corrección de error
|
- **fix** - una corrección de error
|
||||||
97
docs/CONTRIBUTING.zh-cn.md
Normal file
97
docs/CONTRIBUTING.zh-cn.md
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
_选择合适的语言阅读: [西班牙语](/docs/CONTRIBUTING.es.md), [英语](/CONTRIBUTING.md), [简体中文](/docs/CONTRIBUTING.zh-cn.md)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 提交贡献
|
||||||
|
|
||||||
|
我们非常感谢你 ❤️ 为 Pingvin Share 提交贡献使其变得更棒! 欢迎任何形式的贡献,包括 issues, 建议, PRs 和其他形式
|
||||||
|
|
||||||
|
## 小小的开始
|
||||||
|
|
||||||
|
你找到了一个 bug,有新特性建议或者其他提议,请在 GitHub 建立一个 issue 以便我和你联络 😊
|
||||||
|
|
||||||
|
## 提交一个 Pull Request
|
||||||
|
|
||||||
|
在你提交 PR 前请确保
|
||||||
|
|
||||||
|
- PR 的名字遵守 [Conventional Commits specification](https://www.conventionalcommits.org):
|
||||||
|
|
||||||
|
`<type>[optional scope]: <description>`
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
```
|
||||||
|
feat(share): add password protection
|
||||||
|
```
|
||||||
|
|
||||||
|
`TYPE` 可以是:
|
||||||
|
|
||||||
|
- **feat** - 这是一个新特性 feature
|
||||||
|
- **doc** - 仅仅改变了文档部分 documentation
|
||||||
|
- **fix** - 修复了一个 bug
|
||||||
|
- **refactor** - 更新了代码,但是并非出于增加新特性 feature 或修复 bug 的目的
|
||||||
|
|
||||||
|
- 请在 PR 中附详细的解释说明
|
||||||
|
- 使用 `npm run format` 格式化你的代码
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>不知道怎么发起一个 PR? 点开了解怎么发起一个 PR </summary>
|
||||||
|
|
||||||
|
1. 点击 Pingvin Share 仓库的 `Fork` 按钮,复制一份你的仓库
|
||||||
|
|
||||||
|
2. 通过 `git clone` 将你的仓库克隆到本地
|
||||||
|
|
||||||
|
```
|
||||||
|
$ git clone https://github.com/[你的用户名]/pingvin-share
|
||||||
|
```
|
||||||
|
|
||||||
|
3. 进行你的修改 - 提交 commit 你的修改 - 重复直到完成
|
||||||
|
|
||||||
|
4. 将你的修改提交到 GitHub
|
||||||
|
|
||||||
|
```
|
||||||
|
$ git push origin [你的新分支的名字]
|
||||||
|
```
|
||||||
|
|
||||||
|
5. 提交你的代码以便代码审查
|
||||||
|
|
||||||
|
如果你进入你 fork 的 Github 仓库,你会看到一个 `Compare & pull request` 按钮,点击该按钮
|
||||||
|
|
||||||
|
6. 发起一个 PR
|
||||||
|
7. 点击 `Create pull request` 来提交你的 PR
|
||||||
|
8. 等待代码审查,通过或以某些原因拒绝
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
## 配置开发项目
|
||||||
|
|
||||||
|
Pingvin Share 包括前端和后端部分
|
||||||
|
|
||||||
|
### 后端
|
||||||
|
|
||||||
|
后端使用 [Nest.js](https://nestjs.com) 建立,使用 Typescript
|
||||||
|
|
||||||
|
#### 搭建
|
||||||
|
|
||||||
|
1. 打开 `backend` 文件夹
|
||||||
|
2. 使用 `npm install` 安装依赖
|
||||||
|
3. 通过 `npx prisma db push` 配置数据库结构
|
||||||
|
4. 通过 `npx prisma db seed` 初始化数据库数据
|
||||||
|
5. 通过 `npm run dev` 启动后端
|
||||||
|
|
||||||
|
### 前端
|
||||||
|
|
||||||
|
后端使用 [Next.js](https://nextjs.org) 建立,使用 Typescript
|
||||||
|
|
||||||
|
#### 搭建
|
||||||
|
|
||||||
|
1. 首先启动后端
|
||||||
|
2. 打开 `frontend` 文件夹
|
||||||
|
3. 通过 `npm install` 安装依赖
|
||||||
|
4. 通过 `npm run dev` 启动前端
|
||||||
|
|
||||||
|
开发项目配置完成
|
||||||
|
|
||||||
|
### 测试
|
||||||
|
|
||||||
|
目前阶段我们只有后端的系统测试,在 `backend` 文件夹运行 `npm run test:system` 来执行系统测试
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
|
|
||||||
# <div align="center"><img src="https://user-images.githubusercontent.com/58886915/166198400-c2134044-1198-4647-a8b6-da9c4a204c68.svg" width="40"/> </br>Pingvin Share</div>
|
# <div align="center"><img src="https://user-images.githubusercontent.com/58886915/166198400-c2134044-1198-4647-a8b6-da9c4a204c68.svg" width="40"/> </br>Pingvin Share</div>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Leer esto en otro idioma: [Inglés](README.md), [Español](README.es.md)*
|
_Leer esto en otro idioma: [Inglés](/README.md), [Español](/docs/README.es.md), [Chino Simplificado](/docs/README.zh-cn.md)_
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -31,7 +30,7 @@ Pingvin Share es una plataforma de intercambio de archivos autoalojada y una alt
|
|||||||
|
|
||||||
### Instalación con Docker (recomendada)
|
### Instalación con Docker (recomendada)
|
||||||
|
|
||||||
1. Descarge el archivo `docker-compose.yml`
|
1. Descarge el archivo `docker-compose.yml`
|
||||||
2. Ejecute `docker-compose up -d`
|
2. Ejecute `docker-compose up -d`
|
||||||
|
|
||||||
El sitio web ahora está esperando conexiones en `http://localhost:3000`, ¡diviértase usando Pingvin Share 🐧!
|
El sitio web ahora está esperando conexiones en `http://localhost:3000`, ¡diviértase usando Pingvin Share 🐧!
|
||||||
@@ -96,24 +95,24 @@ docker compose up -d
|
|||||||
#### Instalación autónoma
|
#### Instalación autónoma
|
||||||
|
|
||||||
1. Deten la aplicación en ejecución
|
1. Deten la aplicación en ejecución
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 stop pingvin-share-backend pingvin-share-frontend
|
pm2 stop pingvin-share-backend pingvin-share-frontend
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Repite los pasos de la [guía de instalación](#instalación-autonoma) excepto el paso de `git clone`.
|
2. Repite los pasos de la [guía de instalación](#instalación-autonoma) excepto el paso de `git clone`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd pingvin-share
|
cd pingvin-share
|
||||||
|
|
||||||
# Consultar la última versión
|
# Consultar la última versión
|
||||||
git fetch --tags && git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
|
git fetch --tags && git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
|
||||||
|
|
||||||
# Iniciar el backend
|
# Iniciar el backend
|
||||||
cd backend
|
cd backend
|
||||||
npm run build
|
npm run build
|
||||||
pm2 restart pingvin-share-backend
|
pm2 restart pingvin-share-backend
|
||||||
|
|
||||||
# Iniciar frontend
|
# Iniciar frontend
|
||||||
cd ../frontend
|
cd ../frontend
|
||||||
npm run build
|
npm run build
|
||||||
126
docs/README.zh-cn.md
Normal file
126
docs/README.zh-cn.md
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
# <div align="center"><img src="https://user-images.githubusercontent.com/58886915/166198400-c2134044-1198-4647-a8b6-da9c4a204c68.svg" width="40"/> </br>Pingvin Share</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_选择合适的语言阅读: [西班牙语](/docs/README.es.md), [英语](/README.md), [简体中文](/docs/README.zh-cn.md)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Pingvin Share 是一个可自建的文件分享平台,是 WeTransfer 的一个替代品
|
||||||
|
|
||||||
|
## ✨ 特性
|
||||||
|
|
||||||
|
- 通过可自定义后缀的链接分享文件
|
||||||
|
- 可自定义任意大小的文件上传限制 (受制于托管所在的硬盘大小)
|
||||||
|
- 对共享链接设置有效期限
|
||||||
|
- 对共享链接设置访问次数和访问密码
|
||||||
|
- 通过邮件自动发送共享链接
|
||||||
|
- 整合 ClamAV 进行反病毒检查
|
||||||
|
|
||||||
|
## 🐧 了解一下 Pingvin Share
|
||||||
|
|
||||||
|
- [示例网站](https://pingvin-share.dev.eliasschneider.com)
|
||||||
|
- [DB Tech 推荐视频](https://www.youtube.com/watch?v=rWwNeZCOPJA)
|
||||||
|
|
||||||
|
<img src="https://user-images.githubusercontent.com/58886915/225038319-b2ef742c-3a74-4eb6-9689-4207a36842a4.png" width="700"/>
|
||||||
|
|
||||||
|
## ⌨️ 自建指南
|
||||||
|
|
||||||
|
> 注意:Pingvin Share 仍处于开发阶段并且可能存在 bugs
|
||||||
|
|
||||||
|
### Docker 部署 (推荐)
|
||||||
|
|
||||||
|
1. 下载 `docker-compose.yml`
|
||||||
|
2. 运行命令 `docker-compose up -d`
|
||||||
|
|
||||||
|
现在网站运行在 `http://localhost:3000`,尝试一下你本地的 Pingvin Share 🐧!
|
||||||
|
|
||||||
|
### Stand-alone 部署
|
||||||
|
|
||||||
|
必须的依赖:
|
||||||
|
|
||||||
|
- [Node.js](https://nodejs.org/en/download/) >= 16
|
||||||
|
- [Git](https://git-scm.com/downloads)
|
||||||
|
- [pm2](https://pm2.keymetrics.io/) 用于后台运行 Pingvin Share
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/stonith404/pingvin-share
|
||||||
|
cd pingvin-share
|
||||||
|
|
||||||
|
# 获取最新的版本
|
||||||
|
git fetch --tags && git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
|
||||||
|
|
||||||
|
# 启动后端 backend
|
||||||
|
cd backend
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
pm2 start --name="pingvin-share-backend" npm -- run prod
|
||||||
|
|
||||||
|
# 启动前端 frontend
|
||||||
|
cd ../frontend
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
pm2 start --name="pingvin-share-frontend" npm -- run start
|
||||||
|
```
|
||||||
|
|
||||||
|
现在网站运行在 `http://localhost:3000`,尝试一下你本地的 Pingvin Share 🐧!
|
||||||
|
|
||||||
|
### 整合组件
|
||||||
|
|
||||||
|
#### ClamAV (仅限 Docker 部署)
|
||||||
|
|
||||||
|
扫描上传文件中是否存在可疑文件,如果存在 ClamAV 会自动移除
|
||||||
|
|
||||||
|
1. 在 docker-compose 配置中添加 ClamAV 容器 (见 `docker-compose.yml` 注释部分) 并启动容器
|
||||||
|
2. Docker 会在启动 Pingvin Share 前启动 ClamAV,也许会花费 1-2 分钟
|
||||||
|
3. Pingvin Share 日志中应该有 "ClamAV is active"
|
||||||
|
|
||||||
|
请注意 ClamAV 会消耗很多 [系统资源(特别是内存)](https://docs.clamav.net/manual/Installing/Docker.html#memory-ram-requirements)
|
||||||
|
|
||||||
|
### 更多资源
|
||||||
|
|
||||||
|
- [群晖 NAS 配置](https://mariushosting.com/how-to-install-pingvin-share-on-your-synology-nas/)
|
||||||
|
|
||||||
|
### 升级
|
||||||
|
|
||||||
|
因为 Pingvin Share 仍处在开发阶段,在升级前请务必阅读 release notes 避免不可逆的改变
|
||||||
|
|
||||||
|
#### Docker 升级
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose pull
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Stand-alone 升级
|
||||||
|
|
||||||
|
1. 停止正在运行的 app
|
||||||
|
```bash
|
||||||
|
pm2 stop pingvin-share-backend pingvin-share-frontend
|
||||||
|
```
|
||||||
|
2. 重复 [installation guide](#stand-alone-installation) 中的步骤,除了 `git clone` 这一步
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd pingvin-share
|
||||||
|
|
||||||
|
# 获取最新的版本
|
||||||
|
git fetch --tags && git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
|
||||||
|
|
||||||
|
# 启动后端 backend
|
||||||
|
cd backend
|
||||||
|
npm run build
|
||||||
|
pm2 restart pingvin-share-backend
|
||||||
|
|
||||||
|
# 启动前端 frontend
|
||||||
|
cd ../frontend
|
||||||
|
npm run build
|
||||||
|
pm2 restart pingvin-share-frontend
|
||||||
|
```
|
||||||
|
|
||||||
|
### 自定义品牌
|
||||||
|
|
||||||
|
你可以在管理员配置页面改变网站的名字和 logo
|
||||||
|
|
||||||
|
## 🖤 提交贡献
|
||||||
|
|
||||||
|
非常欢迎向 Pingvin Share 提交贡献! 请阅读 [contribution guide](/CONTRIBUTING.md) 来提交你的贡献
|
||||||
4
frontend/package-lock.json
generated
4
frontend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-frontend",
|
"name": "pingvin-share-frontend",
|
||||||
"version": "0.14.0",
|
"version": "0.14.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "pingvin-share-frontend",
|
"name": "pingvin-share-frontend",
|
||||||
"version": "0.14.0",
|
"version": "0.14.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/react": "^11.10.6",
|
"@emotion/react": "^11.10.6",
|
||||||
"@emotion/server": "^11.10.0",
|
"@emotion/server": "^11.10.0",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-frontend",
|
"name": "pingvin-share-frontend",
|
||||||
"version": "0.14.0",
|
"version": "0.14.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
|
|||||||
@@ -12,16 +12,7 @@ import {
|
|||||||
import api from "./api.service";
|
import api from "./api.service";
|
||||||
|
|
||||||
const create = async (share: CreateShare) => {
|
const create = async (share: CreateShare) => {
|
||||||
const { id, expiration, recipients, security, description } = share;
|
return (await api.post("shares", share)).data;
|
||||||
return (
|
|
||||||
await api.post("shares", {
|
|
||||||
id,
|
|
||||||
expiration,
|
|
||||||
recipients,
|
|
||||||
security,
|
|
||||||
description,
|
|
||||||
})
|
|
||||||
).data;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const completeShare = async (id: string) => {
|
const completeShare = async (id: string) => {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share",
|
"name": "pingvin-share",
|
||||||
"version": "0.14.0",
|
"version": "0.14.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "cd frontend && npm run format && cd ../backend && npm run format",
|
"format": "cd frontend && npm run format && cd ../backend && npm run format",
|
||||||
"lint": "cd frontend && npm run lint && cd ../backend && npm run lint",
|
"lint": "cd frontend && npm run lint && cd ../backend && npm run lint",
|
||||||
|
|||||||
Reference in New Issue
Block a user