typing.works 0.0.0-stage → 0.3.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,16 @@
1
+ typing.works — terminal
2
+ Copyright © 2026 Perspective. All rights reserved.
3
+
4
+ 이 소프트웨어(실행 파일과 함께 배포되는 파일)는 무료로 내려받아 개인적·비상업적으로 쓸 수 있습니다.
5
+ 다음은 허락하지 않습니다: 수정, 재배포·재판매, 역설계·디컴파일·분해(관련 법이 명시적으로 허용하는 범위를 넘어서),
6
+ typing.works 서비스에 대한 자동화된 남용(랭크 기록 조작 등).
7
+
8
+ You may download and use this software free of charge for personal, non-commercial use.
9
+ You may not modify, redistribute or resell it, or reverse engineer, decompile or disassemble it
10
+ (except to the extent applicable law expressly permits), or use it to abuse the typing.works service.
11
+
12
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN NO EVENT SHALL THE
13
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY ARISING FROM THE SOFTWARE
14
+ OR ITS USE.
15
+
16
+ typing.works 서비스 이용에는 typing.works 이용약관과 개인정보처리방침이 적용됩니다.
package/README.md CHANGED
@@ -1,3 +1,64 @@
1
- # Temporary Holding Version
1
+ # typing.works — terminal (beta)
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ 터미널에서 치는 [typing.works](https://typing.works). 한글·영문 타자 연습, 웹과 같은 판정, 로그인하면 기록·통계·랭크전까지.
4
+ Typing practice from [typing.works](https://typing.works), in your terminal — Korean & English, same scoring as the web, records, stats and ranked matches.
5
+
6
+ ## 설치 · Install
7
+
8
+ ```sh
9
+ npx typing.works # 설치 없이 바로 · run without installing
10
+ npm i -g typing.works # 늘 쓰려면 · install → `typingworks`
11
+ brew install pers-dev/tap/typing.works # macOS · Linux
12
+ ```
13
+
14
+ macOS (Apple Silicon · Intel) · Linux (x64 · arm64 · 32-bit x86). 통신(로그인·기록)에 `curl`, 기록 올리기에 `gzip` 을 씁니다.
15
+ Windows는 아직입니다 — WSL에서 돌아갑니다.
16
+
17
+ ## 쓰는 법 · Keys
18
+
19
+ 켜면 바로 단문을 칩니다. · It opens straight into typing.
20
+
21
+ | 키 | |
22
+ |---|---|
23
+ | Enter · Space | 문장 끝 · finish |
24
+ | Esc | 처음부터 · restart |
25
+ | ↑ ↓ | 다음·이전 문장 · next/prev |
26
+ | Tab | 한/영 — 입력기는 영문으로 두고 두벌식 자리 그대로 · Korean/English (keep your OS input in English) |
27
+ | ^S ^L ^P | 단문 · 장문 · 팬그램 · sentence · paragraph · pangram |
28
+ | ^E | 문장 언어 · language |
29
+ | ^Z | 문장 크게/보통(macOS 터미널 · xterm) · bigger text |
30
+ | ^R | 기록 · 통계 · records & stats |
31
+ | ^K | 랭크전 · ranked |
32
+ | ^O ^A ^G ^Q | 설정 · 계정 · 도움말 · 끝 · settings · account · help · quit |
33
+
34
+ 계정은 typing.works 와 같습니다. 한글은 한글이 든 고정폭 글꼴(D2Coding · Sarasa Mono K 등)에서 가장 보기 좋습니다.
35
+
36
+ ## 익명 사용 통계 · Anonymous usage stats
37
+
38
+ 어떻게 쓰이는지 알려고 아주 적은 것만 보냅니다. · We send a small amount of anonymous data to learn how it's used.
39
+
40
+ - **보내는 것 · sent**: 켰다 · 묶음을 끝냈다(언어 · 갈래 · 문장 수 · 평균 타/분 · 정확도) · 랭크 판 결과 · 로그인했다 — 판 번호 · OS · 터미널 이름과 함께. 사람이 아니라 이 기기에서 만든 난수 ID로 셉니다.
41
+ - **보내지 않는 것 · never sent**: 친 글 · 문장 · 계정(이메일 · 닉네임).
42
+ - **끄기 · opt out**: 설정(^O) «익명 사용 통계» · `TW_NO_TELEMETRY=1` · `DO_NOT_TRACK=1` · `typingworks --no-telemetry`
43
+ - **무엇이 나가는지 보기 · see exactly what is sent**: `TW_TELEMETRY_LOG=~/tw-telemetry.log typingworks`
44
+
45
+ ## 새 판 · Updates
46
+
47
+ 켤 때(6시간에 한 번) npm 에 새 판이 있는지 보고, 있으면 오른쪽 위에 알립니다. **^U** 를 누르면 깐 방법대로 올리고 새 판으로 다시 켭니다.
48
+ Checks npm for a newer version (every 6 hours) and shows it top-right. Press **^U** to update the way you installed it and restart.
49
+
50
+ | 깐 방법 · installed with | ^U 가 돌리는 것 · runs |
51
+ |---|---|
52
+ | brew | `brew upgrade typing.works` |
53
+ | npm i -g | `npm i -g typing.works@latest` |
54
+ | npx | `npx typing.works@latest` |
55
+
56
+ 끄기 · disable: `TW_NO_UPDATE_CHECK=1`
57
+
58
+ ## 저장 · Data
59
+
60
+ `~/.typingworks` — 설정 · 이 기기의 기록 · 로그인 토큰(이 파일에만, 권한 600). 지우면 처음 상태가 됩니다.
61
+
62
+ ## License
63
+
64
+ © 2026 Perspective. All rights reserved. 무료로 쓸 수 있습니다. 자세한 것은 LICENSE.
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ // typing.works — 이 기기에 맞는 실행 파일을 골라 그대로 넘긴다(입출력 · 종료 코드 · 신호 그대로). 설치 스크립트는 없다.
3
+ "use strict";
4
+ const { spawnSync } = require("child_process");
5
+ const path = require("path");
6
+ const fs = require("fs");
7
+ const key = `${process.platform}-${process.arch}`;
8
+ const exe = path.join(__dirname, "..", "vendor", key, "typingworks");
9
+ if (!fs.existsSync(exe)) {
10
+ console.error(`typing.works: ${key} 은 아직 지원하지 않습니다 — macOS · Linux(x64 · arm64 · x86). Windows 는 WSL 에서 돌아갑니다.`);
11
+ console.error(`typing.works: ${key} is not supported yet — macOS and Linux only (use WSL on Windows).`);
12
+ process.exit(1);
13
+ }
14
+ try { fs.accessSync(exe, fs.constants.X_OK); } catch { try { fs.chmodSync(exe, 0o755); } catch {} }
15
+ const r = spawnSync(exe, process.argv.slice(2), { stdio: "inherit" });
16
+ if (r.error) { console.error(`typing.works: ${r.error.message}`); process.exit(1); }
17
+ if (r.signal) process.kill(process.pid, r.signal);
18
+ process.exit(r.status === null ? 1 : r.status);
package/package.json CHANGED
@@ -1,6 +1,17 @@
1
1
  {
2
2
  "name": "typing.works",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.3.0-beta.3",
4
+ "description": "typing.works in your terminal — Korean & English typing practice, records, stats and ranked matches",
5
+ "bin": {
6
+ "typing.works": "bin/typing.works.js",
7
+ "typingworks": "bin/typing.works.js"
8
+ },
9
+ "files": ["bin", "vendor", "README.md", "LICENSE"],
10
+ "os": ["darwin", "linux"],
11
+ "cpu": ["arm64", "x64", "ia32"],
12
+ "engines": { "node": ">=14" },
13
+ "license": "SEE LICENSE IN LICENSE",
14
+ "homepage": "https://typing.works",
15
+ "author": "typing.works",
16
+ "keywords": ["typing", "typing-practice", "typing-test", "korean", "hangul", "terminal", "tui", "cli", "wpm"]
17
+ }
Binary file
Binary file
Binary file
Binary file
Binary file