Bumps the npm_and_yarn group with 12 updates in the / directory: | Package | From | To | | --- | --- | --- | | [brace-expansion](https://github.com/juliangruber/brace-expansion) | `1.1.11` | `1.1.12` | | [braces](https://github.com/micromatch/braces) | `3.0.2` | `3.0.3` | | [cross-spawn](https://github.com/moxystudio/node-cross-spawn) | `7.0.3` | `7.0.6` | | [esbuild](https://github.com/evanw/esbuild) | `0.19.2` | `0.19.12` | | [js-yaml](https://github.com/nodeca/js-yaml) | `4.1.0` | `4.1.1` | | [micromatch](https://github.com/micromatch/micromatch) | `4.0.5` | `4.0.8` | | [node-forge](https://github.com/digitalbazaar/forge) | `1.3.1` | `1.3.3` | | [rollup](https://github.com/rollup/rollup) | `3.28.1` | `3.29.5` | | [serialize-javascript](https://github.com/yahoo/serialize-javascript) | `6.0.1` | `6.0.2` | | [serve-static](https://github.com/expressjs/serve-static) | `1.15.0` | `1.16.2` | | [tar](https://github.com/isaacs/node-tar) | `6.1.15` | `6.2.1` | | [undici](https://github.com/nodejs/undici) | `5.23.0` | `5.29.0` | Updates `brace-expansion` from 1.1.11 to 1.1.12 - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12) Updates `braces` from 3.0.2 to 3.0.3 - [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3) Updates `cross-spawn` from 7.0.3 to 7.0.6 - [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md) - [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6) Updates `esbuild` from 0.19.2 to 0.19.12 - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/v0.19.12/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.19.2...v0.19.12) Updates `js-yaml` from 4.1.0 to 4.1.1 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) Updates `micromatch` from 4.0.5 to 4.0.8 - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8) Updates `node-forge` from 1.3.1 to 1.3.3 - [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md) - [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.1...v1.3.3) Updates `rollup` from 3.28.1 to 3.29.5 - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG-3.md) - [Commits](https://github.com/rollup/rollup/compare/v3.28.1...v3.29.5) Updates `serialize-javascript` from 6.0.1 to 6.0.2 - [Release notes](https://github.com/yahoo/serialize-javascript/releases) - [Commits](https://github.com/yahoo/serialize-javascript/compare/v6.0.1...v6.0.2) Updates `serve-static` from 1.15.0 to 1.16.2 - [Release notes](https://github.com/expressjs/serve-static/releases) - [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md) - [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.2) Updates `tar` from 6.1.15 to 6.2.1 - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/node-tar/compare/v6.1.15...v6.2.1) Updates `undici` from 5.23.0 to 5.29.0 - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v5.23.0...v5.29.0) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 1.1.12 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: braces dependency-version: 3.0.3 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: cross-spawn dependency-version: 7.0.6 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: esbuild dependency-version: 0.19.12 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: micromatch dependency-version: 4.0.8 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: node-forge dependency-version: 1.3.3 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: rollup dependency-version: 3.29.5 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: serialize-javascript dependency-version: 6.0.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: serve-static dependency-version: 1.16.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: tar dependency-version: 6.2.1 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: undici dependency-version: 5.29.0 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com>
XDPL
A lightweight proxy server for DeepL Translator built with Nitro, providing a clean API interface to DeepL's translation services.
Features
- 🚀 Fast and lightweight proxy server
- 🔒 Secure routing through Nitro
- 🌐 Full DeepL API compatibility
- 📦 Easy deployment to various platforms
- ⚡ Built-in caching and optimization
Tech Stack
- Framework: Nitro - Universal JavaScript server
- Runtime: Node.js
- Package Manager: pnpm
- TypeScript: Full TypeScript support
Getting Started
Prerequisites
- Node.js 18+
- pnpm (recommended) or npm
Installation
-
Clone the repository:
git clone https://github.com/xixu-me/XDPL.git cd XDPL -
Install dependencies:
pnpm install -
Start the development server:
pnpm dev
The server will start on http://localhost:3000
Available Scripts
pnpm dev- Start development server with hot reloadpnpm build- Build for productionpnpm preview- Preview production build locallypnpm prepare- Prepare Nitro types
Usage
The proxy server forwards all requests to DeepL's API. You can use it as a drop-in replacement for direct DeepL API calls:
// Instead of calling https://www2.deepl.com/jsonrpc
// Call your deployed proxy
fetch('https://your-domain.vercel.app/jsonrpc', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
// Your DeepL API request
})
})
Deployment
Deploy to Vercel
Option 1: One-Click Deploy
Click the "Deploy with Vercel" button above to deploy instantly.
Option 2: Manual Deploy via CLI
-
Install Vercel CLI:
npm i -g vercel -
Login to your Vercel account:
vercel login -
Deploy from your project directory:
vercel -
For production deployment:
vercel --prod
Option 3: Deploy via Git Integration
- Push your code to a Git repository (GitHub, GitLab, or Bitbucket)
- Visit vercel.com and import your repository
- Vercel will automatically detect the Nitro configuration and deploy
Vercel Configuration
The project is pre-configured for Vercel deployment. Nitro automatically generates the necessary Vercel configuration during the build process.
Deploy to Other Platforms
This Nitro application can also be deployed to:
- Netlify:
nitro build --preset netlify - Cloudflare Workers:
nitro build --preset cloudflare-pages - AWS Lambda:
nitro build --preset aws-lambda - DigitalOcean:
nitro build --preset digitalocean
For more deployment options, see the Nitro deployment documentation.
Configuration
The main configuration is in nitro.config.ts:
export default defineNitroConfig({
routeRules: {
"/**": {
proxy: "https://www2.deepl.com/**",
},
},
});
Data Privacy & Security
Privacy Considerations
- Proxy Operation: XDPL acts as a transparent proxy, forwarding requests directly to DeepL's servers without storing or logging translation content
- No Data Retention: Translation requests and responses pass through the proxy without being cached or stored locally
- Direct Communication: Your data flows directly between your application and DeepL's secure infrastructure
Security Features
- HTTPS Support: All communications are encrypted in transit when deployed with HTTPS
- No API Key Exposure: Your DeepL API credentials remain between your client and DeepL's servers
- Minimal Attack Surface: Lightweight proxy design reduces potential security vulnerabilities
- Server-Side Processing: Runs on secure server infrastructure (Vercel, Netlify, etc.)
Best Practices
- Use HTTPS: Always deploy with HTTPS enabled for encrypted communication
- Environment Variables: Store sensitive configuration in environment variables, not in code
- Regular Updates: Keep dependencies updated to ensure security patches are applied
- Monitor Usage: Implement proper logging and monitoring for your deployment
Compliance
- GDPR Friendly: No personal data is stored or processed by the proxy
- Data Sovereignty: Translation data flows directly to DeepL, maintaining your existing compliance posture
- Audit Trail: Server logs can be configured according to your compliance requirements
License
This project is licensed under the MIT License - see the LICENSE file for details.