对 Unlock Music 使用 React 重写(um-react) https://um-react.netlify.app/
Go to file
2023-05-15 21:39:58 +01:00
public initial commit 2023-05-07 20:11:16 +01:00
src test: setup jest and everything 2023-05-15 21:32:48 +01:00
.editorconfig chore: add editorconfig 2023-05-08 17:29:00 +01:00
.eslintrc.cjs chore: configure and format file 2023-05-15 21:04:45 +01:00
.gitignore initial commit 2023-05-07 20:11:16 +01:00
.npmrc chore: rename dev to start, let pnpm use 18.16 2023-05-07 21:31:46 +01:00
.prettierignore chore: configure and format file 2023-05-15 21:04:45 +01:00
.swcrc test: setup jest and everything 2023-05-15 21:32:48 +01:00
index.html feat: basic ui layout 2023-05-07 23:29:37 +01:00
jest.config.cjs test: setup jest and everything 2023-05-15 21:32:48 +01:00
LICENSE initial commit 2023-05-07 20:11:16 +01:00
package.json test: setup jest and everything 2023-05-15 21:32:48 +01:00
pnpm-lock.yaml test: setup jest and everything 2023-05-15 21:32:48 +01:00
README.MD docs: note about folder layout 2023-05-13 20:21:19 +01:00
tsconfig.json test: setup jest and everything 2023-05-15 21:32:48 +01:00
tsconfig.node.json initial commit 2023-05-07 20:11:16 +01:00
tsconfig.prod.json test: setup jest and everything 2023-05-15 21:32:48 +01:00
vite.config.ts build: improved resource chunk 2023-05-15 21:39:58 +01:00

Getting started

前提: 安装 pnpm,推荐 corepack 方法。

pnpm i
pnpm start

架构

  • 浏览器主线程: 渲染界面,处理 UI 更新
  • Web Worker: 负责计算方面的内容,如内容解密。

数据传输: 生成 blob url (URL.createObjectURL) 然后透过 postMessage 传递给线程,线程利用 fetch API 来获取文件信息。

贡献代码

欢迎贡献代码。请确保:

  • 单元测试的覆盖率不低于主分支的覆盖率;
  • 提交前请使用 Prettier 对代码进行格式化;
  • 提交前请确保 ESLint 不会报告 warning / error

满足上述条件后发起 Pull Request仓库管理员审阅后将合并到主分支。

基于 libparakeet SDK 开发

libparakeet-js 编译目前需要 Linux 环境,请参考仓库说明

该文档将假设这两个项目被放置在同级的目录下:

~/Projects/um-projects
    /um-react
    /libparakeet-js

若为不同目录,你需要调整 vite.config.tsserver.fs.allow 区段并加入新的路径。

初次构建

  • 进入上层目录 cd ..
  • 克隆 libparakeet-js 仓库 (目前需要 Linux 环境, Windows 下推荐使用 WSL2)
    • git clone --recurse-submodules https://github.com/parakeet-rs/libparakeet-js.git
  • 进入目录 cd libparakeet-js
  • 如果需要更新 submodule:
    • git submodule update --init --recursive
  • 运行 ./build.sh -j 4 进行编译
  • 编译 js-sdk:
    • 进入 npm 目录: cd npm
    • 安装依赖: pnpm i --frozen-lockfile
    • 构建: pnpm build

做出更改

做出更改后,参考上面的内容进行重新编译

应用 SDK 更改

将构建好的 SDK 直接嵌入到当前前端项目:

pnpm link ../libparakeet-js/npm

※ 建立 PR 时,请先提交 SDK PR 并确保你的更改已合并。

TODO

  • #6 文件拖放 (利用 react-dropzone?)
  • 各类算法 追踪 crypto 标签
  • #7 简易元数据编辑器
  • #8 添加单元测试
  • #2 解密内容探测 (解密过程)