mediacript 1.0.2 → 1.0.3

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.
@@ -1,22 +1,22 @@
1
1
  import { Config } from '../types/index.js';
2
2
  /**
3
- * Carrega a configuração salva
3
+ * Loads saved configuration
4
4
  */
5
5
  export declare function loadConfig(): Config;
6
6
  /**
7
- * Salva a configuração
7
+ * Saves configuration
8
8
  */
9
9
  export declare function saveConfig(config: Config): void;
10
10
  /**
11
- * Solicita as API keys ao usuário (interativo)
11
+ * Prompts user for API keys (interactive)
12
12
  */
13
13
  export declare function promptApiKeys(): Promise<Config>;
14
14
  /**
15
- * Verifica se pelo menos uma API key configurada
15
+ * Checks if at least one API key is configured
16
16
  */
17
17
  export declare function hasApiKey(config: Config): boolean;
18
18
  /**
19
- * Obtém a configuração, solicitando ao usuário se necessário
19
+ * Gets configuration, prompting the user if necessary
20
20
  */
21
21
  export declare function ensureConfig(): Promise<Config>;
22
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAwB1C;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAWnC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAe/C;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CA6BrD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CA2BpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAwB1C;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAWnC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAe/C;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CA6BrD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CA2DpD"}
@@ -3,7 +3,7 @@ import path from 'path';
3
3
  import os from 'os';
4
4
  import inquirer from 'inquirer';
5
5
  /**
6
- * Retorna o diretório de configuração baseado no sistema operacional
6
+ * Returns the configuration directory based on the operating system
7
7
  * Linux/Mac: ~/.config/ffmpeg-simple-converter
8
8
  * Windows: %APPDATA%/ffmpeg-simple-converter
9
9
  */
@@ -23,7 +23,7 @@ function getConfigFilePath() {
23
23
  return path.join(getConfigDir(), 'config.json');
24
24
  }
25
25
  /**
26
- * Carrega a configuração salva
26
+ * Loads saved configuration
27
27
  */
28
28
  export function loadConfig() {
29
29
  try {
@@ -34,33 +34,33 @@ export function loadConfig() {
34
34
  }
35
35
  }
36
36
  catch (error) {
37
- console.warn('Erro ao carregar configuração:', error);
37
+ console.warn('Error loading configuration:', error);
38
38
  }
39
39
  return {};
40
40
  }
41
41
  /**
42
- * Salva a configuração
42
+ * Saves configuration
43
43
  */
44
44
  export function saveConfig(config) {
45
45
  try {
46
46
  const configDir = getConfigDir();
47
47
  const configPath = getConfigFilePath();
48
- // Cria o diretório se não existir
48
+ // Create directory if it doesn't exist
49
49
  if (!fs.existsSync(configDir)) {
50
50
  fs.mkdirSync(configDir, { recursive: true });
51
51
  }
52
52
  fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
53
- console.log(`✓ Configuração salva em: ${configPath}`);
53
+ console.log(`✓ Configuration saved in: ${configPath}`);
54
54
  }
55
55
  catch (error) {
56
- console.error('Erro ao salvar configuração:', error);
56
+ console.error('Error saving configuration:', error);
57
57
  }
58
58
  }
59
59
  /**
60
- * Solicita as API keys ao usuário (interativo)
60
+ * Prompts user for API keys (interactive)
61
61
  */
62
62
  export async function promptApiKeys() {
63
- console.log('\n🔑 Configure suas API keys (opcional - pressione Enter para pular)\n');
63
+ console.log('\n🔑 Configure your API keys (optional - press Enter to skip)\n');
64
64
  const answers = await inquirer.prompt([
65
65
  {
66
66
  type: 'input',
@@ -85,24 +85,28 @@ export async function promptApiKeys() {
85
85
  return config;
86
86
  }
87
87
  /**
88
- * Verifica se pelo menos uma API key configurada
88
+ * Checks if at least one API key is configured
89
89
  */
90
90
  export function hasApiKey(config) {
91
91
  return !!(config.openaiApiKey || config.groqApiKey);
92
92
  }
93
93
  /**
94
- * Obtém a configuração, solicitando ao usuário se necessário
94
+ * Gets configuration, prompting the user if necessary
95
95
  */
96
96
  export async function ensureConfig() {
97
97
  let config = loadConfig();
98
- // Se não tem nenhuma API key, pergunta ao usuário
98
+ // Display where API keys are being loaded from
99
+ const configPath = getConfigFilePath();
100
+ console.log(`\n🔑 API Keys Configuration`);
101
+ console.log(`ℹ️ Loading from: ${configPath}`);
102
+ // If no API keys are found
99
103
  if (!hasApiKey(config)) {
100
- console.log('\n⚠️ Nenhuma API key encontrada.');
104
+ console.log('⚠️ No API keys found.');
101
105
  const { shouldConfigure } = await inquirer.prompt([
102
106
  {
103
107
  type: 'confirm',
104
108
  name: 'shouldConfigure',
105
- message: 'Deseja configurar suas API keys agora?',
109
+ message: 'Would you like to configure your API keys now?',
106
110
  default: true
107
111
  }
108
112
  ]);
@@ -114,6 +118,31 @@ export async function ensureConfig() {
114
118
  }
115
119
  }
116
120
  }
121
+ else {
122
+ // Display current API keys status
123
+ console.log('✓ API Keys found:');
124
+ if (config.groqApiKey) {
125
+ console.log(' • Groq API Key: Configured');
126
+ }
127
+ if (config.openaiApiKey) {
128
+ console.log(' • OpenAI API Key: Configured');
129
+ }
130
+ const { updateKeys } = await inquirer.prompt([
131
+ {
132
+ type: 'confirm',
133
+ name: 'updateKeys',
134
+ message: 'Would you like to update or add new API keys?',
135
+ default: false
136
+ }
137
+ ]);
138
+ if (updateKeys) {
139
+ const newConfig = await promptApiKeys();
140
+ if (hasApiKey(newConfig)) {
141
+ config = { ...config, ...newConfig };
142
+ saveConfig(config);
143
+ }
144
+ }
145
+ }
117
146
  return config;
118
147
  }
119
148
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,53 +9,53 @@ import { createWorkflowState, updateStepStatus, nextStep, printWorkflowProgress,
9
9
  import path from 'path';
10
10
  const WORKFLOW_OPTIONS = [
11
11
  {
12
- name: '🎬 Converter vídeo + Extrair áudio + Transcrever',
12
+ name: '🎬 Convert video + Extract audio + Transcribe',
13
13
  value: 'video-full',
14
- steps: ['Converter vídeo', 'Extrair áudio', 'Transcrever áudio'],
14
+ steps: ['Convert video', 'Extract audio', 'Transcribe audio'],
15
15
  requiresType: 'video'
16
16
  },
17
17
  {
18
- name: '🎬 Extrair áudio do vídeo + Transcrever',
18
+ name: '🎬 Extract audio from video + Transcribe',
19
19
  value: 'video-extract-transcribe',
20
- steps: ['Extrair áudio', 'Transcrever áudio'],
20
+ steps: ['Extract audio', 'Transcribe audio'],
21
21
  requiresType: 'video'
22
22
  },
23
23
  {
24
- name: '🎵 Converter áudio + Transcrever',
24
+ name: '🎵 Convert audio + Transcribe',
25
25
  value: 'audio-convert-transcribe',
26
- steps: ['Converter áudio', 'Transcrever áudio'],
26
+ steps: ['Convert audio', 'Transcribe audio'],
27
27
  requiresType: 'audio'
28
28
  },
29
29
  {
30
- name: '🎙️ Apenas transcrever áudio',
30
+ name: '🎙️ Transcribe audio only',
31
31
  value: 'audio-transcribe',
32
- steps: ['Transcrever áudio'],
32
+ steps: ['Transcribe audio'],
33
33
  requiresType: 'audio'
34
34
  },
35
35
  {
36
- name: '🎬 Apenas converter vídeo',
36
+ name: '🎬 Convert video only',
37
37
  value: 'video-convert',
38
- steps: ['Converter vídeo'],
38
+ steps: ['Convert video'],
39
39
  requiresType: 'video'
40
40
  },
41
41
  {
42
- name: '🎵 Apenas converter áudio',
42
+ name: '🎵 Convert audio only',
43
43
  value: 'audio-convert',
44
- steps: ['Converter áudio'],
44
+ steps: ['Convert audio'],
45
45
  requiresType: 'audio'
46
46
  },
47
47
  {
48
- name: '🎵 Apenas extrair áudio do vídeo',
48
+ name: '🎵 Extract audio from video only',
49
49
  value: 'video-extract',
50
- steps: ['Extrair áudio'],
50
+ steps: ['Extract audio'],
51
51
  requiresType: 'video'
52
52
  }
53
53
  ];
54
54
  async function executeWorkflow(workflow, inputFile, config) {
55
55
  const state = createWorkflowState(inputFile, workflow.steps);
56
56
  const outputDir = path.dirname(inputFile);
57
- console.log(`\n🚀 Iniciando workflow: ${workflow.name}`);
58
- console.log(`📁 Arquivo de entrada: ${path.basename(inputFile)}\n`);
57
+ console.log(`\n🚀 Starting workflow: ${workflow.name}`);
58
+ console.log(`📁 Input file: ${path.basename(inputFile)}\n`);
59
59
  let currentFile = inputFile;
60
60
  let audioFile;
61
61
  let transcriptionFile;
@@ -67,28 +67,28 @@ async function executeWorkflow(workflow, inputFile, config) {
67
67
  console.log(`\n[${i + 1}/${state.steps.length}] ${step.name}...`);
68
68
  try {
69
69
  switch (step.name) {
70
- case 'Converter vídeo':
70
+ case 'Convert video':
71
71
  currentFile = await convertVideo(currentFile, outputDir);
72
72
  state.intermediateFiles.convertedVideo = currentFile;
73
73
  updateStepStatus(state, i, 'completed', { outputFile: currentFile });
74
74
  break;
75
- case 'Extrair áudio':
75
+ case 'Extract audio':
76
76
  audioFile = await extractAudio(currentFile, outputDir);
77
77
  state.intermediateFiles.extractedAudio = audioFile;
78
78
  currentFile = audioFile;
79
79
  updateStepStatus(state, i, 'completed', { outputFile: audioFile });
80
80
  break;
81
- case 'Converter áudio':
81
+ case 'Convert audio':
82
82
  audioFile = await convertAudio(currentFile, outputDir);
83
83
  currentFile = audioFile;
84
84
  updateStepStatus(state, i, 'completed', { outputFile: audioFile });
85
85
  break;
86
- case 'Transcrever áudio':
86
+ case 'Transcribe audio':
87
87
  // Usa o arquivo de áudio atual ou o arquivo de entrada se for áudio
88
88
  const fileToTranscribe = audioFile || currentFile;
89
- // Verifica se API key
89
+ // Check if API key is configured
90
90
  if (!hasApiKey(config)) {
91
- console.log('\n⚠️ Pulando transcrição - nenhuma API key configurada');
91
+ console.log('\n⚠️ Skipping transcription - no API key configured');
92
92
  updateStepStatus(state, i, 'skipped');
93
93
  break;
94
94
  }
@@ -100,64 +100,64 @@ async function executeWorkflow(workflow, inputFile, config) {
100
100
  updateStepStatus(state, i, 'completed', { outputFile: transcriptionFile });
101
101
  }
102
102
  else {
103
- throw new Error('Falha ao transcrever áudio');
103
+ throw new Error('Failed to transcribe audio');
104
104
  }
105
105
  break;
106
106
  default:
107
- throw new Error(`Step desconhecido: ${step.name}`);
107
+ throw new Error(`Unknown step: ${step.name}`);
108
108
  }
109
109
  nextStep(state);
110
110
  }
111
111
  catch (error) {
112
- console.error(`\n❌ Erro no step "${step.name}":`, error.message);
112
+ console.error(`\n❌ Error in step "${step.name}":`, error.message);
113
113
  updateStepStatus(state, i, 'failed', undefined, error.message);
114
114
  break;
115
115
  }
116
116
  }
117
- // Salva o estado final
117
+ // Save final state
118
118
  saveWorkflowState(state, outputDir);
119
- // Exibe resumo
119
+ // Display summary
120
120
  printWorkflowProgress(state);
121
- // Exibe arquivos gerados
122
- console.log('\n📦 Arquivos gerados:');
121
+ // Display generated files
122
+ console.log('\n📦 Generated files:');
123
123
  if (state.intermediateFiles.convertedVideo) {
124
- console.log(` • Vídeo: ${path.basename(state.intermediateFiles.convertedVideo)}`);
124
+ console.log(` • Video: ${path.basename(state.intermediateFiles.convertedVideo)}`);
125
125
  }
126
126
  if (state.intermediateFiles.extractedAudio) {
127
- console.log(` • Áudio: ${path.basename(state.intermediateFiles.extractedAudio)}`);
127
+ console.log(` • Audio: ${path.basename(state.intermediateFiles.extractedAudio)}`);
128
128
  }
129
129
  if (state.intermediateFiles.transcriptionText) {
130
- console.log(` • Transcrição: ${path.basename(state.intermediateFiles.transcriptionText)}`);
130
+ console.log(` • Transcription: ${path.basename(state.intermediateFiles.transcriptionText)}`);
131
131
  }
132
132
  console.log('');
133
133
  }
134
134
  async function main() {
135
135
  console.log('🎬 FFmpeg Simple Converter - Workflow Multi-Step\n');
136
- // Verifica o ffmpeg
136
+ // Check ffmpeg
137
137
  const ffmpegInstalled = verifyFfmpeg();
138
138
  if (!ffmpegInstalled) {
139
139
  process.exit(1);
140
140
  }
141
141
  console.log('');
142
- // Garante que configuração (mesmo que sem API keys)
142
+ // Ensure configuration exists (even without API keys)
143
143
  const config = await ensureConfig();
144
- // Lista arquivos
144
+ // List files
145
145
  const currentDir = process.cwd();
146
146
  const mediaFiles = listMediaFiles(currentDir);
147
147
  if (mediaFiles.length === 0) {
148
- console.log('\n⚠️ Nenhum arquivo de mídia encontrado no diretório atual.');
149
- console.log('Formatos suportados:');
150
- console.log(' • Áudio: .ogg, .wav, .mp3, .m4a, .aac, .flac');
151
- console.log(' • Vídeo: .mp4, .mov, .mkv, .webm, .avi\n');
148
+ console.log('\n⚠️ No media files found in current directory.');
149
+ console.log('Supported formats:');
150
+ console.log(' • Audio: .ogg, .wav, .mp3, .m4a, .aac, .flac');
151
+ console.log(' • Video: .mp4, .mov, .mkv, .webm, .avi\n');
152
152
  process.exit(0);
153
153
  }
154
- console.log(`\n📁 Encontrados ${mediaFiles.length} arquivo(s) de mídia\n`);
155
- // Seleção do arquivo
154
+ console.log(`\n📁 Found ${mediaFiles.length} media file(s)\n`);
155
+ // File selection
156
156
  const { selectedFile } = await inquirer.prompt([
157
157
  {
158
158
  type: 'list',
159
159
  name: 'selectedFile',
160
- message: 'Selecione o arquivo:',
160
+ message: 'Select the file:',
161
161
  choices: mediaFiles.map((f) => ({
162
162
  name: `${f.type === 'video' ? '🎬' : '🎵'} ${f.name}`,
163
163
  value: f.fullPath
@@ -165,49 +165,49 @@ async function main() {
165
165
  }
166
166
  ]);
167
167
  const fileType = detectFileType(selectedFile);
168
- // Filtra workflows compatíveis com o tipo de arquivo
168
+ // Filter workflows compatible with file type
169
169
  const availableWorkflows = WORKFLOW_OPTIONS.filter((w) => {
170
170
  if (w.requiresType === 'any')
171
171
  return true;
172
172
  return w.requiresType === fileType;
173
173
  });
174
- // Marca workflows que requerem API key
174
+ // Mark workflows that require API key
175
175
  const workflowChoices = availableWorkflows.map((w) => {
176
- const requiresTranscription = w.steps.some(s => s.includes('Transcrever'));
176
+ const requiresTranscription = w.steps.some(s => s.includes('Transcribe'));
177
177
  const hasKey = hasApiKey(config);
178
178
  let name = w.name;
179
179
  if (requiresTranscription && !hasKey) {
180
- name += ' ⚠️ (requer API key)';
180
+ name += ' ⚠️ (requires API key)';
181
181
  }
182
182
  return {
183
183
  name,
184
184
  value: w.value
185
185
  };
186
186
  });
187
- // Seleção do workflow
187
+ // Workflow selection
188
188
  const { selectedWorkflow } = await inquirer.prompt([
189
189
  {
190
190
  type: 'list',
191
191
  name: 'selectedWorkflow',
192
- message: 'Selecione o que deseja fazer:',
192
+ message: 'Select what you want to do:',
193
193
  choices: workflowChoices
194
194
  }
195
195
  ]);
196
196
  const workflow = availableWorkflows.find((w) => w.value === selectedWorkflow);
197
197
  if (!workflow) {
198
- console.error('❌ Workflow inválido');
198
+ console.error('❌ Invalid workflow');
199
199
  process.exit(1);
200
200
  }
201
- // Aviso se workflow requer transcrição mas não API key
202
- const requiresTranscription = workflow.steps.some(s => s.includes('Transcrever'));
201
+ // Warning if workflow requires transcription but no API key
202
+ const requiresTranscription = workflow.steps.some(s => s.includes('Transcribe'));
203
203
  if (requiresTranscription && !hasApiKey(config)) {
204
- console.log('\n⚠️ Este workflow inclui transcrição, mas nenhuma API key está configurada.');
205
- console.log('A transcrição será pulada. Configure uma API key para habilitar transcrição.\n');
204
+ console.log('\n⚠️ This workflow includes transcription, but no API key is configured.');
205
+ console.log('Transcription will be skipped. Configure an API key to enable transcription.\n');
206
206
  const { confirm } = await inquirer.prompt([
207
207
  {
208
208
  type: 'confirm',
209
209
  name: 'confirm',
210
- message: 'Continuar mesmo assim?',
210
+ message: 'Continue anyway?',
211
211
  default: true
212
212
  }
213
213
  ]);
@@ -215,12 +215,12 @@ async function main() {
215
215
  process.exit(0);
216
216
  }
217
217
  }
218
- // Executa o workflow
218
+ // Execute workflow
219
219
  await executeWorkflow(workflow, selectedFile, config);
220
220
  }
221
- // Executa
221
+ // Execute
222
222
  main().catch((error) => {
223
- console.error('\n❌ Erro:', error.message);
223
+ console.error('\n❌ Error:', error.message);
224
224
  process.exit(1);
225
225
  });
226
226
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAc,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AACtF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,EACR,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAA;AASvB,MAAM,gBAAgB,GAAqB;IACzC;QACE,IAAI,EAAE,+CAA+C;QACrD,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,kBAAkB,CAAC;QAC7D,YAAY,EAAE,OAAO;KACtB;IACD;QACE,IAAI,EAAE,0CAA0C;QAChD,KAAK,EAAE,0BAA0B;QACjC,KAAK,EAAE,CAAC,eAAe,EAAE,kBAAkB,CAAC;QAC5C,YAAY,EAAE,OAAO;KACtB;IACD;QACE,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,0BAA0B;QACjC,KAAK,EAAE,CAAC,eAAe,EAAE,kBAAkB,CAAC;QAC5C,YAAY,EAAE,OAAO;KACtB;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,CAAC,kBAAkB,CAAC;QAC3B,YAAY,EAAE,OAAO;KACtB;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,CAAC,eAAe,CAAC;QACxB,YAAY,EAAE,OAAO;KACtB;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,CAAC,eAAe,CAAC;QACxB,YAAY,EAAE,OAAO;KACtB;IACD;QACE,IAAI,EAAE,kCAAkC;QACxC,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,CAAC,eAAe,CAAC;QACxB,YAAY,EAAE,OAAO;KACtB;CACF,CAAA;AAED,KAAK,UAAU,eAAe,CAC5B,QAAwB,EACxB,SAAiB,EACjB,MAAW;IAEX,MAAM,KAAK,GAAG,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAEzC,OAAO,CAAC,GAAG,CAAC,2BAA2B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAE3D,IAAI,WAAW,GAAG,SAAS,CAAA;IAC3B,IAAI,SAA6B,CAAA;IACjC,IAAI,iBAAqC,CAAA;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QAClC,IAAI,CAAC,IAAI;YAAE,MAAK;QAEhB,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QACrC,OAAO,CAAC,GAAG,CAAC,MAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,CAAA;QAElE,IAAI,CAAC;YACH,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,eAAe;oBAClB,WAAW,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;oBACxD,KAAK,CAAC,iBAAiB,CAAC,cAAc,GAAG,WAAW,CAAA;oBACpD,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;oBACpE,MAAK;gBAEP,KAAK,eAAe;oBAClB,SAAS,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;oBACtD,KAAK,CAAC,iBAAiB,CAAC,cAAc,GAAG,SAAS,CAAA;oBAClD,WAAW,GAAG,SAAS,CAAA;oBACvB,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;oBAClE,MAAK;gBAEP,KAAK,eAAe;oBAClB,SAAS,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;oBACtD,WAAW,GAAG,SAAS,CAAA;oBACvB,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;oBAClE,MAAK;gBAEP,KAAK,kBAAkB;oBACrB,oEAAoE;oBACpE,MAAM,gBAAgB,GAAG,SAAS,IAAI,WAAW,CAAA;oBAEjD,iCAAiC;oBACjC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAA;wBACnE,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;wBACrC,MAAK;oBACP,CAAC;oBAED,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;oBAErE,IAAI,aAAa,EAAE,CAAC;wBAClB,iBAAiB,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;wBACtE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;wBAC7D,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;wBACvE,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAA;oBAC5E,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;oBAC/C,CAAC;oBACD,MAAK;gBAEP;oBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACjD,CAAC;YAED,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;YACjE,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;YAC9D,MAAK;QACP,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAEnC,kBAAkB;IAClB,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAE5B,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACpC,IAAI,KAAK,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IACpF,CAAC;IACD,IAAI,KAAK,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IACpF,CAAC;IACD,IAAI,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAC/F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACjB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAA;IAEjE,eAAe;IACf,MAAM,eAAe,GAAG,YAAY,EAAE,CAAA;IACtC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,sDAAsD;IACtD,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAA;IAEnC,aAAa;IACb,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAChC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;IAE7C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAA;QAC/D,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAA;QAC7D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAA;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,CAAC,MAAM,kBAAkB,CAAC,CAAA;IAE9D,iBAAiB;IACjB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC7C;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;gBACrD,KAAK,EAAE,CAAC,CAAC,QAAQ;aAClB,CAAC,CAAC;SACJ;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;IAE7C,6CAA6C;IAC7C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACvD,IAAI,CAAC,CAAC,YAAY,KAAK,KAAK;YAAE,OAAO,IAAI,CAAA;QACzC,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,sCAAsC;IACtC,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnD,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;QACzE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;QAEhC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;QACjB,IAAI,qBAAqB,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,IAAI,yBAAyB,CAAA;QACnC,CAAC;QAED,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,qBAAqB;IACrB,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACjD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,eAAe;SACzB;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAA;IAC7E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,4DAA4D;IAC5D,MAAM,qBAAqB,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;IAChF,IAAI,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAA;QACxF,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAA;QAE7F,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,kBAAkB;gBAC3B,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAA;AACvD,CAAC;AAED,UAAU;AACV,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Transcreve um arquivo de áudio usando Groq Whisper
2
+ * Transcribes an audio file using Groq Whisper
3
3
  * https://console.groq.com/docs/speech-to-text
4
- * @param audioLocalFilePath - Caminho local do arquivo de áudio
5
- * @param apiKey - API Key do Groq
6
- * @returns Texto transcrito ou null em caso de erro
4
+ * @param audioLocalFilePath - Local audio file path
5
+ * @param apiKey - Groq API Key
6
+ * @returns Transcribed text or null in case of error
7
7
  */
8
8
  export declare const groqTranscriptAudio: (audioLocalFilePath: string, apiKey: string) => Promise<string | null>;
9
9
  //# sourceMappingURL=groq.d.ts.map
@@ -2,15 +2,15 @@ import FormData from 'form-data';
2
2
  import fs from 'fs';
3
3
  import axios from 'axios';
4
4
  /**
5
- * Transcreve um arquivo de áudio usando Groq Whisper
5
+ * Transcribes an audio file using Groq Whisper
6
6
  * https://console.groq.com/docs/speech-to-text
7
- * @param audioLocalFilePath - Caminho local do arquivo de áudio
8
- * @param apiKey - API Key do Groq
9
- * @returns Texto transcrito ou null em caso de erro
7
+ * @param audioLocalFilePath - Local audio file path
8
+ * @param apiKey - Groq API Key
9
+ * @returns Transcribed text or null in case of error
10
10
  */
11
11
  export const groqTranscriptAudio = async (audioLocalFilePath, apiKey) => {
12
12
  if (!apiKey) {
13
- console.error('❌ Groq API Key não fornecida');
13
+ console.error('❌ Groq API Key not provided');
14
14
  return null;
15
15
  }
16
16
  try {
@@ -31,7 +31,7 @@ export const groqTranscriptAudio = async (audioLocalFilePath, apiKey) => {
31
31
  return data?.text?.trim() || null;
32
32
  }
33
33
  catch (error) {
34
- console.error('Erro ao transcrever áudio com Groq:', error.response?.data || error.message);
34
+ console.error('Error transcribing audio with Groq:', error.response?.data || error.message);
35
35
  return null;
36
36
  }
37
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"groq.js","sourceRoot":"","sources":["../../src/transcript/groq.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,kBAA0B,EAC1B,MAAc,EACU,EAAE;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAE/B,+BAA+B;QAC/B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAA;QAChE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;QAC5C,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;QAClD,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;QACnC,oCAAoC;QAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,qDAAqD,EACrD,QAAQ,EACR;YACE,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;gBACnC,GAAG,QAAQ,CAAC,UAAU,EAAE;aACzB;SACF,CACF,CAAA;QAED,OAAO,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAA;IAEnC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3F,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"groq.js","sourceRoot":"","sources":["../../src/transcript/groq.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,kBAA0B,EAC1B,MAAc,EACU,EAAE;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAE/B,+BAA+B;QAC/B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAA;QAChE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;QAC5C,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;QAClD,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;QACnC,oCAAoC;QAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,qDAAqD,EACrD,QAAQ,EACR;YACE,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;gBACnC,GAAG,QAAQ,CAAC,UAAU,EAAE;aACzB;SACF,CACF,CAAA;QAED,OAAO,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAA;IAEnC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3F,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
@@ -1,13 +1,13 @@
1
1
  import { Config } from '../types/index.js';
2
2
  /**
3
- * Transcreve um arquivo de áudio tentando primeiro Groq, depois OpenAI
4
- * @param audioFilePath - Caminho do arquivo de áudio
5
- * @param config - Configuração com API keys
6
- * @returns Texto transcrito ou null
3
+ * Transcribes an audio file trying Groq first, then OpenAI
4
+ * @param audioFilePath - Audio file path
5
+ * @param config - Configuration with API keys
6
+ * @returns Transcribed text or null
7
7
  */
8
8
  export declare function transcribeAudio(audioFilePath: string, config: Config): Promise<string | null>;
9
9
  /**
10
- * Salva a transcrição em arquivo
10
+ * Saves transcription to file
11
11
  */
12
12
  export declare function saveTranscription(audioPath: string, transcription: string): string;
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -3,43 +3,43 @@ import fs from 'fs';
3
3
  import { groqTranscriptAudio } from './groq.js';
4
4
  import { openaiTranscriptAudio } from './openai.js';
5
5
  /**
6
- * Transcreve um arquivo de áudio tentando primeiro Groq, depois OpenAI
7
- * @param audioFilePath - Caminho do arquivo de áudio
8
- * @param config - Configuração com API keys
9
- * @returns Texto transcrito ou null
6
+ * Transcribes an audio file trying Groq first, then OpenAI
7
+ * @param audioFilePath - Audio file path
8
+ * @param config - Configuration with API keys
9
+ * @returns Transcribed text or null
10
10
  */
11
11
  export async function transcribeAudio(audioFilePath, config) {
12
- console.log(`\n🎙️ Transcrevendo: ${path.basename(audioFilePath)}`);
13
- // Tenta Groq primeiro (mais rápido e barato)
12
+ console.log(`\n🎙️ Transcribing: ${path.basename(audioFilePath)}`);
13
+ // Try Groq first (faster and cheaper)
14
14
  if (config.groqApiKey) {
15
- console.log('📡 Tentando Groq Whisper (rápido)...');
15
+ console.log('📡 Trying Groq Whisper (fast)...');
16
16
  const result = await groqTranscriptAudio(audioFilePath, config.groqApiKey);
17
17
  if (result) {
18
- console.log('✓ Transcrição concluída com Groq');
18
+ console.log('✓ Transcription completed with Groq');
19
19
  return result;
20
20
  }
21
- console.log('⚠️ Falha com Groq, tentando OpenAI...');
21
+ console.log('⚠️ Failed with Groq, trying OpenAI...');
22
22
  }
23
- // Se Groq falhou ou não está configurado, tenta OpenAI
23
+ // If Groq failed or is not configured, try OpenAI
24
24
  if (config.openaiApiKey) {
25
- console.log('📡 Tentando OpenAI Whisper...');
25
+ console.log('📡 Trying OpenAI Whisper...');
26
26
  const result = await openaiTranscriptAudio(audioFilePath, config.openaiApiKey);
27
27
  if (result) {
28
- console.log('✓ Transcrição concluída com OpenAI');
28
+ console.log('✓ Transcription completed with OpenAI');
29
29
  return result;
30
30
  }
31
31
  }
32
- // Se chegou aqui, nenhum serviço funcionou
32
+ // If we got here, no service worked
33
33
  if (!config.groqApiKey && !config.openaiApiKey) {
34
- console.error('❌ Nenhuma API key configurada para transcrição');
34
+ console.error('❌ No API key configured for transcription');
35
35
  }
36
36
  else {
37
- console.error('❌ Falha ao transcrever com todos os serviços disponíveis');
37
+ console.error('❌ Failed to transcribe with all available services');
38
38
  }
39
39
  return null;
40
40
  }
41
41
  /**
42
- * Salva a transcrição em arquivo
42
+ * Saves transcription to file
43
43
  */
44
44
  export function saveTranscription(audioPath, transcription) {
45
45
  const outputFileName = path.basename(audioPath, path.extname(audioPath)) + '.txt';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transcript/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,MAAc;IAGd,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAEpE,6CAA6C;IAC7C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAC1E,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;YAC/C,OAAO,MAAM,CAAA;QACf,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IACvD,CAAC;IAED,uDAAuD;IACvD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAC9E,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;YACjD,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC3E,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,aAAqB;IACxE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAA;IACjF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAA;IAErE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IACpD,OAAO,UAAU,CAAA;AACnB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transcript/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,MAAc;IAGd,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAEnE,sCAAsC;IACtC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;QAC/C,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAC1E,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;YAClD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IACvD,CAAC;IAED,kDAAkD;IAClD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAC9E,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;YACpD,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACrE,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,aAAqB;IACxE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAA;IACjF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAA;IAErE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IACpD,OAAO,UAAU,CAAA;AACnB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Transcreve um arquivo de áudio usando OpenAI Whisper
3
- * @param audioLocalFilePath - Caminho local do arquivo de áudio
4
- * @param apiKey - API Key da OpenAI
5
- * @returns Texto transcrito ou null em caso de erro
2
+ * Transcribes an audio file using OpenAI Whisper
3
+ * @param audioLocalFilePath - Local audio file path
4
+ * @param apiKey - OpenAI API Key
5
+ * @returns Transcribed text or null in case of error
6
6
  */
7
7
  export declare const openaiTranscriptAudio: (audioLocalFilePath: string, apiKey: string) => Promise<string | null>;
8
8
  //# sourceMappingURL=openai.d.ts.map
@@ -1,14 +1,14 @@
1
1
  import fs from 'fs';
2
2
  import OpenAI from 'openai';
3
3
  /**
4
- * Transcreve um arquivo de áudio usando OpenAI Whisper
5
- * @param audioLocalFilePath - Caminho local do arquivo de áudio
6
- * @param apiKey - API Key da OpenAI
7
- * @returns Texto transcrito ou null em caso de erro
4
+ * Transcribes an audio file using OpenAI Whisper
5
+ * @param audioLocalFilePath - Local audio file path
6
+ * @param apiKey - OpenAI API Key
7
+ * @returns Transcribed text or null in case of error
8
8
  */
9
9
  export const openaiTranscriptAudio = async (audioLocalFilePath, apiKey) => {
10
10
  if (!apiKey) {
11
- console.error('❌ OpenAI API Key não fornecida');
11
+ console.error('❌ OpenAI API Key not provided');
12
12
  return null;
13
13
  }
14
14
  try {
@@ -20,7 +20,7 @@ export const openaiTranscriptAudio = async (audioLocalFilePath, apiKey) => {
20
20
  return transcription.text ?? null;
21
21
  }
22
22
  catch (error) {
23
- console.error('Erro ao transcrever áudio com OpenAI:', error.response?.data || error.message);
23
+ console.error('Error transcribing audio with OpenAI:', error.response?.data || error.message);
24
24
  return null;
25
25
  }
26
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/transcript/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,kBAA0B,EAC1B,MAAc,EACU,EAAE;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAErC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;YAC7D,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;YAC7C,KAAK,EAAE,WAAW;SACnB,CAAC,CAAA;QAEF,OAAO,aAAa,CAAC,IAAI,IAAI,IAAI,CAAA;IAEnC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7F,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/transcript/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,kBAA0B,EAC1B,MAAc,EACU,EAAE;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAErC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;YAC7D,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;YAC7C,KAAK,EAAE,WAAW;SACnB,CAAC,CAAA;QAEF,OAAO,aAAa,CAAC,IAAI,IAAI,IAAI,CAAA;IAEnC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7F,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Verifica se o ffmpeg está instalado e disponível no PATH
2
+ * Checks if ffmpeg is installed and available in PATH
3
3
  */
4
4
  export declare function checkFfmpegInstalled(): {
5
5
  installed: boolean;
@@ -7,12 +7,12 @@ export declare function checkFfmpegInstalled(): {
7
7
  error?: string;
8
8
  };
9
9
  /**
10
- * Exibe instruções de instalação do ffmpeg baseado no sistema operacional
10
+ * Displays ffmpeg installation instructions based on operating system
11
11
  */
12
12
  export declare function showFfmpegInstallInstructions(): void;
13
13
  /**
14
- * Verifica e informa sobre a instalação do ffmpeg
15
- * Retorna true se instalado, false caso contrário
14
+ * Checks and reports on ffmpeg installation
15
+ * Returns true if installed, false otherwise
16
16
  */
17
17
  export declare function verifyFfmpeg(): boolean;
18
18
  //# sourceMappingURL=ffmpegCheck.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { execSync } from 'child_process';
2
2
  /**
3
- * Verifica se o ffmpeg está instalado e disponível no PATH
3
+ * Checks if ffmpeg is installed and available in PATH
4
4
  */
5
5
  export function checkFfmpegInstalled() {
6
6
  try {
@@ -8,7 +8,7 @@ export function checkFfmpegInstalled() {
8
8
  encoding: 'utf-8',
9
9
  stdio: ['pipe', 'pipe', 'pipe']
10
10
  });
11
- // Extrai a versão da primeira linha
11
+ // Extract version from first line
12
12
  const versionMatch = output.match(/ffmpeg version ([^\s]+)/);
13
13
  const version = versionMatch ? versionMatch[1] : 'unknown';
14
14
  return {
@@ -24,25 +24,25 @@ export function checkFfmpegInstalled() {
24
24
  }
25
25
  }
26
26
  /**
27
- * Exibe instruções de instalação do ffmpeg baseado no sistema operacional
27
+ * Displays ffmpeg installation instructions based on operating system
28
28
  */
29
29
  export function showFfmpegInstallInstructions() {
30
30
  const platform = process.platform;
31
- console.log('\n⚠️ FFmpeg não está instalado ou não está disponível no PATH\n');
32
- console.log('📦 Instruções de instalação:\n');
31
+ console.log('\n⚠️ FFmpeg is not installed or not available in PATH\n');
32
+ console.log('📦 Installation instructions:\n');
33
33
  if (platform === 'win32') {
34
34
  console.log('Windows:');
35
- console.log(' 1. Usando Chocolatey:');
35
+ console.log(' 1. Using Chocolatey:');
36
36
  console.log(' choco install ffmpeg');
37
- console.log('\n 2. Usando Scoop:');
37
+ console.log('\n 2. Using Scoop:');
38
38
  console.log(' scoop install ffmpeg');
39
- console.log('\n 3. Download manual:');
40
- console.log(' - Baixe de: https://ffmpeg.org/download.html');
41
- console.log(' - Extraia e adicione ao PATH do sistema');
39
+ console.log('\n 3. Manual download:');
40
+ console.log(' - Download from: https://ffmpeg.org/download.html');
41
+ console.log(' - Extract and add to system PATH');
42
42
  }
43
43
  else if (platform === 'darwin') {
44
44
  console.log('macOS:');
45
- console.log(' Usando Homebrew:');
45
+ console.log(' Using Homebrew:');
46
46
  console.log(' brew install ffmpeg');
47
47
  }
48
48
  else {
@@ -54,16 +54,16 @@ export function showFfmpegInstallInstructions() {
54
54
  console.log('\n Arch Linux:');
55
55
  console.log(' sudo pacman -S ffmpeg');
56
56
  }
57
- console.log('\n💡 Após a instalação, reinicie o terminal e tente novamente.\n');
57
+ console.log('\n💡 After installation, restart the terminal and try again.\n');
58
58
  }
59
59
  /**
60
- * Verifica e informa sobre a instalação do ffmpeg
61
- * Retorna true se instalado, false caso contrário
60
+ * Checks and reports on ffmpeg installation
61
+ * Returns true if installed, false otherwise
62
62
  */
63
63
  export function verifyFfmpeg() {
64
64
  const result = checkFfmpegInstalled();
65
65
  if (result.installed) {
66
- console.log(`✓ FFmpeg está instalado (versão: ${result.version})`);
66
+ console.log(`✓ FFmpeg is installed (version: ${result.version})`);
67
67
  return true;
68
68
  }
69
69
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"ffmpegCheck.js","sourceRoot":"","sources":["../../src/utils/ffmpegCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,EAAE;YACzC,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAA;QAEF,oCAAoC;QACpC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC5D,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAE1D,OAAO;YACL,SAAS,EAAE,IAAI;YACf,OAAO;SACR,CAAA;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,KAAK,CAAC,OAAO;SACrB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAEjC,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAA;IAC/E,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;IAE7C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;QACnC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;QAChE,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;IAC7D,CAAC;SAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACrB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACrB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC/B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAA;QAC9D,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAA;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAA;IAErC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;QAClE,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,CAAC;QACN,6BAA6B,EAAE,CAAA;QAC/B,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ffmpegCheck.js","sourceRoot":"","sources":["../../src/utils/ffmpegCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,EAAE;YACzC,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAA;QAEF,kCAAkC;QAClC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC5D,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAE1D,OAAO;YACL,SAAS,EAAE,IAAI;YACf,OAAO;SACR,CAAA;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,KAAK,CAAC,OAAO;SACrB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAEjC,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAA;IACvE,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IAE9C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAClC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;QACrE,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;IACtD,CAAC;SAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACrB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;QAChC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACrB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC/B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAA;QAC9D,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAA;IAErC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,mCAAmC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;QACjE,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,CAAC;QACN,6BAA6B,EAAE,CAAA;QAC/B,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -1,21 +1,21 @@
1
1
  /**
2
- * Gera um caminho único para o arquivo de saída
2
+ * Generates unique output file path
3
3
  */
4
4
  export declare function uniqueOutputPath(dir: string, baseName: string, extWithDot: string): string;
5
5
  /**
6
- * Executa um comando ffmpeg
6
+ * Executes an ffmpeg command
7
7
  */
8
8
  export declare function runFfmpegCommand(args: string[]): Promise<string>;
9
9
  /**
10
- * Converte vídeo para formato performático (H.264/AAC)
10
+ * Converts video to performant format (H.264/AAC)
11
11
  */
12
12
  export declare function convertVideo(inputPath: string, outputDir?: string): Promise<string>;
13
13
  /**
14
- * Extrai áudio de um vídeo
14
+ * Extracts audio from a video
15
15
  */
16
16
  export declare function extractAudio(inputPath: string, outputDir?: string): Promise<string>;
17
17
  /**
18
- * Converte áudio para formato performático
18
+ * Converts audio to performant format
19
19
  */
20
20
  export declare function convertAudio(inputPath: string, outputDir?: string): Promise<string>;
21
21
  //# sourceMappingURL=ffmpegOperations.d.ts.map
@@ -2,7 +2,7 @@ import { spawn } from 'child_process';
2
2
  import path from 'path';
3
3
  import fs from 'fs';
4
4
  /**
5
- * Gera um caminho único para o arquivo de saída
5
+ * Generates unique output file path
6
6
  */
7
7
  export function uniqueOutputPath(dir, baseName, extWithDot) {
8
8
  let candidate = path.join(dir, `${baseName}${extWithDot}`);
@@ -13,10 +13,10 @@ export function uniqueOutputPath(dir, baseName, extWithDot) {
13
13
  if (!fs.existsSync(candidate))
14
14
  return candidate;
15
15
  }
16
- throw new Error('Não foi possível gerar um nome de saída único.');
16
+ throw new Error('Could not generate a unique output name.');
17
17
  }
18
18
  /**
19
- * Executa um comando ffmpeg
19
+ * Executes an ffmpeg command
20
20
  */
21
21
  export function runFfmpegCommand(args) {
22
22
  return new Promise((resolve, reject) => {
@@ -30,10 +30,10 @@ export function runFfmpegCommand(args) {
30
30
  });
31
31
  ffmpeg.stderr.on('data', (data) => {
32
32
  stderr += data.toString();
33
- // FFmpeg envia progresso para stderr
33
+ // FFmpeg sends progress to stderr
34
34
  const lines = stderr.split('\n');
35
35
  const lastLine = lines[lines.length - 2] || '';
36
- // Exibe progresso se tiver informação de tempo
36
+ // Display progress if there is time information
37
37
  if (lastLine.includes('time=')) {
38
38
  process.stdout.write(`\r${lastLine.trim()}`);
39
39
  }
@@ -44,7 +44,7 @@ export function runFfmpegCommand(args) {
44
44
  resolve(stdout);
45
45
  }
46
46
  else {
47
- reject(new Error(`FFmpeg falhou com código ${code}\n${stderr}`));
47
+ reject(new Error(`FFmpeg failed with code ${code}\n${stderr}`));
48
48
  }
49
49
  });
50
50
  ffmpeg.on('error', (err) => {
@@ -53,13 +53,13 @@ export function runFfmpegCommand(args) {
53
53
  });
54
54
  }
55
55
  /**
56
- * Converte vídeo para formato performático (H.264/AAC)
56
+ * Converts video to performant format (H.264/AAC)
57
57
  */
58
58
  export async function convertVideo(inputPath, outputDir) {
59
59
  const dir = outputDir || path.dirname(inputPath);
60
60
  const baseName = path.basename(inputPath, path.extname(inputPath));
61
61
  const outputPath = uniqueOutputPath(dir, `${baseName}_converted`, '.mp4');
62
- console.log(`\n🎬 Convertendo vídeo para formato performático...`);
62
+ console.log(`\n🎬 Converting video to performant format...`);
63
63
  const args = [
64
64
  '-i', inputPath,
65
65
  '-c:v', 'libx264',
@@ -72,17 +72,17 @@ export async function convertVideo(inputPath, outputDir) {
72
72
  outputPath
73
73
  ];
74
74
  await runFfmpegCommand(args);
75
- console.log(`\n✓ Vídeo convertido: ${path.basename(outputPath)}`);
75
+ console.log(`\n✓ Video converted: ${path.basename(outputPath)}`);
76
76
  return outputPath;
77
77
  }
78
78
  /**
79
- * Extrai áudio de um vídeo
79
+ * Extracts audio from a video
80
80
  */
81
81
  export async function extractAudio(inputPath, outputDir) {
82
82
  const dir = outputDir || path.dirname(inputPath);
83
83
  const baseName = path.basename(inputPath, path.extname(inputPath));
84
84
  const outputPath = uniqueOutputPath(dir, `${baseName}_audio`, '.mp3');
85
- console.log(`\n🎵 Extraindo áudio do vídeo...`);
85
+ console.log(`\n🎵 Extracting audio from video...`);
86
86
  const args = [
87
87
  '-i', inputPath,
88
88
  '-vn',
@@ -92,17 +92,17 @@ export async function extractAudio(inputPath, outputDir) {
92
92
  outputPath
93
93
  ];
94
94
  await runFfmpegCommand(args);
95
- console.log(`\n✓ Áudio extraído: ${path.basename(outputPath)}`);
95
+ console.log(`\n✓ Audio extracted: ${path.basename(outputPath)}`);
96
96
  return outputPath;
97
97
  }
98
98
  /**
99
- * Converte áudio para formato performático
99
+ * Converts audio to performant format
100
100
  */
101
101
  export async function convertAudio(inputPath, outputDir) {
102
102
  const dir = outputDir || path.dirname(inputPath);
103
103
  const baseName = path.basename(inputPath, path.extname(inputPath));
104
104
  const outputPath = uniqueOutputPath(dir, `${baseName}_converted`, '.mp3');
105
- console.log(`\n🎵 Convertendo áudio para MP3...`);
105
+ console.log(`\n🎵 Converting audio to MP3...`);
106
106
  const args = [
107
107
  '-i', inputPath,
108
108
  '-acodec', 'libmp3lame',
@@ -111,7 +111,7 @@ export async function convertAudio(inputPath, outputDir) {
111
111
  outputPath
112
112
  ];
113
113
  await runFfmpegCommand(args);
114
- console.log(`\n✓ Áudio convertido: ${path.basename(outputPath)}`);
114
+ console.log(`\n✓ Audio converted: ${path.basename(outputPath)}`);
115
115
  return outputPath;
116
116
  }
117
117
  //# sourceMappingURL=ffmpegOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ffmpegOperations.js","sourceRoot":"","sources":["../../src/utils/ffmpegOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ffmpegOperations.js","sourceRoot":"","sources":["../../src/utils/ffmpegOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,QAAgB,EAAE,UAAkB;IAChF,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,UAAU,EAAE,CAAC,CAAA;IAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,CAAA;QAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;IACjD,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAc;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE;YACnC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAA;QAEF,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,MAAM,GAAG,EAAE,CAAA;QAEf,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC3B,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;YACzB,kCAAkC;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;YAE9C,gDAAgD;YAChD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC1B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,CAAA;YACjE,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,MAAM,CAAC,GAAG,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,SAAkB;IAElB,MAAM,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAClE,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,QAAQ,YAAY,EAAE,MAAM,CAAC,CAAA;IAEzE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;IAE5D,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,YAAY;QACzB,IAAI;QACJ,UAAU;KACX,CAAA;IAED,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAChE,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,SAAkB;IAElB,MAAM,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAClE,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,QAAQ,QAAQ,EAAE,MAAM,CAAC,CAAA;IAErE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IAElD,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,SAAS;QACf,KAAK;QACL,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,MAAM;QACd,IAAI;QACJ,UAAU;KACX,CAAA;IAED,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAChE,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,SAAkB;IAElB,MAAM,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAClE,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,QAAQ,YAAY,EAAE,MAAM,CAAC,CAAA;IAEzE,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IAE9C,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,MAAM;QACd,IAAI;QACJ,UAAU;KACX,CAAA;IAED,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAChE,OAAO,UAAU,CAAA;AACnB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  export type FileType = 'audio' | 'video' | 'unknown';
2
2
  /**
3
- * Detecta o tipo de arquivo pela extensão
3
+ * Detects file type by extension
4
4
  */
5
5
  export declare function detectFileType(filePath: string): FileType;
6
6
  /**
7
- * Lista arquivos de áudio/vídeo no diretório
7
+ * Lists audio/video files in directory
8
8
  */
9
9
  export declare function listMediaFiles(dir: string): Array<{
10
10
  name: string;
@@ -12,7 +12,7 @@ export declare function listMediaFiles(dir: string): Array<{
12
12
  type: FileType;
13
13
  }>;
14
14
  /**
15
- * Verifica se um arquivo existe
15
+ * Checks if a file exists
16
16
  */
17
17
  export declare function fileExists(filePath: string): boolean;
18
18
  //# sourceMappingURL=fileHelpers.d.ts.map
@@ -3,7 +3,7 @@ import path from 'path';
3
3
  const AUDIO_EXTS = new Set(['.ogg', '.wav', '.mp3', '.m4a', '.aac', '.flac']);
4
4
  const VIDEO_EXTS = new Set(['.mp4', '.mov', '.mkv', '.webm', '.avi']);
5
5
  /**
6
- * Detecta o tipo de arquivo pela extensão
6
+ * Detects file type by extension
7
7
  */
8
8
  export function detectFileType(filePath) {
9
9
  const ext = path.extname(filePath).toLowerCase();
@@ -14,7 +14,7 @@ export function detectFileType(filePath) {
14
14
  return 'unknown';
15
15
  }
16
16
  /**
17
- * Lista arquivos de áudio/vídeo no diretório
17
+ * Lists audio/video files in directory
18
18
  */
19
19
  export function listMediaFiles(dir) {
20
20
  try {
@@ -41,12 +41,12 @@ export function listMediaFiles(dir) {
41
41
  .sort((a, b) => a.name.localeCompare(b.name));
42
42
  }
43
43
  catch (error) {
44
- console.error('Erro ao listar arquivos:', error);
44
+ console.error('Error listing files:', error);
45
45
  return [];
46
46
  }
47
47
  }
48
48
  /**
49
- * Verifica se um arquivo existe
49
+ * Checks if a file exists
50
50
  */
51
51
  export function fileExists(filePath) {
52
52
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"fileHelpers.js","sourceRoot":"","sources":["../../src/utils/fileHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAC7E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AAIrE;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;IAEhD,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAA;IACvC,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAA;IACvC,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,OAAO,EAAE;aACN,WAAW,CAAC,GAAG,CAAC;aAChB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACrC,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACrC,OAAO;gBACL,IAAI;gBACJ,QAAQ;gBACR,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;aAC3B,CAAA;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;aACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;QAChD,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fileHelpers.js","sourceRoot":"","sources":["../../src/utils/fileHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAC7E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AAIrE;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;IAEhD,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAA;IACvC,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAA;IACvC,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,OAAO,EAAE;aACN,WAAW,CAAC,GAAG,CAAC;aAChB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACrC,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACrC,OAAO;gBACL,IAAI;gBACJ,QAAQ;gBACR,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;aAC3B,CAAA;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;aACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;QAC5C,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -1,38 +1,38 @@
1
1
  import { WorkflowState, WorkflowStep } from '../types/index.js';
2
2
  /**
3
- * Cria um novo workflow state
3
+ * Creates a new workflow state
4
4
  */
5
5
  export declare function createWorkflowState(inputFile: string, stepNames: string[]): WorkflowState;
6
6
  /**
7
- * Atualiza o status de um step
7
+ * Updates step status
8
8
  */
9
9
  export declare function updateStepStatus(state: WorkflowState, stepIndex: number, status: WorkflowStep['status'], result?: any, error?: string): void;
10
10
  /**
11
- * Obtém o step atual
11
+ * Gets current step
12
12
  */
13
13
  export declare function getCurrentStep(state: WorkflowState): WorkflowStep | null;
14
14
  /**
15
- * Avança para o próximo step
15
+ * Advances to next step
16
16
  */
17
17
  export declare function nextStep(state: WorkflowState): boolean;
18
18
  /**
19
- * Verifica se o workflow está completo
19
+ * Checks if workflow is complete
20
20
  */
21
21
  export declare function isWorkflowComplete(state: WorkflowState): boolean;
22
22
  /**
23
- * Verifica se houve algum erro no workflow
23
+ * Checks if there were any workflow errors
24
24
  */
25
25
  export declare function hasWorkflowErrors(state: WorkflowState): boolean;
26
26
  /**
27
- * Exibe o progresso do workflow
27
+ * Displays workflow progress
28
28
  */
29
29
  export declare function printWorkflowProgress(state: WorkflowState): void;
30
30
  /**
31
- * Salva o estado do workflow em arquivo
31
+ * Saves workflow state to file
32
32
  */
33
33
  export declare function saveWorkflowState(state: WorkflowState, outputDir: string): void;
34
34
  /**
35
- * Carrega o estado do workflow de arquivo
35
+ * Loads workflow state from file
36
36
  */
37
37
  export declare function loadWorkflowState(outputDir: string): WorkflowState | null;
38
38
  //# sourceMappingURL=state.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  /**
4
- * Cria um novo workflow state
4
+ * Creates a new workflow state
5
5
  */
6
6
  export function createWorkflowState(inputFile, stepNames) {
7
7
  return {
@@ -16,7 +16,7 @@ export function createWorkflowState(inputFile, stepNames) {
16
16
  };
17
17
  }
18
18
  /**
19
- * Atualiza o status de um step
19
+ * Updates step status
20
20
  */
21
21
  export function updateStepStatus(state, stepIndex, status, result, error) {
22
22
  if (stepIndex >= 0 && stepIndex < state.steps.length) {
@@ -37,7 +37,7 @@ export function updateStepStatus(state, stepIndex, status, result, error) {
37
37
  }
38
38
  }
39
39
  /**
40
- * Obtém o step atual
40
+ * Gets current step
41
41
  */
42
42
  export function getCurrentStep(state) {
43
43
  if (state.currentStepIndex < state.steps.length) {
@@ -46,7 +46,7 @@ export function getCurrentStep(state) {
46
46
  return null;
47
47
  }
48
48
  /**
49
- * Avança para o próximo step
49
+ * Advances to next step
50
50
  */
51
51
  export function nextStep(state) {
52
52
  if (state.currentStepIndex < state.steps.length - 1) {
@@ -56,22 +56,22 @@ export function nextStep(state) {
56
56
  return false;
57
57
  }
58
58
  /**
59
- * Verifica se o workflow está completo
59
+ * Checks if workflow is complete
60
60
  */
61
61
  export function isWorkflowComplete(state) {
62
62
  return state.steps.every(step => step.status === 'completed' || step.status === 'skipped');
63
63
  }
64
64
  /**
65
- * Verifica se houve algum erro no workflow
65
+ * Checks if there were any workflow errors
66
66
  */
67
67
  export function hasWorkflowErrors(state) {
68
68
  return state.steps.some(step => step.status === 'failed');
69
69
  }
70
70
  /**
71
- * Exibe o progresso do workflow
71
+ * Displays workflow progress
72
72
  */
73
73
  export function printWorkflowProgress(state) {
74
- console.log('\n📊 Progresso do Workflow:');
74
+ console.log('\n📊 Workflow Progress:');
75
75
  console.log('━'.repeat(50));
76
76
  state.steps.forEach((step, index) => {
77
77
  let icon = '⏳';
@@ -88,20 +88,20 @@ export function printWorkflowProgress(state) {
88
88
  : '';
89
89
  console.log(`${icon} ${index + 1}. ${step.name}${duration}`);
90
90
  if (step.error) {
91
- console.log(` └─ Erro: ${step.error}`);
91
+ console.log(` └─ Error: ${step.error}`);
92
92
  }
93
93
  });
94
94
  console.log('━'.repeat(50));
95
95
  }
96
96
  /**
97
- * Salva o estado do workflow em arquivo
97
+ * Saves workflow state to file
98
98
  */
99
99
  export function saveWorkflowState(state, outputDir) {
100
100
  const stateFile = path.join(outputDir, '.workflow-state.json');
101
101
  fs.writeFileSync(stateFile, JSON.stringify(state, null, 2), 'utf-8');
102
102
  }
103
103
  /**
104
- * Carrega o estado do workflow de arquivo
104
+ * Loads workflow state from file
105
105
  */
106
106
  export function loadWorkflowState(outputDir) {
107
107
  const stateFile = path.join(outputDir, '.workflow-state.json');
@@ -112,7 +112,7 @@ export function loadWorkflowState(outputDir) {
112
112
  }
113
113
  }
114
114
  catch (error) {
115
- console.warn('Erro ao carregar estado do workflow:', error);
115
+ console.warn('Error loading workflow state:', error);
116
116
  }
117
117
  return null;
118
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mediacript",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "CLI to convert media files to performat formats and extract text using Groq and OpenAI's Whisper API",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,6 +13,14 @@
13
13
  "convert.js",
14
14
  "README.md"
15
15
  ],
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git://github.com/igortrinidad/mediacript.git"
19
+ },
20
+ "bugs": {
21
+ "url": "https://github.com/igortrinidad/mediacript/issues"
22
+ },
23
+ "homepage": "https://github.com/igortrinidad/mediacript#readme",
16
24
  "scripts": {
17
25
  "convert": "node convert.js",
18
26
  "start": "node --loader ts-node/esm src/index.ts",