create-specment 0.2.3 → 0.2.9
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/bin/commands/create.d.ts.map +1 -1
- package/bin/commands/create.js.map +1 -1
- package/bin/constants/languages.d.ts +1 -1
- package/bin/constants/languages.d.ts.map +1 -1
- package/bin/constants/languages.js +3 -3
- package/bin/core/interactive-setup.d.ts.map +1 -1
- package/bin/core/interactive-setup.js +20 -18
- package/bin/core/interactive-setup.js.map +1 -1
- package/bin/core/interactive-setup.test.js +11 -11
- package/bin/core/interactive-setup.test.js.map +1 -1
- package/bin/core/project-generator.d.ts.map +1 -1
- package/bin/core/project-generator.js +5 -10
- package/bin/core/project-generator.js.map +1 -1
- package/bin/features/index.js +12 -12
- package/bin/generators/docusaurus-config.js +48 -48
- package/bin/generators/docusaurus-config.js.map +1 -1
- package/bin/generators/package-json.js +14 -14
- package/bin/generators/package-json.js.map +1 -1
- package/bin/generators/template-files.d.ts.map +1 -1
- package/bin/generators/template-files.js +117 -121
- package/bin/generators/template-files.js.map +1 -1
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js.map +1 -1
- package/bin/plugins/i18n-integration.d.ts.map +1 -1
- package/bin/plugins/i18n-integration.js +61 -60
- package/bin/plugins/i18n-integration.js.map +1 -1
- package/bin/plugins/plantuml-integration.d.ts.map +1 -1
- package/bin/plugins/plantuml-integration.js +12 -11
- package/bin/plugins/plantuml-integration.js.map +1 -1
- package/bin/plugins/redoc-integration.d.ts.map +1 -1
- package/bin/plugins/redoc-integration.js +13 -12
- package/bin/plugins/redoc-integration.js.map +1 -1
- package/bin/plugins/search-integration.d.ts.map +1 -1
- package/bin/plugins/search-integration.js +15 -11
- package/bin/plugins/search-integration.js.map +1 -1
- package/bin/templates/index.js +15 -15
- package/bin/templates/index.js.map +1 -1
- package/bin/templates/template-definitions.d.ts.map +1 -1
- package/bin/templates/template-definitions.js +223 -2
- package/bin/templates/template-definitions.js.map +1 -1
- package/bin/tests/integration.test.js +26 -24
- package/bin/tests/integration.test.js.map +1 -1
- package/bin/utils/config-merger.d.ts +1 -1
- package/bin/utils/config-merger.d.ts.map +1 -1
- package/bin/utils/config-merger.js +12 -14
- package/bin/utils/config-merger.js.map +1 -1
- package/bin/utils/install.d.ts.map +1 -1
- package/bin/utils/install.js +28 -4
- package/bin/utils/install.js.map +1 -1
- package/bin/utils/message-formatter.d.ts.map +1 -1
- package/bin/utils/message-formatter.js +1 -0
- package/bin/utils/message-formatter.js.map +1 -1
- package/bin/utils/template-processor.d.ts.map +1 -1
- package/bin/utils/template-processor.js +2 -2
- package/bin/utils/template-processor.js.map +1 -1
- package/bin/utils/version.js +3 -3
- package/bin/utils/version.js.map +1 -1
- package/package.json +2 -3
- package/templates/docs/01-overview/_assumptions-constraints.mdx +19 -0
- package/templates/docs/01-overview/_business-context.mdx +18 -0
- package/templates/docs/01-overview/_firm-proposal.mdx +52 -0
- package/templates/docs/01-overview/_gap-analysis.mdx +18 -0
- package/templates/docs/01-overview/_project/342/200/221charter.mdx +23 -0
- package/templates/docs/01-overview/_requirements-specification.mdx +77 -0
- package/templates/docs/01-overview/_risks.mdx +16 -0
- package/templates/docs/01-overview/_scope.mdx +24 -0
- package/templates/docs/01-overview/_stakeholders.mdx +24 -0
- package/templates/docs/01-overview/as-is.mdx +64 -0
- package/templates/docs/01-overview/glossary.mdx +41 -0
- package/templates/docs/01-overview/index.mdx +41 -0
- package/templates/docs/01-overview/odsc.mdx +72 -0
- package/templates/docs/01-overview/roadmap.mdx +27 -0
- package/templates/docs/01-overview/system-context.mdx +22 -0
- package/templates/docs/01-overview/to-be.mdx +102 -0
- package/templates/docs/02-requirements/_category_.yaml +2 -0
- package/templates/docs/02-requirements/functional/_category_.json +8 -0
- package/templates/docs/02-requirements/functional/_req-template.mdx +49 -0
- package/templates/docs/02-requirements/functional/req-001.mdx +56 -0
- package/templates/docs/02-requirements/index.mdx +14 -0
- package/templates/docs/02-requirements/non-functional/_category_.json +8 -0
- package/templates/docs/02-requirements/non-functional/_nfr-template.mdx +45 -0
- package/templates/docs/02-requirements/non-functional/nfr-001.mdx +60 -0
- package/templates/docs/02-requirements/non-functional/nfr-002.mdx +60 -0
- package/templates/docs/03-external/business-model.mdx +14 -0
- package/templates/docs/03-external/img/business-model-by-claude.xml +107 -0
- package/templates/docs/03-external/img/business-model.xml +84 -0
- package/templates/docs/03-external/img/docsVersionDropdown.png +0 -0
- package/templates/docs/03-external/img/gantt.xml +1 -0
- package/templates/docs/03-external/img/localeDropdown.png +0 -0
- package/templates/docs/03-external/index.mdx +46 -0
- package/templates/docs/04-internal/batches/_category_.yaml +2 -0
- package/templates/docs/04-internal/batches/import-products.mdx +68 -0
- package/templates/docs/04-internal/batches/index.mdx +25 -0
- package/templates/docs/04-internal/index.mdx +32 -0
- package/templates/docs/04-internal/policies/_category_.yaml +2 -0
- package/templates/docs/04-internal/policies/branch-naming-rules.mdx +110 -0
- package/templates/docs/04-internal/policies/github.mdx +100 -0
- package/templates/docs/04-internal/policies/pull-request-operation-flow.mdx +118 -0
- package/templates/docs/04-internal/rules/_category_.yaml +2 -0
- package/templates/docs/04-internal/rules/database.mdx +139 -0
- package/templates/docs/04-internal/rules/document-creation-rules.mdx +39 -0
- package/templates/docs/04-internal/rules/index.mdx +10 -0
- package/templates/docs/04-internal/rules/markdown.mdx +148 -0
- package/templates/docs/04-internal/rules/review-process.mdx +32 -0
- package/templates/docs/04-internal/screens/_category_.yaml +2 -0
- package/templates/docs/04-internal/screens/dashboard.mdx +17 -0
- package/templates/docs/04-internal/screens/index.mdx +20 -0
- package/templates/docs/04-internal/screens/login.mdx +18 -0
- package/templates/docs/04-internal/screens/menu.mdx +17 -0
- package/templates/docs/04-internal/tables/_category_.yaml +2 -0
- package/templates/docs/04-internal/tables/customer_details.mdx +35 -0
- package/templates/docs/04-internal/tables/customers.mdx +35 -0
- package/templates/docs/04-internal/tables/index.mdx +11 -0
- package/templates/docs/example.drawio.svg +57 -0
- package/templates/docs/intro.md +47 -0
- package/templates/docs/introduction/document-editing/_category_.yml +2 -0
- package/templates/docs/introduction/document-editing/how-to.mdx +31 -0
- package/templates/docs/introduction/index.mdx +35 -0
- package/templates/docs/introduction/operational-policies/_category_.yaml +2 -0
- package/templates/docs/introduction/operational-policies/github.mdx +33 -0
- package/templates/docs/introduction/operational-policies/img/branch-naming-rules.svg +73 -0
- package/templates/docs/introduction/operational-policies/sharepoint.mdx +28 -0
|
@@ -91,7 +91,7 @@ sidebar_position: 1
|
|
|
91
91
|
},
|
|
92
92
|
],
|
|
93
93
|
},
|
|
94
|
-
|
|
94
|
+
requirements: {
|
|
95
95
|
name: 'requirements',
|
|
96
96
|
displayName: 'Requirements Specification',
|
|
97
97
|
description: '要件定義書テンプレート。機能要件・非機能要件を体系的に整理できます。',
|
|
@@ -274,6 +274,227 @@ CoreService --> BusinessLogic
|
|
|
274
274
|
1. **コーディング規約**: TypeScript/ESLintルールに従う
|
|
275
275
|
2. **テスト**: 単体テスト・統合テストを必須とする
|
|
276
276
|
3. **ドキュメント**: JSDocによるAPI仕様書を作成
|
|
277
|
+
`,
|
|
278
|
+
template: true,
|
|
279
|
+
},
|
|
280
|
+
],
|
|
281
|
+
},
|
|
282
|
+
'api-spec': {
|
|
283
|
+
name: 'api-spec',
|
|
284
|
+
displayName: 'API Specification',
|
|
285
|
+
description: 'API仕様書テンプレート。RESTful APIの詳細な仕様を記述できます。',
|
|
286
|
+
docusaurusConfig: {
|
|
287
|
+
title: 'API Specification Documentation',
|
|
288
|
+
tagline: 'API Specification Documentation',
|
|
289
|
+
presets: [['classic', { blog: false }]],
|
|
290
|
+
},
|
|
291
|
+
defaultFeatures: ['redoc', 'search'],
|
|
292
|
+
directoryStructure: {
|
|
293
|
+
docs: ['api', 'authentication', 'endpoints'],
|
|
294
|
+
static: ['img', 'api-specs'],
|
|
295
|
+
},
|
|
296
|
+
sampleContent: [
|
|
297
|
+
{
|
|
298
|
+
path: 'docs/api/intro.md',
|
|
299
|
+
content: `---
|
|
300
|
+
sidebar_position: 1
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
# API概要
|
|
304
|
+
|
|
305
|
+
このセクションでは、APIの全体的な仕様について説明します。
|
|
306
|
+
|
|
307
|
+
## API設計原則
|
|
308
|
+
|
|
309
|
+
1. **RESTful設計**: REST原則に従ったAPI設計
|
|
310
|
+
2. **一貫性**: 統一されたレスポンス形式
|
|
311
|
+
3. **セキュリティ**: 適切な認証・認可機能
|
|
312
|
+
|
|
313
|
+
## ベースURL
|
|
314
|
+
|
|
315
|
+
\`\`\`
|
|
316
|
+
https://api.example.com/v1
|
|
317
|
+
\`\`\`
|
|
318
|
+
|
|
319
|
+
## 認証
|
|
320
|
+
|
|
321
|
+
APIへのアクセスには認証が必要です。
|
|
322
|
+
|
|
323
|
+
### Bearer Token認証
|
|
324
|
+
|
|
325
|
+
\`\`\`http
|
|
326
|
+
Authorization: Bearer <your-token>
|
|
327
|
+
\`\`\`
|
|
328
|
+
|
|
329
|
+
## レスポンス形式
|
|
330
|
+
|
|
331
|
+
すべてのAPIレスポンスは以下の形式に従います:
|
|
332
|
+
|
|
333
|
+
\`\`\`json
|
|
334
|
+
{
|
|
335
|
+
"success": true,
|
|
336
|
+
"data": {},
|
|
337
|
+
"message": "Success",
|
|
338
|
+
"timestamp": "2026-01-02T15:00:00Z"
|
|
339
|
+
}
|
|
340
|
+
\`\`\`
|
|
341
|
+
`,
|
|
342
|
+
template: true,
|
|
343
|
+
},
|
|
344
|
+
],
|
|
345
|
+
},
|
|
346
|
+
'technical-spec': {
|
|
347
|
+
name: 'technical-spec',
|
|
348
|
+
displayName: 'Technical Specification',
|
|
349
|
+
description: '技術仕様書テンプレート。システムの技術的な詳細を包括的に記述できます。',
|
|
350
|
+
docusaurusConfig: {
|
|
351
|
+
title: 'Technical Specification Documentation',
|
|
352
|
+
tagline: 'Technical Specification Documentation',
|
|
353
|
+
presets: [['classic', { blog: false }]],
|
|
354
|
+
},
|
|
355
|
+
defaultFeatures: ['plantuml', 'search'],
|
|
356
|
+
directoryStructure: {
|
|
357
|
+
docs: ['architecture', 'technology-stack', 'deployment'],
|
|
358
|
+
static: ['img', 'diagrams'],
|
|
359
|
+
},
|
|
360
|
+
sampleContent: [
|
|
361
|
+
{
|
|
362
|
+
path: 'docs/architecture/intro.md',
|
|
363
|
+
content: `---
|
|
364
|
+
sidebar_position: 1
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
# 技術アーキテクチャ
|
|
368
|
+
|
|
369
|
+
このセクションでは、システムの技術的なアーキテクチャについて詳細に説明します。
|
|
370
|
+
|
|
371
|
+
## システム構成
|
|
372
|
+
|
|
373
|
+
\`\`\`plantuml
|
|
374
|
+
@startuml
|
|
375
|
+
!theme plain
|
|
376
|
+
|
|
377
|
+
package "Frontend Layer" {
|
|
378
|
+
[React Application]
|
|
379
|
+
[Mobile App]
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
package "API Layer" {
|
|
383
|
+
[API Gateway]
|
|
384
|
+
[Load Balancer]
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
package "Application Layer" {
|
|
388
|
+
[Microservice A]
|
|
389
|
+
[Microservice B]
|
|
390
|
+
[Microservice C]
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
package "Data Layer" {
|
|
394
|
+
[PostgreSQL]
|
|
395
|
+
[Redis Cache]
|
|
396
|
+
[File Storage]
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
[React Application] --> [API Gateway]
|
|
400
|
+
[Mobile App] --> [API Gateway]
|
|
401
|
+
[API Gateway] --> [Load Balancer]
|
|
402
|
+
[Load Balancer] --> [Microservice A]
|
|
403
|
+
[Load Balancer] --> [Microservice B]
|
|
404
|
+
[Load Balancer] --> [Microservice C]
|
|
405
|
+
[Microservice A] --> [PostgreSQL]
|
|
406
|
+
[Microservice B] --> [Redis Cache]
|
|
407
|
+
[Microservice C] --> [File Storage]
|
|
408
|
+
|
|
409
|
+
@enduml
|
|
410
|
+
\`\`\`
|
|
411
|
+
|
|
412
|
+
## 技術スタック
|
|
413
|
+
|
|
414
|
+
### フロントエンド
|
|
415
|
+
- **Framework**: React 18.x
|
|
416
|
+
- **State Management**: Redux Toolkit
|
|
417
|
+
- **UI Library**: Material-UI
|
|
418
|
+
- **Build Tool**: Vite
|
|
419
|
+
|
|
420
|
+
### バックエンド
|
|
421
|
+
- **Runtime**: Node.js 20.x
|
|
422
|
+
- **Framework**: Express.js
|
|
423
|
+
- **Database**: PostgreSQL 15.x
|
|
424
|
+
- **Cache**: Redis 7.x
|
|
425
|
+
|
|
426
|
+
### インフラストラクチャ
|
|
427
|
+
- **Container**: Docker
|
|
428
|
+
- **Orchestration**: Kubernetes
|
|
429
|
+
- **Cloud Provider**: AWS
|
|
430
|
+
- **CI/CD**: GitHub Actions
|
|
431
|
+
`,
|
|
432
|
+
template: true,
|
|
433
|
+
},
|
|
434
|
+
],
|
|
435
|
+
},
|
|
436
|
+
'enterprise-spec': {
|
|
437
|
+
name: 'enterprise-spec',
|
|
438
|
+
displayName: 'Enterprise Specification',
|
|
439
|
+
description: '企業向け仕様書テンプレート。エンタープライズレベルの要件と仕様を記述できます。',
|
|
440
|
+
docusaurusConfig: {
|
|
441
|
+
title: 'Enterprise Specification Documentation',
|
|
442
|
+
tagline: 'Enterprise Specification Documentation',
|
|
443
|
+
presets: [['classic', { blog: false }]],
|
|
444
|
+
},
|
|
445
|
+
defaultFeatures: ['search', 'i18n'],
|
|
446
|
+
directoryStructure: {
|
|
447
|
+
docs: ['business-requirements', 'compliance', 'governance'],
|
|
448
|
+
static: ['img', 'documents'],
|
|
449
|
+
},
|
|
450
|
+
sampleContent: [
|
|
451
|
+
{
|
|
452
|
+
path: 'docs/business-requirements/intro.md',
|
|
453
|
+
content: `---
|
|
454
|
+
sidebar_position: 1
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
# ビジネス要件
|
|
458
|
+
|
|
459
|
+
このセクションでは、エンタープライズシステムのビジネス要件について説明します。
|
|
460
|
+
|
|
461
|
+
## ビジネス目標
|
|
462
|
+
|
|
463
|
+
### 主要目標
|
|
464
|
+
1. **業務効率化**: 既存業務プロセスの自動化により、30%の効率向上を実現
|
|
465
|
+
2. **コスト削減**: システム統合により、年間運用コストを20%削減
|
|
466
|
+
3. **顧客満足度向上**: レスポンス時間の短縮により、顧客満足度を向上
|
|
467
|
+
|
|
468
|
+
### 成功指標(KPI)
|
|
469
|
+
- **処理時間**: 平均処理時間を50%短縮
|
|
470
|
+
- **エラー率**: システムエラー率を1%以下に維持
|
|
471
|
+
- **可用性**: 99.9%以上のシステム稼働率
|
|
472
|
+
|
|
473
|
+
## ステークホルダー
|
|
474
|
+
|
|
475
|
+
### 内部ステークホルダー
|
|
476
|
+
- **経営陣**: 戦略的意思決定と予算承認
|
|
477
|
+
- **IT部門**: システム開発・運用・保守
|
|
478
|
+
- **業務部門**: 日常業務でのシステム利用
|
|
479
|
+
|
|
480
|
+
### 外部ステークホルダー
|
|
481
|
+
- **顧客**: サービス利用者
|
|
482
|
+
- **パートナー企業**: システム連携先
|
|
483
|
+
- **監査機関**: コンプライアンス監査
|
|
484
|
+
|
|
485
|
+
## コンプライアンス要件
|
|
486
|
+
|
|
487
|
+
### セキュリティ基準
|
|
488
|
+
- **ISO 27001**: 情報セキュリティマネジメントシステム
|
|
489
|
+
- **SOC 2**: セキュリティ・可用性・処理の完全性
|
|
490
|
+
|
|
491
|
+
### データ保護
|
|
492
|
+
- **GDPR**: EU一般データ保護規則への準拠
|
|
493
|
+
- **個人情報保護法**: 日本の個人情報保護法への準拠
|
|
494
|
+
|
|
495
|
+
### 業界標準
|
|
496
|
+
- **PCI DSS**: クレジットカード業界データセキュリティ基準
|
|
497
|
+
- **HIPAA**: 医療情報の取り扱い基準(該当する場合)
|
|
277
498
|
`,
|
|
278
499
|
template: true,
|
|
279
500
|
},
|
|
@@ -287,7 +508,7 @@ export function getAllTemplateNames() {
|
|
|
287
508
|
return Object.keys(templateDefinitions);
|
|
288
509
|
}
|
|
289
510
|
export function getTemplateDisplayNames() {
|
|
290
|
-
return Object.values(templateDefinitions).map(template => ({
|
|
511
|
+
return Object.values(templateDefinitions).map((template) => ({
|
|
291
512
|
name: template.name,
|
|
292
513
|
displayName: template.displayName,
|
|
293
514
|
description: template.description,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-definitions.js","sourceRoot":"","sources":["../../src/templates/template-definitions.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAmC;IACjE,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE,mCAAmC;QAChD,gBAAgB,EAAE;YAChB,KAAK,EAAE,qCAAqC;YAC5C,OAAO,EAAE,qCAAqC;YAC9C,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;SAC5D;QACD,eAAe,EAAE,CAAC,QAAQ,CAAC;QAC3B,kBAAkB,EAAE;YAClB,IAAI,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;YAC5C,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;SAC3B;QACD,aAAa,EAAE;YACb;gBACE,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE;;;;;;;;;;;;;;;;;;CAkBhB;gBACO,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IAED,kBAAkB,EAAE;QAClB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,kBAAkB;QAC/B,WAAW,
|
|
1
|
+
{"version":3,"file":"template-definitions.js","sourceRoot":"","sources":["../../src/templates/template-definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { mkdirSync, rmSync, existsSync, readFileSync } from 'fs';
|
|
3
|
-
import { join } from 'path';
|
|
2
|
+
import { mkdirSync, rmSync, existsSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
4
|
import { InteractiveSetup } from '../core/interactive-setup.js';
|
|
5
5
|
import { ProjectGenerator } from '../core/project-generator.js';
|
|
6
6
|
import { getAvailableTemplates } from '../templates/index.js';
|
|
@@ -13,7 +13,7 @@ describe('End-to-End Integration Tests', () => {
|
|
|
13
13
|
try {
|
|
14
14
|
rmSync(testDir, { recursive: true, force: true });
|
|
15
15
|
}
|
|
16
|
-
catch (
|
|
16
|
+
catch (_error) {
|
|
17
17
|
// ディレクトリが存在しない場合は無視
|
|
18
18
|
}
|
|
19
19
|
mkdirSync(projectsDir, { recursive: true });
|
|
@@ -23,23 +23,23 @@ describe('End-to-End Integration Tests', () => {
|
|
|
23
23
|
try {
|
|
24
24
|
rmSync(testDir, { recursive: true, force: true });
|
|
25
25
|
}
|
|
26
|
-
catch (
|
|
26
|
+
catch (_error) {
|
|
27
27
|
// クリーンアップエラーは無視
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
describe('Template Generation Tests', () => {
|
|
31
31
|
it('should generate complete project for classic-spec template', async () => {
|
|
32
32
|
const projectName = 'test-classic-spec';
|
|
33
|
-
const
|
|
34
|
-
const
|
|
33
|
+
const _projectPath = join(projectsDir, projectName);
|
|
34
|
+
const _options = {
|
|
35
35
|
template: 'classic-spec',
|
|
36
36
|
skipInstall: true,
|
|
37
|
-
verbose: false
|
|
37
|
+
verbose: false,
|
|
38
38
|
};
|
|
39
39
|
try {
|
|
40
40
|
// プロジェクト生成のテスト(実際の生成は行わず、設定の検証のみ)
|
|
41
41
|
const templates = getAvailableTemplates();
|
|
42
|
-
const template = templates.find(t => t.name === 'classic-spec');
|
|
42
|
+
const template = templates.find((t) => t.name === 'classic-spec');
|
|
43
43
|
expect(template).toBeDefined();
|
|
44
44
|
expect(template?.name).toBe('classic-spec');
|
|
45
45
|
expect(template?.description).toBeDefined();
|
|
@@ -55,7 +55,7 @@ describe('End-to-End Integration Tests', () => {
|
|
|
55
55
|
it('should validate all available templates', () => {
|
|
56
56
|
const templates = getAvailableTemplates();
|
|
57
57
|
expect(templates.length).toBeGreaterThan(0);
|
|
58
|
-
templates.forEach(template => {
|
|
58
|
+
templates.forEach((template) => {
|
|
59
59
|
expect(template.name).toBeDefined();
|
|
60
60
|
expect(template.description).toBeDefined();
|
|
61
61
|
expect(template.features).toBeDefined();
|
|
@@ -67,7 +67,7 @@ describe('End-to-End Integration Tests', () => {
|
|
|
67
67
|
it('should validate all available features', () => {
|
|
68
68
|
const features = getAvailableFeatures();
|
|
69
69
|
expect(features.length).toBeGreaterThan(0);
|
|
70
|
-
features.forEach(feature => {
|
|
70
|
+
features.forEach((feature) => {
|
|
71
71
|
expect(feature.name).toBeDefined();
|
|
72
72
|
expect(feature.description).toBeDefined();
|
|
73
73
|
if (feature.config) {
|
|
@@ -77,7 +77,7 @@ describe('End-to-End Integration Tests', () => {
|
|
|
77
77
|
});
|
|
78
78
|
it('should validate feature combinations', () => {
|
|
79
79
|
const features = getAvailableFeatures();
|
|
80
|
-
const featureNames = features.map(f => f.name);
|
|
80
|
+
const featureNames = features.map((f) => f.name);
|
|
81
81
|
// 基本的なフィーチャーが存在することを確認
|
|
82
82
|
expect(featureNames).toContain('plantuml');
|
|
83
83
|
expect(featureNames).toContain('redoc');
|
|
@@ -89,7 +89,7 @@ describe('End-to-End Integration Tests', () => {
|
|
|
89
89
|
const validOptions = {
|
|
90
90
|
template: 'classic-spec',
|
|
91
91
|
skipInstall: true,
|
|
92
|
-
verbose: false
|
|
92
|
+
verbose: false,
|
|
93
93
|
};
|
|
94
94
|
expect(validOptions.template).toBe('classic-spec');
|
|
95
95
|
expect(validOptions.skipInstall).toBe(true);
|
|
@@ -99,7 +99,7 @@ describe('End-to-End Integration Tests', () => {
|
|
|
99
99
|
const options = {
|
|
100
100
|
template: 'classic-spec',
|
|
101
101
|
skipInstall: true,
|
|
102
|
-
verbose: false
|
|
102
|
+
verbose: false,
|
|
103
103
|
};
|
|
104
104
|
expect(() => {
|
|
105
105
|
new InteractiveSetup(options);
|
|
@@ -108,18 +108,20 @@ describe('End-to-End Integration Tests', () => {
|
|
|
108
108
|
it('should validate ProjectGenerator instantiation', () => {
|
|
109
109
|
const selections = {
|
|
110
110
|
projectName: 'test-project',
|
|
111
|
-
templates: [
|
|
111
|
+
templates: [
|
|
112
|
+
{
|
|
112
113
|
name: 'classic-spec',
|
|
113
114
|
displayName: 'Classic Specification',
|
|
114
115
|
description: 'Test template',
|
|
115
|
-
features: ['search']
|
|
116
|
-
}
|
|
117
|
-
|
|
116
|
+
features: ['search'],
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
features: [],
|
|
118
120
|
};
|
|
119
121
|
const options = {
|
|
120
122
|
template: 'classic-spec',
|
|
121
123
|
skipInstall: true,
|
|
122
|
-
verbose: false
|
|
124
|
+
verbose: false,
|
|
123
125
|
};
|
|
124
126
|
expect(() => {
|
|
125
127
|
new ProjectGenerator(selections, options);
|
|
@@ -129,18 +131,18 @@ describe('End-to-End Integration Tests', () => {
|
|
|
129
131
|
describe('Error Handling Tests', () => {
|
|
130
132
|
it('should handle invalid template names', () => {
|
|
131
133
|
const templates = getAvailableTemplates();
|
|
132
|
-
const invalidTemplate = templates.find(t => t.name === 'nonexistent-template');
|
|
134
|
+
const invalidTemplate = templates.find((t) => t.name === 'nonexistent-template');
|
|
133
135
|
expect(invalidTemplate).toBeUndefined();
|
|
134
136
|
});
|
|
135
137
|
it('should validate project name format', () => {
|
|
136
138
|
const invalidNames = ['invalid@name', 'invalid name', ''];
|
|
137
|
-
invalidNames.forEach(name => {
|
|
139
|
+
invalidNames.forEach((name) => {
|
|
138
140
|
// プロジェクト名の検証ロジックをテスト
|
|
139
141
|
const isValid = /^[a-zA-Z0-9-_]+$/.test(name) && name.length > 0;
|
|
140
142
|
expect(isValid).toBe(false);
|
|
141
143
|
});
|
|
142
144
|
const validNames = ['valid-name', 'valid_name', 'validname123'];
|
|
143
|
-
validNames.forEach(name => {
|
|
145
|
+
validNames.forEach((name) => {
|
|
144
146
|
const isValid = /^[a-zA-Z0-9-_]+$/.test(name) && name.length > 0;
|
|
145
147
|
expect(isValid).toBe(true);
|
|
146
148
|
});
|
|
@@ -153,9 +155,9 @@ describe('End-to-End Integration Tests', () => {
|
|
|
153
155
|
expect(nodeVersion).toBeDefined();
|
|
154
156
|
expect(nodeVersion.startsWith('v')).toBe(true);
|
|
155
157
|
// 必要なモジュールが利用可能かチェック
|
|
156
|
-
expect(() => require('fs')).not.toThrow();
|
|
157
|
-
expect(() => require('path')).not.toThrow();
|
|
158
|
-
expect(() => require('child_process')).not.toThrow();
|
|
158
|
+
expect(() => require('node:fs')).not.toThrow();
|
|
159
|
+
expect(() => require('node:path')).not.toThrow();
|
|
160
|
+
expect(() => require('node:child_process')).not.toThrow();
|
|
159
161
|
});
|
|
160
162
|
it('should validate package.json structure', () => {
|
|
161
163
|
const packageJsonPath = join(process.cwd(), 'package.json');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/tests/integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/tests/integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export declare class ConfigMerger {
|
|
|
20
20
|
private options;
|
|
21
21
|
constructor(options: MergeOptions);
|
|
22
22
|
mergePackageJson(existing: any, incoming: any): MergeResult;
|
|
23
|
-
mergeDocusaurusConfig(existing: string,
|
|
23
|
+
mergeDocusaurusConfig(existing: string, _incoming: string): MergeResult;
|
|
24
24
|
private mergeDependencies;
|
|
25
25
|
private mergeScripts;
|
|
26
26
|
private mergeSimpleFields;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-merger.d.ts","sourceRoot":"","sources":["../../src/utils/config-merger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-merger.d.ts","sourceRoot":"","sources":["../../src/utils/config-merger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,eAAe,GAAG,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE,YAAY;IAIjC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,WAAW;IAkD3D,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW;IAmDvE,OAAO,CAAC,iBAAiB;IA6CzB,OAAO,CAAC,YAAY;IA2CpB,OAAO,CAAC,iBAAiB;IA+BzB,MAAM,CAAC,0BAA0B,CAC/B,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,EACb,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GAClC,WAAW;IAWd,MAAM,CAAC,+BAA+B,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GAClC,WAAW;IAYd,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAazE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;CAiBpE"}
|
|
@@ -8,7 +8,7 @@ export class ConfigMerger {
|
|
|
8
8
|
success: true,
|
|
9
9
|
merged: { ...existing },
|
|
10
10
|
conflicts: [],
|
|
11
|
-
warnings: []
|
|
11
|
+
warnings: [],
|
|
12
12
|
};
|
|
13
13
|
try {
|
|
14
14
|
// Merge dependencies
|
|
@@ -24,7 +24,7 @@ export class ConfigMerger {
|
|
|
24
24
|
'license',
|
|
25
25
|
'homepage',
|
|
26
26
|
'repository',
|
|
27
|
-
'bugs'
|
|
27
|
+
'bugs',
|
|
28
28
|
]);
|
|
29
29
|
return result;
|
|
30
30
|
}
|
|
@@ -34,12 +34,12 @@ export class ConfigMerger {
|
|
|
34
34
|
return result;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
mergeDocusaurusConfig(existing,
|
|
37
|
+
mergeDocusaurusConfig(existing, _incoming) {
|
|
38
38
|
const result = {
|
|
39
39
|
success: true,
|
|
40
40
|
merged: existing,
|
|
41
41
|
conflicts: [],
|
|
42
|
-
warnings: []
|
|
42
|
+
warnings: [],
|
|
43
43
|
};
|
|
44
44
|
try {
|
|
45
45
|
// For now, we'll use a simple approach of adding comments
|
|
@@ -62,9 +62,7 @@ export class ConfigMerger {
|
|
|
62
62
|
if (configMatch && configMatch.index !== undefined) {
|
|
63
63
|
const insertPosition = configMatch.index;
|
|
64
64
|
result.merged =
|
|
65
|
-
existing.slice(0, insertPosition) +
|
|
66
|
-
integrationComment +
|
|
67
|
-
existing.slice(insertPosition);
|
|
65
|
+
existing.slice(0, insertPosition) + integrationComment + existing.slice(insertPosition);
|
|
68
66
|
}
|
|
69
67
|
else {
|
|
70
68
|
// Fallback: add at the beginning
|
|
@@ -90,7 +88,7 @@ export class ConfigMerger {
|
|
|
90
88
|
existing: existing[pkg],
|
|
91
89
|
incoming: version,
|
|
92
90
|
resolution: this.options.preserveExisting ? 'keep_existing' : 'use_incoming',
|
|
93
|
-
reason: 'Version conflict detected'
|
|
91
|
+
reason: 'Version conflict detected',
|
|
94
92
|
};
|
|
95
93
|
result.conflicts.push(conflict);
|
|
96
94
|
if (this.options.preserveExisting) {
|
|
@@ -124,7 +122,7 @@ export class ConfigMerger {
|
|
|
124
122
|
existing: existing[script],
|
|
125
123
|
incoming: command,
|
|
126
124
|
resolution: this.options.preserveExisting ? 'keep_existing' : 'use_incoming',
|
|
127
|
-
reason: 'Script command conflict'
|
|
125
|
+
reason: 'Script command conflict',
|
|
128
126
|
};
|
|
129
127
|
result.conflicts.push(conflict);
|
|
130
128
|
if (!this.options.preserveExisting && this.options.allowOverwrite) {
|
|
@@ -160,7 +158,7 @@ export class ConfigMerger {
|
|
|
160
158
|
existing: existing[field],
|
|
161
159
|
incoming: incoming[field],
|
|
162
160
|
resolution: 'keep_existing',
|
|
163
|
-
reason: 'Field value conflict'
|
|
161
|
+
reason: 'Field value conflict',
|
|
164
162
|
};
|
|
165
163
|
result.conflicts.push(conflict);
|
|
166
164
|
result.warnings.push(`Keeping existing ${field}: ${existing[field]} (incoming: ${incoming[field]})`);
|
|
@@ -173,7 +171,7 @@ export class ConfigMerger {
|
|
|
173
171
|
preserveExisting: true,
|
|
174
172
|
allowOverwrite: false,
|
|
175
173
|
verbose: false,
|
|
176
|
-
...options
|
|
174
|
+
...options,
|
|
177
175
|
});
|
|
178
176
|
return merger.mergePackageJson(existing, incoming);
|
|
179
177
|
}
|
|
@@ -182,7 +180,7 @@ export class ConfigMerger {
|
|
|
182
180
|
preserveExisting: true,
|
|
183
181
|
allowOverwrite: false,
|
|
184
182
|
verbose: false,
|
|
185
|
-
...options
|
|
183
|
+
...options,
|
|
186
184
|
});
|
|
187
185
|
return merger.mergeDocusaurusConfig(existing, incoming);
|
|
188
186
|
}
|
|
@@ -192,8 +190,8 @@ export class ConfigMerger {
|
|
|
192
190
|
const clean1 = version1.replace(/[\^~]/, '');
|
|
193
191
|
const clean2 = version2.replace(/[\^~]/, '');
|
|
194
192
|
// Simple major version check
|
|
195
|
-
const major1 = parseInt(clean1.split('.')[0]);
|
|
196
|
-
const major2 = parseInt(clean2.split('.')[0]);
|
|
193
|
+
const major1 = parseInt(clean1.split('.')[0], 10);
|
|
194
|
+
const major2 = parseInt(clean2.split('.')[0], 10);
|
|
197
195
|
return major1 === major2;
|
|
198
196
|
}
|
|
199
197
|
// Utility method to get the higher version
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-merger.js","sourceRoot":"","sources":["../../src/utils/config-merger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-merger.js","sourceRoot":"","sources":["../../src/utils/config-merger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/utils/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/utils/install.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAmDf"}
|
package/bin/utils/install.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import { spawn } from 'child_process';
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
2
4
|
export async function installDependencies(projectPath, options = {}) {
|
|
3
5
|
const { verbose = false } = options;
|
|
6
|
+
// パッケージマネージャーを検出
|
|
7
|
+
const packageManager = detectPackageManager(projectPath);
|
|
4
8
|
return new Promise((resolve, reject) => {
|
|
5
|
-
|
|
6
|
-
const child = spawn(
|
|
9
|
+
const installCommand = getInstallCommand(packageManager);
|
|
10
|
+
const child = spawn(installCommand.command, installCommand.args, {
|
|
7
11
|
cwd: projectPath,
|
|
8
12
|
stdio: verbose ? 'inherit' : 'pipe',
|
|
9
|
-
shell: true
|
|
13
|
+
shell: true,
|
|
10
14
|
});
|
|
11
15
|
let errorOutput = '';
|
|
12
16
|
if (!verbose) {
|
|
@@ -35,4 +39,24 @@ export async function installDependencies(projectPath, options = {}) {
|
|
|
35
39
|
});
|
|
36
40
|
});
|
|
37
41
|
}
|
|
42
|
+
function detectPackageManager(projectPath) {
|
|
43
|
+
// lockfileの存在を確認してパッケージマネージャーを検出
|
|
44
|
+
if (existsSync(join(projectPath, '..', 'pnpm-lock.yaml'))) {
|
|
45
|
+
return 'pnpm';
|
|
46
|
+
}
|
|
47
|
+
if (existsSync(join(projectPath, '..', 'yarn.lock'))) {
|
|
48
|
+
return 'yarn';
|
|
49
|
+
}
|
|
50
|
+
return 'npm';
|
|
51
|
+
}
|
|
52
|
+
function getInstallCommand(packageManager) {
|
|
53
|
+
switch (packageManager) {
|
|
54
|
+
case 'pnpm':
|
|
55
|
+
return { command: 'pnpm', args: ['install'] };
|
|
56
|
+
case 'yarn':
|
|
57
|
+
return { command: 'yarn', args: ['install'] };
|
|
58
|
+
default:
|
|
59
|
+
return { command: 'npm', args: ['install'] };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
38
62
|
//# sourceMappingURL=install.js.map
|