#!/usr/bin/env node import http from 'http'; import url from 'url'; console.log('🚀 TickTick OAuth コールバックサーバーを起動中...'); const server = http.createServer((req, res) => { const parsedUrl = url.parse(req.url, true); if (parsedUrl.pathname === '/callback' || parsedUrl.pathname === '/api/ticktick/callback') { const { code, error } = parsedUrl.query; if (error) { res.writeHead(400, {'Content-Type': 'text/html; charset=utf-8'}); res.end(` 認証エラー

❌ 認証エラー

エラー: ${error}

ブラウザを閉じて、セットアップを再実行してください。

`); return; } if (code) { res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); res.end(` 認証成功

✅ 認証成功!

認証コード:

${code}

このコードをターミナルにコピー&ペーストしてください。

完了後、このブラウザを閉じてください。

`); console.log('✅ 認証コードを受信しました!'); console.log('📋 認証コード:', code); console.log(''); console.log('👆 このコードをターミナルの入力プロンプトにペーストしてください'); return; } } // その他のリクエスト res.writeHead(404, {'Content-Type': 'text/html; charset=utf-8'}); res.end(` TickTick OAuth Callback

🔗 TickTick OAuth Callback Server

このサーバーはTickTick認証用です。

ブラウザでTickTick認証を完了してください。

`); }); const PORT = 3000; server.listen(PORT, () => { console.log(`📡 OAuth コールバックサーバーが起動しました`); console.log(`🌐 URL: http://localhost:${PORT}/callback`); console.log(`🌐 URL: http://localhost:${PORT}/api/ticktick/callback`); console.log(''); console.log('✨ 準備完了!別のターミナルで以下を実行してください:'); console.log(' node dist/index.js --setup'); console.log(''); console.log('⏹️ 終了するには Ctrl+C を押してください'); }); // Graceful shutdown process.on('SIGINT', () => { console.log('\n🛑 サーバーを終了しています...'); server.close(() => { console.log('✅ サーバーが正常に終了しました'); process.exit(0); }); }); process.on('SIGTERM', () => { console.log('\n🛑 サーバーを終了しています...'); server.close(() => { console.log('✅ サーバーが正常に終了しました'); process.exit(0); }); });