Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
5bb50d4
chore: パッケージマネージャーをnpmからbunに移行し依存関係を更新
yuu1111 Mar 22, 2026
918bbaa
chore: package.jsonのauthor設定とenginesフィールドの整理
yuu1111 Mar 22, 2026
d75d1c0
refactor: ESLint/CommonJSからBiome/ESMにモダン化
yuu1111 Mar 22, 2026
7dea54c
refactor: tscからbun buildに移行しプロジェクト構成を整理
yuu1111 Mar 22, 2026
9c6f917
fix: buildとdevスクリプトのエントリポイントをsrc/main.tsに修正
yuu1111 Mar 22, 2026
b6a4f3e
chore: @types/nodeを@types/bunに置き換え
yuu1111 Mar 22, 2026
d89fcff
style: 末尾の空行を削除
yuu1111 Mar 22, 2026
80b596e
refactor: node-cronからBun.cron(OS-levelスケジューリング)に移行
yuu1111 Mar 22, 2026
455ae51
refactor: ビルドスクリプトを設定ファイルに分離
yuu1111 Mar 22, 2026
a700bd2
refactor: release.cjsをTypeScriptに変換
yuu1111 Mar 22, 2026
8443059
refactor: bat/sh/ps1の重複スクリプトをscripts/のpwsh統一に整理
yuu1111 Mar 22, 2026
b4d59af
refactor: toolsをビルド対象から除外しTS直接実行に変更
yuu1111 Mar 22, 2026
e67fa5f
refactor: CIワークフローをNode.js/npmからBunに移行
yuu1111 Mar 22, 2026
4577a52
refactor: Zodスキーマバリデーションを導入しバリデーションロジックを統一
yuu1111 Mar 22, 2026
bc90bc3
refactor: クラスベースのサービスを関数ベースに変換しドキュメントを整理
yuu1111 Mar 22, 2026
eee86dc
refactor: クラスベースのサービスを関数ベース/ファクトリパターンに変換
yuu1111 Mar 22, 2026
7696037
refactor: アーキテクチャ改善 - サービスコンテナ導入、Google Sheets汎化、依存整理
yuu1111 Mar 22, 2026
d56e6a8
refactor: src/config.tsを廃止しschemas/config.tsにconfigエクスポートを統合
yuu1111 Mar 22, 2026
4004dfd
refactor: アーキテクチャ改善 - config分離、ファイル名統一、副作用除去、steamApiファクトリ化
yuu1111 Mar 23, 2026
a9e59f7
refactor: SQLiteストレージに全面移行しアーキテクチャを刷新
yuu1111 Mar 23, 2026
ab7b2dc
refactor: steamApi.ts廃止、retry.ts簡素化、ウィンドウタイトル・設定の整理
yuu1111 Mar 23, 2026
d1d4ce9
refactor: コード重複解消、起動並列化、リソース共有化
yuu1111 Mar 23, 2026
b7a0030
docs: CLAUDE.md・README・README-JPをSQLiteアーキテクチャに合わせて更新
yuu1111 Mar 23, 2026
e22ad77
test: bun testによるテストスイート導入 (114テスト, カバレッジ97%)
yuu1111 Mar 23, 2026
b96299f
refactor: Bun.cronをsetIntervalに置換、ビルド・CI・ドキュメント修正
yuu1111 Mar 24, 2026
a4f2266
refactor: TS6モダン化 - using宣言、非推奨API置換、型安全性向上
yuu1111 Mar 24, 2026
0a94b67
refactor: DB接続DI化、fullSync冗長クエリ削除、getSheets除去
yuu1111 Mar 24, 2026
b0f8af9
chore: 不要なPowerShellラッパースクリプトを削除
yuu1111 Mar 24, 2026
530830e
refactor: DDL分割、syncSheets DI化、setInterval並行実行ガード
yuu1111 Mar 24, 2026
a364a8d
refactor: DDL nullガード修正、transaction API追加、mkdir一括化、columnRange検証
yuu1111 Mar 24, 2026
7bc5612
refactor: run重複宣言削除、sync遅延accessor生成、importCsvトランザクションガード
yuu1111 Mar 24, 2026
17b41f6
refactor: 日次平均同期をbatchAppendに変更(N APIコール→1回に削減)
yuu1111 Mar 24, 2026
bf5f140
refactor: transactionネイティブ化、SheetAccessors起動時生成、ログガード修正
yuu1111 Mar 24, 2026
73ea99c
fix: 重複TSDoc削除、チャートの日付範囲境界を修正
yuu1111 Mar 24, 2026
efba2f4
fix: 日次平均syncをupsert(append)に戻し重複行を防止、APIレート制限を統一
yuu1111 Mar 24, 2026
17c72bc
refactor: デッドガード削除、statement finalize追加、CLI引数バリデーション
yuu1111 Mar 24, 2026
8219dec
refactor: chartsDir定数化、markSyncedヘルパー抽出、replaceAll後のheaderVerified設定
yuu1111 Mar 24, 2026
1df4ead
refactor: markSynced finalize安全化、importCsv ENOENTヘルパー抽出、チャートoptions共通化
yuu1111 Mar 24, 2026
cbccc7f
refactor: markSyncedByColumnのtable/columnをリテラル型に制限
yuu1111 Mar 24, 2026
9d53c84
refactor: importCsv.tsの重複インライン型をPlayerDataRow/DailyAverageRowに置換
yuu1111 Mar 24, 2026
466569c
refactor: markSyncedを事前コンパイル済みstatement+トランザクションループに置換
yuu1111 Mar 24, 2026
eb950b0
refactor: テストモックファクトリ抽出、CLAUDE.mdテスト配置説明修正
yuu1111 Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 4 additions & 14 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,30 +1,20 @@
# Steam Settings
STEAM_APP_ID=730

# Output Settings
CSV_OUTPUT_ENABLED=true
CSV_FILE_PATH=steam_concurrent_players.csv
DAILY_AVERAGE_CSV_ENABLED=true
DAILY_AVERAGE_CSV_FILE_PATH=steam_daily_averages.csv
# Storage
DB_PATH=data/steam-tracker.db

# Scheduling Settings (minutes when to collect data)
# Scheduling Settings
COLLECTION_MINUTES=0,30
# Hour when to calculate daily averages (0-23)
DAILY_AVERAGE_HOUR=0

# Retry Settings
MAX_RETRIES=3
RETRY_BASE_DELAY=1000
SHEETS_SYNC_MINUTES=5,35

# Logging Settings
LOG_LEVEL=info
LOG_FILE_PATH=logs/steam-tracker.log

# Google Sheets Integration (Optional)
GOOGLE_SHEETS_ENABLED=false
GOOGLE_SHEETS_SPREADSHEET_ID=
GOOGLE_SHEETS_SHEET_NAME=PlayerData
GOOGLE_SHEETS_DAILY_AVERAGE_SHEET_NAME=DailyAverages
GOOGLE_SERVICE_ACCOUNT_KEY_PATH=
# Sync local CSV data to Google Sheets on startup
GOOGLE_SHEETS_SYNC_ON_STARTUP=false
29 changes: 0 additions & 29 deletions .eslintrc.js

This file was deleted.

43 changes: 15 additions & 28 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,25 @@ on:
jobs:
test:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18, 20]


steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'


- name: Setup Bun
uses: oven-sh/setup-bun@v2

- name: Install dependencies
run: npm ci
run: bun install --frozen-lockfile

- name: Run type check
run: npm run typecheck
run: bun run typecheck

- name: Run linter
run: npm run lint

run: bunx biome ci .

- name: Run tests
run: STEAM_APP_ID=730 DB_PATH=data/test.db bun test

- name: Build application
run: npm run build

- name: Test startup (dry run)
run: |
timeout 10s npm start || if [ $? -eq 124 ]; then echo "Application started successfully"; else exit 1; fi
env:
STEAM_APP_ID: "730"
COLLECTION_MINUTES: "0"
DAILY_AVERAGE_HOUR: "0"
GOOGLE_SHEETS_ENABLED: "false"
run: bun run build
75 changes: 35 additions & 40 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,91 +8,86 @@ on:
jobs:
release:
runs-on: ubuntu-latest

permissions:
contents: write

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'


- name: Setup Bun
uses: oven-sh/setup-bun@v2

- name: Install dependencies
run: npm ci
run: bun install --frozen-lockfile

- name: Run type check
run: npm run typecheck
run: bun run typecheck

- name: Run linter
run: npm run lint

run: bunx biome ci .

- name: Run tests
run: STEAM_APP_ID=730 DB_PATH=data/test.db bun test

- name: Build application
run: npm run build
run: bun run build

- name: Create Release Archive
run: |
# Create directory with proper name for archives
ARCHIVE_NAME="steam-player-tracker-${{ github.ref_name }}"
mkdir -p "${ARCHIVE_NAME}"
cp -r dist/ "${ARCHIVE_NAME}/"
cp package.json "${ARCHIVE_NAME}/"
cp package-lock.json "${ARCHIVE_NAME}/"
cp bun.lock "${ARCHIVE_NAME}/"
cp README.md "${ARCHIVE_NAME}/"
cp README-JP.md "${ARCHIVE_NAME}/"
cp CHANGELOG.md "${ARCHIVE_NAME}/"
cp CHANGELOG-JP.md "${ARCHIVE_NAME}/"
cp LICENCE.txt "${ARCHIVE_NAME}/"
cp *.sh *.bat *.ps1 "${ARCHIVE_NAME}/" 2>/dev/null || true
# Copy .env.example if it exists
cp LICENCE "${ARCHIVE_NAME}/"

cp .env.example "${ARCHIVE_NAME}/" 2>/dev/null || true
tar -czf "${ARCHIVE_NAME}.tar.gz" "${ARCHIVE_NAME}"/
zip -r "${ARCHIVE_NAME}.zip" "${ARCHIVE_NAME}"/

- name: Extract version from tag
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT

- name: Generate Release Notes
id: release_notes
run: |
echo "RELEASE_NOTES<<EOF" >> $GITHUB_OUTPUT
echo "## 🚀 Steam Player Tracker v${{ steps.get_version.outputs.VERSION }}" >> $GITHUB_OUTPUT
echo "## Steam Player Tracker v${{ steps.get_version.outputs.VERSION }}" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT

# Extract version-specific changes from CHANGELOG.md

if [ -f "CHANGELOG.md" ]; then
echo "### 📝 Changes in this version" >> $GITHUB_OUTPUT
echo "### Changes in this version" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
# Extract unreleased section if this is the first release of those changes
awk '/^## \[Unreleased\]/{flag=1; next} /^## \[/{flag=0} flag && /^### /{print "#### " substr($0,5)} flag && /^- /{print $0}' CHANGELOG.md >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
fi
echo "### 📦 Downloads" >> $GITHUB_OUTPUT

echo "### Downloads" >> $GITHUB_OUTPUT
echo "- \`steam-player-tracker-${{ github.ref_name }}.tar.gz\` - For Linux/macOS" >> $GITHUB_OUTPUT
echo "- \`steam-player-tracker-${{ github.ref_name }}.zip\` - For Windows" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "### 🔧 Installation" >> $GITHUB_OUTPUT
echo "### Installation" >> $GITHUB_OUTPUT
echo "1. Download and extract the archive" >> $GITHUB_OUTPUT
echo "2. Create and configure \`.env\` file" >> $GITHUB_OUTPUT
echo "3. Run \`npm install\` to install dependencies" >> $GITHUB_OUTPUT
echo "4. Run \`npm start\` to start the application" >> $GITHUB_OUTPUT
echo "3. Run \`bun install\` to install dependencies" >> $GITHUB_OUTPUT
echo "4. Run \`bun run start\` to start the application" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "### 📋 Requirements" >> $GITHUB_OUTPUT
echo "- Node.js 18.0.0 or higher" >> $GITHUB_OUTPUT
echo "- npm" >> $GITHUB_OUTPUT
echo "### Requirements" >> $GITHUB_OUTPUT
echo "- Bun 1.3.11 or higher" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "### 📖 Documentation" >> $GITHUB_OUTPUT
echo "### Documentation" >> $GITHUB_OUTPUT
echo "For setup and usage instructions, see [README.md](README.md) (English) or [README-JP.md](README-JP.md) (日本語)." >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "For complete change history, see [CHANGELOG.md](CHANGELOG.md) (English) or [CHANGELOG-JP.md](CHANGELOG-JP.md) (日本語)." >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT

- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
Expand All @@ -104,4 +99,4 @@ jobs:
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ logs/
service-account-key.json
credentials.json

# CSV output files
# Data files
*.csv
data/

# IDE/Editor files
.vscode/
Expand All @@ -42,3 +43,6 @@ Thumbs.db
gcp-key.json

charts/*.png

# Test coverage
coverage/
2 changes: 1 addition & 1 deletion CHANGELOG-JP.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
フォーマットは [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) に基づいており、
このプロジェクトは [Semantic Versioning](https://semver.org/spec/v2.0.0.html) に準拠しています。

**言語:** [English](CHANGELOG.md) | [日本語](CHANGELOG-JP.md)
**言語:** [English](CHANGELOG.md) | [日本語](CHANGELOG-JP.md)

## [1.3.0] - 2025-06-25 JST

Expand Down
Loading
Loading