@apergrex/n8n-nodes-franklab 0.1.2 → 0.2.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 (126) hide show
  1. package/README.md +144 -7
  2. package/dist/nodes/Alibaba/Alibaba.node.json +10 -0
  3. package/dist/nodes/Alibaba/FrankLabAlibaba.node.d.ts +5 -0
  4. package/dist/nodes/Alibaba/FrankLabAlibaba.node.js +167 -0
  5. package/dist/nodes/Alibaba/FrankLabAlibaba.node.js.map +1 -0
  6. package/dist/nodes/Alibaba/alibaba.svg +4 -0
  7. package/dist/nodes/Aries/Aries.node.json +10 -0
  8. package/dist/nodes/Aries/FrankLabAries.node.d.ts +5 -0
  9. package/dist/nodes/Aries/FrankLabAries.node.js +48 -0
  10. package/dist/nodes/Aries/FrankLabAries.node.js.map +1 -0
  11. package/dist/nodes/Aries/aries.svg +6 -0
  12. package/dist/nodes/C2pa/FrankLabC2pa.node.js +1 -0
  13. package/dist/nodes/C2pa/FrankLabC2pa.node.js.map +1 -1
  14. package/dist/nodes/Dola/Dola.node.json +10 -0
  15. package/dist/nodes/Dola/FrankLabDola.node.d.ts +5 -0
  16. package/dist/nodes/Dola/FrankLabDola.node.js +155 -0
  17. package/dist/nodes/Dola/FrankLabDola.node.js.map +1 -0
  18. package/dist/nodes/Dola/dola.svg +6 -0
  19. package/dist/nodes/Holst/FrankLabHolst.node.js +9 -12
  20. package/dist/nodes/Holst/FrankLabHolst.node.js.map +1 -1
  21. package/dist/nodes/HotCoffe/FrankLabHotCoffe.node.d.ts +5 -0
  22. package/dist/nodes/HotCoffe/FrankLabHotCoffe.node.js +129 -0
  23. package/dist/nodes/HotCoffe/FrankLabHotCoffe.node.js.map +1 -0
  24. package/dist/nodes/HotCoffe/HotCoffe.node.json +10 -0
  25. package/dist/nodes/HotCoffe/hotcoffe.svg +6 -0
  26. package/dist/nodes/Jupiter/FrankLabJupiter.node.d.ts +5 -0
  27. package/dist/nodes/Jupiter/FrankLabJupiter.node.js +132 -0
  28. package/dist/nodes/Jupiter/FrankLabJupiter.node.js.map +1 -0
  29. package/dist/nodes/Jupiter/Jupiter.node.json +10 -0
  30. package/dist/nodes/Jupiter/jupiter.svg +7 -0
  31. package/dist/nodes/Kley/FrankLabKley.node.js +1 -0
  32. package/dist/nodes/Kley/FrankLabKley.node.js.map +1 -1
  33. package/dist/nodes/Kusok/FrankLabKusok.node.d.ts +5 -0
  34. package/dist/nodes/Kusok/FrankLabKusok.node.js +188 -0
  35. package/dist/nodes/Kusok/FrankLabKusok.node.js.map +1 -0
  36. package/dist/nodes/Kusok/Kusok.node.json +10 -0
  37. package/dist/nodes/Kusok/kusok.svg +7 -0
  38. package/dist/nodes/Mars/FrankLabMars.node.d.ts +5 -0
  39. package/dist/nodes/Mars/FrankLabMars.node.js +178 -0
  40. package/dist/nodes/Mars/FrankLabMars.node.js.map +1 -0
  41. package/dist/nodes/Mars/Mars.node.json +10 -0
  42. package/dist/nodes/Mars/mars.svg +6 -0
  43. package/dist/nodes/Mercury/FrankLabMercury.node.d.ts +5 -0
  44. package/dist/nodes/Mercury/FrankLabMercury.node.js +84 -0
  45. package/dist/nodes/Mercury/FrankLabMercury.node.js.map +1 -0
  46. package/dist/nodes/Mercury/Mercury.node.json +10 -0
  47. package/dist/nodes/Mercury/mercury.svg +6 -0
  48. package/dist/nodes/Minimax/FrankLabMinimax.node.d.ts +5 -0
  49. package/dist/nodes/Minimax/FrankLabMinimax.node.js +157 -0
  50. package/dist/nodes/Minimax/FrankLabMinimax.node.js.map +1 -0
  51. package/dist/nodes/Minimax/Minimax.node.json +10 -0
  52. package/dist/nodes/Minimax/minimax.svg +5 -0
  53. package/dist/nodes/Moon/FrankLabMoon.node.d.ts +5 -0
  54. package/dist/nodes/Moon/FrankLabMoon.node.js +132 -0
  55. package/dist/nodes/Moon/FrankLabMoon.node.js.map +1 -0
  56. package/dist/nodes/Moon/Moon.node.json +10 -0
  57. package/dist/nodes/Moon/moon.svg +5 -0
  58. package/dist/nodes/Neptune/FrankLabNeptune.node.d.ts +5 -0
  59. package/dist/nodes/Neptune/FrankLabNeptune.node.js +80 -0
  60. package/dist/nodes/Neptune/FrankLabNeptune.node.js.map +1 -0
  61. package/dist/nodes/Neptune/Neptune.node.json +10 -0
  62. package/dist/nodes/Neptune/neptune.svg +5 -0
  63. package/dist/nodes/Omni/FrankLabOmni.node.d.ts +5 -0
  64. package/dist/nodes/Omni/FrankLabOmni.node.js +194 -0
  65. package/dist/nodes/Omni/FrankLabOmni.node.js.map +1 -0
  66. package/dist/nodes/Omni/Omni.node.json +10 -0
  67. package/dist/nodes/Omni/omni.svg +6 -0
  68. package/dist/nodes/Orkestr/FrankLabOrkestr.node.d.ts +5 -0
  69. package/dist/nodes/Orkestr/FrankLabOrkestr.node.js +243 -0
  70. package/dist/nodes/Orkestr/FrankLabOrkestr.node.js.map +1 -0
  71. package/dist/nodes/Orkestr/Orkestr.node.json +10 -0
  72. package/dist/nodes/Orkestr/orkestr.svg +6 -0
  73. package/dist/nodes/Plastinka/FrankLabPlastinka.node.js +1 -0
  74. package/dist/nodes/Plastinka/FrankLabPlastinka.node.js.map +1 -1
  75. package/dist/nodes/Pluto/FrankLabPluto.node.d.ts +5 -0
  76. package/dist/nodes/Pluto/FrankLabPluto.node.js +74 -0
  77. package/dist/nodes/Pluto/FrankLabPluto.node.js.map +1 -0
  78. package/dist/nodes/Pluto/Pluto.node.json +10 -0
  79. package/dist/nodes/Pluto/pluto.svg +6 -0
  80. package/dist/nodes/Saturn/FrankLabSaturn.node.d.ts +5 -0
  81. package/dist/nodes/Saturn/FrankLabSaturn.node.js +117 -0
  82. package/dist/nodes/Saturn/FrankLabSaturn.node.js.map +1 -0
  83. package/dist/nodes/Saturn/Saturn.node.json +10 -0
  84. package/dist/nodes/Saturn/saturn.svg +5 -0
  85. package/dist/nodes/Sufler/FrankLabSufler.node.d.ts +5 -0
  86. package/dist/nodes/Sufler/FrankLabSufler.node.js +129 -0
  87. package/dist/nodes/Sufler/FrankLabSufler.node.js.map +1 -0
  88. package/dist/nodes/Sufler/Sufler.node.json +10 -0
  89. package/dist/nodes/Sufler/sufler.svg +6 -0
  90. package/dist/nodes/TextSticker/FrankLabTextSticker.node.d.ts +5 -0
  91. package/dist/nodes/TextSticker/FrankLabTextSticker.node.js +89 -0
  92. package/dist/nodes/TextSticker/FrankLabTextSticker.node.js.map +1 -0
  93. package/dist/nodes/TextSticker/TextSticker.node.json +10 -0
  94. package/dist/nodes/TextSticker/textsticker.svg +8 -0
  95. package/dist/nodes/Titan/FrankLabTitan.node.d.ts +5 -0
  96. package/dist/nodes/Titan/FrankLabTitan.node.js +85 -0
  97. package/dist/nodes/Titan/FrankLabTitan.node.js.map +1 -0
  98. package/dist/nodes/Titan/Titan.node.json +10 -0
  99. package/dist/nodes/Titan/titan.svg +7 -0
  100. package/dist/nodes/Venus/FrankLabVenus.node.d.ts +5 -0
  101. package/dist/nodes/Venus/FrankLabVenus.node.js +95 -0
  102. package/dist/nodes/Venus/FrankLabVenus.node.js.map +1 -0
  103. package/dist/nodes/Venus/Venus.node.json +10 -0
  104. package/dist/nodes/Venus/venus.svg +7 -0
  105. package/dist/nodes/Volna/FrankLabVolna.node.js +1 -0
  106. package/dist/nodes/Volna/FrankLabVolna.node.js.map +1 -1
  107. package/dist/nodes/X/FrankLabX.node.d.ts +5 -0
  108. package/dist/nodes/X/FrankLabX.node.js +133 -0
  109. package/dist/nodes/X/FrankLabX.node.js.map +1 -0
  110. package/dist/nodes/X/X.node.json +10 -0
  111. package/dist/nodes/X/x.svg +4 -0
  112. package/dist/nodes/shared/client.js +34 -9
  113. package/dist/nodes/shared/client.js.map +1 -1
  114. package/dist/nodes/shared/node-utils.d.ts +1 -0
  115. package/dist/nodes/shared/node-utils.js +233 -21
  116. package/dist/nodes/shared/node-utils.js.map +1 -1
  117. package/dist/nodes/shared/registry.d.ts +4 -2
  118. package/dist/nodes/shared/registry.js +325 -0
  119. package/dist/nodes/shared/registry.js.map +1 -1
  120. package/dist/nodes/shared/url.d.ts +1 -1
  121. package/dist/nodes/shared/url.js +9 -7
  122. package/dist/nodes/shared/url.js.map +1 -1
  123. package/dist/package.json +52 -15
  124. package/examples/moon-text-to-video.workflow.json +21 -0
  125. package/examples/saturn-turbo-video.workflow.json +20 -0
  126. package/package.json +52 -15
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class FrankLabSaturn implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrankLabSaturn = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const node_utils_1 = require("../shared/node-utils");
6
+ const videoFields = [
7
+ {
8
+ displayName: 'Prompt',
9
+ name: 'prompt',
10
+ type: 'string',
11
+ typeOptions: { rows: 4 },
12
+ default: '',
13
+ displayOptions: { show: { operation: ['video', 'turboTextToVideo', 'turboImageToVideo'] } },
14
+ },
15
+ {
16
+ displayName: 'Model',
17
+ name: 'model_name',
18
+ type: 'string',
19
+ default: '',
20
+ description: 'Optional SATURN model ID',
21
+ displayOptions: { show: { operation: ['video'] } },
22
+ },
23
+ {
24
+ displayName: 'Mode',
25
+ name: 'mode',
26
+ type: 'string',
27
+ default: '',
28
+ description: 'Optional generation mode',
29
+ displayOptions: { show: { operation: ['video'] } },
30
+ },
31
+ {
32
+ displayName: 'Image URL',
33
+ name: 'image_url',
34
+ type: 'string',
35
+ default: '',
36
+ required: true,
37
+ description: 'Public http(s) URL of the first frame image',
38
+ displayOptions: { show: { operation: ['turboImageToVideo'] } },
39
+ },
40
+ {
41
+ displayName: 'Aspect Ratio',
42
+ name: 'aspect_ratio',
43
+ type: 'string',
44
+ default: '',
45
+ displayOptions: { show: { operation: ['video', 'turboTextToVideo', 'turboImageToVideo'] } },
46
+ },
47
+ {
48
+ displayName: 'Duration',
49
+ name: 'duration',
50
+ type: 'number',
51
+ default: '',
52
+ required: true,
53
+ description: 'Video duration in seconds',
54
+ displayOptions: { show: { operation: ['video', 'turboTextToVideo', 'turboImageToVideo'] } },
55
+ },
56
+ {
57
+ displayName: 'Resolution',
58
+ name: 'resolution',
59
+ type: 'string',
60
+ default: '',
61
+ displayOptions: { show: { operation: ['turboTextToVideo', 'turboImageToVideo'] } },
62
+ },
63
+ ];
64
+ class FrankLabSaturn {
65
+ constructor() {
66
+ this.description = {
67
+ displayName: 'FrankLab SATURN',
68
+ name: 'frankLabSaturn',
69
+ icon: 'file:saturn.svg',
70
+ subtitle: '={{$parameter["operation"]}}',
71
+ group: ['transform'],
72
+ version: 1,
73
+ description: 'Generate videos with FrankLab SATURN and SATURN Turbo (Kling-backed).',
74
+ defaults: {
75
+ name: 'FrankLab SATURN',
76
+ },
77
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
78
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
79
+ credentials: [
80
+ {
81
+ name: 'frankLabApi',
82
+ required: true,
83
+ },
84
+ ],
85
+ usableAsTool: true,
86
+ properties: [
87
+ {
88
+ displayName: 'Operation',
89
+ name: 'operation',
90
+ type: 'options',
91
+ noDataExpression: true,
92
+ default: 'video',
93
+ options: [
94
+ { name: 'Generate Video', value: 'video', action: 'Generate a SATURN video' },
95
+ { name: 'Get Turbo Status', value: 'getTurboStatus', action: 'Get a saturn turbo task status' },
96
+ { name: 'Get Video Status', value: 'getVideoStatus', action: 'Get a SATURN video task status' },
97
+ { name: 'Turbo Image to Video', value: 'turboImageToVideo', action: 'Generate a saturn turbo video from an image' },
98
+ { name: 'Turbo Text to Video', value: 'turboTextToVideo', action: 'Generate a saturn turbo video from text' },
99
+ ],
100
+ },
101
+ ...videoFields,
102
+ node_utils_1.jobIdProperty,
103
+ node_utils_1.payloadProperty,
104
+ node_utils_1.waitProperty,
105
+ ],
106
+ };
107
+ }
108
+ async execute() {
109
+ return (0, node_utils_1.executeFrankLabModule)(this, 'saturn', {
110
+ default: 'getVideoStatus',
111
+ turboTextToVideo: 'getTurboStatus',
112
+ turboImageToVideo: 'getTurboStatus',
113
+ });
114
+ }
115
+ }
116
+ exports.FrankLabSaturn = FrankLabSaturn;
117
+ //# sourceMappingURL=FrankLabSaturn.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrankLabSaturn.node.js","sourceRoot":"","sources":["../../../nodes/Saturn/FrankLabSaturn.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "node": "n8n-nodes-base.frankLabSaturn",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Marketing & Content"],
6
+ "resources": {
7
+ "credentialDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#credentials" }],
8
+ "primaryDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#saturn" }]
9
+ }
10
+ }
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="FrankLab SATURN">
2
+ <rect width="64" height="64" rx="8" fill="#111827"/>
3
+ <circle cx="32" cy="30" r="12" fill="#f59e0b"/>
4
+ <ellipse cx="32" cy="32" rx="24" ry="7" fill="none" stroke="#f8fafc" stroke-width="2" transform="rotate(-18 32 32)"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class FrankLabSufler implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrankLabSufler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const node_utils_1 = require("../shared/node-utils");
6
+ const subtitleFields = [
7
+ {
8
+ displayName: 'Video URL',
9
+ name: 'videoUrl',
10
+ type: 'string',
11
+ default: '',
12
+ required: true,
13
+ description: 'Public http(s) URL of the video to burn subtitles into',
14
+ displayOptions: { show: { operation: ['subtitles'] } },
15
+ },
16
+ {
17
+ displayName: 'Caption Engine',
18
+ name: 'captionEngine',
19
+ type: 'options',
20
+ noDataExpression: true,
21
+ default: 'v2',
22
+ options: [
23
+ { name: 'V1', value: 'v1', action: 'Use the v1 caption engine' },
24
+ { name: 'V2', value: 'v2', action: 'Use the v2 caption engine' },
25
+ ],
26
+ displayOptions: { show: { operation: ['subtitles'] } },
27
+ },
28
+ {
29
+ displayName: 'Template ID',
30
+ name: 'templateId',
31
+ type: 'string',
32
+ default: '',
33
+ description: 'Optional subtitle template ID (see FrankLab TextSticker List Subtitle Templates)',
34
+ displayOptions: { show: { operation: ['subtitles'] } },
35
+ },
36
+ {
37
+ displayName: 'Language',
38
+ name: 'language',
39
+ type: 'string',
40
+ default: '',
41
+ description: 'Source language code, for example ru or en',
42
+ displayOptions: { show: { operation: ['subtitles'] } },
43
+ },
44
+ {
45
+ displayName: 'Transcription Engine',
46
+ name: 'transcriptionEngine',
47
+ type: 'options',
48
+ noDataExpression: true,
49
+ default: '',
50
+ options: [
51
+ { name: 'Auto', value: '', action: 'Let the server pick the transcription engine' },
52
+ { name: 'Whisper', value: 'whisper', action: 'Use Whisper transcription' },
53
+ { name: 'xAI Grok Transcribe', value: 'xai_grok_transcribe', action: 'Use xAI Grok transcription' },
54
+ { name: 'Gemini', value: 'gemini', action: 'Use Gemini transcription' },
55
+ ],
56
+ displayOptions: { show: { operation: ['subtitles'] } },
57
+ },
58
+ {
59
+ displayName: 'Highlight Mode',
60
+ name: 'highlightMode',
61
+ type: 'string',
62
+ default: '',
63
+ description: 'Optional word highlight mode',
64
+ displayOptions: { show: { operation: ['subtitles'] } },
65
+ },
66
+ {
67
+ displayName: 'Platform',
68
+ name: 'platform',
69
+ type: 'string',
70
+ default: '',
71
+ description: 'Optional target platform preset',
72
+ displayOptions: { show: { operation: ['subtitles'] } },
73
+ },
74
+ {
75
+ displayName: 'Safe Zone Preset',
76
+ name: 'safeZonePreset',
77
+ type: 'string',
78
+ default: '',
79
+ description: 'Optional safe zone preset ID',
80
+ displayOptions: { show: { operation: ['subtitles'] } },
81
+ },
82
+ ];
83
+ class FrankLabSufler {
84
+ constructor() {
85
+ this.description = {
86
+ displayName: 'FrankLab SUFLER',
87
+ name: 'frankLabSufler',
88
+ icon: 'file:sufler.svg',
89
+ subtitle: '={{$parameter["operation"]}}',
90
+ group: ['transform'],
91
+ version: 1,
92
+ description: 'Burn styled subtitles and captions into videos with FrankLab SUFLER.',
93
+ defaults: {
94
+ name: 'FrankLab SUFLER',
95
+ },
96
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
97
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
98
+ credentials: [
99
+ {
100
+ name: 'frankLabApi',
101
+ required: true,
102
+ },
103
+ ],
104
+ usableAsTool: true,
105
+ properties: [
106
+ {
107
+ displayName: 'Operation',
108
+ name: 'operation',
109
+ type: 'options',
110
+ noDataExpression: true,
111
+ default: 'subtitles',
112
+ options: [
113
+ { name: 'Burn Subtitles', value: 'subtitles', action: 'Burn subtitles into a video' },
114
+ { name: 'Get Job Status', value: 'getStatus', action: 'Get a subtitles job status' },
115
+ ],
116
+ },
117
+ ...subtitleFields,
118
+ node_utils_1.jobIdProperty,
119
+ node_utils_1.payloadProperty,
120
+ node_utils_1.waitProperty,
121
+ ],
122
+ };
123
+ }
124
+ async execute() {
125
+ return (0, node_utils_1.executeFrankLabModule)(this, 'sufler', 'getStatus');
126
+ }
127
+ }
128
+ exports.FrankLabSufler = FrankLabSufler;
129
+ //# sourceMappingURL=FrankLabSufler.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrankLabSufler.node.js","sourceRoot":"","sources":["../../../nodes/Sufler/FrankLabSufler.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "node": "n8n-nodes-base.frankLabSufler",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Marketing & Content", "Utility"],
6
+ "resources": {
7
+ "credentialDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#credentials" }],
8
+ "primaryDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#sufler" }]
9
+ }
10
+ }
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="FrankLab SUFLER">
2
+ <rect width="64" height="64" rx="8" fill="#111827"/>
3
+ <path d="M14 16v6h24v8h6V16z" fill="#f8fafc"/>
4
+ <path d="M20 30h24v6H20z" fill="#38bdf8"/>
5
+ <path d="M14 42h30v6H14z" fill="#22c55e"/>
6
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class FrankLabTextSticker implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrankLabTextSticker = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const node_utils_1 = require("../shared/node-utils");
6
+ const overlayFields = [
7
+ {
8
+ displayName: 'Video URL',
9
+ name: 'videoUrl',
10
+ type: 'string',
11
+ default: '',
12
+ required: true,
13
+ description: 'Public http(s) URL of the target video',
14
+ displayOptions: { show: { operation: ['overlay'] } },
15
+ },
16
+ {
17
+ displayName: 'Platform',
18
+ name: 'platform',
19
+ type: 'string',
20
+ default: '',
21
+ description: 'Optional target platform preset for overlay placement',
22
+ displayOptions: { show: { operation: ['overlay'] } },
23
+ },
24
+ {
25
+ displayName: 'Config ID',
26
+ name: 'configId',
27
+ type: 'string',
28
+ default: '',
29
+ description: 'Optional saved overlay config ID',
30
+ displayOptions: { show: { operation: ['overlay'] } },
31
+ },
32
+ ];
33
+ class FrankLabTextSticker {
34
+ constructor() {
35
+ this.description = {
36
+ displayName: 'FrankLab TextSticker',
37
+ name: 'frankLabTextSticker',
38
+ icon: 'file:textsticker.svg',
39
+ subtitle: '={{$parameter["operation"]}}',
40
+ group: ['transform'],
41
+ version: 1,
42
+ description: 'Overlay text, stickers, and emoji on videos with FrankLab TextSticker, plus studio option lists.',
43
+ defaults: {
44
+ name: 'FrankLab TextSticker',
45
+ },
46
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
47
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
48
+ credentials: [
49
+ {
50
+ name: 'frankLabApi',
51
+ required: true,
52
+ },
53
+ ],
54
+ usableAsTool: true,
55
+ properties: [
56
+ {
57
+ displayName: 'Operation',
58
+ name: 'operation',
59
+ type: 'options',
60
+ noDataExpression: true,
61
+ default: 'overlay',
62
+ options: [
63
+ { name: 'Get Job Status', value: 'getStatus', action: 'Get an overlay job status' },
64
+ { name: 'List Aspect Ratios', value: 'listAspectRatios', action: 'List aspect ratios' },
65
+ { name: 'List Emojis', value: 'listEmojis', action: 'List emojis' },
66
+ { name: 'List Fonts', value: 'listFonts', action: 'List fonts' },
67
+ { name: 'List Resize Presets', value: 'listResizePresets', action: 'List resize presets' },
68
+ { name: 'List Safe Zone Options', value: 'listSafeZoneOptions', action: 'List safe zone options' },
69
+ { name: 'List Stickers', value: 'listStickers', action: 'List stickers' },
70
+ { name: 'List Subtitle Templates', value: 'listSubtitleTemplates', action: 'List subtitle templates' },
71
+ { name: 'List Transition Sounds', value: 'listTransitionSounds', action: 'List transition sounds' },
72
+ { name: 'List Transitions', value: 'listTransitions', action: 'List transitions' },
73
+ { name: 'List Video Effects', value: 'listVideoEffects', action: 'List video effects' },
74
+ { name: 'Overlay', value: 'overlay', action: 'Overlay text and stickers on a video' },
75
+ ],
76
+ },
77
+ ...overlayFields,
78
+ node_utils_1.jobIdProperty,
79
+ node_utils_1.payloadProperty,
80
+ node_utils_1.waitProperty,
81
+ ],
82
+ };
83
+ }
84
+ async execute() {
85
+ return (0, node_utils_1.executeFrankLabModule)(this, 'textSticker', 'getStatus');
86
+ }
87
+ }
88
+ exports.FrankLabTextSticker = FrankLabTextSticker;
89
+ //# sourceMappingURL=FrankLabTextSticker.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrankLabTextSticker.node.js","sourceRoot":"","sources":["../../../nodes/TextSticker/FrankLabTextSticker.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "node": "n8n-nodes-base.frankLabTextSticker",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Marketing & Content", "Utility"],
6
+ "resources": {
7
+ "credentialDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#credentials" }],
8
+ "primaryDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#textsticker" }]
9
+ }
10
+ }
@@ -0,0 +1,8 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="FrankLab TEXTSTICKER">
2
+ <rect width="64" height="64" rx="8" fill="#111827"/>
3
+ <rect x="12" y="14" width="40" height="28" rx="6" fill="#f8fafc"/>
4
+ <path d="M32 42l-6 8v-8z" fill="#f8fafc"/>
5
+ <circle cx="24" cy="28" r="3" fill="#111827"/>
6
+ <circle cx="40" cy="28" r="3" fill="#111827"/>
7
+ <path d="M26 34c2 2 10 2 12 0" stroke="#111827" stroke-width="2" fill="none"/>
8
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class FrankLabTitan implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrankLabTitan = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const node_utils_1 = require("../shared/node-utils");
6
+ const titanFields = [
7
+ {
8
+ displayName: 'Prompt',
9
+ name: 'prompt',
10
+ type: 'string',
11
+ typeOptions: { rows: 4 },
12
+ default: '',
13
+ required: true,
14
+ displayOptions: { show: { operation: ['createVideo'] } },
15
+ },
16
+ {
17
+ displayName: 'Page Number',
18
+ name: 'pageNum',
19
+ type: 'number',
20
+ default: '',
21
+ description: 'Optional results page for List Tasks',
22
+ displayOptions: { show: { operation: ['listTasks'] } },
23
+ },
24
+ {
25
+ displayName: 'Page Size',
26
+ name: 'pageSize',
27
+ type: 'number',
28
+ default: '',
29
+ description: 'Optional page size for List Tasks',
30
+ displayOptions: { show: { operation: ['listTasks'] } },
31
+ },
32
+ ];
33
+ class FrankLabTitan {
34
+ constructor() {
35
+ this.description = {
36
+ displayName: 'FrankLab TITAN',
37
+ name: 'frankLabTitan',
38
+ icon: 'file:titan.svg',
39
+ subtitle: '={{$parameter["operation"]}}',
40
+ group: ['transform'],
41
+ version: 1,
42
+ description: 'Compose multi-element videos through a staged selection flow with FrankLab TITAN.',
43
+ defaults: {
44
+ name: 'FrankLab TITAN',
45
+ },
46
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
47
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
48
+ credentials: [
49
+ {
50
+ name: 'frankLabApi',
51
+ required: true,
52
+ },
53
+ ],
54
+ usableAsTool: true,
55
+ properties: [
56
+ {
57
+ displayName: 'Operation',
58
+ name: 'operation',
59
+ type: 'options',
60
+ noDataExpression: true,
61
+ default: 'createVideo',
62
+ options: [
63
+ { name: 'Add Selection', value: 'addSelection', action: 'Add elements to the selection' },
64
+ { name: 'Clear Selection', value: 'clearSelection', action: 'Clear the selection' },
65
+ { name: 'Create Video', value: 'createVideo', action: 'Create a multi element video' },
66
+ { name: 'Delete Selection', value: 'deleteSelection', action: 'Delete elements from the selection' },
67
+ { name: 'Get Task', value: 'getTask', action: 'Get a multi element task' },
68
+ { name: 'Init Selection', value: 'initSelection', action: 'Initialize the selection' },
69
+ { name: 'List Tasks', value: 'listTasks', action: 'List multi element tasks' },
70
+ { name: 'Preview Selection', value: 'previewSelection', action: 'Preview the selection' },
71
+ ],
72
+ },
73
+ ...titanFields,
74
+ node_utils_1.jobIdProperty,
75
+ node_utils_1.payloadProperty,
76
+ node_utils_1.waitProperty,
77
+ ],
78
+ };
79
+ }
80
+ async execute() {
81
+ return (0, node_utils_1.executeFrankLabModule)(this, 'titan', { default: 'getTask' });
82
+ }
83
+ }
84
+ exports.FrankLabTitan = FrankLabTitan;
85
+ //# sourceMappingURL=FrankLabTitan.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrankLabTitan.node.js","sourceRoot":"","sources":["../../../nodes/Titan/FrankLabTitan.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "node": "n8n-nodes-base.frankLabTitan",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Marketing & Content"],
6
+ "resources": {
7
+ "credentialDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#credentials" }],
8
+ "primaryDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#titan" }]
9
+ }
10
+ }
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="FrankLab TITAN">
2
+ <rect width="64" height="64" rx="8" fill="#111827"/>
3
+ <rect x="14" y="22" width="10" height="10" rx="2" fill="#38bdf8"/>
4
+ <rect x="27" y="22" width="10" height="10" rx="2" fill="#22c55e"/>
5
+ <rect x="40" y="22" width="10" height="10" rx="2" fill="#f59e0b"/>
6
+ <path d="M32 36v10M26 46h12" stroke="#f8fafc" stroke-width="3" stroke-linecap="round"/>
7
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class FrankLabVenus implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
5
+ }