@42ws/cli 0.0.12 → 0.0.13
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/dist/commands/forms.d.ts +15 -0
- package/dist/commands/forms.d.ts.map +1 -0
- package/dist/commands/forms.js +200 -0
- package/dist/commands/forms.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface FormsArgs {
|
|
2
|
+
subcommand?: string;
|
|
3
|
+
positional: string[];
|
|
4
|
+
json?: boolean;
|
|
5
|
+
site?: string;
|
|
6
|
+
page?: string;
|
|
7
|
+
url?: string;
|
|
8
|
+
file?: string;
|
|
9
|
+
notify?: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
inject?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function forms(args: FormsArgs): Promise<void>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=forms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/commands/forms.ts"],"names":[],"mappings":"AA6BA,UAAU,SAAS;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA6CD,wBAAsB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1D"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { createInterface } from 'node:readline';
|
|
4
|
+
import { loadConfig } from '../lib/config.js';
|
|
5
|
+
import { apiRequest, ApiError } from '../lib/api.js';
|
|
6
|
+
import { info, success, successMessage, error, warn, isJsonMode } from '../lib/output.js';
|
|
7
|
+
import { t } from '../lib/i18n.js';
|
|
8
|
+
const FORMS_HELP = `
|
|
9
|
+
42ws forms — Manage forms
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
42ws forms list List your forms
|
|
13
|
+
42ws forms import [options] Extract a form from a source and create it
|
|
14
|
+
|
|
15
|
+
Import sources (one required):
|
|
16
|
+
--site <name> --page <html> Import from a 42ws-hosted site page
|
|
17
|
+
--url <url> Import from any URL
|
|
18
|
+
--file <path> Import from a local HTML file
|
|
19
|
+
|
|
20
|
+
Import options:
|
|
21
|
+
--notify <email> Notification email (required)
|
|
22
|
+
--name <name> Form name (default: AI-extracted)
|
|
23
|
+
--inject Rewrite source HTML to use the embed snippet
|
|
24
|
+
(--site mode: re-publishes the page)
|
|
25
|
+
(--file mode: overwrites the local file)
|
|
26
|
+
--json Output result as JSON
|
|
27
|
+
`.trim();
|
|
28
|
+
function prompt(q) {
|
|
29
|
+
return new Promise((res) => {
|
|
30
|
+
const rl = createInterface({ input: process.stdin, output: process.stderr });
|
|
31
|
+
rl.question(q, (a) => { rl.close(); res(a.trim()); });
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export async function forms(args) {
|
|
35
|
+
const sub = args.subcommand;
|
|
36
|
+
if (!sub || sub === '--help' || sub === 'help') {
|
|
37
|
+
process.stdout.write(FORMS_HELP + '\n');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (sub === 'list')
|
|
41
|
+
return formsList();
|
|
42
|
+
if (sub === 'import')
|
|
43
|
+
return formsImport(args);
|
|
44
|
+
process.stderr.write(`Unknown forms subcommand: ${sub}\n\n${FORMS_HELP}\n`);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
async function formsList() {
|
|
48
|
+
const config = loadConfig();
|
|
49
|
+
if (!config.token) {
|
|
50
|
+
error('NOT_LOGGED_IN', t('notLoggedIn'), t('notLoggedIn.fix'));
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
// フォーム一覧はサイトと違って CLI 専用エンドポイントが無いので、サイト経由で一括取得は出来ない。
|
|
54
|
+
// ここでは省略 (将来的に GET /v1/forms を追加すれば対応可能)
|
|
55
|
+
warn('forms list は現在未対応です。https://dev.42ws.com で確認してください。');
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
async function formsImport(args) {
|
|
59
|
+
const config = loadConfig();
|
|
60
|
+
if (!config.token) {
|
|
61
|
+
error('NOT_LOGGED_IN', t('notLoggedIn'), t('notLoggedIn.fix'));
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
// ソース指定の検証 (1つ必須)
|
|
65
|
+
const sourceCount = [args.site, args.url, args.file].filter(Boolean).length;
|
|
66
|
+
if (sourceCount === 0) {
|
|
67
|
+
error('SOURCE_REQUIRED', '取り込みソースを指定してください。', '--site <name> --page <html> / --url <url> / --file <path> のいずれか1つを指定。');
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
if (sourceCount > 1) {
|
|
71
|
+
error('MULTIPLE_SOURCES', '--site / --url / --file は同時に指定できません。', 'いずれか1つを選んでください。');
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
if (!args.notify) {
|
|
75
|
+
error('NOTIFY_REQUIRED', '--notify <email> を指定してください。', 'フォーム送信時の通知先メールアドレスです。');
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
// ソース取得
|
|
79
|
+
let importPayload;
|
|
80
|
+
let linkedSite;
|
|
81
|
+
let linkedPage;
|
|
82
|
+
let originalHtml;
|
|
83
|
+
if (args.site) {
|
|
84
|
+
if (!args.page) {
|
|
85
|
+
error('PAGE_REQUIRED', '--site と一緒に --page <html> を指定してください。', '例: --site mysite --page contact.html');
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
const src = await apiRequest(config, 'GET', `/sites/${args.site}/source?page=${encodeURIComponent(args.page)}`);
|
|
89
|
+
importPayload = { html: src.html, baseUrl: `https://${args.site}.dev.42ws.com/${args.page}` };
|
|
90
|
+
linkedSite = args.site;
|
|
91
|
+
linkedPage = args.page;
|
|
92
|
+
originalHtml = src.html;
|
|
93
|
+
}
|
|
94
|
+
else if (args.url) {
|
|
95
|
+
importPayload = { url: args.url };
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
const filePath = resolve(process.cwd(), args.file);
|
|
99
|
+
if (!existsSync(filePath)) {
|
|
100
|
+
error('FILE_NOT_FOUND', `ファイルが見つかりません: ${filePath}`, '');
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
originalHtml = readFileSync(filePath, 'utf-8');
|
|
104
|
+
importPayload = { html: originalHtml };
|
|
105
|
+
}
|
|
106
|
+
info('AI 解析中...');
|
|
107
|
+
let extracted;
|
|
108
|
+
try {
|
|
109
|
+
extracted = await apiRequest(config, 'POST', '/v1/forms/import', importPayload);
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
if (e instanceof ApiError)
|
|
113
|
+
error(e.code, e.message, e.suggestedFix);
|
|
114
|
+
else
|
|
115
|
+
error('IMPORT_FAILED', String(e), t('tryAgain'));
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
if (extracted.status === 'failed') {
|
|
119
|
+
error('EXTRACT_FAILED', extracted.reason || '抽出に失敗しました', extracted.suggestion);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
const fields = extracted.fields ?? [];
|
|
123
|
+
const formName = args.name || extracted.name || 'インポートしたフォーム';
|
|
124
|
+
info(`抽出結果: ${formName} (${fields.length} フィールド)`);
|
|
125
|
+
for (const f of fields) {
|
|
126
|
+
const mark = f.confidence === 'low' ? '⚠ ' : ' ';
|
|
127
|
+
info(` ${mark}${f.label}${f.required ? ' *' : ''} [${f.type}]`);
|
|
128
|
+
}
|
|
129
|
+
if (extracted.warnings && extracted.warnings.length > 0) {
|
|
130
|
+
warn('AI からの注意点:');
|
|
131
|
+
for (const w of extracted.warnings)
|
|
132
|
+
warn(` - ${w}`);
|
|
133
|
+
}
|
|
134
|
+
// フォーム作成
|
|
135
|
+
info('フォームを作成中...');
|
|
136
|
+
let created;
|
|
137
|
+
try {
|
|
138
|
+
created = await apiRequest(config, 'POST', '/v1/forms', {
|
|
139
|
+
name: formName,
|
|
140
|
+
notifyEmail: args.notify,
|
|
141
|
+
fields,
|
|
142
|
+
thanksEnabled: true,
|
|
143
|
+
themeColor: extracted.themeColor,
|
|
144
|
+
css: extracted.css,
|
|
145
|
+
...(linkedSite ? { linkedSite, linkedPage } : {}),
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
catch (e) {
|
|
149
|
+
if (e instanceof ApiError)
|
|
150
|
+
error(e.code, e.message, e.suggestedFix);
|
|
151
|
+
else
|
|
152
|
+
error('CREATE_FAILED', String(e), t('tryAgain'));
|
|
153
|
+
process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
const form = created.form;
|
|
156
|
+
const embedSnippet = `<div id="contact-form"></div>\n<script src="https://dev.42ws.com/embed/form.js" data-api-key="${form.apiKey}" data-api-base="https://api.dev.42ws.com"></script>`;
|
|
157
|
+
// --inject: 元ソースを書き換え
|
|
158
|
+
let injected = false;
|
|
159
|
+
if (args.inject && originalHtml) {
|
|
160
|
+
const re = /<form[\s\S]*?<\/form>/i;
|
|
161
|
+
if (!re.test(originalHtml)) {
|
|
162
|
+
warn('元ソースに <form> タグが見つかりません。--inject はスキップされました。');
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
const newHtml = originalHtml.replace(re, embedSnippet);
|
|
166
|
+
if (args.site && args.page) {
|
|
167
|
+
await apiRequest(config, 'POST', `/sites/${args.site}/save-and-publish`, { html: newHtml, page: args.page });
|
|
168
|
+
info(`サイトを再公開しました: ${args.site}/${args.page}`);
|
|
169
|
+
injected = true;
|
|
170
|
+
}
|
|
171
|
+
else if (args.file) {
|
|
172
|
+
const filePath = resolve(process.cwd(), args.file);
|
|
173
|
+
writeFileSync(filePath, newHtml, 'utf-8');
|
|
174
|
+
info(`ファイルを書き換えました: ${filePath}`);
|
|
175
|
+
injected = true;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (isJsonMode()) {
|
|
180
|
+
success({
|
|
181
|
+
form: { id: form.id, name: form.name, apiKey: form.apiKey },
|
|
182
|
+
embedSnippet,
|
|
183
|
+
injected,
|
|
184
|
+
linkedSite,
|
|
185
|
+
linkedPage,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
successMessage(`✓ フォーム作成: ${form.name} (${form.id})`);
|
|
190
|
+
successMessage(`管理画面: https://dev.42ws.com/forms/${form.id}`);
|
|
191
|
+
if (!injected) {
|
|
192
|
+
info('');
|
|
193
|
+
info('埋め込みコード:');
|
|
194
|
+
process.stdout.write(embedSnippet + '\n');
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// 確認用ダミー (lint回避)
|
|
199
|
+
void prompt;
|
|
200
|
+
//# sourceMappingURL=forms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/commands/forms.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA+FA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6H1C"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { logout } from './commands/logout.js';
|
|
|
3
3
|
import { whoami } from './commands/whoami.js';
|
|
4
4
|
import { publish } from './commands/publish.js';
|
|
5
5
|
import { sites } from './commands/sites.js';
|
|
6
|
+
import { forms } from './commands/forms.js';
|
|
6
7
|
import { open } from './commands/open.js';
|
|
7
8
|
import { init } from './commands/init.js';
|
|
8
9
|
import { pull } from './commands/pull.js';
|
|
@@ -24,6 +25,7 @@ Commands:
|
|
|
24
25
|
sites list List all sites
|
|
25
26
|
sites create <name> Create a new site
|
|
26
27
|
sites delete <name> Delete a site
|
|
28
|
+
forms import [options] Extract a form from HTML/URL/site and create it
|
|
27
29
|
init Create 42ws.json interactively
|
|
28
30
|
open [name] Open site URL in browser
|
|
29
31
|
pull --site <name> Download published files locally
|
|
@@ -150,6 +152,23 @@ export async function main() {
|
|
|
150
152
|
});
|
|
151
153
|
break;
|
|
152
154
|
}
|
|
155
|
+
case 'forms': {
|
|
156
|
+
const subcommand = positional[0];
|
|
157
|
+
const subPositional = positional.slice(1);
|
|
158
|
+
await forms({
|
|
159
|
+
subcommand,
|
|
160
|
+
positional: subPositional,
|
|
161
|
+
json: flags['json'] === true,
|
|
162
|
+
site: flags['site'],
|
|
163
|
+
page: flags['page'],
|
|
164
|
+
url: flags['url'],
|
|
165
|
+
file: flags['file'],
|
|
166
|
+
notify: flags['notify'],
|
|
167
|
+
name: flags['name'],
|
|
168
|
+
inject: flags['inject'] === true,
|
|
169
|
+
});
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
153
172
|
case 'open':
|
|
154
173
|
await open({
|
|
155
174
|
name: positional[0] ?? flags['site'],
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|