dev-toolkit-cli 1.0.5 → 1.0.7

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.
@@ -44,7 +44,10 @@ export async function file(pathname, { verbose, type, resolution, force, horizon
44
44
  await compressVideo(filePath, resolution, horizontal);
45
45
  }
46
46
  catch (err) {
47
- console.error(" Error compressing", `"${filePath}"`);
47
+ if (verbose)
48
+ console.error(" Error compressing", err);
49
+ else
50
+ console.error(" Error compressing", `"${filePath}"`);
48
51
  // console.error("Error compressing", `"${filePath}"`, err.message);
49
52
  }
50
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"action-compress.js","sourceRoot":"","sources":["../../src/actions/action-compress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-compress.js","sourceRoot":"","sources":["../../src/actions/action-compress.ts"],"names":[],"mappings":"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"}
package/bin/lib/bash.js CHANGED
@@ -87,22 +87,35 @@ export async function ffmpeg_video_compress(input, output, resolution = "480p",
87
87
  const { w, h } = resolutionMapping[resolution];
88
88
  // 1. Detecta a GPU automaticamente
89
89
  const gpu = await detectGPU();
90
- // 2. Mapeia os Encoders com base no hardware detectado
90
+ // 2. Verifica se é Linux para usar a estratégia correta
91
+ const isLinux = os.platform() === "linux";
92
+ // Mapeia os Encoders. Nota: AMD e Intel no Linux usam VA-API
91
93
  const encoders = {
92
94
  nvidia: "-c:v h264_nvenc -preset p4",
93
- amd: "-c:v h264_amf",
94
- intel: "-c:v h264_qsv",
95
+ amd: isLinux ? "-c:v h264_vaapi" : "-c:v h264_amf",
96
+ intel: isLinux ? "-c:v h264_vaapi" : "-c:v h264_qsv",
95
97
  mac: "-c:v h264_videotoolbox",
96
98
  cpu: "-c:v libx264 -preset fast",
97
99
  };
98
100
  const vcodec = encoders[gpu] || encoders.cpu;
99
- const hwaccel = gpu === "cpu" ? "" : "-hwaccel auto";
100
- // 3. Define o filtro de resolução
101
- const scaleFilter = forceResolution
102
- ? `-s ${w}x${h}`
103
- : `-filter:v scale=-1:${h}`;
101
+ // 3. Configura a aceleração e os filtros
102
+ let hwaccel = gpu === "cpu" ? "" : "-hwaccel auto";
103
+ let videoFilter = "";
104
+ // Lógica específica para o VA-API (AMD/Intel no Linux)
105
+ if (isLinux && (gpu === "amd" || gpu === "intel")) {
106
+ // Aponta diretamente para a placa de vídeo no Linux
107
+ hwaccel = "-vaapi_device /dev/dri/renderD128";
108
+ // O VA-API precisa que o formato seja nv12 e faça o upload para a GPU
109
+ videoFilter = forceResolution
110
+ ? `-vf "scale=${w}:${h},format=nv12,hwupload"`
111
+ : `-vf "scale=-1:${h},format=nv12,hwupload"`;
112
+ }
113
+ else {
114
+ // Lógica padrão para Windows, Mac e NVIDIA
115
+ videoFilter = forceResolution ? `-s ${w}x${h}` : `-filter:v scale=-1:${h}`;
116
+ }
104
117
  // 4. Monta e executa o comando FFmpeg
105
- const command = `ffmpeg ${hwaccel} -i "${input}" ${scaleFilter} ${vcodec} -acodec copy -y "${output}"`;
118
+ const command = `ffmpeg ${hwaccel} -i "${input}" ${videoFilter} ${vcodec} -acodec copy -y "${output}"`;
106
119
  console.log("Converting using: ", vcodec);
107
120
  return execAsync(command);
108
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/lib/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAmB,EAAE,CAC5D,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACtC,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;;YAChC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,MAAM,kBAAkB,GAAG,CAAC,QAAQ,CAAC,CAAC;AAEtC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IAChD,OAAO,SAAS,CAAC,GAAG,UAAU,KAAK,CAAC;SACjC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,YAAY,GAAG,kBAAkB;IACxE,MAAM,oBAAoB,GAAG,EAAE,CAAC;IAEhC,KAAK,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,cAAc,CACtB,CAAC,EACD,sBAAsB,EACtB,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACzD,CAAC;IACJ,CAAC;AACH,CAAC;AAGD,kFAAkF;AAClF,IAAI,aAAa,GAAmB,IAAI,CAAC;AAEzC;;GAEG;AACH,KAAK,UAAU,SAAS;IACtB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,CAAC,iCAAiC;IAE1E,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE/B,IAAI,CAAC;QACH,+DAA+D;QAC/D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,aAAa,GAAG,KAAK,CAAC;YACtB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,4DAA4D;QAC5D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,0CAA0C,CAC3C,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC;QACD,yDAAyD;aACpD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC;QAED,sDAAsD;QACtD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,aAAa,GAAG,QAAQ,CAAC;QAC3B,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,aAAa,GAAG,OAAO,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,KAAK,CAAC,CAAC,mCAAmC;QAC5D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK;YACxB,OAAO,CAAC,IAAI,CACV,4DAA4D,EAC5D,KAAK,CAAC,OAAO,CACd,CAAC;QACJ,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAa,EACb,MAAc,EACd,aAAyB,MAAM,EAC/B,eAAyB;IAEzB,sEAAsE;IACtE,MAAM,iBAAiB,GAAsD;QAC3E,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK;QACpC,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK;QACpC,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU;QACzC,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU;QACzC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK;QAClC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,YAAY;QACxC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM;QAClC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ;KACrC,CAAC;IAEF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAE/C,mCAAmC;IACnC,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAE9B,uDAAuD;IACvD,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,4BAA4B;QACpC,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,eAAe;QACtB,GAAG,EAAE,wBAAwB;QAC7B,GAAG,EAAE,2BAA2B;KACjC,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC;IAC7C,MAAM,OAAO,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;IAErD,kCAAkC;IAClC,MAAM,WAAW,GAAG,eAAe;QACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAChB,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC;IAE9B,sCAAsC;IACtC,MAAM,OAAO,GAAG,UAAU,OAAO,QAAQ,KAAK,KAAK,WAAW,IAAI,MAAM,qBAAqB,MAAM,GAAG,CAAC;IAEvG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAE1C,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,qDAAqD;AACrD,UAAU;AACV,oEAAoE;AACpE,wBAAwB;AACxB,SAAS;AAET,2DAA2D;AAC3D,0DAA0D;AAC1D,8DAA8D;AAE9D,0BAA0B;AAC1B,8DAA8D;AAC9D,0DAA0D;AAC1D,4EAA4E;AAE5E,oCAAoC;AACpC,cAAc;AACd,wBAAwB;AACxB,MAAM;AACN,IAAI;AAEJ,+CAA+C;AAC/C,mBAAmB;AACnB,oBAAoB;AACpB,qCAAqC;AACrC,+BAA+B;AAC/B,MAAM;AACN,oDAAoD;AACpD,4CAA4C;AAE5C,kGAAkG;AAClG,wEAAwE;AACxE,oCAAoC;AACpC,qDAAqD;AACrD,wFAAwF;AACxF,MAAM;AAEN,sBAAsB;AACtB,2EAA2E;AAE3E,uDAAuD;AAEvD,sBAAsB;AACtB,wHAAwH;AACxH,OAAO;AACP,IAAI;AACJ,+CAA+C;AAC/C,mBAAmB;AACnB,oBAAoB;AACpB,qCAAqC;AACrC,8BAA8B;AAC9B,MAAM;AACN,oDAAoD;AAEpD,sBAAsB;AACtB,sBAAsB;AACtB,0EAA0E;AAC1E,qFAAqF;AACrF,OAAO;AACP,IAAI;AAEJ,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAa,EAAE,MAAc;IACtE,OAAO,SAAS,CAAC,cAAc,KAAK,mBAAmB,MAAM,GAAG,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/lib/bash.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-toolkit-cli",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "repository": "https://github.com/daviinacio/dev-toolkit",
5
5
  "author": "Davi Inácio <aazz6850@gmail.com>",
6
6
  "license": "MIT",
@@ -41,7 +41,7 @@ export type CompressFileArgs = {
41
41
 
42
42
  export async function file(
43
43
  pathname: string,
44
- { verbose, type, resolution, force, horizontal }: CompressFileArgs
44
+ { verbose, type, resolution, force, horizontal }: CompressFileArgs,
45
45
  ) {
46
46
  await check_dependencies(["ffmpeg"]);
47
47
 
@@ -61,7 +61,7 @@ export async function file(
61
61
  (unsupportedFormats[fileType] || []).includes(mimetype) ||
62
62
  (!force &&
63
63
  [compressedFlagPrefix, compressTempPrefix].some((pf) =>
64
- getFilename(filePath).startsWith(pf)
64
+ getFilename(filePath).startsWith(pf),
65
65
  ))
66
66
  )
67
67
  continue;
@@ -82,7 +82,8 @@ export async function file(
82
82
  else if (fileType === "video")
83
83
  await compressVideo(filePath, resolution, horizontal);
84
84
  } catch (err) {
85
- console.error(" Error compressing", `"${filePath}"`);
85
+ if (verbose) console.error(" Error compressing", err);
86
+ else console.error(" Error compressing", `"${filePath}"`);
86
87
  // console.error("Error compressing", `"${filePath}"`, err.message);
87
88
  }
88
89
  }
@@ -96,7 +97,7 @@ async function compressImage(filePath: string) {
96
97
  // .toFile(replaceFilenameExtension(filePath, "webp"));
97
98
  await ffmpeg_image_to_webp(
98
99
  filePath,
99
- replaceFilenameExtension(filePath, "webp")
100
+ replaceFilenameExtension(filePath, "webp"),
100
101
  );
101
102
  await fs.rm(filePath);
102
103
  }
@@ -104,7 +105,7 @@ async function compressImage(filePath: string) {
104
105
  async function compressVideo(
105
106
  filePath: string,
106
107
  resolution: Resolution,
107
- force?: boolean
108
+ force?: boolean,
108
109
  ) {
109
110
  const directory = getDirectory(filePath);
110
111
  let filename = getFilename(filePath);
@@ -113,14 +114,14 @@ async function compressVideo(
113
114
  if (filename !== normalizedFilename) {
114
115
  const oldPathname = path.join(directory, filename);
115
116
  const newPathname = await getAvailablePathname(
116
- path.join(directory, normalizedFilename)
117
+ path.join(directory, normalizedFilename),
117
118
  );
118
119
 
119
120
  if (!newPathname) {
120
121
  throw new CommanderError(
121
122
  1,
122
123
  "P003",
123
- "Could not find a new file destination"
124
+ "Could not find a new file destination",
124
125
  );
125
126
  }
126
127
 
@@ -129,7 +130,7 @@ async function compressVideo(
129
130
  " File renamed. From:",
130
131
  `'${filename.trim()}'`,
131
132
  "to:",
132
- `'${newFilename.trim()}'`
133
+ `'${newFilename.trim()}'`,
133
134
  );
134
135
 
135
136
  await fs.rename(oldPathname, newPathname);
@@ -143,7 +144,7 @@ async function compressVideo(
143
144
  async (err) => {
144
145
  await fs.rm(output);
145
146
  throw err;
146
- }
147
+ },
147
148
  );
148
149
 
149
150
  await fs.rm(input);
@@ -151,7 +152,7 @@ async function compressVideo(
151
152
  output,
152
153
  addFilenamePrefix(
153
154
  removeFilenamePrefix(input, compressedFlagPrefix),
154
- compressedFlagPrefix
155
- )
155
+ compressedFlagPrefix,
156
+ ),
156
157
  );
157
158
  }
package/src/lib/bash.ts CHANGED
@@ -115,25 +115,40 @@ export async function ffmpeg_video_compress(
115
115
  // 1. Detecta a GPU automaticamente
116
116
  const gpu = await detectGPU();
117
117
 
118
- // 2. Mapeia os Encoders com base no hardware detectado
118
+ // 2. Verifica se é Linux para usar a estratégia correta
119
+ const isLinux = os.platform() === "linux";
120
+
121
+ // Mapeia os Encoders. Nota: AMD e Intel no Linux usam VA-API
119
122
  const encoders = {
120
123
  nvidia: "-c:v h264_nvenc -preset p4",
121
- amd: "-c:v h264_amf",
122
- intel: "-c:v h264_qsv",
124
+ amd: isLinux ? "-c:v h264_vaapi" : "-c:v h264_amf",
125
+ intel: isLinux ? "-c:v h264_vaapi" : "-c:v h264_qsv",
123
126
  mac: "-c:v h264_videotoolbox",
124
127
  cpu: "-c:v libx264 -preset fast",
125
128
  };
126
129
 
127
130
  const vcodec = encoders[gpu] || encoders.cpu;
128
- const hwaccel = gpu === "cpu" ? "" : "-hwaccel auto";
129
131
 
130
- // 3. Define o filtro de resolução
131
- const scaleFilter = forceResolution
132
- ? `-s ${w}x${h}`
133
- : `-filter:v scale=-1:${h}`;
132
+ // 3. Configura a aceleração e os filtros
133
+ let hwaccel = gpu === "cpu" ? "" : "-hwaccel auto";
134
+ let videoFilter = "";
135
+
136
+ // Lógica específica para o VA-API (AMD/Intel no Linux)
137
+ if (isLinux && (gpu === "amd" || gpu === "intel")) {
138
+ // Aponta diretamente para a placa de vídeo no Linux
139
+ hwaccel = "-vaapi_device /dev/dri/renderD128";
140
+
141
+ // O VA-API precisa que o formato seja nv12 e faça o upload para a GPU
142
+ videoFilter = forceResolution
143
+ ? `-vf "scale=${w}:${h},format=nv12,hwupload"`
144
+ : `-vf "scale=-1:${h},format=nv12,hwupload"`;
145
+ } else {
146
+ // Lógica padrão para Windows, Mac e NVIDIA
147
+ videoFilter = forceResolution ? `-s ${w}x${h}` : `-filter:v scale=-1:${h}`;
148
+ }
134
149
 
135
150
  // 4. Monta e executa o comando FFmpeg
136
- const command = `ffmpeg ${hwaccel} -i "${input}" ${scaleFilter} ${vcodec} -acodec copy -y "${output}"`;
151
+ const command = `ffmpeg ${hwaccel} -i "${input}" ${videoFilter} ${vcodec} -acodec copy -y "${output}"`;
137
152
 
138
153
  console.log("Converting using: ", vcodec);
139
154