@nahisaho/katashiro-generator 0.2.2 → 0.2.4

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 (93) hide show
  1. package/dist/audio/AudioGenerator.d.ts +82 -0
  2. package/dist/audio/AudioGenerator.d.ts.map +1 -0
  3. package/dist/audio/AudioGenerator.js +561 -0
  4. package/dist/audio/AudioGenerator.js.map +1 -0
  5. package/dist/audio/SSMLBuilder.d.ts +114 -0
  6. package/dist/audio/SSMLBuilder.d.ts.map +1 -0
  7. package/dist/audio/SSMLBuilder.js +269 -0
  8. package/dist/audio/SSMLBuilder.js.map +1 -0
  9. package/dist/audio/index.d.ts +10 -0
  10. package/dist/audio/index.d.ts.map +1 -0
  11. package/dist/audio/index.js +12 -0
  12. package/dist/audio/index.js.map +1 -0
  13. package/dist/audio/types.d.ts +322 -0
  14. package/dist/audio/types.d.ts.map +1 -0
  15. package/dist/audio/types.js +102 -0
  16. package/dist/audio/types.js.map +1 -0
  17. package/dist/chart/ChartGenerator.d.ts +120 -0
  18. package/dist/chart/ChartGenerator.d.ts.map +1 -0
  19. package/dist/chart/ChartGenerator.js +328 -0
  20. package/dist/chart/ChartGenerator.js.map +1 -0
  21. package/dist/chart/DiagramGenerator.d.ts +141 -0
  22. package/dist/chart/DiagramGenerator.d.ts.map +1 -0
  23. package/dist/chart/DiagramGenerator.js +350 -0
  24. package/dist/chart/DiagramGenerator.js.map +1 -0
  25. package/dist/chart/MermaidBuilder.d.ts +291 -0
  26. package/dist/chart/MermaidBuilder.d.ts.map +1 -0
  27. package/dist/chart/MermaidBuilder.js +429 -0
  28. package/dist/chart/MermaidBuilder.js.map +1 -0
  29. package/dist/chart/SvgBuilder.d.ts +103 -0
  30. package/dist/chart/SvgBuilder.d.ts.map +1 -0
  31. package/dist/chart/SvgBuilder.js +503 -0
  32. package/dist/chart/SvgBuilder.js.map +1 -0
  33. package/dist/chart/index.d.ts +12 -0
  34. package/dist/chart/index.d.ts.map +1 -0
  35. package/dist/chart/index.js +13 -0
  36. package/dist/chart/index.js.map +1 -0
  37. package/dist/chart/types.d.ts +244 -0
  38. package/dist/chart/types.d.ts.map +1 -0
  39. package/dist/chart/types.js +107 -0
  40. package/dist/chart/types.js.map +1 -0
  41. package/dist/image/ImageGenerator.d.ts +145 -0
  42. package/dist/image/ImageGenerator.d.ts.map +1 -0
  43. package/dist/image/ImageGenerator.js +402 -0
  44. package/dist/image/ImageGenerator.js.map +1 -0
  45. package/dist/image/PromptOptimizer.d.ts +73 -0
  46. package/dist/image/PromptOptimizer.d.ts.map +1 -0
  47. package/dist/image/PromptOptimizer.js +295 -0
  48. package/dist/image/PromptOptimizer.js.map +1 -0
  49. package/dist/image/index.d.ts +10 -0
  50. package/dist/image/index.d.ts.map +1 -0
  51. package/dist/image/index.js +12 -0
  52. package/dist/image/index.js.map +1 -0
  53. package/dist/image/types.d.ts +237 -0
  54. package/dist/image/types.d.ts.map +1 -0
  55. package/dist/image/types.js +97 -0
  56. package/dist/image/types.js.map +1 -0
  57. package/dist/index.d.ts +5 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +40 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/ogp/OGPGenerator.d.ts +97 -0
  62. package/dist/ogp/OGPGenerator.d.ts.map +1 -0
  63. package/dist/ogp/OGPGenerator.js +245 -0
  64. package/dist/ogp/OGPGenerator.js.map +1 -0
  65. package/dist/ogp/OGPSvgBuilder.d.ts +95 -0
  66. package/dist/ogp/OGPSvgBuilder.d.ts.map +1 -0
  67. package/dist/ogp/OGPSvgBuilder.js +383 -0
  68. package/dist/ogp/OGPSvgBuilder.js.map +1 -0
  69. package/dist/ogp/index.d.ts +10 -0
  70. package/dist/ogp/index.d.ts.map +1 -0
  71. package/dist/ogp/index.js +12 -0
  72. package/dist/ogp/index.js.map +1 -0
  73. package/dist/ogp/types.d.ts +183 -0
  74. package/dist/ogp/types.d.ts.map +1 -0
  75. package/dist/ogp/types.js +204 -0
  76. package/dist/ogp/types.js.map +1 -0
  77. package/dist/video/FrameComposer.d.ts +95 -0
  78. package/dist/video/FrameComposer.d.ts.map +1 -0
  79. package/dist/video/FrameComposer.js +325 -0
  80. package/dist/video/FrameComposer.js.map +1 -0
  81. package/dist/video/VideoGenerator.d.ts +82 -0
  82. package/dist/video/VideoGenerator.d.ts.map +1 -0
  83. package/dist/video/VideoGenerator.js +325 -0
  84. package/dist/video/VideoGenerator.js.map +1 -0
  85. package/dist/video/index.d.ts +10 -0
  86. package/dist/video/index.d.ts.map +1 -0
  87. package/dist/video/index.js +12 -0
  88. package/dist/video/index.js.map +1 -0
  89. package/dist/video/types.d.ts +366 -0
  90. package/dist/video/types.d.ts.map +1 -0
  91. package/dist/video/types.js +111 -0
  92. package/dist/video/types.js.map +1 -0
  93. package/package.json +1 -1
@@ -0,0 +1,322 @@
1
+ /**
2
+ * Audio Generator Types
3
+ * 音声生成の型定義
4
+ * REQ-MEDIA-005: 音声/ポッドキャスト生成
5
+ */
6
+ /**
7
+ * 音声プロバイダー
8
+ */
9
+ export type AudioProvider = 'google-tts' | 'amazon-polly' | 'elevenlabs' | 'openai-tts' | 'azure-tts' | 'mock';
10
+ /**
11
+ * 音声フォーマット
12
+ */
13
+ export type AudioFormat = 'mp3' | 'wav' | 'ogg' | 'aac' | 'flac';
14
+ /**
15
+ * 音声品質
16
+ */
17
+ export type AudioQuality = 'low' | 'standard' | 'high' | 'ultra';
18
+ /**
19
+ * 話者の性別
20
+ */
21
+ export type VoiceGender = 'male' | 'female' | 'neutral';
22
+ /**
23
+ * 話し方のスタイル
24
+ */
25
+ export type SpeakingStyle = 'neutral' | 'newscast' | 'conversational' | 'cheerful' | 'empathetic' | 'calm' | 'sad' | 'excited' | 'friendly' | 'hopeful' | 'shouting' | 'whispering' | 'narration';
26
+ /**
27
+ * 言語コード
28
+ */
29
+ export type LanguageCode = 'ja-JP' | 'en-US' | 'en-GB' | 'zh-CN' | 'zh-TW' | 'ko-KR' | 'fr-FR' | 'de-DE' | 'es-ES' | 'it-IT' | 'pt-BR' | 'ru-RU';
30
+ /**
31
+ * 音声設定
32
+ */
33
+ export interface VoiceConfig {
34
+ /** 音声ID */
35
+ voiceId?: string;
36
+ /** 音声名 */
37
+ voiceName?: string;
38
+ /** 性別 */
39
+ gender?: VoiceGender;
40
+ /** 言語 */
41
+ language?: LanguageCode;
42
+ /** 話し方スタイル */
43
+ style?: SpeakingStyle;
44
+ /** 話速 (0.5-2.0) */
45
+ speed?: number;
46
+ /** ピッチ (-20 to 20) */
47
+ pitch?: number;
48
+ /** 音量 (-96 to 16 dB) */
49
+ volume?: number;
50
+ }
51
+ /**
52
+ * テキスト読み上げオプション
53
+ */
54
+ export interface TTSOptions {
55
+ /** 音声設定 */
56
+ voice?: VoiceConfig;
57
+ /** プロバイダー */
58
+ provider?: AudioProvider;
59
+ /** 出力フォーマット */
60
+ format?: AudioFormat;
61
+ /** 品質 */
62
+ quality?: AudioQuality;
63
+ /** サンプルレート (Hz) */
64
+ sampleRate?: number;
65
+ /** ビットレート (kbps) */
66
+ bitrate?: number;
67
+ /** SSML有効化 */
68
+ enableSSML?: boolean;
69
+ /** 句読点での自動ポーズ */
70
+ autoPause?: boolean;
71
+ }
72
+ /**
73
+ * SSML要素
74
+ */
75
+ export interface SSMLElement {
76
+ /** 要素タイプ */
77
+ type: 'break' | 'emphasis' | 'prosody' | 'say-as' | 'phoneme' | 'sub';
78
+ /** 属性 */
79
+ attributes: Record<string, string>;
80
+ /** 内容 */
81
+ content?: string;
82
+ }
83
+ /**
84
+ * テキストセグメント
85
+ */
86
+ export interface TextSegment {
87
+ /** テキスト */
88
+ text: string;
89
+ /** 話者ID */
90
+ speakerId?: string;
91
+ /** 音声設定(オーバーライド) */
92
+ voice?: Partial<VoiceConfig>;
93
+ /** SSML要素 */
94
+ ssml?: SSMLElement[];
95
+ /** 前のポーズ(ミリ秒) */
96
+ pauseBefore?: number;
97
+ /** 後のポーズ(ミリ秒) */
98
+ pauseAfter?: number;
99
+ }
100
+ /**
101
+ * ポッドキャスト話者
102
+ */
103
+ export interface PodcastSpeaker {
104
+ /** 話者ID */
105
+ id: string;
106
+ /** 話者名 */
107
+ name: string;
108
+ /** 音声設定 */
109
+ voice: VoiceConfig;
110
+ /** 役割 */
111
+ role?: 'host' | 'guest' | 'narrator';
112
+ }
113
+ /**
114
+ * ポッドキャストセグメント
115
+ */
116
+ export interface PodcastSegment {
117
+ /** 話者ID */
118
+ speakerId: string;
119
+ /** テキスト */
120
+ text: string;
121
+ /** スタイル */
122
+ style?: SpeakingStyle;
123
+ /** 感情 */
124
+ emotion?: string;
125
+ /** 前のポーズ(ミリ秒) */
126
+ pauseBefore?: number;
127
+ /** 後のポーズ(ミリ秒) */
128
+ pauseAfter?: number;
129
+ }
130
+ /**
131
+ * ポッドキャストスクリプト
132
+ */
133
+ export interface PodcastScript {
134
+ /** タイトル */
135
+ title: string;
136
+ /** 説明 */
137
+ description?: string;
138
+ /** イントロテキスト */
139
+ intro?: string;
140
+ /** アウトロテキスト */
141
+ outro?: string;
142
+ /** 話者リスト */
143
+ speakers: PodcastSpeaker[];
144
+ /** セグメント */
145
+ segments: PodcastSegment[];
146
+ /** BGM設定 */
147
+ backgroundMusic?: {
148
+ /** 音声ファイルパス */
149
+ path: string;
150
+ /** 音量 (0-1) */
151
+ volume: number;
152
+ /** フェードイン(ミリ秒) */
153
+ fadeIn?: number;
154
+ /** フェードアウト(ミリ秒) */
155
+ fadeOut?: number;
156
+ };
157
+ }
158
+ /**
159
+ * 音声バッファ
160
+ */
161
+ export interface AudioBuffer {
162
+ /** 生データ */
163
+ data: Uint8Array;
164
+ /** フォーマット */
165
+ format: AudioFormat;
166
+ /** サンプルレート */
167
+ sampleRate: number;
168
+ /** チャンネル数 */
169
+ channels: number;
170
+ /** 持続時間(秒) */
171
+ duration: number;
172
+ /** ビットレート */
173
+ bitrate?: number;
174
+ }
175
+ /**
176
+ * 生成された音声セグメント
177
+ */
178
+ export interface GeneratedAudioSegment {
179
+ /** 開始時間(秒) */
180
+ startTime: number;
181
+ /** 終了時間(秒) */
182
+ endTime: number;
183
+ /** テキスト */
184
+ text: string;
185
+ /** 話者ID */
186
+ speaker?: string;
187
+ }
188
+ /**
189
+ * 生成された音声
190
+ */
191
+ export interface GeneratedAudio {
192
+ /** 音声データ */
193
+ audio: AudioBuffer;
194
+ /** メタデータ */
195
+ metadata: AudioMetadata;
196
+ /** セグメント情報 */
197
+ segments: GeneratedAudioSegment[];
198
+ }
199
+ /**
200
+ * 音声メタデータ
201
+ */
202
+ export interface AudioMetadata {
203
+ /** タイトル */
204
+ title?: string;
205
+ /** 説明 */
206
+ description?: string;
207
+ /** フォーマット */
208
+ format: AudioFormat;
209
+ /** 持続時間(秒) */
210
+ duration: number;
211
+ /** サンプルレート */
212
+ sampleRate: number;
213
+ /** チャンネル数 */
214
+ channels: number;
215
+ /** ビットレート */
216
+ bitrate?: number;
217
+ /** ファイルサイズ(バイト) */
218
+ fileSize: number;
219
+ /** 作成日時 */
220
+ createdAt: string;
221
+ /** 使用プロバイダー */
222
+ provider: AudioProvider;
223
+ /** 使用音声 */
224
+ voice?: string;
225
+ /** 言語 */
226
+ language?: LanguageCode;
227
+ /** テキスト長 */
228
+ textLength?: number;
229
+ /** 単語数 */
230
+ wordCount?: number;
231
+ /** 話者リスト */
232
+ speakers?: string[];
233
+ /** セグメント数 */
234
+ segmentCount?: number;
235
+ }
236
+ /**
237
+ * 利用可能な音声
238
+ */
239
+ export interface AvailableVoice {
240
+ /** 音声ID */
241
+ voiceId: string;
242
+ /** 音声名 */
243
+ name: string;
244
+ /** 言語 */
245
+ language: LanguageCode;
246
+ /** 性別 */
247
+ gender: VoiceGender;
248
+ /** サポートスタイル */
249
+ styles?: SpeakingStyle[];
250
+ /** プレビューURL */
251
+ previewUrl?: string;
252
+ }
253
+ /**
254
+ * 音声ジェネレーターオプション
255
+ */
256
+ export interface AudioGeneratorOptions {
257
+ /** プロバイダー */
258
+ provider?: AudioProvider;
259
+ /** APIキー */
260
+ apiKey?: string;
261
+ /** AWS認証情報 */
262
+ awsCredentials?: {
263
+ accessKeyId: string;
264
+ secretAccessKey: string;
265
+ region: string;
266
+ };
267
+ /** Azure認証情報 */
268
+ azureCredentials?: {
269
+ subscriptionKey: string;
270
+ region: string;
271
+ };
272
+ /** デフォルト音声フォーマット */
273
+ defaultFormat?: AudioFormat;
274
+ /** デフォルト品質 */
275
+ defaultQuality?: AudioQuality;
276
+ /** タイムアウト(ミリ秒) */
277
+ timeout?: number;
278
+ /** リトライ回数 */
279
+ maxRetries?: number;
280
+ }
281
+ /**
282
+ * プリセット音声
283
+ */
284
+ export declare const PRESET_VOICES: Record<string, VoiceConfig>;
285
+ /**
286
+ * 品質プリセット
287
+ */
288
+ export declare const QUALITY_PRESETS: Record<AudioQuality, {
289
+ sampleRate: number;
290
+ bitrate: number;
291
+ }>;
292
+ /**
293
+ * デフォルトTTSオプション
294
+ */
295
+ export declare const DEFAULT_TTS_OPTIONS: TTSOptions;
296
+ /**
297
+ * 音声ジェネレーターエラー
298
+ */
299
+ export declare class AudioGeneratorError extends Error {
300
+ readonly code: string;
301
+ readonly details?: Record<string, unknown>;
302
+ constructor(message: string, code: string, details?: Record<string, unknown>);
303
+ }
304
+ /**
305
+ * エラーコード
306
+ */
307
+ export declare const AUDIO_ERROR_CODES: {
308
+ readonly INVALID_TEXT: "AUDIO_INVALID_TEXT";
309
+ readonly INVALID_OPTIONS: "AUDIO_INVALID_OPTIONS";
310
+ readonly INVALID_SCRIPT: "AUDIO_INVALID_SCRIPT";
311
+ readonly PROVIDER_NOT_CONFIGURED: "AUDIO_PROVIDER_NOT_CONFIGURED";
312
+ readonly PROVIDER_NOT_AVAILABLE: "AUDIO_PROVIDER_NOT_AVAILABLE";
313
+ readonly VOICE_NOT_AVAILABLE: "AUDIO_VOICE_NOT_AVAILABLE";
314
+ readonly VOICE_NOT_FOUND: "AUDIO_VOICE_NOT_FOUND";
315
+ readonly SPEAKER_NOT_FOUND: "AUDIO_SPEAKER_NOT_FOUND";
316
+ readonly SYNTHESIS_FAILED: "AUDIO_SYNTHESIS_FAILED";
317
+ readonly EXPORT_FAILED: "AUDIO_EXPORT_FAILED";
318
+ readonly RATE_LIMITED: "AUDIO_RATE_LIMITED";
319
+ readonly QUOTA_EXCEEDED: "AUDIO_QUOTA_EXCEEDED";
320
+ readonly API_ERROR: "AUDIO_API_ERROR";
321
+ };
322
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/audio/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Audio Generator Types
3
+ * 音声生成の型定義
4
+ * REQ-MEDIA-005: 音声/ポッドキャスト生成
5
+ */
6
+ /**
7
+ * プリセット音声
8
+ */
9
+ export const PRESET_VOICES = {
10
+ // 日本語
11
+ 'ja-female-1': {
12
+ voiceName: 'ja-JP-Wavenet-A',
13
+ language: 'ja-JP',
14
+ gender: 'female',
15
+ style: 'neutral',
16
+ },
17
+ 'ja-male-1': {
18
+ voiceName: 'ja-JP-Wavenet-C',
19
+ language: 'ja-JP',
20
+ gender: 'male',
21
+ style: 'neutral',
22
+ },
23
+ 'ja-news': {
24
+ voiceName: 'ja-JP-Neural2-B',
25
+ language: 'ja-JP',
26
+ gender: 'female',
27
+ style: 'newscast',
28
+ },
29
+ // 英語
30
+ 'en-female-1': {
31
+ voiceName: 'en-US-Wavenet-F',
32
+ language: 'en-US',
33
+ gender: 'female',
34
+ style: 'neutral',
35
+ },
36
+ 'en-male-1': {
37
+ voiceName: 'en-US-Wavenet-D',
38
+ language: 'en-US',
39
+ gender: 'male',
40
+ style: 'neutral',
41
+ },
42
+ 'en-conversational': {
43
+ voiceName: 'en-US-Neural2-J',
44
+ language: 'en-US',
45
+ gender: 'male',
46
+ style: 'conversational',
47
+ },
48
+ };
49
+ /**
50
+ * 品質プリセット
51
+ */
52
+ export const QUALITY_PRESETS = {
53
+ low: { sampleRate: 16000, bitrate: 64 },
54
+ standard: { sampleRate: 22050, bitrate: 128 },
55
+ high: { sampleRate: 44100, bitrate: 192 },
56
+ ultra: { sampleRate: 48000, bitrate: 320 },
57
+ };
58
+ /**
59
+ * デフォルトTTSオプション
60
+ */
61
+ export const DEFAULT_TTS_OPTIONS = {
62
+ provider: 'mock',
63
+ format: 'mp3',
64
+ quality: 'standard',
65
+ sampleRate: 22050,
66
+ bitrate: 128,
67
+ enableSSML: false,
68
+ autoPause: true,
69
+ };
70
+ /**
71
+ * 音声ジェネレーターエラー
72
+ */
73
+ export class AudioGeneratorError extends Error {
74
+ code;
75
+ details;
76
+ constructor(message, code, details) {
77
+ super(message);
78
+ this.name = 'AudioGeneratorError';
79
+ this.code = code;
80
+ this.details = details;
81
+ Object.setPrototypeOf(this, AudioGeneratorError.prototype);
82
+ }
83
+ }
84
+ /**
85
+ * エラーコード
86
+ */
87
+ export const AUDIO_ERROR_CODES = {
88
+ INVALID_TEXT: 'AUDIO_INVALID_TEXT',
89
+ INVALID_OPTIONS: 'AUDIO_INVALID_OPTIONS',
90
+ INVALID_SCRIPT: 'AUDIO_INVALID_SCRIPT',
91
+ PROVIDER_NOT_CONFIGURED: 'AUDIO_PROVIDER_NOT_CONFIGURED',
92
+ PROVIDER_NOT_AVAILABLE: 'AUDIO_PROVIDER_NOT_AVAILABLE',
93
+ VOICE_NOT_AVAILABLE: 'AUDIO_VOICE_NOT_AVAILABLE',
94
+ VOICE_NOT_FOUND: 'AUDIO_VOICE_NOT_FOUND',
95
+ SPEAKER_NOT_FOUND: 'AUDIO_SPEAKER_NOT_FOUND',
96
+ SYNTHESIS_FAILED: 'AUDIO_SYNTHESIS_FAILED',
97
+ EXPORT_FAILED: 'AUDIO_EXPORT_FAILED',
98
+ RATE_LIMITED: 'AUDIO_RATE_LIMITED',
99
+ QUOTA_EXCEEDED: 'AUDIO_QUOTA_EXCEEDED',
100
+ API_ERROR: 'AUDIO_API_ERROR',
101
+ };
102
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/audio/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuUH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAgC;IACxD,MAAM;IACN,aAAa,EAAE;QACb,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,SAAS;KACjB;IACD,WAAW,EAAE;QACX,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,SAAS;KACjB;IACD,SAAS,EAAE;QACT,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,UAAU;KAClB;IACD,KAAK;IACL,aAAa,EAAE;QACb,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,SAAS;KACjB;IACD,WAAW,EAAE;QACX,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,SAAS;KACjB;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,gBAAgB;KACxB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAkE;IAC5F,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACvC,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE;IAC7C,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE;IACzC,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5B,IAAI,CAAS;IACb,OAAO,CAA2B;IAElD,YAAY,OAAe,EAAE,IAAY,EAAE,OAAiC;QAC1E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,YAAY,EAAE,oBAAoB;IAClC,eAAe,EAAE,uBAAuB;IACxC,cAAc,EAAE,sBAAsB;IACtC,uBAAuB,EAAE,+BAA+B;IACxD,sBAAsB,EAAE,8BAA8B;IACtD,mBAAmB,EAAE,2BAA2B;IAChD,eAAe,EAAE,uBAAuB;IACxC,iBAAiB,EAAE,yBAAyB;IAC5C,gBAAgB,EAAE,wBAAwB;IAC1C,aAAa,EAAE,qBAAqB;IACpC,YAAY,EAAE,oBAAoB;IAClC,cAAc,EAAE,sBAAsB;IACtC,SAAS,EAAE,iBAAiB;CACpB,CAAC"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * ChartGenerator
3
+ * SVGチャートの生成
4
+ * REQ-MEDIA-002-001: チャート生成
5
+ */
6
+ import { type Result } from '@nahisaho/katashiro-core';
7
+ import type { IChartGenerator } from '../interfaces.js';
8
+ import type { ChartConfig } from '../types.js';
9
+ import type { ChartData, ChartOptions, ChartOutput, ChartGeneratorConfig, OutputFormat } from './types.js';
10
+ /**
11
+ * チャートジェネレータークラス
12
+ * 各種チャートをSVG形式で生成
13
+ */
14
+ export declare class ChartGenerator implements IChartGenerator {
15
+ private readonly config;
16
+ constructor(config?: Partial<ChartGeneratorConfig>);
17
+ /**
18
+ * チャートを生成(IChartGenerator実装)
19
+ * @param data チャートデータ
20
+ * @param config チャート設定
21
+ * @returns 生成結果
22
+ */
23
+ generate(data: unknown, config: ChartConfig): Promise<Result<string, Error>>;
24
+ /**
25
+ * チャートを生成(拡張版)
26
+ * @param data チャートデータ
27
+ * @param options チャートオプション
28
+ * @param format 出力フォーマット
29
+ * @returns チャート出力
30
+ */
31
+ generateChart(data: ChartData, options: ChartOptions, format?: OutputFormat): Promise<ChartOutput>;
32
+ /**
33
+ * 棒グラフを生成
34
+ */
35
+ generateBarChart(labels: string[], series: Array<{
36
+ name: string;
37
+ data: number[];
38
+ color?: string;
39
+ }>, options?: Partial<ChartOptions>): Promise<ChartOutput>;
40
+ /**
41
+ * 折れ線グラフを生成
42
+ */
43
+ generateLineChart(labels: string[], series: Array<{
44
+ name: string;
45
+ data: number[];
46
+ color?: string;
47
+ style?: 'solid' | 'dashed' | 'dotted';
48
+ }>, options?: Partial<ChartOptions>): Promise<ChartOutput>;
49
+ /**
50
+ * 円グラフを生成
51
+ */
52
+ generatePieChart(data: Array<{
53
+ label: string;
54
+ value: number;
55
+ color?: string;
56
+ }>, options?: Partial<ChartOptions> & {
57
+ isDoughnut?: boolean;
58
+ }): Promise<ChartOutput>;
59
+ /**
60
+ * 散布図を生成
61
+ */
62
+ generateScatterChart(series: Array<{
63
+ name: string;
64
+ data: Array<{
65
+ x: number;
66
+ y: number;
67
+ size?: number;
68
+ }>;
69
+ color?: string;
70
+ }>, options?: Partial<ChartOptions>): Promise<ChartOutput>;
71
+ /**
72
+ * エリアチャートを生成
73
+ */
74
+ generateAreaChart(labels: string[], series: Array<{
75
+ name: string;
76
+ data: number[];
77
+ color?: string;
78
+ }>, options?: Partial<ChartOptions>): Promise<ChartOutput>;
79
+ /**
80
+ * レーダーチャートを生成
81
+ */
82
+ generateRadarChart(labels: string[], series: Array<{
83
+ name: string;
84
+ data: number[];
85
+ color?: string;
86
+ }>, options?: Partial<ChartOptions>): Promise<ChartOutput>;
87
+ /**
88
+ * 複合チャートを生成
89
+ */
90
+ generateComboChart(labels: string[], barSeries: Array<{
91
+ name: string;
92
+ data: number[];
93
+ color?: string;
94
+ }>, lineSeries: Array<{
95
+ name: string;
96
+ data: number[];
97
+ color?: string;
98
+ }>, options?: Partial<ChartOptions>): Promise<ChartOutput>;
99
+ /**
100
+ * データの検証
101
+ */
102
+ private validateData;
103
+ /**
104
+ * チャートデータの検証
105
+ */
106
+ private validateChartData;
107
+ /**
108
+ * オプションの検証
109
+ */
110
+ private validateOptions;
111
+ /**
112
+ * ChartConfig.typeをChartTypeにマップ
113
+ */
114
+ private mapChartType;
115
+ /**
116
+ * SVGをPNGに変換(Node.js環境用)
117
+ */
118
+ private convertToPng;
119
+ }
120
+ //# sourceMappingURL=ChartGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartGenerator.d.ts","sourceRoot":"","sources":["../../src/chart/ChartGenerator.ts"],"names":[],"mappings":"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"}