From 03f24318d20aa394a58a0929edb5113d68d629ac Mon Sep 17 00:00:00 2001 From: abearxiong Date: Tue, 13 Jan 2026 13:28:17 +0800 Subject: [PATCH] temp --- .github/workflows/publish.yml | 38 -------------- package.json | 12 ++--- pnpm-lock.yaml | 6 +-- src/index.ts | 6 ++- src/io.ts | 6 --- src/sign.ts | 4 +- src/static.ts | 97 ----------------------------------- 7 files changed, 15 insertions(+), 154 deletions(-) delete mode 100644 .github/workflows/publish.yml delete mode 100644 src/io.ts delete mode 100644 src/static.ts diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index 3605882..0000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Publish to npm -on: - push: - tags: - - 'v*.*.*' # 当推送带有版本号的 tag 时触发,例如 v1.0.0 - workflow_dispatch: # 添加手动触发器 - -jobs: - publish: - runs-on: ubuntu-latest - steps: - # Step 1: Clone current Git repository - - name: Checkout this repository - uses: actions/checkout@v3 - # Step 3: Setup Node.js and install dependencies - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: '20.6' - registry-url: 'https://registry.npmjs.org/' - cache: 'npm' # 启用 npm 缓存,提高安装速度 - - name: Configure npm authentication - run: npm config set //registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }} - - name: Install dependencies - run: npm install --no-save - - name: Build project - run: npm run build - # Step 6: 发布到 npm - - name: Publish package - run: npm publish - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - # Step 7: 发布成功后,更新版本标签 - # - name: Create Git tag - # run: | - # TAG="v$(node -p -e "require('./package.json').version")" - # git tag $TAG - # git push origin $TAG \ No newline at end of file diff --git a/package.json b/package.json index 36f739b..888d840 100644 --- a/package.json +++ b/package.json @@ -21,21 +21,21 @@ "keywords": [], "author": "abearxiong", "license": "MIT", - "packageManager": "pnpm@10.26.2", + "packageManager": "pnpm@10.28.0", "devDependencies": { "@kevisual/local-proxy": "^0.0.8", - "@kevisual/query": "^0.0.33", + "@kevisual/query": "^0.0.35", "@rollup/plugin-alias": "^6.0.0", "@rollup/plugin-commonjs": "29.0.0", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-typescript": "^12.3.0", "@types/bun": "^1.3.5", - "@types/node": "^25.0.3", + "@types/node": "^25.0.7", "@types/send": "^1.2.1", "@types/xml2js": "^0.4.14", "@types/ws": "^8.18.1", "nanoid": "^5.1.6", - "rollup": "^4.54.0", + "rollup": "^4.55.1", "rollup-plugin-dts": "^6.3.0", "ts-loader": "^9.5.4", "ts-node": "^10.9.2", @@ -43,7 +43,7 @@ "tsx": "^4.21.0", "typescript": "^5.9.3", "xml2js": "^0.6.2", - "zod": "^4.2.1", + "zod": "^4.3.5", "eventemitter3": "^5.0.1", "ws": "npm:@kevisual/ws" }, @@ -53,7 +53,7 @@ }, "dependencies": { "path-to-regexp": "^8.3.0", - "selfsigned": "^5.4.0", + "selfsigned": "^5.5.0", "send": "^1.2.1" }, "publishConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36e254c..3a0fcaf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,9 +8,6 @@ importers: .: dependencies: - eventemitter3: - specifier: ^5.0.1 - version: 5.0.1 path-to-regexp: specifier: ^8.3.0 version: 8.3.0 @@ -54,6 +51,9 @@ importers: '@types/xml2js': specifier: ^0.4.14 version: 0.4.14 + eventemitter3: + specifier: ^5.0.1 + version: 5.0.1 nanoid: specifier: ^5.1.6 version: 5.1.6 diff --git a/src/index.ts b/src/index.ts index 562c8d2..66fd676 100644 --- a/src/index.ts +++ b/src/index.ts @@ -20,7 +20,7 @@ export { App } from './app.ts'; export * from './router-define.ts'; -export { +export type { RouterReq, RouterRes, OnWebSocketFn, @@ -31,4 +31,6 @@ export { WebSocketListenerFun, HttpListenerFun, OnListener, -} from './server/server-type.ts'; \ No newline at end of file +} from './server/server-type.ts'; + +export { loadTS } from './auto/load-ts.ts'; diff --git a/src/io.ts b/src/io.ts deleted file mode 100644 index ed76dc2..0000000 --- a/src/io.ts +++ /dev/null @@ -1,6 +0,0 @@ -// TODO: Implement IOApp -export class IOApp { - constructor() { - console.log('IoApp'); - } -} diff --git a/src/sign.ts b/src/sign.ts index 55be6c8..0b64a5d 100644 --- a/src/sign.ts +++ b/src/sign.ts @@ -9,7 +9,7 @@ export type AltNames = { value?: string; ip?: string; }; -export const createCert = (attrs: Attributes[] = [], altNames: AltNames[] = []) => { +export const createCert = async(attrs: Attributes[] = [], altNames: AltNames[] = []) => { let attributes = [ { name: 'countryName', value: 'CN' }, // 国家代码 { name: 'stateOrProvinceName', value: 'ZheJiang' }, // 州名 @@ -51,7 +51,7 @@ export const createCert = (attrs: Attributes[] = [], altNames: AltNames[] = []) }, ], }; - const pems = generate(attributes, options); + const pems = await generate(attributes, options); return { key: pems.private, cert: pems.cert, diff --git a/src/static.ts b/src/static.ts deleted file mode 100644 index 440a7c2..0000000 --- a/src/static.ts +++ /dev/null @@ -1,97 +0,0 @@ -const http = require('http'); -const fs = require('fs').promises; -const path = require('path'); -const fetch = require('node-fetch'); // 如果使用 Node.js 18 以上版本,可以改用内置 fetch -const url = require('url'); - -// 配置远端静态文件服务器和本地缓存目录 -const remoteServer = 'https://example.com/static'; // 远端服务器的 URL -const cacheDir = path.join(__dirname, 'cache'); // 本地缓存目录 -const PORT = process.env.PORT || 3000; - -// 确保本地缓存目录存在 -fs.mkdir(cacheDir, { recursive: true }).catch(console.error); - -// 获取文件的 content-type -function getContentType(filePath) { - const extname = path.extname(filePath); - const contentType = { - '.html': 'text/html', - '.js': 'text/javascript', - '.css': 'text/css', - '.json': 'application/json', - '.png': 'image/png', - '.jpg': 'image/jpg', - '.gif': 'image/gif', - '.svg': 'image/svg+xml', - '.wav': 'audio/wav', - '.mp4': 'video/mp4' - }; - return contentType[extname] || 'application/octet-stream'; -} - -// 处理请求文件 -async function serveFile(filePath, remoteUrl, res) { - try { - // 检查文件是否存在于本地缓存中 - const fileContent = await fs.readFile(filePath); - res.writeHead(200, { 'Content-Type': getContentType(filePath) }); - res.end(fileContent, 'utf-8'); - } catch (err) { - if (err.code === 'ENOENT') { - // 本地缓存中不存在,向远端服务器请求文件 - try { - const response = await fetch(remoteUrl); - - if (response.ok) { - // 远端请求成功,获取文件内容 - const data = await response.buffer(); - - // 将文件缓存到本地 - await fs.writeFile(filePath, data); - - // 返回文件内容 - res.writeHead(200, { 'Content-Type': getContentType(filePath) }); - res.end(data, 'utf-8'); - } else { - // 远端文件未找到或错误,返回 404 - res.writeHead(404, { 'Content-Type': 'text/plain' }); - res.end(`Error 404: File not found at ${remoteUrl}`); - } - } catch (fetchErr) { - // 处理请求错误 - res.writeHead(500, { 'Content-Type': 'text/plain' }); - res.end(`Server Error: Unable to fetch ${remoteUrl}`); - } - } else { - // 其他文件系统错误 - res.writeHead(500, { 'Content-Type': 'text/plain' }); - res.end(`Server Error: ${err.message}`); - } - } -} - -// 创建 HTTP 服务器 -http.createServer(async (req, res) => { - let reqPath = req.url; - - // 如果路径是根路径 `/`,将其设置为 `index.html` - if (reqPath === '/') reqPath = '/index.html'; - - // 构建本地缓存路径和远端 URL - const localFilePath = path.join(cacheDir, reqPath); // 本地文件路径 - const remoteFileUrl = url.resolve(remoteServer, reqPath); // 远端文件 URL - - // 根据请求路径处理文件或返回 index.html(单页面应用处理) - await serveFile(localFilePath, remoteFileUrl, res); - - // 单页面应用的路由处理 - if (res.headersSent) return; // 如果响应已发送,不再处理 - - // 如果未匹配到任何文件,返回 index.html - const indexFilePath = path.join(cacheDir, 'index.html'); - const indexRemoteUrl = url.resolve(remoteServer, '/index.html'); - await serveFile(indexFilePath, indexRemoteUrl, res); -}).listen(PORT, () => { - console.log(`Server running at http://localhost:${PORT}`); -});