@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,437 +0,0 @@
1
- import { loadConfig, deriveDomains } from '../lib/config.js';
2
- import { login } from './login.js';
3
- import { detectFramework } from '../lib/detect.js';
4
- import { apiRequest, uploadFile, ApiError } from '../lib/api.js';
5
- import { info, success, successMessage, error, warn, isJsonMode } from '../lib/output.js';
6
- import { printSuggestions } from '../lib/suggest.js';
7
- import { t } from '../lib/i18n.js';
8
- import { collectFilesDetailed, formatBytes } from '../lib/files.js';
9
- import { existsSync, readFileSync } from 'node:fs';
10
- import { join, resolve, basename } from 'node:path';
11
- import { spawn } from 'node:child_process';
12
- import { createInterface } from 'node:readline';
13
- // ---------------------------------------------------------------------------
14
- // Helpers
15
- // ---------------------------------------------------------------------------
16
- function loadProjectConfig(cwd) {
17
- const configPath = join(cwd, '42ws.json');
18
- if (!existsSync(configPath))
19
- return {};
20
- try {
21
- return JSON.parse(readFileSync(configPath, 'utf-8'));
22
- }
23
- catch {
24
- if (!isJsonMode()) {
25
- process.stderr.write('Warning: Failed to parse 42ws.json, ignoring.\n');
26
- }
27
- return {};
28
- }
29
- }
30
- function slugify(name) {
31
- return name
32
- .toLowerCase()
33
- .replace(/[^a-z0-9-]+/g, '-')
34
- .replace(/^-+|-+$/g, '');
35
- }
36
- function prompt(question) {
37
- return new Promise(resolve => {
38
- const rl = createInterface({ input: process.stdin, output: process.stderr });
39
- rl.question(question, answer => {
40
- rl.close();
41
- resolve(answer.trim());
42
- });
43
- });
44
- }
45
- function isTTY() {
46
- return !!process.stdin.isTTY;
47
- }
48
- function frameworkLabel(framework) {
49
- const labels = {
50
- vite: 'Vite',
51
- astro: 'Astro',
52
- 'next-static': 'Next.js (static export)',
53
- 'sveltekit-static': 'SvelteKit (static adapter)',
54
- 'plain-html': 'plain HTML',
55
- unknown: 'unknown',
56
- };
57
- return labels[framework] ?? framework;
58
- }
59
- function runBuild(cmd) {
60
- return new Promise((res, rej) => {
61
- const child = spawn(cmd, { shell: true, stdio: 'inherit' });
62
- child.on('close', code => {
63
- if (code === 0) {
64
- res();
65
- }
66
- else {
67
- rej(new ApiError('BUILD_FAILED', `Build command exited with code ${code}`, 'Fix the build errors shown above and try again.'));
68
- }
69
- });
70
- child.on('error', err => {
71
- rej(new ApiError('BUILD_FAILED', `Failed to run build command: ${err.message}`, 'Fix the build errors shown above and try again.'));
72
- });
73
- });
74
- }
75
- async function ensureSiteExists(config, siteName) {
76
- let sites = [];
77
- try {
78
- const result = await apiRequest(config, 'GET', '/v1/sites');
79
- sites = result.sites ?? [];
80
- }
81
- catch {
82
- // if listing fails, try to create anyway
83
- }
84
- const exists = sites.some(s => s.site === siteName || s.name === siteName);
85
- if (exists)
86
- return;
87
- try {
88
- await apiRequest(config, 'POST', '/v1/sites', { site: siteName });
89
- }
90
- catch (e) {
91
- if (e instanceof ApiError) {
92
- if (e.code === 'CONFLICT')
93
- return;
94
- throw e;
95
- }
96
- throw e;
97
- }
98
- }
99
- // ---------------------------------------------------------------------------
100
- // Main
101
- // ---------------------------------------------------------------------------
102
- export async function publish(args) {
103
- const cwd = process.cwd();
104
- const projectConfig = loadProjectConfig(cwd);
105
- const detection = detectFramework(cwd);
106
- // ---- Resolve site name -----------------------------------------------
107
- let siteName = args.site ?? projectConfig.site;
108
- if (!siteName) {
109
- const candidate = slugify(basename(cwd));
110
- if (args.yes) {
111
- siteName = candidate;
112
- }
113
- else if (isTTY()) {
114
- const answer = await prompt(t('publish.siteNamePrompt', { candidate }));
115
- siteName = answer.length > 0 ? answer : candidate;
116
- }
117
- else {
118
- error('INVALID_SITE_NAME', t('publish.invalidSiteName'), t('publish.invalidSiteName.fix'));
119
- process.exit(1);
120
- }
121
- }
122
- // ---- Resolve build command -------------------------------------------
123
- const buildFromDetect = detection.build !== undefined && !args.noBuild && !args.build && !projectConfig.build;
124
- const buildCmd = args.noBuild
125
- ? undefined
126
- : (args.build ?? projectConfig.build ?? detection.build);
127
- // ---- Resolve output dir ----------------------------------------------
128
- const outputRaw = args.dir ?? projectConfig.output ?? detection.output ?? 'dist';
129
- const outputDir = resolve(cwd, outputRaw);
130
- // ---- Show detection info (non-JSON mode) -----------------------------
131
- if (!isJsonMode() && detection.framework !== 'unknown') {
132
- info(t('publish.detected', { framework: frameworkLabel(detection.framework) }));
133
- if (buildFromDetect && buildCmd) {
134
- info(t('publish.buildCommand', { cmd: buildCmd }));
135
- }
136
- if (detection.output && !args.dir && !projectConfig.output) {
137
- info(t('publish.outputDir', { dir: detection.output }));
138
- }
139
- }
140
- // ---- Interactive confirmation (non-JSON, non-yes, TTY) ---------------
141
- if (!isJsonMode() && !args.yes && isTTY() && detection.framework !== 'unknown') {
142
- const answer = await prompt(t('publish.continue'));
143
- if (answer.toLowerCase() === 'n') {
144
- error('PUBLISH_CANCELLED', t('cancelled.byUser'), '');
145
- process.exit(1);
146
- }
147
- }
148
- // ---- Check login (auto-trigger device code flow if not logged in) -----
149
- let config = loadConfig();
150
- if (!config.token) {
151
- if (isJsonMode()) {
152
- error('NOT_LOGGED_IN', 'You are not logged in.', 'Run `42ws login` first, then retry publish.');
153
- process.exit(1);
154
- }
155
- info('Not logged in. Starting browser authorization...');
156
- await login({});
157
- config = loadConfig();
158
- if (!config.token) {
159
- error('NOT_LOGGED_IN', 'Login did not complete.', 'Run `42ws login` and try again.');
160
- process.exit(1);
161
- }
162
- }
163
- // ---- Run build if needed ---------------------------------------------
164
- if (buildCmd) {
165
- // Skip build if output dir already exists and build was not explicitly requested
166
- const shouldSkipBuild = !args.build && existsSync(outputDir);
167
- if (!shouldSkipBuild) {
168
- info(`Building... (${buildCmd})`);
169
- try {
170
- await runBuild(buildCmd);
171
- }
172
- catch (e) {
173
- if (e instanceof ApiError) {
174
- error(e.code, e.message, e.suggestedFix);
175
- }
176
- else {
177
- error('BUILD_FAILED', String(e), 'Fix the build errors shown above and try again.');
178
- }
179
- process.exit(1);
180
- }
181
- }
182
- }
183
- // ---- Check output directory ------------------------------------------
184
- if (!existsSync(outputDir)) {
185
- if (detection.framework === 'unknown' && !args.dir && !projectConfig.output) {
186
- error('OUTPUT_DIR_NOT_FOUND', `Cannot detect framework. Specify --dir <path> with the directory to publish (or add a 42ws.json).`, '');
187
- }
188
- else {
189
- error('OUTPUT_DIR_NOT_FOUND', `Output directory not found: ${outputDir}`, 'Run your build command first, or specify the correct directory with --dir.');
190
- }
191
- process.exit(1);
192
- }
193
- // ---- Collect files ---------------------------------------------------
194
- info(t('publish.collecting'));
195
- let files;
196
- let excluded;
197
- try {
198
- const result = collectFilesDetailed(outputDir);
199
- files = result.files;
200
- excluded = result.excluded;
201
- }
202
- catch (e) {
203
- if (e instanceof ApiError) {
204
- error(e.code, e.message, e.suggestedFix);
205
- }
206
- else {
207
- error('PUBLISH_FAILED', String(e), 'Try again.');
208
- }
209
- process.exit(1);
210
- }
211
- if (files.length === 0) {
212
- error('NO_FILES_FOUND', `No files found in: ${outputDir}`, 'Make sure your output directory contains files to publish.');
213
- process.exit(1);
214
- }
215
- const totalSize = files.reduce((acc, f) => acc + f.size, 0);
216
- info(t('publish.collected', { count: files.length, size: formatBytes(totalSize) }));
217
- if (excluded.length > 0) {
218
- info(`(自動除外: ${excluded.length} 件 — ${excluded.slice(0, 5).join(', ')}${excluded.length > 5 ? ` ... +${excluded.length - 5}` : ''})`);
219
- info(' 公開したい場合は .42wsignore で個別除外、または明示的にディレクトリを分けてください');
220
- }
221
- // ---- Ensure site exists ----------------------------------------------
222
- try {
223
- await ensureSiteExists(config, siteName);
224
- }
225
- catch (e) {
226
- if (e instanceof ApiError) {
227
- error(e.code, e.message, e.suggestedFix);
228
- }
229
- else {
230
- error('PUBLISH_FAILED', String(e), 'Try again.');
231
- }
232
- process.exit(1);
233
- }
234
- // ---- Detect: would this publish detach an embedded form? -------------
235
- try {
236
- const formsRes = await apiRequest(config, 'GET', `/v1/sites/${encodeURIComponent(siteName)}/forms`).catch(() => ({ forms: [] }));
237
- const linked = formsRes.forms;
238
- const detaching = [];
239
- for (const form of linked) {
240
- const page = form.linkedPage || 'index.html';
241
- const file = files.find((f) => f.path === page);
242
- if (!file)
243
- continue;
244
- const content = file.content.toString('utf-8');
245
- if (!content.includes(`data-api-key="${form.apiKey}"`)) {
246
- detaching.push({ name: form.name, page });
247
- }
248
- }
249
- // ---- Collection detach detection ----
250
- const collsRes = await apiRequest(config, 'GET', `/v1/sites/${encodeURIComponent(siteName)}/collections`).catch(() => ({ collections: [] }));
251
- const linkedColls = collsRes.collections;
252
- const detachingColls = [];
253
- for (const coll of linkedColls) {
254
- const page = coll.linkedPage || 'index.html';
255
- const file = files.find((f) => f.path === page);
256
- if (!file)
257
- continue;
258
- const content = file.content.toString('utf-8');
259
- if (!content.includes(`data-collection-id="${coll.id}"`)) {
260
- detachingColls.push({ name: coll.name, page });
261
- }
262
- }
263
- if (detaching.length > 0 || detachingColls.length > 0) {
264
- warn('');
265
- if (detaching.length > 0) {
266
- warn(t('publish.detach.warningHeader'));
267
- for (const d of detaching) {
268
- warn(t('publish.detach.formLine', { name: d.name, page: d.page }));
269
- }
270
- }
271
- if (detachingColls.length > 0) {
272
- warn('⚠️ 警告: このパブリッシュにより、以下の埋め込みコレクションが消えます:');
273
- for (const d of detachingColls) {
274
- warn(` - 「${d.name}」 (${d.page})`);
275
- }
276
- }
277
- warn(t('publish.detach.explain'));
278
- warn('');
279
- warn(t('publish.detach.recommend'));
280
- warn(t('publish.detach.pullCmd', { site: siteName }));
281
- warn(t('publish.detach.merge'));
282
- warn(t('publish.detach.alt1'));
283
- warn(t('publish.detach.alt2'));
284
- warn('');
285
- if (args.allowDetach) {
286
- warn(t('publish.detach.allowDetachSet'));
287
- }
288
- else if (!isTTY() || isJsonMode() || args.yes) {
289
- error('EMBED_DETACH_BLOCKED', t('publish.detach.blocked'), t('publish.detach.blocked.fix'));
290
- process.exit(1);
291
- }
292
- else {
293
- const answer = await prompt(t('publish.detach.confirmPrompt'));
294
- if (!/^y(es)?$/i.test(answer.trim())) {
295
- info(t('cancelled'));
296
- process.exit(1);
297
- }
298
- }
299
- }
300
- }
301
- catch (e) {
302
- // 検知失敗はpublishを止めない
303
- if (process.env['DEBUG'])
304
- console.error('detach check failed:', e);
305
- }
306
- // ---- Create publish request ------------------------------------------
307
- info(t('publish.uploading'));
308
- const fileRequests = files.map(f => ({
309
- path: f.path,
310
- contentType: f.contentType,
311
- size: f.size,
312
- sha256: f.sha256,
313
- }));
314
- let publishResponse;
315
- try {
316
- publishResponse = await apiRequest(config, 'POST', '/v1/publishes', {
317
- site: siteName,
318
- message: args.message,
319
- files: fileRequests,
320
- });
321
- }
322
- catch (e) {
323
- if (e instanceof ApiError) {
324
- error(e.code, e.message, e.suggestedFix);
325
- }
326
- else {
327
- error('PUBLISH_FAILED', String(e), 'Try again.');
328
- }
329
- process.exit(1);
330
- }
331
- // ---- Upload files in parallel (concurrency 8) ------------------------
332
- const { publishId, uploads } = publishResponse;
333
- const fileMap = new Map(files.map(f => [f.path, f]));
334
- const uploadQueue = [...uploads];
335
- const CONCURRENCY = 8;
336
- async function uploadWorker() {
337
- while (uploadQueue.length > 0) {
338
- const instruction = uploadQueue.pop();
339
- if (!instruction)
340
- break;
341
- const file = fileMap.get(instruction.path);
342
- if (!file)
343
- continue;
344
- try {
345
- await uploadFile(instruction.url, file.content, file.contentType);
346
- }
347
- catch (e) {
348
- if (e instanceof ApiError)
349
- throw e;
350
- throw new ApiError('UPLOAD_FAILED', `Failed to upload ${instruction.path}`, 'Try running publish again.');
351
- }
352
- }
353
- }
354
- try {
355
- await Promise.all(Array.from({ length: CONCURRENCY }, uploadWorker));
356
- }
357
- catch (e) {
358
- if (e instanceof ApiError) {
359
- error(e.code, e.message, e.suggestedFix);
360
- }
361
- else {
362
- error('UPLOAD_FAILED', String(e), 'Try running publish again.');
363
- }
364
- process.exit(1);
365
- }
366
- // ---- Complete publish ------------------------------------------------
367
- info(t('publish.publishing'));
368
- let completeResponse;
369
- try {
370
- completeResponse = await apiRequest(config, 'POST', `/v1/publishes/${publishId}/complete`);
371
- }
372
- catch (e) {
373
- if (e instanceof ApiError) {
374
- error(e.code, e.message, e.suggestedFix);
375
- }
376
- else {
377
- error('PUBLISH_FAILED', String(e), 'Try again.');
378
- }
379
- process.exit(1);
380
- }
381
- // ---- Show result -----------------------------------------------------
382
- const url = completeResponse.url ?? `https://${siteName}.${deriveDomains(config.apiUrl).sitesHost}`;
383
- const version = completeResponse.version ?? publishId;
384
- // ---- ローカルファイルから「未連携の構造」を検出してサジェスト追加 ---
385
- // サーバ側 suggest は「フォームある?コレクションある?」程度の粒度。
386
- // CLI 側ではアップロードした実 HTML を見て、具体的なページ名で
387
- // 「contact.html に <form> あります → forms import で取り込めます」と提示。
388
- // 当て推量を消して命中率を上げる狙い。
389
- const localSuggestions = detectImportableStructures(files);
390
- if (isJsonMode()) {
391
- success({
392
- status: 'published',
393
- url,
394
- site: siteName,
395
- version,
396
- _suggest: completeResponse._suggest,
397
- ...(localSuggestions.length > 0 ? { _localHints: localSuggestions } : {}),
398
- });
399
- }
400
- else {
401
- successMessage(`Published:\n${url}`);
402
- printSuggestions(completeResponse._suggest);
403
- if (localSuggestions.length > 0) {
404
- info('');
405
- info('💡 取り込めそうな構造を検出:');
406
- for (const s of localSuggestions)
407
- info(` - ${s}`);
408
- }
409
- }
410
- }
411
- // HTML ファイルから取り込み候補を検出する軽量スキャン。
412
- // - 素の <form> (data-api-key を持たない、つまり 42ws embed じゃない) → forms import 候補
413
- // - 同種繰り返し要素 (<article> や同 class の <li> が 3 個以上) → collections import 候補
414
- // 重い DOM 解析はしない (regex のみ)。誤検知より「気付き」を優先。
415
- function detectImportableStructures(files) {
416
- const hints = [];
417
- for (const f of files) {
418
- if (!f.contentType.startsWith('text/html'))
419
- continue;
420
- const text = f.content.toString('utf-8');
421
- // 素の <form>: <form ...> があり、その近くに data-api-key (= 42ws embed) が無い
422
- if (/<form\b[^>]*>/i.test(text)) {
423
- const has42wsEmbed = /data-api-key="[^"]+".*?embed\/form\.js|embed\/form\.js[^"]*data-api-key=/s.test(text);
424
- if (!has42wsEmbed) {
425
- hints.push(`42ws forms import --site <name> --page ${f.path} --notify <email> --inject # 素の <form> あり`);
426
- }
427
- }
428
- // 同種要素 3 個以上 (<article> もしくは同 class の <li>/<div>)
429
- const articleCount = (text.match(/<article\b/gi) ?? []).length;
430
- const hasCmsEmbed = /data-cms-target="|embed\/collection\.js/.test(text);
431
- if (articleCount >= 3 && !hasCmsEmbed) {
432
- hints.push(`42ws collections import --site <name> --page ${f.path} --inject # <article> ${articleCount} 個の繰り返し`);
433
- }
434
- }
435
- return hints;
436
- }
437
- //# sourceMappingURL=publish.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAqDhD,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAkB,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,MAAM,CAAC,QAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,KAAK;IACZ,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,MAAM,GAA2B;QACrC,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,aAAa,EAAE,yBAAyB;QACxC,kBAAkB,EAAE,4BAA4B;QAChD,YAAY,EAAE,YAAY;QAC1B,OAAO,EAAE,SAAS;KACnB,CAAC;IACF,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;AACxC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACvB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,GAAG,EAAE,CAAC;YACR,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,QAAQ,CAAC,cAAc,EAAE,kCAAkC,IAAI,EAAE,EAAE,iDAAiD,CAAC,CAAC,CAAC;YACjI,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACtB,GAAG,CAAC,IAAI,QAAQ,CAAC,cAAc,EAAE,gCAAgC,GAAG,CAAC,OAAO,EAAE,EAAE,iDAAiD,CAAC,CAAC,CAAC;QACtI,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAqC,EAAE,QAAgB;IACrF,IAAI,KAAK,GAAW,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAoB,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/E,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC3E,IAAI,MAAM;QAAE,OAAO;IAEnB,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO;YAClC,MAAM,CAAC,CAAC;QACV,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAEvC,yEAAyE;IACzE,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC;IAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,QAAQ,GAAG,SAAS,CAAC;QACvB,CAAC;aAAM,IAAI,KAAK,EAAE,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACxE,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;YAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IAC9G,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO;QAC3B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAE3D,yEAAyE;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC;IACjF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE1C,yEAAyE;IACzE,IAAI,CAAC,UAAU,EAAE,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACvD,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,IAAI,eAAe,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC3D,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,IAAI,MAAM,GAAG,UAAU,EAAE,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,KAAK,CAAC,eAAe,EAAE,wBAAwB,EAAE,6CAA6C,CAAC,CAAC;YAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACzD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,KAAK,CAAC,eAAe,EAAE,yBAAyB,EAAE,iCAAiC,CAAC,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,IAAI,QAAQ,EAAE,CAAC;QACb,iFAAiF;QACjF,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,QAAQ,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;oBAC1B,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,iDAAiD,CAAC,CAAC;gBACtF,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC5E,KAAK,CAAC,sBAAsB,EAAE,mGAAmG,EAAE,EAAE,CAAC,CAAC;QACzI,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,sBAAsB,EAAE,+BAA+B,SAAS,EAAE,EAAE,4EAA4E,CAAC,CAAC;QAC1J,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yEAAyE;IACzE,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC;IACV,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC/C,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,gBAAgB,EAAE,sBAAsB,SAAS,EAAE,EAAE,4DAA4D,CAAC,CAAC;QACzH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,QAAQ,CAAC,MAAM,QAAQ,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtI,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAC7D,CAAC;IAED,yEAAyE;IACzE,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yEAAyE;IACzE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EAAE,KAAK,EAAE,aAAa,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CACjE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC9B,MAAM,SAAS,GAAqC,EAAE,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC;YAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,wCAAwC;QACxC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EAAE,KAAK,EAAE,aAAa,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CACvE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACzC,MAAM,cAAc,GAAqC,EAAE,CAAC;QAC5D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC;YAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzD,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBACxC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;oBAC1B,IAAI,CAAC,CAAC,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBAChD,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,CAAC,KAAK,EAAE,IAAI,UAAU,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChD,KAAK,CACH,sBAAsB,EACtB,CAAC,CAAC,wBAAwB,CAAC,EAC3B,CAAC,CAAC,4BAA4B,CAAC,CAChC,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBACrC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,oBAAoB;QACpB,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,yEAAyE;IACzE,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7B,MAAM,YAAY,GAAwB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;KACjB,CAAC,CAAC,CAAC;IAEJ,IAAI,eAAgC,CAAC;IACrC,IAAI,CAAC;QACH,eAAe,GAAG,MAAM,UAAU,CAAkB,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE;YACnF,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yEAAyE;IACzE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,CAAC,CAAC;IAEtB,KAAK,UAAU,YAAY;QACzB,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACtC,IAAI,CAAC,WAAW;gBAAE,MAAM;YAExB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,QAAQ;oBAAE,MAAM,CAAC,CAAC;gBACnC,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,oBAAoB,WAAW,CAAC,IAAI,EAAE,EAAE,4BAA4B,CAAC,CAAC;YAC5G,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yEAAyE;IACzE,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9B,IAAI,gBAAkC,CAAC;IACvC,IAAI,CAAC;QACH,gBAAgB,GAAG,MAAM,UAAU,CAAmB,MAAM,EAAE,MAAM,EAAE,iBAAiB,SAAS,WAAW,CAAC,CAAC;IAC/G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yEAAyE;IACzE,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,IAAI,WAAW,QAAQ,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;IACpG,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,IAAI,SAAS,CAAC;IAEtD,0CAA0C;IAC1C,yCAAyC;IACzC,sCAAsC;IACtC,0DAA0D;IAC1D,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAE3D,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC;YACN,MAAM,EAAE,WAAW;YACnB,GAAG;YACH,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;QACrC,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,gBAAgB;gBAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,yEAAyE;AACzE,yEAAyE;AACzE,0CAA0C;AAC1C,SAAS,0BAA0B,CAAC,KAA+D;IACjG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAS;QACrD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,kEAAkE;QAClE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5G,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,IAAI,4CAA4C,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC;QACD,kDAAkD;QAClD,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC/D,MAAM,WAAW,GAAG,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,IAAI,0BAA0B,YAAY,SAAS,CAAC,CAAC;QACpH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,7 +0,0 @@
1
- export interface PullArgs {
2
- site?: string;
3
- dir?: string;
4
- yes?: boolean;
5
- }
6
- export declare function pull(args: PullArgs): Promise<void>;
7
- //# sourceMappingURL=pull.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAoEA,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2HxD"}
@@ -1,157 +0,0 @@
1
- import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'node:fs';
2
- import { join, dirname, 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, isJsonMode } from '../lib/output.js';
7
- function loadProjectConfig(cwd) {
8
- const configPath = join(cwd, '42ws.json');
9
- if (!existsSync(configPath))
10
- return {};
11
- try {
12
- return JSON.parse(readFileSync(configPath, 'utf-8'));
13
- }
14
- catch {
15
- return {};
16
- }
17
- }
18
- function prompt(question) {
19
- return new Promise(resolve => {
20
- const rl = createInterface({ input: process.stdin, output: process.stderr });
21
- rl.question(question, answer => {
22
- rl.close();
23
- resolve(answer.trim());
24
- });
25
- });
26
- }
27
- async function downloadFile(url) {
28
- let response;
29
- try {
30
- response = await fetch(url);
31
- }
32
- catch (e) {
33
- throw new ApiError('NETWORK_ERROR', `Network error: ${String(e)}`, 'Check your internet connection.');
34
- }
35
- if (!response.ok) {
36
- throw new ApiError('DOWNLOAD_FAILED', `Download failed with HTTP ${response.status}`, 'Try again.');
37
- }
38
- const buffer = await response.arrayBuffer();
39
- return Buffer.from(buffer);
40
- }
41
- export async function pull(args) {
42
- const cwd = process.cwd();
43
- const projectConfig = loadProjectConfig(cwd);
44
- // Resolve site name
45
- const siteName = args.site ?? projectConfig.site;
46
- if (!siteName) {
47
- error('INVALID_SITE_NAME', 'Site name is required.', 'Use --site <name> or add "site" to 42ws.json.');
48
- process.exit(1);
49
- }
50
- const config = loadConfig();
51
- if (!config.token) {
52
- error('NOT_LOGGED_IN', 'You are not logged in.', 'Run `42ws login` to authenticate.');
53
- process.exit(1);
54
- }
55
- // Resolve output directory
56
- const outputDir = resolve(cwd, args.dir ?? `pulled`);
57
- // Check if directory has existing files
58
- if (existsSync(outputDir) && !args.yes) {
59
- if (!process.stdin.isTTY) {
60
- error('NOT_A_TTY', 'Use --yes to overwrite existing files in non-interactive mode.', 'Add --yes flag.');
61
- process.exit(1);
62
- }
63
- const answer = await prompt(`Directory "${outputDir}" exists. Overwrite? [y/N]: `);
64
- if (answer.toLowerCase() !== 'y') {
65
- process.stderr.write('Cancelled.\n');
66
- process.exit(0);
67
- }
68
- }
69
- // Step 1: Get currentPublishId from sites list
70
- info(`Fetching site info for "${siteName}"...`);
71
- let sitesResult;
72
- try {
73
- sitesResult = await apiRequest(config, 'GET', '/v1/sites');
74
- }
75
- catch (e) {
76
- if (e instanceof ApiError) {
77
- error(e.code, e.message, e.suggestedFix);
78
- }
79
- else {
80
- error('NETWORK_ERROR', String(e), 'Check your internet connection.');
81
- }
82
- process.exit(1);
83
- }
84
- const siteItem = (sitesResult.sites ?? []).find(s => s.site === siteName);
85
- if (!siteItem) {
86
- error('NOT_FOUND', `Site "${siteName}" not found.`, 'Check the site name and try again.');
87
- process.exit(1);
88
- }
89
- const publishId = siteItem.currentPublishId;
90
- if (!publishId) {
91
- error('NOT_FOUND', `Site "${siteName}" has no published version.`, 'Publish first with: 42ws publish --site ' + siteName);
92
- process.exit(1);
93
- }
94
- // Step 2: Get presigned download URLs
95
- info(`Fetching download URLs for publish ${publishId}...`);
96
- let downloadResult;
97
- try {
98
- downloadResult = await apiRequest(config, 'GET', `/v1/publishes/${publishId}/download`);
99
- }
100
- catch (e) {
101
- if (e instanceof ApiError) {
102
- error(e.code, e.message, e.suggestedFix);
103
- }
104
- else {
105
- error('NETWORK_ERROR', String(e), 'Check your internet connection.');
106
- }
107
- process.exit(1);
108
- }
109
- const files = downloadResult.files ?? [];
110
- if (files.length === 0) {
111
- error('NO_FILES_FOUND', 'No files found in this publish.', '');
112
- process.exit(1);
113
- }
114
- info(`Downloading ${files.length} files into ${outputDir}...`);
115
- // Step 3: Download files in parallel (concurrency 8)
116
- const CONCURRENCY = 8;
117
- const queue = [...files];
118
- let completed = 0;
119
- async function downloadWorker() {
120
- while (queue.length > 0) {
121
- const file = queue.pop();
122
- if (!file)
123
- break;
124
- const data = await downloadFile(file.url);
125
- const dest = join(outputDir, file.path);
126
- mkdirSync(dirname(dest), { recursive: true });
127
- writeFileSync(dest, data);
128
- completed++;
129
- if (!isJsonMode()) {
130
- process.stderr.write(`\r ${completed}/${files.length} files...`);
131
- }
132
- }
133
- }
134
- try {
135
- await Promise.all(Array.from({ length: CONCURRENCY }, downloadWorker));
136
- }
137
- catch (e) {
138
- if (!isJsonMode())
139
- process.stderr.write('\n');
140
- if (e instanceof ApiError) {
141
- error(e.code, e.message, e.suggestedFix);
142
- }
143
- else {
144
- error('DOWNLOAD_FAILED', String(e), 'Try again.');
145
- }
146
- process.exit(1);
147
- }
148
- if (!isJsonMode())
149
- process.stderr.write('\n');
150
- if (isJsonMode()) {
151
- success({ site: siteName, publishId, fileCount: files.length, dir: outputDir });
152
- }
153
- else {
154
- successMessage(`Pulled ${files.length} files into ${outputDir}/`);
155
- }
156
- }
157
- //# sourceMappingURL=pull.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- export interface SitesArgs {
2
- subcommand?: string;
3
- positional: string[];
4
- yes?: boolean;
5
- json?: boolean;
6
- force?: boolean;
7
- deleteForms?: boolean;
8
- keepForms?: boolean;
9
- deleteCollections?: boolean;
10
- keepCollections?: boolean;
11
- }
12
- export declare function sites(args: SitesArgs): Promise<void>;
13
- //# sourceMappingURL=sites.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/commands/sites.ts"],"names":[],"mappings":"AAwDA,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C1D"}