restructuring

This commit is contained in:
cupcakearmy 2022-09-05 13:49:40 +02:00
parent 024dfeeeb7
commit 5912458e46
No known key found for this signature in database
GPG Key ID: 3235314B4D31232F
80 changed files with 1679 additions and 1667 deletions

View File

@ -23,11 +23,11 @@ jobs:
- name: Prepare - name: Prepare
run: | run: |
pnpm install pnpm install
pnpm run ci:prepare pnpm run test:prepare
- name: Install Playwright - name: Install Playwright
run: npx playwright install --with-deps run: npx playwright install --with-deps
- name: Run your tests - name: Run your tests
run: pnpm run test run: pnpm run test:run
- name: Upload test results - name: Upload test results
if: always() if: always()
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2

View File

@ -2,7 +2,7 @@
FROM node:16-alpine as client FROM node:16-alpine as client
WORKDIR /tmp WORKDIR /tmp
RUN npm install -g pnpm@7 RUN npm install -g pnpm@7
COPY ./frontend ./ COPY ./packages/frontend ./
RUN pnpm install RUN pnpm install
RUN pnpm exec svelte-kit sync RUN pnpm exec svelte-kit sync
RUN pnpm run build RUN pnpm run build
@ -12,9 +12,9 @@ RUN pnpm run build
FROM rust:1.61-alpine as backend FROM rust:1.61-alpine as backend
WORKDIR /tmp WORKDIR /tmp
RUN apk add libc-dev openssl-dev alpine-sdk RUN apk add libc-dev openssl-dev alpine-sdk
COPY ./backend/Cargo.* ./ COPY ./packages/backend/Cargo.* ./
RUN cargo fetch RUN cargo fetch
COPY ./backend ./ COPY ./packages/backend ./
RUN cargo build --release RUN cargo build --release

View File

@ -146,9 +146,9 @@ You can see the app under [localhost:1234](http://localhost:1234).
Tests are end to end tests written with Playwright. Tests are end to end tests written with Playwright.
```sh ```sh
pnpm run ci:prepare pnpm run test:prepare
docker compose up redis -d docker compose up redis -d
pnpm run ci:server pnpm run test:server
# In another terminal. # In another terminal.
# Use the test or test:local script. The local version only runs in one browser for quicker development. # Use the test or test:local script. The local version only runs in one browser for quicker development.

View File

@ -47,15 +47,15 @@ _加密鸽_ 是一个受 [_PrivNote_](https://privnote.com)项目启发的安全
## 环境变量 ## 环境变量
| 变量名称 | 默认值 | 描述 | | 变量名称 | 默认值 | 描述 |
| ----------------- | ---------------- | --------------------------------------------------------------------------------- | | ----------------- | ---------------- | --------------------------------------------------------------------------------- |
| `REDIS` | `redis://redis/` | Redis 连接 URL。 | | `REDIS` | `redis://redis/` | Redis 连接 URL。 |
| `SIZE_LIMIT` | `1 KiB` | 最大请求体(body)限制。有关支持的数值请查看 [字节单位](https://docs.rs/byte-unit/) | | `SIZE_LIMIT` | `1 KiB` | 最大请求体(body)限制。有关支持的数值请查看 [字节单位](https://docs.rs/byte-unit/) |
| `MAX_VIEWS` | `100` | 密信最多查看次数限制 | | `MAX_VIEWS` | `100` | 密信最多查看次数限制 |
| ` MAX_EXPIRATION` | `360` | 密信最长过期时间限制(分钟) | | ` MAX_EXPIRATION` | `360` | 密信最长过期时间限制(分钟) |
| `ALLOW_ADVANCED` | `true` | 是否允许自定义设置,该项如果设为`false`,则不会显示自定义设置模块 | | `ALLOW_ADVANCED` | `true` | 是否允许自定义设置,该项如果设为`false`,则不会显示自定义设置模块 |
| `THEME_IMAGE` | `""` | 自定义Logo图片你在这里填写的的图片链接必须是可以公开访问的。 | | `THEME_IMAGE` | `""` | 自定义 Logo 图片,你在这里填写的的图片链接必须是可以公开访问的。 |
| `THEME_TEXT` | `""` | 自定义在Logo下方的文本。 | | `THEME_TEXT` | `""` | 自定义在 Logo 下方的文本。 |
## 部署 ## 部署
@ -148,7 +148,7 @@ cargo install cargo-watch
确保你的 Docker 正在运行 确保你的 Docker 正在运行
> 如果你用的是 `macOS` 的话你可能需要关闭AirPlay接收功能因为该功能需要占用5000端口...) > 如果你用的是 `macOS` 的话你可能需要关闭 AirPlay 接收功能因为该功能需要占用 5000 端口...)
> https://developer.apple.com/forums/thread/682332 > https://developer.apple.com/forums/thread/682332
```bash ```bash
@ -165,12 +165,12 @@ pnpm run dev
## 测试 ## 测试
这些测试是用Playwright实现的一些端到端测试用例。 这些测试是用 Playwright 实现的一些端到端测试用例。
```sh ```sh
pnpm run ci:prepare pnpm run test:prepare
docker compose up redis -d docker compose up redis -d
pnpm run ci:server pnpm run test:server
# 在另一个终端中: # 在另一个终端中:
# 使用test或者test:local script。为了更快的开发本地版本只会在一个浏览器中运行。 # 使用test或者test:local script。为了更快的开发本地版本只会在一个浏览器中运行。

View File

@ -10,10 +10,11 @@ services:
- 6379:6379 - 6379:6379
app: app:
build: . # build: .
image: cupcakearmy/cryptgeon
depends_on: depends_on:
- redis - redis
environment: environment:
SIZE_LIMIT: 128 MiB SIZE_LIMIT: 10 MiB
ports: ports:
- 1234:5000 - 1234:5000

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,17 @@
{ {
"scripts": { "scripts": {
"dev:docker": "docker-compose up redis", "dev:docker": "docker-compose up redis",
"dev:backend": "cd backend && cargo watch -x 'run --bin cryptgeon'", "dev:packages": "pnpm -r run dev",
"dev:front": "pnpm --prefix frontend run dev",
"dev:proxy": "node proxy.mjs", "dev:proxy": "node proxy.mjs",
"dev": "run-p dev:*", "dev": "run-p dev:*",
"test": "playwright test --project chrome firefox safari", "test:run": "playwright test --project chrome firefox safari",
"test:local": "playwright test --project local", "test:local": "playwright test --project local",
"ci:server": "cd backend && SIZE_LIMIT=10MiB LISTEN_ADDR=0.0.0.0:1234 cargo run", "test:server": "pnpm -r run test:server",
"ci:prepare": "run-p ci:prepare:*", "test:prepare": "pnpm -r run test:prepare"
"ci:prepare:backend": "cd backend && cargo build",
"ci:prepare:front": "pnpm --prefix frontend install && pnpm --prefix frontend run build"
}, },
"devDependencies": { "devDependencies": {
"@playwright/test": "^1.23.4", "@playwright/test": "^1.25.1",
"@types/node": "16", "@types/node": "^16.11.57",
"http-proxy": "^1.18.1", "http-proxy": "^1.18.1",
"npm-run-all": "^4.1.5" "npm-run-all": "^4.1.5"
} }

View File

@ -0,0 +1,10 @@
{
"name": "backend",
"private": true,
"scripts": {
"dev": "cargo watch -x 'run --bin cryptgeon'",
"build": "cargo build --release",
"test:server": "SIZE_LIMIT=10MiB LISTEN_ADDR=0.0.0.0:1234 cargo run",
"test:prepare": "cargo build"
}
}

View File

@ -7,5 +7,6 @@ pub fn init(cfg: &mut web::ServiceConfig) {
let plain = web::PayloadConfig::default() let plain = web::PayloadConfig::default()
.limit(*config::LIMIT) .limit(*config::LIMIT)
.mimetype(mime::STAR_STAR); .mimetype(mime::STAR_STAR);
// cfg.app_data(plain);
cfg.app_data(json).app_data(plain); cfg.app_data(json).app_data(plain);
} }

View File

@ -1,8 +1,8 @@
├─ MIT: 12 ├─ MIT: 13
├─ ISC: 2
├─ BSD-3-Clause: 1 ├─ BSD-3-Clause: 1
├─ (MPL-2.0 OR Apache-2.0): 1 ├─ (MPL-2.0 OR Apache-2.0): 1
├─ BSD-2-Clause: 1 ├─ BSD-2-Clause: 1
├─ ISC: 1
├─ 0BSD: 1 ├─ 0BSD: 1
└─ Apache-2.0: 1 └─ Apache-2.0: 1
1 ├─ MIT: 12 ├─ MIT: 13
2 ├─ ISC: 2
3 ├─ BSD-3-Clause: 1 ├─ BSD-3-Clause: 1
4 ├─ (MPL-2.0 OR Apache-2.0): 1 ├─ (MPL-2.0 OR Apache-2.0): 1
5 ├─ BSD-2-Clause: 1 ├─ BSD-2-Clause: 1
├─ ISC: 1
6 ├─ 0BSD: 1 ├─ 0BSD: 1
7 └─ Apache-2.0: 1 └─ Apache-2.0: 1
8

View File

@ -6,7 +6,8 @@
"preview": "vite preview --port 3000", "preview": "vite preview --port 3000",
"check": "svelte-check --tsconfig tsconfig.json", "check": "svelte-check --tsconfig tsconfig.json",
"licenses": "license-checker --summary > licenses.csv", "licenses": "license-checker --summary > licenses.csv",
"locale:download": "node scripts/locale.js" "locale:download": "node scripts/locale.js",
"test:prepare": "pnpm run build"
}, },
"type": "module", "type": "module",
"devDependencies": { "devDependencies": {

View File

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 287 B

View File

Before

Width:  |  Height:  |  Size: 325 B

After

Width:  |  Height:  |  Size: 325 B

View File

Before

Width:  |  Height:  |  Size: 736 B

After

Width:  |  Height:  |  Size: 736 B

View File

Before

Width:  |  Height:  |  Size: 483 B

After

Width:  |  Height:  |  Size: 483 B

View File

Before

Width:  |  Height:  |  Size: 732 B

After

Width:  |  Height:  |  Size: 732 B

View File

Before

Width:  |  Height:  |  Size: 784 B

After

Width:  |  Height:  |  Size: 784 B

View File

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -3,6 +3,7 @@ import precompileIntl from 'svelte-intl-precompile/sveltekit-plugin'
/** @type {import('vite').UserConfig} */ /** @type {import('vite').UserConfig} */
const config = { const config = {
clearScreen: false,
server: { server: {
port: 3000, port: 3000,
}, },

View File

@ -11,7 +11,7 @@ const config: PlaywrightTestConfig = {
testDir: './test', testDir: './test',
webServer: { webServer: {
command: 'pnpm run ci:server', command: 'pnpm run test:server',
port: 1234, port: 1234,
reuseExistingServer: true, reuseExistingServer: true,
}, },

File diff suppressed because it is too large Load Diff

2
pnpm-workspace.yaml Normal file
View File

@ -0,0 +1,2 @@
packages:
- "packages/**"

View File

@ -0,0 +1,8 @@
import { test } from '@playwright/test'
import { createNote } from '../utils'
import Files from './files'
test('to big zip', async ({ page }) => {
const files = [Files.Zip]
const link = await createNote(page, { files, error: 'note is to big' })
})