chiwaa 0.1.7 → 0.1.8
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/README.md +1 -0
- package/bin/chiwaa.js +23 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -23,6 +23,7 @@ npx chiwaa deploy
|
|
|
23
23
|
| `chiwaa stats` | 방문자 통계(오늘·최근 7일·많이 본 페이지·들어온 곳) |
|
|
24
24
|
| `chiwaa deploy --preview` | 운영 주소는 두고 `이름--preview.chiwaa.com` 에 미리보기 |
|
|
25
25
|
| `chiwaa env` · `env set 이름` · `env rm 이름` | 서버 함수(`api/*.js`) 비밀값 — 값은 화면에 안 보이게 입력 |
|
|
26
|
+
| `chiwaa logs` | 서버 함수 기록(오류·console.log) |
|
|
26
27
|
| `chiwaa lock` / `unlock` | 사이트 비밀번호 잠금(공개 전 나만 보기) |
|
|
27
28
|
| `chiwaa open` · `usage` | 관리 화면 열기 · 이번 달 사용량 |
|
|
28
29
|
| `chiwaa agent` | AI 도구용 안내(AGENTS.md·CLAUDE.md) 만들기 — 처음 deploy 때 자동 |
|
package/bin/chiwaa.js
CHANGED
|
@@ -92,7 +92,7 @@ function parseArgs(argv) {
|
|
|
92
92
|
if (a.startsWith("--")) {
|
|
93
93
|
const [k, v] = a.slice(2).split("=", 2);
|
|
94
94
|
if (v !== undefined) out[k] = v;
|
|
95
|
-
else if (["name", "token", "dir", "read", "write", "page", "days"].includes(k) && argv[i + 1] && !argv[i + 1].startsWith("-")) out[k] = argv[++i];
|
|
95
|
+
else if (["name", "token", "dir", "read", "write", "page", "days", "lines"].includes(k) && argv[i + 1] && !argv[i + 1].startsWith("-")) out[k] = argv[++i];
|
|
96
96
|
else out[k] = true;
|
|
97
97
|
} else if (a === "-y") out.yes = true;
|
|
98
98
|
else if (a === "-h") out.help = true;
|
|
@@ -670,6 +670,26 @@ async function stats(args) {
|
|
|
670
670
|
if (!s.total.views) console.log(c.dim("\n 아직 집계된 방문이 없습니다."));
|
|
671
671
|
}
|
|
672
672
|
|
|
673
|
+
// ---------- logs (서버 함수 기록) ----------
|
|
674
|
+
async function logs(args) {
|
|
675
|
+
const name = await siteName(args);
|
|
676
|
+
const n = Math.min(Math.max(parseInt(args.lines, 10) || 30, 1), 500);
|
|
677
|
+
const r = await api("GET", `/api/v1/sites/${encodeURIComponent(name)}/logs?lines=${n}${args.preview ? "&preview=1" : ""}`);
|
|
678
|
+
if (r.status !== 200) fail(r.data.error || "기록을 받지 못했습니다.");
|
|
679
|
+
const d = r.data;
|
|
680
|
+
console.log(c.bold(`${d.site} 서버 함수 기록`), c.dim(`(최근 ${n}건 · 1분쯤 늦을 수 있음)`));
|
|
681
|
+
if (d.functions.length) console.log(c.dim(` 함수: ${d.functions.map((f) => "/api/" + f).join(" ")}`));
|
|
682
|
+
if (!d.entries.length) return console.log(c.dim(" 아직 기록이 없습니다. 오류가 나거나 console.log 를 쓰면 여기에 남습니다."));
|
|
683
|
+
for (const e of d.entries) {
|
|
684
|
+
const when = new Date(e.t);
|
|
685
|
+
const p2 = (x) => String(x).padStart(2, "0");
|
|
686
|
+
const t = isNaN(when) ? e.t : `${p2(when.getMonth() + 1)}-${p2(when.getDate())} ${p2(when.getHours())}:${p2(when.getMinutes())}:${p2(when.getSeconds())}`;
|
|
687
|
+
const st = e.status >= 500 ? c.red(String(e.status)) : String(e.status);
|
|
688
|
+
console.log(`${c.dim(t)} /api/${e.fn} ${st}${e.ms != null ? c.dim(` ${e.ms}ms`) : ""}${e.error ? " " + c.red(e.error) : ""}`);
|
|
689
|
+
for (const l of e.logs || []) console.log(` ${l}`);
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
|
|
673
693
|
// ---------- env (서버 함수 비밀값) ----------
|
|
674
694
|
async function env(args) {
|
|
675
695
|
const sub = args._[1] || "ls";
|
|
@@ -804,6 +824,7 @@ const HELP = `chiwaa ${VERSION} — chiwaa.kr 에 사이트를 바로 올립니
|
|
|
804
824
|
chiwaa domains add <도메인> 도메인 붙이기(x-y.net 도메인은 바로, 다른 곳 도메인은 넣을 DNS 레코드 안내)
|
|
805
825
|
chiwaa domains check 연결됐는지 확인 · domains remove -y 로 연결 끊기
|
|
806
826
|
chiwaa stats 방문자 통계(오늘·최근 7일, 많이 본 페이지, 들어온 곳) --days 30
|
|
827
|
+
chiwaa logs 서버 함수 기록(오류·console.log) --lines 100, --preview
|
|
807
828
|
chiwaa env 서버 함수 비밀값 목록 · env set 이름(값은 안 보이게 입력) · env rm 이름
|
|
808
829
|
chiwaa lock / unlock 사이트 비밀번호 잠금(아이디 chiwaa) / 풀기 — 공개 전 나만 보기
|
|
809
830
|
chiwaa open 관리 화면 열기 (--site 는 사이트 열기)
|
|
@@ -821,7 +842,7 @@ async function main() {
|
|
|
821
842
|
const cmd = args._[0];
|
|
822
843
|
if (args.version) return console.log(VERSION);
|
|
823
844
|
if (args.help || !cmd || cmd === "help") return console.log(HELP);
|
|
824
|
-
const cmds = { deploy, login, list, ls: list, versions, rollback, db, domains, domain: domains, stats, env, lock, unlock, open, usage, agent, whoami, logout };
|
|
845
|
+
const cmds = { deploy, login, list, ls: list, versions, rollback, db, domains, domain: domains, stats, env, logs, lock, unlock, open, usage, agent, whoami, logout };
|
|
825
846
|
if (!cmds[cmd]) fail(`모르는 명령입니다: ${cmd}\n\n${HELP}`);
|
|
826
847
|
await cmds[cmd](args);
|
|
827
848
|
}
|