create-specment 0.2.2

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 (113) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +314 -0
  3. package/bin/commands/create.d.ts +3 -0
  4. package/bin/commands/create.d.ts.map +1 -0
  5. package/bin/commands/create.js +30 -0
  6. package/bin/commands/create.js.map +1 -0
  7. package/bin/constants/languages.d.ts +15 -0
  8. package/bin/constants/languages.d.ts.map +1 -0
  9. package/bin/constants/languages.js +14 -0
  10. package/bin/constants/languages.js.map +1 -0
  11. package/bin/core/interactive-setup.d.ts +15 -0
  12. package/bin/core/interactive-setup.d.ts.map +1 -0
  13. package/bin/core/interactive-setup.js +171 -0
  14. package/bin/core/interactive-setup.js.map +1 -0
  15. package/bin/core/interactive-setup.test.d.ts +2 -0
  16. package/bin/core/interactive-setup.test.d.ts.map +1 -0
  17. package/bin/core/interactive-setup.test.js +97 -0
  18. package/bin/core/interactive-setup.test.js.map +1 -0
  19. package/bin/core/project-generator.d.ts +12 -0
  20. package/bin/core/project-generator.d.ts.map +1 -0
  21. package/bin/core/project-generator.js +83 -0
  22. package/bin/core/project-generator.js.map +1 -0
  23. package/bin/features/index.d.ts +3 -0
  24. package/bin/features/index.d.ts.map +1 -0
  25. package/bin/features/index.js +47 -0
  26. package/bin/features/index.js.map +1 -0
  27. package/bin/generators/docusaurus-config.d.ts +3 -0
  28. package/bin/generators/docusaurus-config.d.ts.map +1 -0
  29. package/bin/generators/docusaurus-config.js +285 -0
  30. package/bin/generators/docusaurus-config.js.map +1 -0
  31. package/bin/generators/package-json.d.ts +3 -0
  32. package/bin/generators/package-json.d.ts.map +1 -0
  33. package/bin/generators/package-json.js +98 -0
  34. package/bin/generators/package-json.js.map +1 -0
  35. package/bin/generators/template-files.d.ts +3 -0
  36. package/bin/generators/template-files.d.ts.map +1 -0
  37. package/bin/generators/template-files.js +370 -0
  38. package/bin/generators/template-files.js.map +1 -0
  39. package/bin/index.d.ts +5 -0
  40. package/bin/index.d.ts.map +1 -0
  41. package/bin/index.js +37 -0
  42. package/bin/index.js.map +1 -0
  43. package/bin/plugins/i18n-integration.d.ts +25 -0
  44. package/bin/plugins/i18n-integration.d.ts.map +1 -0
  45. package/bin/plugins/i18n-integration.js +309 -0
  46. package/bin/plugins/i18n-integration.js.map +1 -0
  47. package/bin/plugins/plantuml-integration.d.ts +17 -0
  48. package/bin/plugins/plantuml-integration.d.ts.map +1 -0
  49. package/bin/plugins/plantuml-integration.js +111 -0
  50. package/bin/plugins/plantuml-integration.js.map +1 -0
  51. package/bin/plugins/redoc-integration.d.ts +25 -0
  52. package/bin/plugins/redoc-integration.d.ts.map +1 -0
  53. package/bin/plugins/redoc-integration.js +372 -0
  54. package/bin/plugins/redoc-integration.js.map +1 -0
  55. package/bin/plugins/search-integration.d.ts +20 -0
  56. package/bin/plugins/search-integration.d.ts.map +1 -0
  57. package/bin/plugins/search-integration.js +165 -0
  58. package/bin/plugins/search-integration.js.map +1 -0
  59. package/bin/templates/index.d.ts +4 -0
  60. package/bin/templates/index.d.ts.map +1 -0
  61. package/bin/templates/index.js +60 -0
  62. package/bin/templates/index.js.map +1 -0
  63. package/bin/templates/template-definitions.d.ts +10 -0
  64. package/bin/templates/template-definitions.d.ts.map +1 -0
  65. package/bin/templates/template-definitions.js +296 -0
  66. package/bin/templates/template-definitions.js.map +1 -0
  67. package/bin/tests/integration.test.d.ts +2 -0
  68. package/bin/tests/integration.test.d.ts.map +1 -0
  69. package/bin/tests/integration.test.js +171 -0
  70. package/bin/tests/integration.test.js.map +1 -0
  71. package/bin/types/index.d.ts +44 -0
  72. package/bin/types/index.d.ts.map +1 -0
  73. package/bin/types/index.js +2 -0
  74. package/bin/types/index.js.map +1 -0
  75. package/bin/utils/config-merger.d.ts +32 -0
  76. package/bin/utils/config-merger.d.ts.map +1 -0
  77. package/bin/utils/config-merger.js +216 -0
  78. package/bin/utils/config-merger.js.map +1 -0
  79. package/bin/utils/errors.d.ts +9 -0
  80. package/bin/utils/errors.d.ts.map +1 -0
  81. package/bin/utils/errors.js +22 -0
  82. package/bin/utils/errors.js.map +1 -0
  83. package/bin/utils/install.d.ts +5 -0
  84. package/bin/utils/install.d.ts.map +1 -0
  85. package/bin/utils/install.js +38 -0
  86. package/bin/utils/install.js.map +1 -0
  87. package/bin/utils/message-formatter.d.ts +15 -0
  88. package/bin/utils/message-formatter.d.ts.map +1 -0
  89. package/bin/utils/message-formatter.js +85 -0
  90. package/bin/utils/message-formatter.js.map +1 -0
  91. package/bin/utils/template-processor.d.ts +54 -0
  92. package/bin/utils/template-processor.d.ts.map +1 -0
  93. package/bin/utils/template-processor.js +139 -0
  94. package/bin/utils/template-processor.js.map +1 -0
  95. package/bin/utils/template-processor.test.d.ts +2 -0
  96. package/bin/utils/template-processor.test.d.ts.map +1 -0
  97. package/bin/utils/template-processor.test.js +120 -0
  98. package/bin/utils/template-processor.test.js.map +1 -0
  99. package/bin/utils/version.d.ts +2 -0
  100. package/bin/utils/version.d.ts.map +1 -0
  101. package/bin/utils/version.js +10 -0
  102. package/bin/utils/version.js.map +1 -0
  103. package/package.json +67 -0
  104. package/templates/classic-spec/docusaurus.config.js.template +106 -0
  105. package/templates/classic-spec/package.json.template +36 -0
  106. package/templates/external-design/docusaurus.config.js.template +123 -0
  107. package/templates/external-design/package.json.template +36 -0
  108. package/templates/internal-design/docusaurus.config.js.template +123 -0
  109. package/templates/internal-design/package.json.template +36 -0
  110. package/templates/project-analysis/docusaurus.config.js.template +113 -0
  111. package/templates/project-analysis/package.json.template +36 -0
  112. package/templates/requirements/docusaurus.config.js.template +119 -0
  113. package/templates/requirements/package.json.template +36 -0
@@ -0,0 +1,97 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { InteractiveSetup } from './interactive-setup.js';
3
+ // @clack/promptsをモック
4
+ vi.mock('@clack/prompts', () => ({
5
+ select: vi.fn(),
6
+ isCancel: vi.fn(() => false),
7
+ intro: vi.fn(),
8
+ text: vi.fn(),
9
+ multiselect: vi.fn(),
10
+ note: vi.fn()
11
+ }));
12
+ // テンプレートとフィーチャーをモック
13
+ vi.mock('../templates/index.js', () => ({
14
+ getAvailableTemplates: vi.fn(() => [
15
+ {
16
+ name: 'classic-spec',
17
+ displayName: 'Classic Specification',
18
+ description: 'Test template',
19
+ features: ['plantuml']
20
+ }
21
+ ])
22
+ }));
23
+ vi.mock('../features/index.js', () => ({
24
+ getAvailableFeatures: vi.fn(() => [
25
+ {
26
+ name: 'plantuml',
27
+ displayName: 'PlantUML',
28
+ description: 'PlantUML integration',
29
+ enabled: false
30
+ }
31
+ ])
32
+ }));
33
+ describe('InteractiveSetup with Validation', () => {
34
+ let setup;
35
+ let mockOptions;
36
+ beforeEach(async () => {
37
+ mockOptions = {
38
+ template: undefined,
39
+ skipInstall: false,
40
+ verbose: false
41
+ };
42
+ setup = new InteractiveSetup(mockOptions);
43
+ // console.logをモック
44
+ vi.spyOn(console, 'log').mockImplementation(() => { });
45
+ // モックの戻り値を設定
46
+ const { select, text, multiselect } = vi.mocked(await import('@clack/prompts'));
47
+ select.mockResolvedValue('en');
48
+ text.mockResolvedValue('test-project');
49
+ multiselect.mockResolvedValue(['classic-spec']);
50
+ });
51
+ describe('Non-interactive mode validation', () => {
52
+ it('should validate project name in non-interactive mode', async () => {
53
+ const options = {
54
+ template: 'classic-spec',
55
+ skipInstall: false,
56
+ verbose: false
57
+ };
58
+ const setupWithTemplate = new InteractiveSetup(options);
59
+ // 有効なプロジェクト名でテスト
60
+ try {
61
+ const result = await setupWithTemplate.run('valid-project');
62
+ expect(result.projectName).toBe('valid-project');
63
+ }
64
+ catch (error) {
65
+ // テンプレートが見つからないエラーは予想される
66
+ expect(error).toBeDefined();
67
+ }
68
+ });
69
+ it('should reject invalid project name in non-interactive mode', async () => {
70
+ const options = {
71
+ template: 'classic-spec',
72
+ skipInstall: false,
73
+ verbose: false
74
+ };
75
+ const setupWithTemplate = new InteractiveSetup(options);
76
+ // 無効なプロジェクト名でテスト
77
+ await expect(setupWithTemplate.run('invalid@project')).rejects.toThrow();
78
+ });
79
+ it('should reject invalid template in non-interactive mode', async () => {
80
+ const options = {
81
+ template: 'invalid-template',
82
+ skipInstall: false,
83
+ verbose: false
84
+ };
85
+ const setupWithTemplate = new InteractiveSetup(options);
86
+ await expect(setupWithTemplate.run('valid-project')).rejects.toThrow();
87
+ });
88
+ });
89
+ describe('Validation integration', () => {
90
+ it('should use validation functions for project name input', () => {
91
+ // バリデーション関数が統合されていることを確認
92
+ expect(setup).toBeDefined();
93
+ expect(typeof setup.run).toBe('function');
94
+ });
95
+ });
96
+ });
97
+ //# sourceMappingURL=interactive-setup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-setup.test.js","sourceRoot":"","sources":["../../src/core/interactive-setup.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,qBAAqB;AACrB,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;IACf,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IAC5B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;IACd,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;IACb,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;IACpB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;CACd,CAAC,CAAC,CAAC;AAEJ,oBAAoB;AACpB,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,qBAAqB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACjC;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,uBAAuB;YACpC,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,oBAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAChC;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,KAAK;SACf;KACF,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,IAAI,KAAuB,CAAC;IAC5B,IAAI,WAAkC,CAAC;IAEvC,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,WAAW,GAAG;YACZ,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,KAAK;SACf,CAAC;QACF,KAAK,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAE1C,kBAAkB;QAClB,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEvD,aAAa;QACb,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACvC,WAAW,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,OAAO,GAA0B;gBACrC,QAAQ,EAAE,cAAc;gBACxB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,KAAK;aACf,CAAC;YAEF,MAAM,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAExD,iBAAiB;YACjB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC5D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,yBAAyB;gBACzB,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,OAAO,GAA0B;gBACrC,QAAQ,EAAE,cAAc;gBACxB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,KAAK;aACf,CAAC;YAEF,MAAM,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAExD,iBAAiB;YACjB,MAAM,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,OAAO,GAA0B;gBACrC,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,KAAK;aACf,CAAC;YAEF,MAAM,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAExD,MAAM,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,yBAAyB;YACzB,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { UserSelections, CreateSpecmentOptions } from '../types/index.js';
2
+ export declare class ProjectGenerator {
3
+ private selections;
4
+ private options;
5
+ private projectPath;
6
+ constructor(selections: UserSelections, options: CreateSpecmentOptions);
7
+ generate(): Promise<void>;
8
+ private createProjectStructure;
9
+ private generateConfigFiles;
10
+ private copyTemplateContent;
11
+ }
12
+ //# sourceMappingURL=project-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-generator.d.ts","sourceRoot":"","sources":["../../src/core/project-generator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM/E,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,WAAW,CAAS;gBAGlB,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,qBAAqB;IAKlC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YA8CjB,sBAAsB;YAkBtB,mBAAmB;YAgBnB,mBAAmB;CAGlC"}
@@ -0,0 +1,83 @@
1
+ import { mkdir, writeFile } from 'fs/promises';
2
+ import { join, resolve } from 'path';
3
+ import { existsSync } from 'fs';
4
+ import { spinner, note } from '@clack/prompts';
5
+ import { generatePackageJson } from '../generators/package-json.js';
6
+ import { generateDocusaurusConfig } from '../generators/docusaurus-config.js';
7
+ import { copyTemplateFiles } from '../generators/template-files.js';
8
+ import { installDependencies } from '../utils/install.js';
9
+ export class ProjectGenerator {
10
+ selections;
11
+ options;
12
+ projectPath;
13
+ constructor(selections, options) {
14
+ this.selections = selections;
15
+ this.options = options;
16
+ this.projectPath = resolve(process.cwd(), selections.projectName);
17
+ }
18
+ async generate() {
19
+ const s = spinner();
20
+ try {
21
+ // Check if directory exists
22
+ if (existsSync(this.projectPath)) {
23
+ throw new Error(`Directory "${this.selections.projectName}" already exists`);
24
+ }
25
+ // Create project structure
26
+ s.start('プロジェクト構造を作成中...');
27
+ await this.createProjectStructure();
28
+ s.stop('プロジェクト構造を作成しました');
29
+ // Generate config files
30
+ s.start('設定ファイルを生成中...');
31
+ await this.generateConfigFiles();
32
+ s.stop('設定ファイルを生成しました');
33
+ // Copy template content
34
+ s.start('テンプレートファイルをコピー中...');
35
+ await this.copyTemplateContent();
36
+ s.stop('テンプレートファイルをコピーしました');
37
+ // Install dependencies
38
+ if (!this.options.skipInstall) {
39
+ s.start('依存関係をインストール中...');
40
+ try {
41
+ await installDependencies(this.projectPath, { verbose: false });
42
+ s.stop('依存関係をインストールしました');
43
+ }
44
+ catch (error) {
45
+ s.stop('依存関係のインストールに失敗しました');
46
+ note('プロジェクトは作成されましたが、依存関係のインストールに失敗しました。\n手動でインストールしてください:\n\n' +
47
+ `cd ${this.selections.projectName}\nni`, '警告');
48
+ }
49
+ }
50
+ }
51
+ catch (error) {
52
+ s.stop('エラーが発生しました');
53
+ throw error;
54
+ }
55
+ }
56
+ async createProjectStructure() {
57
+ // Create project root directory
58
+ await mkdir(this.projectPath, { recursive: true });
59
+ // Create basic directory structure
60
+ const directories = [
61
+ 'docs',
62
+ 'src/css',
63
+ 'src/components',
64
+ 'static/img'
65
+ ];
66
+ for (const dir of directories) {
67
+ const dirPath = join(this.projectPath, dir);
68
+ await mkdir(dirPath, { recursive: true });
69
+ }
70
+ }
71
+ async generateConfigFiles() {
72
+ // Generate package.json
73
+ const packageJson = generatePackageJson(this.selections);
74
+ await writeFile(join(this.projectPath, 'package.json'), JSON.stringify(packageJson, null, 2));
75
+ // Generate docusaurus.config.js
76
+ const docusaurusConfig = generateDocusaurusConfig(this.selections);
77
+ await writeFile(join(this.projectPath, 'docusaurus.config.js'), docusaurusConfig);
78
+ }
79
+ async copyTemplateContent() {
80
+ await copyTemplateFiles(this.selections, this.projectPath);
81
+ }
82
+ }
83
+ //# sourceMappingURL=project-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-generator.js","sourceRoot":"","sources":["../../src/core/project-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { FeatureSelection } from '../types/index.js';
2
+ export declare function getAvailableFeatures(): FeatureSelection[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CA4CzD"}
@@ -0,0 +1,47 @@
1
+ import { LANG } from '../constants/languages.js';
2
+ export function getAvailableFeatures() {
3
+ return [
4
+ {
5
+ name: 'plantuml',
6
+ displayName: 'PlantUML',
7
+ description: 'PlantUML図表統合 (UML diagrams and flowcharts)',
8
+ enabled: false,
9
+ plugin: 'docusaurus-theme-plantuml',
10
+ config: {
11
+ plantuml: {
12
+ server: 'https://www.plantuml.com/plantuml'
13
+ }
14
+ }
15
+ },
16
+ {
17
+ name: 'redoc',
18
+ displayName: 'Redoc(Redocusaurus)',
19
+ description: 'OpenAPI仕様書のRedoc表示 (OpenAPI documentation with Redoc)',
20
+ enabled: false,
21
+ plugin: 'redocusaurus',
22
+ config: {
23
+ redocusaurus: {
24
+ specs: [
25
+ {
26
+ spec: 'static/openapi.yaml',
27
+ route: '/api/'
28
+ }
29
+ ]
30
+ }
31
+ }
32
+ },
33
+ {
34
+ name: 'i18n',
35
+ displayName: 'Internationalization (i18n)',
36
+ description: '多言語対応 (Multi-language support)',
37
+ enabled: false,
38
+ config: {
39
+ i18n: {
40
+ defaultLocale: LANG.EN.code,
41
+ locales: [LANG.EN.code, 'ja']
42
+ }
43
+ }
44
+ }
45
+ ];
46
+ }
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAEjD,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,4CAA4C;YACzD,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,2BAA2B;YACnC,MAAM,EAAE;gBACN,QAAQ,EAAE;oBACR,MAAM,EAAE,mCAAmC;iBAC5C;aACF;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,qBAAqB;YAClC,WAAW,EAAE,uDAAuD;YACpE,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE;gBACN,YAAY,EAAE;oBACZ,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,qBAAqB;4BAC3B,KAAK,EAAE,OAAO;yBACf;qBACF;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,KAAK;YACd,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI;oBAC3B,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;iBAC9B;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { UserSelections } from '../types/index.js';
2
+ export declare function generateDocusaurusConfig(selections: UserSelections): string;
3
+ //# sourceMappingURL=docusaurus-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docusaurus-config.d.ts","sourceRoot":"","sources":["../../src/generators/docusaurus-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOxD,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAe3E"}
@@ -0,0 +1,285 @@
1
+ import { PlantUMLIntegration } from '../plugins/plantuml-integration.js';
2
+ import { RedocIntegration } from '../plugins/redoc-integration.js';
3
+ import { SearchIntegration } from '../plugins/search-integration.js';
4
+ import { I18nIntegration } from '../plugins/i18n-integration.js';
5
+ import { LANG } from '../constants/languages.js';
6
+ export function generateDocusaurusConfig(selections) {
7
+ const { projectName, templates, features } = selections;
8
+ const enabledFeatures = features.filter(f => f.enabled);
9
+ // 複数テンプレートに応じた基本設定(最初のテンプレートをベースにする)
10
+ const primaryTemplate = templates[0];
11
+ const baseConfig = getBaseConfigForTemplate(primaryTemplate.name, projectName);
12
+ // 機能に応じた設定を追加
13
+ const config = applyFeatureConfigurations(baseConfig, enabledFeatures);
14
+ // 設定の妥当性を検証
15
+ validateConfig(config);
16
+ return generateConfigString(config);
17
+ }
18
+ function getBaseConfigForTemplate(templateName, projectName) {
19
+ const baseConfig = {
20
+ title: projectName,
21
+ tagline: getTaglineForTemplate(templateName),
22
+ favicon: 'img/favicon.ico',
23
+ url: 'https://your-docusaurus-site.example.com',
24
+ baseUrl: '/',
25
+ organizationName: 'your-org',
26
+ projectName: projectName,
27
+ onBrokenLinks: 'throw',
28
+ onBrokenMarkdownLinks: 'warn',
29
+ i18n: {
30
+ defaultLocale: LANG.EN.code,
31
+ locales: [LANG.EN.code]
32
+ },
33
+ presets: [
34
+ [
35
+ 'classic',
36
+ getPresetConfigForTemplate(templateName)
37
+ ]
38
+ ],
39
+ themeConfig: getThemeConfigForTemplate(templateName, projectName),
40
+ plugins: []
41
+ };
42
+ return baseConfig;
43
+ }
44
+ function getTaglineForTemplate(templateName) {
45
+ const taglines = {
46
+ 'classic-spec': 'Classic Specification Documentation',
47
+ 'api-spec': 'API Specification Documentation',
48
+ 'technical-spec': 'Technical Specification Documentation',
49
+ 'enterprise-spec': 'Enterprise Specification Documentation'
50
+ };
51
+ return taglines[templateName] || 'Documentation Site';
52
+ }
53
+ function getPresetConfigForTemplate(templateName) {
54
+ const basePresetConfig = {
55
+ docs: {
56
+ sidebarPath: './sidebars.js',
57
+ editUrl: 'https://github.com/your-org/your-repo/tree/main/'
58
+ },
59
+ theme: {
60
+ customCss: './src/css/custom.css'
61
+ }
62
+ };
63
+ // テンプレートに応じてブログ機能を調整
64
+ if (templateName === 'classic-spec') {
65
+ return {
66
+ ...basePresetConfig,
67
+ blog: {
68
+ showReadingTime: true,
69
+ editUrl: 'https://github.com/your-org/your-repo/tree/main/'
70
+ }
71
+ };
72
+ }
73
+ // 仕様書系テンプレートではブログを無効化
74
+ return {
75
+ ...basePresetConfig,
76
+ blog: false
77
+ };
78
+ }
79
+ function getThemeConfigForTemplate(templateName, projectName) {
80
+ const baseThemeConfig = {
81
+ image: 'img/docusaurus-social-card.jpg',
82
+ navbar: {
83
+ title: projectName,
84
+ logo: {
85
+ alt: `${projectName} Logo`,
86
+ src: 'img/logo.svg'
87
+ },
88
+ items: getNavbarItemsForTemplate(templateName)
89
+ },
90
+ footer: {
91
+ style: 'dark',
92
+ links: getFooterLinksForTemplate(templateName),
93
+ copyright: `Copyright © ${new Date().getFullYear()} ${projectName}. Built with Docusaurus.`
94
+ },
95
+ prism: {
96
+ theme: 'github',
97
+ darkTheme: 'dracula'
98
+ }
99
+ };
100
+ return baseThemeConfig;
101
+ }
102
+ function getNavbarItemsForTemplate(templateName) {
103
+ const baseItems = [
104
+ {
105
+ href: 'https://github.com/your-org/your-repo',
106
+ label: 'GitHub',
107
+ position: 'right'
108
+ }
109
+ ];
110
+ switch (templateName) {
111
+ case 'classic-spec':
112
+ return [
113
+ {
114
+ type: 'docSidebar',
115
+ sidebarId: 'tutorialSidebar',
116
+ position: 'left',
117
+ label: 'Documentation'
118
+ },
119
+ ...baseItems
120
+ ];
121
+ case 'api-spec':
122
+ return [
123
+ {
124
+ type: 'docSidebar',
125
+ sidebarId: 'apiSidebar',
126
+ position: 'left',
127
+ label: 'API Reference'
128
+ },
129
+ {
130
+ type: 'docSidebar',
131
+ sidebarId: 'guidesSidebar',
132
+ position: 'left',
133
+ label: 'Guides'
134
+ },
135
+ ...baseItems
136
+ ];
137
+ case 'technical-spec':
138
+ return [
139
+ {
140
+ type: 'docSidebar',
141
+ sidebarId: 'architectureSidebar',
142
+ position: 'left',
143
+ label: 'Architecture'
144
+ },
145
+ {
146
+ type: 'docSidebar',
147
+ sidebarId: 'implementationSidebar',
148
+ position: 'left',
149
+ label: 'Implementation'
150
+ },
151
+ ...baseItems
152
+ ];
153
+ case 'enterprise-spec':
154
+ return [
155
+ {
156
+ type: 'docSidebar',
157
+ sidebarId: 'overviewSidebar',
158
+ position: 'left',
159
+ label: 'Overview'
160
+ },
161
+ {
162
+ type: 'docSidebar',
163
+ sidebarId: 'specificationSidebar',
164
+ position: 'left',
165
+ label: 'Specifications'
166
+ },
167
+ {
168
+ type: 'docSidebar',
169
+ sidebarId: 'processSidebar',
170
+ position: 'left',
171
+ label: 'Processes'
172
+ },
173
+ ...baseItems
174
+ ];
175
+ default:
176
+ return [
177
+ {
178
+ type: 'docSidebar',
179
+ sidebarId: 'tutorialSidebar',
180
+ position: 'left',
181
+ label: 'Documentation'
182
+ },
183
+ ...baseItems
184
+ ];
185
+ }
186
+ }
187
+ function getFooterLinksForTemplate(templateName) {
188
+ const baseLinks = [
189
+ {
190
+ title: 'Community',
191
+ items: [
192
+ {
193
+ label: 'GitHub',
194
+ href: 'https://github.com/your-org/your-repo'
195
+ }
196
+ ]
197
+ }
198
+ ];
199
+ const docLinks = {
200
+ title: 'Documentation',
201
+ items: [
202
+ {
203
+ label: 'Getting Started',
204
+ to: '/docs/intro'
205
+ }
206
+ ]
207
+ };
208
+ return [docLinks, ...baseLinks];
209
+ }
210
+ function applyFeatureConfigurations(config, enabledFeatures) {
211
+ // Add feature-specific configurations using dedicated integration classes
212
+ for (const feature of enabledFeatures) {
213
+ let featureConfig = {};
214
+ switch (feature.name) {
215
+ case 'plantuml':
216
+ featureConfig = PlantUMLIntegration.generateDocusaurusConfig(feature);
217
+ break;
218
+ case 'redoc':
219
+ featureConfig = RedocIntegration.generateDocusaurusConfig(feature);
220
+ break;
221
+ case 'search':
222
+ featureConfig = SearchIntegration.generateDocusaurusConfig(feature);
223
+ break;
224
+ case 'i18n':
225
+ featureConfig = I18nIntegration.generateDocusaurusConfig(feature);
226
+ break;
227
+ }
228
+ // Merge feature configuration into main config
229
+ if (featureConfig.themeConfig) {
230
+ config.themeConfig = mergeDeep(config.themeConfig, featureConfig.themeConfig);
231
+ }
232
+ if (featureConfig.plugins) {
233
+ config.plugins.push(...featureConfig.plugins);
234
+ }
235
+ if (featureConfig.i18n) {
236
+ config.i18n = { ...config.i18n, ...featureConfig.i18n };
237
+ }
238
+ if (featureConfig.presets) {
239
+ config.presets.push(...featureConfig.presets);
240
+ }
241
+ }
242
+ return config;
243
+ }
244
+ function validateConfig(config) {
245
+ // 必須フィールドの検証
246
+ const requiredFields = ['title', 'url', 'baseUrl', 'presets', 'themeConfig'];
247
+ for (const field of requiredFields) {
248
+ if (!config[field]) {
249
+ throw new Error(`Required configuration field missing: ${field}`);
250
+ }
251
+ }
252
+ // URL形式の検証
253
+ try {
254
+ new URL(config.url);
255
+ }
256
+ catch (error) {
257
+ throw new Error(`Invalid URL format: ${config.url}`);
258
+ }
259
+ // プリセット設定の検証
260
+ if (!Array.isArray(config.presets) || config.presets.length === 0) {
261
+ throw new Error('At least one preset must be configured');
262
+ }
263
+ }
264
+ function generateConfigString(config) {
265
+ return `// @ts-check
266
+ // Note: type annotations allow type checking and IDEs autocompletion
267
+
268
+ /** @type {import('@docusaurus/types').Config} */
269
+ const config = ${JSON.stringify(config, null, 2)};
270
+
271
+ module.exports = config;`;
272
+ }
273
+ function mergeDeep(target, source) {
274
+ const result = { ...target };
275
+ for (const key in source) {
276
+ if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {
277
+ result[key] = mergeDeep(result[key] || {}, source[key]);
278
+ }
279
+ else {
280
+ result[key] = source[key];
281
+ }
282
+ }
283
+ return result;
284
+ }
285
+ //# sourceMappingURL=docusaurus-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docusaurus-config.js","sourceRoot":"","sources":["../../src/generators/docusaurus-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { UserSelections } from '../types/index.js';
2
+ export declare function generatePackageJson(selections: UserSelections): any;
3
+ //# sourceMappingURL=package-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/generators/package-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,cAAc,GAAG,GAAG,CAsGnE"}