n8n-nodes-sb-render 1.0.0

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 (37) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +442 -0
  3. package/dist/nodes/SbRender/SbRender.node.d.ts +10 -0
  4. package/dist/nodes/SbRender/SbRender.node.d.ts.map +1 -0
  5. package/dist/nodes/SbRender/SbRender.node.js +768 -0
  6. package/dist/nodes/SbRender/SbRender.node.js.map +1 -0
  7. package/dist/nodes/SbRender/interfaces/index.d.ts +155 -0
  8. package/dist/nodes/SbRender/interfaces/index.d.ts.map +1 -0
  9. package/dist/nodes/SbRender/interfaces/index.js +41 -0
  10. package/dist/nodes/SbRender/interfaces/index.js.map +1 -0
  11. package/dist/nodes/SbRender/sbrender.svg +7 -0
  12. package/dist/nodes/SbRender/services/AudioMixer.d.ts +26 -0
  13. package/dist/nodes/SbRender/services/AudioMixer.d.ts.map +1 -0
  14. package/dist/nodes/SbRender/services/AudioMixer.js +120 -0
  15. package/dist/nodes/SbRender/services/AudioMixer.js.map +1 -0
  16. package/dist/nodes/SbRender/services/FileManager.d.ts +37 -0
  17. package/dist/nodes/SbRender/services/FileManager.d.ts.map +1 -0
  18. package/dist/nodes/SbRender/services/FileManager.js +157 -0
  19. package/dist/nodes/SbRender/services/FileManager.js.map +1 -0
  20. package/dist/nodes/SbRender/services/SubtitleEngine.d.ts +64 -0
  21. package/dist/nodes/SbRender/services/SubtitleEngine.d.ts.map +1 -0
  22. package/dist/nodes/SbRender/services/SubtitleEngine.js +213 -0
  23. package/dist/nodes/SbRender/services/SubtitleEngine.js.map +1 -0
  24. package/dist/nodes/SbRender/services/VideoComposer.d.ts +28 -0
  25. package/dist/nodes/SbRender/services/VideoComposer.d.ts.map +1 -0
  26. package/dist/nodes/SbRender/services/VideoComposer.js +228 -0
  27. package/dist/nodes/SbRender/services/VideoComposer.js.map +1 -0
  28. package/dist/nodes/SbRender/utils/ffmpeg.d.ts +32 -0
  29. package/dist/nodes/SbRender/utils/ffmpeg.d.ts.map +1 -0
  30. package/dist/nodes/SbRender/utils/ffmpeg.js +107 -0
  31. package/dist/nodes/SbRender/utils/ffmpeg.js.map +1 -0
  32. package/dist/nodes/SbRender/utils/validation.d.ts +32 -0
  33. package/dist/nodes/SbRender/utils/validation.d.ts.map +1 -0
  34. package/dist/nodes/SbRender/utils/validation.js +210 -0
  35. package/dist/nodes/SbRender/utils/validation.js.map +1 -0
  36. package/index.js +3 -0
  37. package/package.json +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SbRender.node.js","sourceRoot":"","sources":["../../../nodes/SbRender/SbRender.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * TypeScript interfaces for sb-render n8n node
3
+ */
4
+ export interface ISbRenderNodeParams {
5
+ resource: 'Video';
6
+ operation: 'Render';
7
+ videoSource: 'url' | 'binary';
8
+ videoUrl?: string;
9
+ videoBinaryProperty?: string;
10
+ enableBGM: boolean;
11
+ bgmSource?: 'url' | 'binary';
12
+ bgmUrl?: string;
13
+ bgmBinaryProperty?: string;
14
+ bgmVolume?: number;
15
+ bgmFadeIn?: number;
16
+ bgmFadeOut?: number;
17
+ enableNarration: boolean;
18
+ narrationSource?: 'url' | 'binary';
19
+ narrationUrl?: string;
20
+ narrationBinaryProperty?: string;
21
+ narrationVolume?: number;
22
+ narrationDelay?: number;
23
+ enableSubtitles: boolean;
24
+ subtitles?: ISubtitleConfig[];
25
+ outputFormat: 'mp4' | 'mov' | 'webm';
26
+ videoCodec: 'libx264' | 'libx265' | 'vp9';
27
+ quality: 'low' | 'medium' | 'high' | 'custom';
28
+ customCRF?: number;
29
+ outputBinaryProperty: string;
30
+ }
31
+ export interface ISubtitleConfig {
32
+ text: string;
33
+ startTime: number;
34
+ endTime: number;
35
+ position: 'top' | 'middle' | 'bottom' | 'custom';
36
+ customX?: number;
37
+ customY?: number;
38
+ fontSize: number;
39
+ fontColor: string;
40
+ fontFamily: string;
41
+ alignment: 'left' | 'center' | 'right';
42
+ backgroundColor?: string;
43
+ backgroundOpacity?: number;
44
+ borderColor?: string;
45
+ borderWidth?: number;
46
+ }
47
+ export interface IMediaFile {
48
+ path: string;
49
+ type: 'video' | 'audio' | 'subtitle';
50
+ temporary: boolean;
51
+ }
52
+ export interface IAudioMixConfig {
53
+ videoDuration: number;
54
+ bgmPath?: string;
55
+ bgmVolume: number;
56
+ bgmFadeIn: number;
57
+ bgmFadeOut: number;
58
+ narrationPath?: string;
59
+ narrationVolume: number;
60
+ narrationDelay: number;
61
+ }
62
+ export interface IFFmpegCommand {
63
+ inputs: string[];
64
+ filters: string[];
65
+ outputs: string[];
66
+ }
67
+ export interface IFileManager {
68
+ /**
69
+ * Download file from URL to temporary location
70
+ */
71
+ downloadFile(url: string): Promise<string>;
72
+ /**
73
+ * Extract binary data to temporary file
74
+ */
75
+ extractBinary(binaryData: Buffer, extension: string): Promise<string>;
76
+ /**
77
+ * Create temporary file path with extension
78
+ */
79
+ createTempFile(extension: string): Promise<string>;
80
+ /**
81
+ * Clean up temporary files
82
+ */
83
+ cleanup(files: string[]): Promise<void>;
84
+ }
85
+ export interface IAudioMixer {
86
+ /**
87
+ * Mix BGM and narration with video audio
88
+ */
89
+ mixAudioTracks(videoPath: string, config: IAudioMixConfig): Promise<string>;
90
+ /**
91
+ * Generate FFmpeg audio filter chain
92
+ */
93
+ getAudioFilterChain(config: IAudioMixConfig, hasOriginalAudio: boolean): string;
94
+ }
95
+ export interface ISubtitleEngine {
96
+ /**
97
+ * Generate SRT subtitle file
98
+ */
99
+ generateSRT(subtitles: ISubtitleConfig[]): string;
100
+ /**
101
+ * Generate ASS subtitle file with styling
102
+ */
103
+ generateASS(subtitles: ISubtitleConfig[], videoWidth: number, videoHeight: number): string;
104
+ /**
105
+ * Write subtitle file to disk
106
+ */
107
+ writeSubtitleFile(content: string, format: 'srt' | 'ass'): Promise<string>;
108
+ }
109
+ export interface IVideoComposer {
110
+ /**
111
+ * Compose final video with audio and subtitles
112
+ */
113
+ compose(videoPath: string, audioPath: string | null, subtitlePath: string | null, outputPath: string, config: ISbRenderNodeParams): Promise<Buffer>;
114
+ /**
115
+ * Get video metadata (duration, resolution, codec)
116
+ */
117
+ getVideoMetadata(videoPath: string): Promise<IVideoMetadata>;
118
+ }
119
+ export interface IVideoMetadata {
120
+ duration: number;
121
+ width: number;
122
+ height: number;
123
+ hasAudio: boolean;
124
+ videoCodec: string;
125
+ audioCodec?: string;
126
+ }
127
+ export declare const DEFAULTS: {
128
+ bgmVolume: number;
129
+ bgmFadeIn: number;
130
+ bgmFadeOut: number;
131
+ narrationVolume: number;
132
+ narrationDelay: number;
133
+ subtitle: {
134
+ position: "bottom";
135
+ fontSize: number;
136
+ fontColor: string;
137
+ fontFamily: string;
138
+ alignment: "center";
139
+ backgroundColor: string;
140
+ backgroundOpacity: number;
141
+ borderColor: string;
142
+ borderWidth: number;
143
+ customY: number;
144
+ };
145
+ outputFormat: "mp4";
146
+ videoCodec: "libx264";
147
+ quality: "high";
148
+ crfMapping: {
149
+ low: number;
150
+ medium: number;
151
+ high: number;
152
+ };
153
+ outputBinaryProperty: string;
154
+ };
155
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../nodes/SbRender/interfaces/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * TypeScript interfaces for sb-render n8n node
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DEFAULTS = void 0;
7
+ // ============================================================================
8
+ // Default Configuration
9
+ // ============================================================================
10
+ exports.DEFAULTS = {
11
+ // Audio
12
+ bgmVolume: 30,
13
+ bgmFadeIn: 2,
14
+ bgmFadeOut: 2,
15
+ narrationVolume: 80,
16
+ narrationDelay: 0,
17
+ // Subtitles
18
+ subtitle: {
19
+ position: 'bottom',
20
+ fontSize: 48,
21
+ fontColor: '#FFFFFF',
22
+ fontFamily: 'Arial',
23
+ alignment: 'center',
24
+ backgroundColor: '#000000',
25
+ backgroundOpacity: 80,
26
+ borderColor: '#000000',
27
+ borderWidth: 2,
28
+ customY: 100, // pixels from bottom when position = 'bottom'
29
+ },
30
+ // Output
31
+ outputFormat: 'mp4',
32
+ videoCodec: 'libx264',
33
+ quality: 'high',
34
+ crfMapping: {
35
+ low: 28,
36
+ medium: 23,
37
+ high: 18,
38
+ },
39
+ outputBinaryProperty: 'data',
40
+ };
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/SbRender/interfaces/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAiLH,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAElE,QAAA,QAAQ,GAAG;IACtB,QAAQ;IACR,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,CAAC;IAEjB,YAAY;IACZ,QAAQ,EAAE;QACR,QAAQ,EAAE,QAAiB;QAC3B,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,QAAiB;QAC5B,eAAe,EAAE,SAAS;QAC1B,iBAAiB,EAAE,EAAE;QACrB,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,GAAG,EAAE,8CAA8C;KAC7D;IAED,SAAS;IACT,YAAY,EAAE,KAAc;IAC5B,UAAU,EAAE,SAAkB;IAC9B,OAAO,EAAE,MAAe;IACxB,UAAU,EAAE;QACV,GAAG,EAAE,EAAE;QACP,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE;KACT;IACD,oBAAoB,EAAE,MAAM;CAC7B,CAAC"}
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100">
2
+ <rect width="100" height="100" fill="#4A90E2" rx="15"/>
3
+ <path d="M30 35 L30 65 L60 50 Z" fill="white"/>
4
+ <rect x="65" y="60" width="15" height="8" fill="white" rx="2"/>
5
+ <rect x="65" y="45" width="15" height="8" fill="white" rx="2"/>
6
+ <rect x="65" y="30" width="15" height="8" fill="white" rx="2"/>
7
+ </svg>
@@ -0,0 +1,26 @@
1
+ import type { IAudioMixer, IAudioMixConfig } from '../interfaces';
2
+ /**
3
+ * AudioMixer Service
4
+ * Handles audio track mixing with volume control and fade effects
5
+ */
6
+ export declare class AudioMixer implements IAudioMixer {
7
+ /**
8
+ * Mix BGM and narration with video audio
9
+ * Returns path to video with mixed audio
10
+ */
11
+ mixAudioTracks(videoPath: string, _config: IAudioMixConfig): Promise<string>;
12
+ /**
13
+ * Generate FFmpeg audio filter chain
14
+ * Creates complex filter for mixing multiple audio sources
15
+ */
16
+ getAudioFilterChain(config: IAudioMixConfig, hasOriginalAudio: boolean): string;
17
+ /**
18
+ * Calculate the number of audio inputs for FFmpeg command
19
+ */
20
+ getAudioInputCount(config: IAudioMixConfig, hasOriginalAudio: boolean): number;
21
+ /**
22
+ * Validate audio mix configuration
23
+ */
24
+ validateConfig(config: IAudioMixConfig): void;
25
+ }
26
+ //# sourceMappingURL=AudioMixer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioMixer.d.ts","sourceRoot":"","sources":["../../../../nodes/SbRender/services/AudioMixer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAElE;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC5C;;;OAGG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC;IAOlB;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,GAAG,MAAM;IA0E/E;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,GAAG,MAAM;IAQ9E;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;CAyB9C"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AudioMixer = void 0;
4
+ /**
5
+ * AudioMixer Service
6
+ * Handles audio track mixing with volume control and fade effects
7
+ */
8
+ class AudioMixer {
9
+ /**
10
+ * Mix BGM and narration with video audio
11
+ * Returns path to video with mixed audio
12
+ */
13
+ async mixAudioTracks(videoPath, _config) {
14
+ // This method would typically use FFmpeg directly
15
+ // For now, we return the filter chain that will be used by VideoComposer
16
+ // The actual mixing happens during final composition
17
+ return videoPath;
18
+ }
19
+ /**
20
+ * Generate FFmpeg audio filter chain
21
+ * Creates complex filter for mixing multiple audio sources
22
+ */
23
+ getAudioFilterChain(config, hasOriginalAudio) {
24
+ const filters = [];
25
+ const inputs = [];
26
+ let inputIndex = hasOriginalAudio ? 1 : 0; // 0 is video, skip if no audio
27
+ // Handle original video audio
28
+ if (hasOriginalAudio) {
29
+ filters.push('[0:a]volume=1.0[original]');
30
+ inputs.push('[original]');
31
+ }
32
+ // Handle BGM
33
+ if (config.bgmPath) {
34
+ const bgmVolume = config.bgmVolume / 100;
35
+ const fadeIn = config.bgmFadeIn;
36
+ const fadeOut = config.bgmFadeOut;
37
+ const fadeOutStart = Math.max(0, config.videoDuration - fadeOut);
38
+ let bgmFilter = `[${inputIndex}:a]volume=${bgmVolume}`;
39
+ // Add fade in effect
40
+ if (fadeIn > 0) {
41
+ bgmFilter += `,afade=t=in:st=0:d=${fadeIn}`;
42
+ }
43
+ // Add fade out effect
44
+ if (fadeOut > 0) {
45
+ bgmFilter += `,afade=t=out:st=${fadeOutStart}:d=${fadeOut}`;
46
+ }
47
+ bgmFilter += '[bgm]';
48
+ filters.push(bgmFilter);
49
+ inputs.push('[bgm]');
50
+ inputIndex++;
51
+ }
52
+ // Handle Narration
53
+ if (config.narrationPath) {
54
+ const narrationVolume = config.narrationVolume / 100;
55
+ const delay = config.narrationDelay * 1000; // Convert to milliseconds
56
+ let narrationFilter = `[${inputIndex}:a]volume=${narrationVolume}`;
57
+ // Add delay if specified
58
+ if (delay > 0) {
59
+ narrationFilter += `,adelay=${delay}|${delay}`;
60
+ }
61
+ narrationFilter += '[narration]';
62
+ filters.push(narrationFilter);
63
+ inputs.push('[narration]');
64
+ inputIndex++;
65
+ }
66
+ // Mix all audio tracks
67
+ if (inputs.length === 0) {
68
+ return ''; // No audio to mix
69
+ }
70
+ if (inputs.length === 1) {
71
+ // Only one audio source, just use it directly
72
+ const singleInput = inputs[0];
73
+ filters.push(`${singleInput}acopy[mixed]`);
74
+ }
75
+ else {
76
+ // Mix multiple audio sources
77
+ const mixInputs = inputs.join('');
78
+ filters.push(`${mixInputs}amix=inputs=${inputs.length}:duration=first:dropout_transition=2,dynaudnorm[mixed]`);
79
+ }
80
+ return filters.join(';');
81
+ }
82
+ /**
83
+ * Calculate the number of audio inputs for FFmpeg command
84
+ */
85
+ getAudioInputCount(config, hasOriginalAudio) {
86
+ let count = 0;
87
+ if (hasOriginalAudio)
88
+ count++;
89
+ if (config.bgmPath)
90
+ count++;
91
+ if (config.narrationPath)
92
+ count++;
93
+ return count;
94
+ }
95
+ /**
96
+ * Validate audio mix configuration
97
+ */
98
+ validateConfig(config) {
99
+ if (config.bgmVolume < 0 || config.bgmVolume > 100) {
100
+ throw new Error('BGM volume must be between 0 and 100');
101
+ }
102
+ if (config.narrationVolume < 0 || config.narrationVolume > 100) {
103
+ throw new Error('Narration volume must be between 0 and 100');
104
+ }
105
+ if (config.bgmFadeIn < 0) {
106
+ throw new Error('BGM fade-in duration must be non-negative');
107
+ }
108
+ if (config.bgmFadeOut < 0) {
109
+ throw new Error('BGM fade-out duration must be non-negative');
110
+ }
111
+ if (config.narrationDelay < 0) {
112
+ throw new Error('Narration delay must be non-negative');
113
+ }
114
+ if (config.videoDuration <= 0) {
115
+ throw new Error('Video duration must be positive');
116
+ }
117
+ }
118
+ }
119
+ exports.AudioMixer = AudioMixer;
120
+ //# sourceMappingURL=AudioMixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioMixer.js","sourceRoot":"","sources":["../../../../nodes/SbRender/services/AudioMixer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { IFileManager } from '../interfaces';
2
+ /**
3
+ * FileManager Service
4
+ * Handles file downloads, binary extraction, and temporary file management
5
+ */
6
+ export declare class FileManager implements IFileManager {
7
+ private tempFiles;
8
+ /**
9
+ * Download file from URL to temporary location
10
+ */
11
+ downloadFile(url: string): Promise<string>;
12
+ /**
13
+ * Extract binary data to temporary file
14
+ */
15
+ extractBinary(binaryData: Buffer, extension: string): Promise<string>;
16
+ /**
17
+ * Create temporary file path with extension
18
+ */
19
+ createTempFile(extension: string): Promise<string>;
20
+ /**
21
+ * Clean up temporary files
22
+ */
23
+ cleanup(files?: string[]): Promise<void>;
24
+ /**
25
+ * Extract file extension from URL
26
+ */
27
+ private getExtensionFromUrl;
28
+ /**
29
+ * Get file extension from Content-Type header
30
+ */
31
+ private getExtensionFromContentType;
32
+ /**
33
+ * Get list of tracked temporary files
34
+ */
35
+ getTempFiles(): string[];
36
+ }
37
+ //# sourceMappingURL=FileManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileManager.d.ts","sourceRoot":"","sources":["../../../../nodes/SbRender/services/FileManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;GAGG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,SAAS,CAAgB;IAEjC;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BhD;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU3E;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxD;;OAEG;IACG,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB9C;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAkBnC;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;CAGzB"}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.FileManager = void 0;
40
+ const fs_1 = require("fs");
41
+ const path = __importStar(require("path"));
42
+ const node_fetch_1 = __importDefault(require("node-fetch"));
43
+ const tmp_promise_1 = require("tmp-promise");
44
+ /**
45
+ * FileManager Service
46
+ * Handles file downloads, binary extraction, and temporary file management
47
+ */
48
+ class FileManager {
49
+ constructor() {
50
+ this.tempFiles = [];
51
+ }
52
+ /**
53
+ * Download file from URL to temporary location
54
+ */
55
+ async downloadFile(url) {
56
+ try {
57
+ const response = await (0, node_fetch_1.default)(url);
58
+ if (!response.ok) {
59
+ throw new Error(`Failed to download file: ${response.status} ${response.statusText}`);
60
+ }
61
+ // Extract file extension from URL or content-type
62
+ const extension = this.getExtensionFromUrl(url) || this.getExtensionFromContentType(response.headers.get('content-type'));
63
+ const tempPath = await this.createTempFile(extension);
64
+ // Stream download to temp file
65
+ const fileStream = (0, fs_1.createWriteStream)(tempPath);
66
+ await new Promise((resolve, reject) => {
67
+ response.body.pipe(fileStream);
68
+ response.body.on('error', reject);
69
+ fileStream.on('finish', resolve);
70
+ });
71
+ return tempPath;
72
+ }
73
+ catch (error) {
74
+ throw new Error(`File download failed: ${error instanceof Error ? error.message : String(error)}`);
75
+ }
76
+ }
77
+ /**
78
+ * Extract binary data to temporary file
79
+ */
80
+ async extractBinary(binaryData, extension) {
81
+ try {
82
+ const tempPath = await this.createTempFile(extension);
83
+ await fs_1.promises.writeFile(tempPath, binaryData);
84
+ return tempPath;
85
+ }
86
+ catch (error) {
87
+ throw new Error(`Binary extraction failed: ${error instanceof Error ? error.message : String(error)}`);
88
+ }
89
+ }
90
+ /**
91
+ * Create temporary file path with extension
92
+ */
93
+ async createTempFile(extension) {
94
+ const result = await (0, tmp_promise_1.file)({
95
+ prefix: 'sb-render-',
96
+ postfix: extension.startsWith('.') ? extension : `.${extension}`,
97
+ keep: true, // Keep file until manual cleanup
98
+ });
99
+ this.tempFiles.push(result.path);
100
+ return result.path;
101
+ }
102
+ /**
103
+ * Clean up temporary files
104
+ */
105
+ async cleanup(files) {
106
+ const filesToClean = files || this.tempFiles;
107
+ await Promise.all(filesToClean.map(async (file) => {
108
+ try {
109
+ await fs_1.promises.unlink(file);
110
+ }
111
+ catch (error) {
112
+ // Ignore errors if file doesn't exist
113
+ if (error.code !== 'ENOENT') {
114
+ console.warn(`Failed to clean up temp file ${file}:`, error);
115
+ }
116
+ }
117
+ }));
118
+ if (!files) {
119
+ this.tempFiles = [];
120
+ }
121
+ }
122
+ /**
123
+ * Extract file extension from URL
124
+ */
125
+ getExtensionFromUrl(url) {
126
+ const urlPath = new URL(url).pathname;
127
+ const ext = path.extname(urlPath);
128
+ return ext || '';
129
+ }
130
+ /**
131
+ * Get file extension from Content-Type header
132
+ */
133
+ getExtensionFromContentType(contentType) {
134
+ if (!contentType)
135
+ return '';
136
+ const mimeToExt = {
137
+ 'video/mp4': '.mp4',
138
+ 'video/quicktime': '.mov',
139
+ 'video/webm': '.webm',
140
+ 'video/x-msvideo': '.avi',
141
+ 'audio/mpeg': '.mp3',
142
+ 'audio/wav': '.wav',
143
+ 'audio/aac': '.aac',
144
+ 'audio/ogg': '.ogg',
145
+ };
146
+ const mimeType = contentType.split(';')[0].trim();
147
+ return mimeToExt[mimeType] || '';
148
+ }
149
+ /**
150
+ * Get list of tracked temporary files
151
+ */
152
+ getTempFiles() {
153
+ return [...this.tempFiles];
154
+ }
155
+ }
156
+ exports.FileManager = FileManager;
157
+ //# sourceMappingURL=FileManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../../nodes/SbRender/services/FileManager.ts"],"names":[],"mappings":"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"}