@42ws/cli 0.1.13 → 0.1.15

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.
Files changed (132) hide show
  1. package/README.md +9 -225
  2. package/cli.js +39 -0
  3. package/package.json +5 -21
  4. package/bin/cli.js +0 -10
  5. package/dist/commands/chatlog.d.ts +0 -10
  6. package/dist/commands/chatlog.d.ts.map +0 -1
  7. package/dist/commands/chatlog.js +0 -103
  8. package/dist/commands/chatlog.js.map +0 -1
  9. package/dist/commands/collections.d.ts +0 -39
  10. package/dist/commands/collections.d.ts.map +0 -1
  11. package/dist/commands/collections.js +0 -1186
  12. package/dist/commands/collections.js.map +0 -1
  13. package/dist/commands/context.d.ts +0 -12
  14. package/dist/commands/context.d.ts.map +0 -1
  15. package/dist/commands/context.js +0 -271
  16. package/dist/commands/context.js.map +0 -1
  17. package/dist/commands/dev.d.ts +0 -13
  18. package/dist/commands/dev.d.ts.map +0 -1
  19. package/dist/commands/dev.js +0 -363
  20. package/dist/commands/dev.js.map +0 -1
  21. package/dist/commands/domains.d.ts +0 -10
  22. package/dist/commands/domains.d.ts.map +0 -1
  23. package/dist/commands/domains.js +0 -179
  24. package/dist/commands/domains.js.map +0 -1
  25. package/dist/commands/editlog.d.ts +0 -12
  26. package/dist/commands/editlog.d.ts.map +0 -1
  27. package/dist/commands/editlog.js +0 -188
  28. package/dist/commands/editlog.js.map +0 -1
  29. package/dist/commands/forms.d.ts +0 -23
  30. package/dist/commands/forms.d.ts.map +0 -1
  31. package/dist/commands/forms.js +0 -558
  32. package/dist/commands/forms.js.map +0 -1
  33. package/dist/commands/init.d.ts +0 -18
  34. package/dist/commands/init.d.ts.map +0 -1
  35. package/dist/commands/init.js +0 -197
  36. package/dist/commands/init.js.map +0 -1
  37. package/dist/commands/login.d.ts +0 -7
  38. package/dist/commands/login.d.ts.map +0 -1
  39. package/dist/commands/login.js +0 -110
  40. package/dist/commands/login.js.map +0 -1
  41. package/dist/commands/logout.d.ts +0 -2
  42. package/dist/commands/logout.d.ts.map +0 -1
  43. package/dist/commands/logout.js +0 -31
  44. package/dist/commands/logout.js.map +0 -1
  45. package/dist/commands/open.d.ts +0 -6
  46. package/dist/commands/open.d.ts.map +0 -1
  47. package/dist/commands/open.js +0 -54
  48. package/dist/commands/open.js.map +0 -1
  49. package/dist/commands/prompts.d.ts +0 -7
  50. package/dist/commands/prompts.d.ts.map +0 -1
  51. package/dist/commands/prompts.js +0 -55
  52. package/dist/commands/prompts.js.map +0 -1
  53. package/dist/commands/publish.d.ts +0 -19
  54. package/dist/commands/publish.d.ts.map +0 -1
  55. package/dist/commands/publish.js +0 -437
  56. package/dist/commands/publish.js.map +0 -1
  57. package/dist/commands/pull.d.ts +0 -7
  58. package/dist/commands/pull.d.ts.map +0 -1
  59. package/dist/commands/pull.js +0 -157
  60. package/dist/commands/pull.js.map +0 -1
  61. package/dist/commands/sites.d.ts +0 -13
  62. package/dist/commands/sites.d.ts.map +0 -1
  63. package/dist/commands/sites.js +0 -316
  64. package/dist/commands/sites.js.map +0 -1
  65. package/dist/commands/upgrade.d.ts +0 -2
  66. package/dist/commands/upgrade.d.ts.map +0 -1
  67. package/dist/commands/upgrade.js +0 -15
  68. package/dist/commands/upgrade.js.map +0 -1
  69. package/dist/commands/whoami.d.ts +0 -4
  70. package/dist/commands/whoami.d.ts.map +0 -1
  71. package/dist/commands/whoami.js +0 -98
  72. package/dist/commands/whoami.js.map +0 -1
  73. package/dist/index.d.ts +0 -2
  74. package/dist/index.d.ts.map +0 -1
  75. package/dist/index.js +0 -428
  76. package/dist/index.js.map +0 -1
  77. package/dist/lib/api.d.ts +0 -12
  78. package/dist/lib/api.d.ts.map +0 -1
  79. package/dist/lib/api.js +0 -121
  80. package/dist/lib/api.js.map +0 -1
  81. package/dist/lib/config.d.ts +0 -27
  82. package/dist/lib/config.d.ts.map +0 -1
  83. package/dist/lib/config.js +0 -65
  84. package/dist/lib/config.js.map +0 -1
  85. package/dist/lib/detect.d.ts +0 -9
  86. package/dist/lib/detect.d.ts.map +0 -1
  87. package/dist/lib/detect.js +0 -112
  88. package/dist/lib/detect.js.map +0 -1
  89. package/dist/lib/files.d.ts +0 -16
  90. package/dist/lib/files.d.ts.map +0 -1
  91. package/dist/lib/files.js +0 -200
  92. package/dist/lib/files.js.map +0 -1
  93. package/dist/lib/html.d.ts +0 -8
  94. package/dist/lib/html.d.ts.map +0 -1
  95. package/dist/lib/html.js +0 -63
  96. package/dist/lib/html.js.map +0 -1
  97. package/dist/lib/i18n.d.ts +0 -6
  98. package/dist/lib/i18n.d.ts.map +0 -1
  99. package/dist/lib/i18n.js +0 -256
  100. package/dist/lib/i18n.js.map +0 -1
  101. package/dist/lib/import-prompts.d.ts +0 -46
  102. package/dist/lib/import-prompts.d.ts.map +0 -1
  103. package/dist/lib/import-prompts.js +0 -279
  104. package/dist/lib/import-prompts.js.map +0 -1
  105. package/dist/lib/inspector-client.d.ts +0 -3
  106. package/dist/lib/inspector-client.d.ts.map +0 -1
  107. package/dist/lib/inspector-client.js +0 -253
  108. package/dist/lib/inspector-client.js.map +0 -1
  109. package/dist/lib/output.d.ts +0 -11
  110. package/dist/lib/output.d.ts.map +0 -1
  111. package/dist/lib/output.js +0 -49
  112. package/dist/lib/output.js.map +0 -1
  113. package/dist/lib/project.d.ts +0 -25
  114. package/dist/lib/project.d.ts.map +0 -1
  115. package/dist/lib/project.js +0 -62
  116. package/dist/lib/project.js.map +0 -1
  117. package/dist/lib/suggest.d.ts +0 -12
  118. package/dist/lib/suggest.d.ts.map +0 -1
  119. package/dist/lib/suggest.js +0 -36
  120. package/dist/lib/suggest.js.map +0 -1
  121. package/dist/lib/update-check.d.ts +0 -22
  122. package/dist/lib/update-check.d.ts.map +0 -1
  123. package/dist/lib/update-check.js +0 -182
  124. package/dist/lib/update-check.js.map +0 -1
  125. package/dist/run.d.ts +0 -2
  126. package/dist/run.d.ts.map +0 -1
  127. package/dist/run.js +0 -17
  128. package/dist/run.js.map +0 -1
  129. package/dist/version.d.ts +0 -2
  130. package/dist/version.d.ts.map +0 -1
  131. package/dist/version.js +0 -3
  132. package/dist/version.js.map +0 -1
@@ -1,363 +0,0 @@
1
- import { createServer } from 'node:http';
2
- import { existsSync, statSync, readFileSync, createReadStream, appendFileSync, mkdirSync, renameSync, } from 'node:fs';
3
- import { join, resolve, basename, extname, sep } from 'node:path';
4
- import { info, successMessage, error, warn, isJsonMode, success } from '../lib/output.js';
5
- import { INSPECTOR_CLIENT_JS, INSPECTOR_ENDPOINT } from '../lib/inspector-client.js';
6
- import { DELIVERY_PLATFORMS } from '@42ws/shared';
7
- const DEV_HELP = `
8
- 42ws dev — ローカル検証サーバー (AI 向けページ診断付き)
9
-
10
- Usage:
11
- 42ws dev [options] Start a local server that serves your site and
12
- injects the inspector (default port 4242)
13
- 42ws dev errors [site] Print recent client errors collected by the server
14
-
15
- Options:
16
- --site <name> Site name (used for the log filename). Defaults to 42ws.json or dir name.
17
- --dir <path> Directory to serve. Defaults to 42ws.json "output" or current dir.
18
- --port <n> Port to listen on (default 4242)
19
- --spa Fall back to index.html for unknown routes
20
- --lines <n> (errors) Number of recent log lines to print (default 100)
21
-
22
- Notes:
23
- - HTML レスポンスの </body> 直前に inspector を inject します。
24
- - ブラウザで開き「検証する」を押して問題の要素をクリックすると、診断パックが
25
- クリップボードにコピーされます。AI にそのまま貼り付けてください。
26
- - クライアントの JS / HTTP エラーは .42ws/dev-<site>.log に集約されます。
27
- - /__42ws_inspector/thumbnail を開くとヒーロー/FV を 1:1・4:5・16:9 で確認できます。
28
- `.trim();
29
- const LOG_DIR = '.42ws';
30
- const MAX_LOG_BYTES = 5 * 1024 * 1024;
31
- const INSPECTOR_SCRIPT_TAG = `<script src="${INSPECTOR_ENDPOINT}/inspector.js" data-42ws-inspector></script>`;
32
- const THUMBNAIL_PATH = INSPECTOR_ENDPOINT + '/thumbnail';
33
- // 配信面プレビュー — ヒーロー/FV を SNS サムネイル比率で確認するページ。
34
- // iframe に同一オリジンのトップページを読み込み、CSS scale でアスペクト比ごとにクリップする。
35
- // var R は DELIVERY_PLATFORMS から生成して注入する(埋め込み JS 内ではバッククォート・${} 不使用)。
36
- const THUMBNAIL_HTML = `<!doctype html>
37
- <html lang="ja">
38
- <head>
39
- <meta charset="utf-8">
40
- <title>配信面プレビュー — 42ws dev</title>
41
- <style>
42
- *{box-sizing:border-box}
43
- body{margin:0;padding:24px 28px;background:#0f0f0f;color:#ddd;font:13px/1.6 ui-monospace,monospace}
44
- h1{margin:0 0 4px;font-size:14px;color:#eee}
45
- .sub{margin:0 0 24px;font-size:11px;color:#555}
46
- .grid{display:grid;grid-template-columns:repeat(3,300px);gap:20px}
47
- .rname{font-size:12px;font-weight:bold;color:#bbb;margin-bottom:2px}
48
- .rlabel{font-size:10px;color:#555;margin-bottom:8px}
49
- .wrap{overflow:hidden;border:1px solid #1f1f1f;border-radius:1px;background:#000}
50
- iframe{border:none;display:block;transform-origin:top left;pointer-events:none}
51
- footer{margin-top:20px;font-size:10px;color:#3a3a3a}
52
- </style>
53
- </head>
54
- <body>
55
- <h1>配信面プレビュー</h1>
56
- <p class="sub">ヒーロー / FV が SNS サムネイル比率(9:16 / 1:1 / 4:5 / 16:9)でどう見えるか確認 — 公開前チェック用</p>
57
- <div class="grid" id="g"></div>
58
- <footer>アルゴリズムはサムネイルを本文より先に評価します。配信面で潰れないか公開前に確認してください。</footer>
59
- <script>
60
- var R=${JSON.stringify(DELIVERY_PLATFORMS.map(p => ({ n: p.ratio, l: p.label, w: p.w, h: p.h })))};
61
- var PW=1200,TW=300,g=document.getElementById("g");
62
- for(var i=0;i<R.length;i++){
63
- var r=R[i];
64
- var dh=Math.round(TW*r.h/r.w);
65
- var sc=TW/PW;
66
- var ifh=Math.ceil(dh/sc);
67
- var el=document.createElement("div");
68
- el.innerHTML='<div class="rname">'+r.n+'</div>'
69
- +'<div class="rlabel">'+r.l+'</div>'
70
- +'<div class="wrap" style="width:'+TW+'px;height:'+dh+'px">'
71
- +'<iframe src="/" width="'+PW+'" height="'+ifh+'"'
72
- +' style="transform:scale('+sc+');width:'+PW+'px;height:'+ifh+'px"'
73
- +' scrolling="no"></iframe></div>';
74
- g.appendChild(el);
75
- }
76
- </script>
77
- </body>
78
- </html>`;
79
- const CONTENT_TYPE = {
80
- '.html': 'text/html; charset=utf-8',
81
- '.css': 'text/css; charset=utf-8',
82
- '.js': 'application/javascript; charset=utf-8',
83
- '.mjs': 'application/javascript; charset=utf-8',
84
- '.json': 'application/json; charset=utf-8',
85
- '.png': 'image/png',
86
- '.jpg': 'image/jpeg',
87
- '.jpeg': 'image/jpeg',
88
- '.webp': 'image/webp',
89
- '.gif': 'image/gif',
90
- '.svg': 'image/svg+xml',
91
- '.ico': 'image/x-icon',
92
- '.woff': 'font/woff',
93
- '.woff2': 'font/woff2',
94
- '.txt': 'text/plain; charset=utf-8',
95
- '.xml': 'application/xml',
96
- '.pdf': 'application/pdf',
97
- '.mp4': 'video/mp4',
98
- '.mp3': 'audio/mpeg',
99
- };
100
- function loadProjectConfig(cwd) {
101
- const configPath = join(cwd, '42ws.json');
102
- if (!existsSync(configPath))
103
- return {};
104
- try {
105
- return JSON.parse(readFileSync(configPath, 'utf-8'));
106
- }
107
- catch {
108
- return {};
109
- }
110
- }
111
- function slugify(name) {
112
- return name.toLowerCase().replace(/[^a-z0-9-]+/g, '-').replace(/^-+|-+$/g, '');
113
- }
114
- function resolveSite(cwd, args, config) {
115
- return args.site ?? config.site ?? slugify(basename(cwd)) ?? 'site';
116
- }
117
- function logPath(cwd, site) {
118
- return join(cwd, LOG_DIR, `dev-${site}.log`);
119
- }
120
- function contentType(filePath) {
121
- return CONTENT_TYPE[extname(filePath).toLowerCase()] ?? 'application/octet-stream';
122
- }
123
- function injectInspector(html) {
124
- const idx = html.toLowerCase().lastIndexOf('</body>');
125
- if (idx === -1)
126
- return html + INSPECTOR_SCRIPT_TAG;
127
- return html.slice(0, idx) + INSPECTOR_SCRIPT_TAG + html.slice(idx);
128
- }
129
- // ---------------------------------------------------------------------------
130
- // logging
131
- // ---------------------------------------------------------------------------
132
- function appendLog(file, entry) {
133
- try {
134
- mkdirSync(join(file, '..'), { recursive: true });
135
- if (existsSync(file) && statSync(file).size > MAX_LOG_BYTES) {
136
- renameSync(file, file + '.bak');
137
- }
138
- appendFileSync(file, JSON.stringify({ ts: new Date().toISOString(), ...entry }) + '\n');
139
- }
140
- catch {
141
- /* logging must never crash the server */
142
- }
143
- }
144
- function readBody(req, max = 64 * 1024) {
145
- return new Promise(resolve => {
146
- let data = '';
147
- let aborted = false;
148
- req.on('data', chunk => {
149
- if (aborted)
150
- return;
151
- data += chunk;
152
- if (data.length > max) {
153
- aborted = true;
154
- data = data.slice(0, max);
155
- }
156
- });
157
- req.on('end', () => resolve(data));
158
- req.on('error', () => resolve(data));
159
- });
160
- }
161
- // ---------------------------------------------------------------------------
162
- // static serving
163
- // ---------------------------------------------------------------------------
164
- function resolveFile(root, urlPath) {
165
- let rel;
166
- try {
167
- rel = decodeURIComponent(urlPath.split('?')[0]);
168
- }
169
- catch {
170
- return null;
171
- }
172
- if (rel.endsWith('/'))
173
- rel += 'index.html';
174
- const abs = resolve(root, '.' + rel);
175
- // path traversal guard: must stay within root
176
- if (abs !== root && !abs.startsWith(root + sep))
177
- return null;
178
- if (existsSync(abs) && statSync(abs).isDirectory()) {
179
- const indexFile = join(abs, 'index.html');
180
- return existsSync(indexFile) ? indexFile : null;
181
- }
182
- return existsSync(abs) ? abs : null;
183
- }
184
- function handleStatic(req, res, root, spa) {
185
- const urlPath = (req.url ?? '/') === '/' ? '/index.html' : (req.url ?? '/');
186
- let file = resolveFile(root, urlPath);
187
- if (!file && spa) {
188
- const accept = req.headers['accept'] ?? '';
189
- if (extname(urlPath.split('?')[0]) === '' && accept.includes('text/html')) {
190
- const fallback = join(root, 'index.html');
191
- if (existsSync(fallback))
192
- file = fallback;
193
- }
194
- }
195
- // 検証時の誤判定を防ぐため、すべてのレスポンスでキャッシュ系ヘッダを厳しく無効化する
196
- // (no-store だけだと bfcache や中間プロキシで効かないケースがあるため Pragma / Expires も)
197
- const noCacheHeaders = {
198
- 'cache-control': 'no-store, no-cache, must-revalidate, max-age=0',
199
- pragma: 'no-cache',
200
- expires: '0',
201
- };
202
- if (!file) {
203
- const safePath = urlPath.replace(/&/g, '&amp;').replace(/</g, '&lt;');
204
- res.writeHead(404, { 'content-type': 'text/html; charset=utf-8', ...noCacheHeaders });
205
- res.end('<!doctype html><meta charset="utf-8"><title>404</title>' +
206
- '<body style="font:14px ui-monospace,monospace;padding:40px;color:#333">' +
207
- '404 Not Found: ' + safePath +
208
- INSPECTOR_SCRIPT_TAG + '</body>');
209
- return;
210
- }
211
- const type = contentType(file);
212
- if (type.startsWith('text/html')) {
213
- const html = injectInspector(readFileSync(file, 'utf-8'));
214
- res.writeHead(200, { 'content-type': type, ...noCacheHeaders });
215
- res.end(html);
216
- return;
217
- }
218
- res.writeHead(200, { 'content-type': type, ...noCacheHeaders });
219
- createReadStream(file).pipe(res);
220
- }
221
- // ---------------------------------------------------------------------------
222
- // commands
223
- // ---------------------------------------------------------------------------
224
- function showErrors(cwd, args) {
225
- const config = loadProjectConfig(cwd);
226
- const site = args.positional[0] ?? resolveSite(cwd, args, config);
227
- const file = logPath(cwd, site);
228
- if (!existsSync(file)) {
229
- if (isJsonMode()) {
230
- success({ site, file, entries: [] });
231
- }
232
- else {
233
- info(`No error log yet for "${site}" (${file}).`);
234
- info('Run `42ws dev --site ' + site + '` and reproduce the issue first.');
235
- }
236
- return;
237
- }
238
- const limit = args.lines ? Math.max(1, parseInt(args.lines, 10) || 100) : 100;
239
- const lines = readFileSync(file, 'utf-8').split('\n').filter(Boolean);
240
- const recent = lines.slice(-limit);
241
- if (isJsonMode()) {
242
- const entries = recent.map(l => {
243
- try {
244
- return JSON.parse(l);
245
- }
246
- catch {
247
- return { raw: l };
248
- }
249
- });
250
- success({ site, file, entries });
251
- return;
252
- }
253
- successMessage(`# ${site} — 直近 ${recent.length} 件のクライアントエラー (${file})`);
254
- for (const line of recent) {
255
- try {
256
- const e = JSON.parse(line);
257
- successMessage(`${e.ts ?? ''} [${e.type ?? '?'}] ${e.message ?? ''}`);
258
- }
259
- catch {
260
- successMessage(line);
261
- }
262
- }
263
- }
264
- function startServer(cwd, args) {
265
- const config = loadProjectConfig(cwd);
266
- const site = resolveSite(cwd, args, config);
267
- const dirRaw = args.dir ?? config.output ?? '.';
268
- const root = resolve(cwd, dirRaw);
269
- const spa = args.spa ?? config.spa ?? false;
270
- const port = args.port ? parseInt(args.port, 10) : 4242;
271
- const file = logPath(cwd, site);
272
- if (!existsSync(root)) {
273
- error('DIR_NOT_FOUND', `Directory to serve not found: ${root}`, 'Specify --dir <path>, or set "output" in 42ws.json.');
274
- process.exit(1);
275
- return;
276
- }
277
- const server = createServer(async (req, res) => {
278
- const url = req.url ?? '/';
279
- if (url.startsWith(INSPECTOR_ENDPOINT + '/log') && req.method === 'POST') {
280
- const body = await readBody(req);
281
- try {
282
- const parsed = JSON.parse(body);
283
- appendLog(file, parsed);
284
- }
285
- catch {
286
- appendLog(file, { type: 'Raw', message: body.slice(0, 1000) });
287
- }
288
- res.writeHead(204);
289
- res.end();
290
- return;
291
- }
292
- if (url.startsWith(INSPECTOR_ENDPOINT + '/inspector.js')) {
293
- res.writeHead(200, { 'content-type': 'application/javascript; charset=utf-8', 'cache-control': 'no-store' });
294
- res.end(INSPECTOR_CLIENT_JS);
295
- return;
296
- }
297
- if (url === THUMBNAIL_PATH) {
298
- res.writeHead(200, { 'content-type': 'text/html; charset=utf-8', 'cache-control': 'no-store' });
299
- res.end(THUMBNAIL_HTML);
300
- return;
301
- }
302
- try {
303
- handleStatic(req, res, root, spa);
304
- }
305
- catch (e) {
306
- res.writeHead(500, { 'content-type': 'text/plain; charset=utf-8' });
307
- res.end('500 Internal Server Error: ' + (e instanceof Error ? e.message : String(e)));
308
- }
309
- });
310
- server.on('error', (e) => {
311
- if (e.code === 'EADDRINUSE') {
312
- error('PORT_IN_USE', `Port ${port} is already in use.`, 'Try a different port with --port <n>.');
313
- }
314
- else {
315
- error('SERVER_ERROR', e.message);
316
- }
317
- process.exit(1);
318
- });
319
- server.listen(port, () => {
320
- const localUrl = `http://localhost:${port}`;
321
- if (isJsonMode()) {
322
- success({ site, dir: root, port, url: localUrl, log: file });
323
- return;
324
- }
325
- info('');
326
- info(` 42ws dev — ${site}`);
327
- info(` serving ${root}`);
328
- info(` local ${localUrl}`);
329
- info(` thumbnail ${localUrl}${THUMBNAIL_PATH}`);
330
- info(` errors ${file}`);
331
- if (spa)
332
- info(' spa on (index.html fallback)');
333
- info('');
334
- info(' ブラウザで開き「検証する」ボタンから要素をクリックすると診断パックをコピーします。');
335
- info(' thumbnail URL でヒーロー/FV を 9:16・1:1・4:5・16:9 で確認できます。');
336
- info(' 停止するには Ctrl+C。');
337
- info('');
338
- });
339
- const shutdown = () => {
340
- server.close(() => process.exit(0));
341
- setTimeout(() => process.exit(0), 500);
342
- };
343
- process.on('SIGINT', shutdown);
344
- process.on('SIGTERM', shutdown);
345
- }
346
- export async function dev(args) {
347
- if (args.help) {
348
- successMessage(DEV_HELP);
349
- return;
350
- }
351
- const cwd = process.cwd();
352
- if (args.subcommand === 'errors') {
353
- showErrors(cwd, args);
354
- return;
355
- }
356
- if (args.subcommand && args.subcommand !== 'errors') {
357
- warn(`Unknown subcommand: ${args.subcommand}`);
358
- successMessage(DEV_HELP);
359
- return;
360
- }
361
- startServer(cwd, args);
362
- }
363
- //# sourceMappingURL=dev.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- export interface DomainsOpts {
2
- subcommand?: string;
3
- positional: string[];
4
- site?: string;
5
- cname?: boolean;
6
- json?: boolean;
7
- help?: boolean;
8
- }
9
- export declare function domains(opts: DomainsOpts): Promise<void>;
10
- //# sourceMappingURL=domains.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/commands/domains.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAiED,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuE9D"}
@@ -1,179 +0,0 @@
1
- import { loadConfig } from '../lib/config.js';
2
- import { apiRequest, ApiError } from '../lib/api.js';
3
- import { info, successMessage, error, isJsonMode } from '../lib/output.js';
4
- const HELP = `
5
- 42ws domains — サイトに独自ドメインを繋ぐ(Personal プラン以上)
6
-
7
- 2 つの方式があります:
8
- おまかせ DNS(既定・推奨): ネームサーバーを 42ws に向けるだけ。apex(example.com)も
9
- 証明書も配信レコードも 42ws が全自動。新規/サイト専用ドメイン向け。
10
- 手動 CNAME(--cname) : NS は動かさず、検証 CNAME と最終 CNAME を自分で追加。
11
- 既にメール等で運用中のドメイン向け(apex は ALIAS 対応 DNS が必要)。
12
-
13
- Usage:
14
- 42ws domains add <domain> --site <site> おまかせ DNS で登録(NS を表示)
15
- 42ws domains add <domain> --site <site> --cname 手動 CNAME で登録(検証 CNAME を表示)
16
- 42ws domains verify <domain> --site <site> 状況確認 / 次の手順を表示
17
- 42ws domains list --site <site> 登録済みドメイン一覧
18
- 42ws domains rm <domain> --site <site> ドメインを無効化
19
-
20
- おまかせ DNS の流れ:
21
- 1. add → 表示された NS 4 本を、ドメインのレジストラ(お名前.com 等)に設定
22
- 2. 数分後 verify → 委任を検知すると証明書発行〜配信まで自動。apex も繋がる
23
- ※ NS を 42ws に向けると、そのドメインの DNS 全体を 42ws が管理します。
24
- 既にメール(MX)等を使っているドメインでは --cname を使ってください。
25
-
26
- Options:
27
- --site <site> 対象サイト名(必須)
28
- --cname 手動 CNAME 方式を使う(既定はおまかせ DNS)
29
- --json JSON で出力
30
- `.trim();
31
- // 2 ラベル以下は apex とみなす(example.com / 5en.club 等)。
32
- function looksLikeApex(domain) {
33
- return domain.split('.').filter(Boolean).length <= 2;
34
- }
35
- function printStatus(res) {
36
- switch (res.status) {
37
- case 'active':
38
- successMessage(`✓ ${res.domain} は有効です`);
39
- if (res.mode === 'managed') {
40
- info('DNS レコードは 42ws が自動設定済みです。数分の伝播後に公開されます。');
41
- }
42
- else if (res.distributionDomain) {
43
- info('');
44
- if (looksLikeApex(res.domain)) {
45
- info('最終レコードを DNS に設定してください(apex は CNAME 不可):');
46
- info(` Route53 : A / Alias=Yes → ${res.distributionDomain}`);
47
- info(` Cloudflare : CNAME(フラット化) ${res.domain} → ${res.distributionDomain}`);
48
- info(` ALIAS 非対応(お名前.com 等): apex は不可。www サブドメインを使ってください`);
49
- }
50
- else {
51
- info('最終 CNAME を DNS に設定してください:');
52
- info(` ${res.domain} CNAME ${res.distributionDomain}`);
53
- }
54
- }
55
- return;
56
- case 'pending_delegation':
57
- info(`${res.domain}: ネームサーバーを 42ws に向けてください。`);
58
- info('レジストラ(お名前.com 等)でこのドメインの NS を次の 4 つに設定:');
59
- info('');
60
- for (const ns of res.nameservers ?? [])
61
- info(` ${ns}`);
62
- info('');
63
- info('⚠ NS を変更すると、このドメインの DNS 全体を 42ws が管理します。');
64
- info(' 既にメール等を使っているドメインなら --cname 方式を使ってください。');
65
- info('');
66
- info(`設定後、数分待ってから: 42ws domains verify ${res.domain} --site <site>`);
67
- return;
68
- case 'issuing':
69
- info(`${res.domain}: 委任を確認しました。証明書を発行中です(数分)。`);
70
- info(`もう少し待ってから再度: 42ws domains verify ${res.domain} --site <site>`);
71
- return;
72
- case 'pending_validation':
73
- info(`${res.domain}: 証明書の検証待ちです。以下の CNAME を DNS に追加してください:`);
74
- info('');
75
- for (const r of res.validationRecords ?? [])
76
- info(` ${r.name} CNAME ${r.value}`);
77
- if (!res.validationRecords || res.validationRecords.length === 0) {
78
- info(' (検証レコードを取得中。数十秒後に verify を再実行してください)');
79
- }
80
- info('');
81
- info(`設定後、数分待ってから: 42ws domains verify ${res.domain} --site <site>`);
82
- return;
83
- case 'failed':
84
- error('DOMAIN_VALIDATION_FAILED', `${res.domain} の証明書検証に失敗しました`, '設定を確認し add からやり直してください。');
85
- process.exit(1);
86
- return;
87
- default:
88
- info(`${res.domain}: status=${res.status}`);
89
- }
90
- }
91
- export async function domains(opts) {
92
- if (opts.help || opts.positional.includes('--help') || !opts.subcommand) {
93
- process.stdout.write(HELP + '\n');
94
- return;
95
- }
96
- const cfg = loadConfig();
97
- if (!cfg.token || !cfg.apiUrl) {
98
- error('NOT_LOGGED_IN', 'ログインしてください: 42ws login --token <api-token>');
99
- process.exit(1);
100
- }
101
- const sub = opts.subcommand;
102
- try {
103
- if (sub === 'list') {
104
- const site = opts.site ?? opts.positional[0];
105
- if (!site) {
106
- error('INVALID_ARGS', 'Usage: 42ws domains list --site <site>');
107
- process.exit(1);
108
- }
109
- const res = await apiRequest(cfg, 'GET', `/v1/sites/${encodeURIComponent(site)}/domains`);
110
- if (isJsonMode()) {
111
- process.stdout.write(JSON.stringify(res, null, 2) + '\n');
112
- return;
113
- }
114
- if (res.domains.length === 0) {
115
- info('登録済みの独自ドメインはありません');
116
- info(`例: 42ws domains add example.com --site ${site}`);
117
- return;
118
- }
119
- for (const d of res.domains) {
120
- process.stdout.write(`${d.domain.padEnd(28)} ${(d.mode ?? '').padEnd(8)} ${d.status.padEnd(18)} ${d.distributionDomain ?? ''}\n`);
121
- }
122
- return;
123
- }
124
- const domain = opts.positional[0];
125
- const site = opts.site;
126
- if (!domain) {
127
- error('INVALID_ARGS', `Usage: 42ws domains ${sub} <domain> --site <site>`);
128
- process.exit(1);
129
- }
130
- if (!site) {
131
- error('INVALID_ARGS', '--site <site> が必要です');
132
- process.exit(1);
133
- }
134
- if (sub === 'add') {
135
- const mode = opts.cname ? 'cname' : 'managed';
136
- if (mode === 'cname' && looksLikeApex(domain)) {
137
- info(`ヒント: ${domain} は apex です。--cname では ALIAS 対応 DNS(Route53/Cloudflare)以外で繋げません。`);
138
- info(`お名前.com など標準 DNS なら www.${domain} を使うか、おまかせ DNS(--cname なし)を検討してください。`);
139
- info('');
140
- }
141
- const res = await apiRequest(cfg, 'POST', `/v1/sites/${encodeURIComponent(site)}/domains`, { domain, mode });
142
- if (isJsonMode()) {
143
- process.stdout.write(JSON.stringify(res, null, 2) + '\n');
144
- return;
145
- }
146
- printStatus(res);
147
- return;
148
- }
149
- if (sub === 'verify' || sub === 'status') {
150
- const res = await apiRequest(cfg, 'GET', `/v1/sites/${encodeURIComponent(site)}/domains/${encodeURIComponent(domain)}`);
151
- if (isJsonMode()) {
152
- process.stdout.write(JSON.stringify(res, null, 2) + '\n');
153
- return;
154
- }
155
- printStatus(res);
156
- return;
157
- }
158
- if (sub === 'rm' || sub === 'delete' || sub === 'remove') {
159
- const res = await apiRequest(cfg, 'DELETE', `/v1/sites/${encodeURIComponent(site)}/domains/${encodeURIComponent(domain)}`);
160
- if (isJsonMode()) {
161
- process.stdout.write(JSON.stringify(res, null, 2) + '\n');
162
- return;
163
- }
164
- successMessage(`無効化しました: ${domain}`);
165
- return;
166
- }
167
- error('UNKNOWN_SUBCOMMAND', `Unknown subcommand: ${sub}`);
168
- process.stdout.write(HELP + '\n');
169
- process.exit(1);
170
- }
171
- catch (err) {
172
- if (err instanceof ApiError)
173
- error(err.code, err.message, err.suggestedFix);
174
- else
175
- error('UNKNOWN', err instanceof Error ? err.message : String(err));
176
- process.exit(1);
177
- }
178
- }
179
- //# sourceMappingURL=domains.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/commands/domains.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export interface EditLogOpts {
2
- subcommand?: string;
3
- positional: string[];
4
- json?: boolean;
5
- page?: string;
6
- all?: boolean;
7
- out?: string;
8
- apply?: boolean;
9
- help?: boolean;
10
- }
11
- export declare function editlog(opts: EditLogOpts): Promise<void>;
12
- //# sourceMappingURL=editlog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"editlog.d.ts","sourceRoot":"","sources":["../../src/commands/editlog.ts"],"names":[],"mappings":"AAqEA,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmI9D"}