apexify.js 5.1.1 → 5.2.1

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 (236) hide show
  1. package/CHANGELOG.md +240 -0
  2. package/README.md +244 -1101
  3. package/dist/cjs/Canvas/ApexPainter.d.ts +183 -204
  4. package/dist/cjs/Canvas/ApexPainter.d.ts.map +1 -1
  5. package/dist/cjs/Canvas/ApexPainter.js +524 -1282
  6. package/dist/cjs/Canvas/ApexPainter.js.map +1 -1
  7. package/dist/cjs/Canvas/extended/CanvasCreator.d.ts +33 -0
  8. package/dist/cjs/Canvas/extended/CanvasCreator.d.ts.map +1 -0
  9. package/dist/cjs/Canvas/extended/CanvasCreator.js +223 -0
  10. package/dist/cjs/Canvas/extended/CanvasCreator.js.map +1 -0
  11. package/dist/cjs/Canvas/extended/ChartCreator.d.ts +26 -0
  12. package/dist/cjs/Canvas/extended/ChartCreator.d.ts.map +1 -0
  13. package/dist/cjs/Canvas/extended/ChartCreator.js +50 -0
  14. package/dist/cjs/Canvas/extended/ChartCreator.js.map +1 -0
  15. package/dist/cjs/Canvas/extended/GIFCreator.d.ts +43 -0
  16. package/dist/cjs/Canvas/extended/GIFCreator.d.ts.map +1 -0
  17. package/dist/cjs/Canvas/extended/GIFCreator.js +157 -0
  18. package/dist/cjs/Canvas/extended/GIFCreator.js.map +1 -0
  19. package/dist/cjs/Canvas/extended/ImageCreator.d.ts +83 -0
  20. package/dist/cjs/Canvas/extended/ImageCreator.d.ts.map +1 -0
  21. package/dist/cjs/Canvas/extended/ImageCreator.js +479 -0
  22. package/dist/cjs/Canvas/extended/ImageCreator.js.map +1 -0
  23. package/dist/cjs/Canvas/extended/TextCreator.d.ts +35 -0
  24. package/dist/cjs/Canvas/extended/TextCreator.d.ts.map +1 -0
  25. package/dist/cjs/Canvas/extended/TextCreator.js +98 -0
  26. package/dist/cjs/Canvas/extended/TextCreator.js.map +1 -0
  27. package/dist/cjs/Canvas/extended/VideoCreator.d.ts +370 -0
  28. package/dist/cjs/Canvas/extended/VideoCreator.d.ts.map +1 -0
  29. package/dist/cjs/Canvas/extended/VideoCreator.js +478 -0
  30. package/dist/cjs/Canvas/extended/VideoCreator.js.map +1 -0
  31. package/dist/cjs/Canvas/utils/Background/bg.d.ts +1 -1
  32. package/dist/cjs/Canvas/utils/Background/bg.d.ts.map +1 -1
  33. package/dist/cjs/Canvas/utils/Background/bg.js +43 -7
  34. package/dist/cjs/Canvas/utils/Background/bg.js.map +1 -1
  35. package/dist/cjs/Canvas/utils/Charts/barchart.d.ts +230 -0
  36. package/dist/cjs/Canvas/utils/Charts/barchart.d.ts.map +1 -0
  37. package/dist/cjs/Canvas/utils/Charts/barchart.js +1891 -0
  38. package/dist/cjs/Canvas/utils/Charts/barchart.js.map +1 -0
  39. package/dist/cjs/Canvas/utils/Charts/comparisonchart.d.ts +103 -0
  40. package/dist/cjs/Canvas/utils/Charts/comparisonchart.d.ts.map +1 -0
  41. package/dist/cjs/Canvas/utils/Charts/comparisonchart.js +368 -0
  42. package/dist/cjs/Canvas/utils/Charts/comparisonchart.js.map +1 -0
  43. package/dist/cjs/Canvas/utils/Charts/horizontalbarchart.d.ts +181 -0
  44. package/dist/cjs/Canvas/utils/Charts/horizontalbarchart.d.ts.map +1 -0
  45. package/dist/cjs/Canvas/utils/Charts/horizontalbarchart.js +1389 -0
  46. package/dist/cjs/Canvas/utils/Charts/horizontalbarchart.js.map +1 -0
  47. package/dist/cjs/Canvas/utils/Charts/index.d.ts +45 -0
  48. package/dist/cjs/Canvas/utils/Charts/index.d.ts.map +1 -0
  49. package/dist/cjs/Canvas/utils/Charts/index.js +17 -0
  50. package/dist/cjs/Canvas/utils/Charts/index.js.map +1 -0
  51. package/dist/cjs/Canvas/utils/Charts/linechart.d.ts +216 -0
  52. package/dist/cjs/Canvas/utils/Charts/linechart.d.ts.map +1 -0
  53. package/dist/cjs/Canvas/utils/Charts/linechart.js +1761 -0
  54. package/dist/cjs/Canvas/utils/Charts/linechart.js.map +1 -0
  55. package/dist/cjs/Canvas/utils/Charts/piechart.d.ts +167 -0
  56. package/dist/cjs/Canvas/utils/Charts/piechart.d.ts.map +1 -0
  57. package/dist/cjs/Canvas/utils/Charts/piechart.js +794 -0
  58. package/dist/cjs/Canvas/utils/Charts/piechart.js.map +1 -0
  59. package/dist/cjs/Canvas/utils/General/batchOperations.d.ts.map +1 -1
  60. package/dist/cjs/Canvas/utils/General/batchOperations.js +3 -4
  61. package/dist/cjs/Canvas/utils/General/batchOperations.js.map +1 -1
  62. package/dist/cjs/Canvas/utils/General/general functions.d.ts.map +1 -1
  63. package/dist/cjs/Canvas/utils/General/general functions.js +62 -33
  64. package/dist/cjs/Canvas/utils/General/general functions.js.map +1 -1
  65. package/dist/cjs/Canvas/utils/General/imageStitching.d.ts.map +1 -1
  66. package/dist/cjs/Canvas/utils/General/imageStitching.js +3 -6
  67. package/dist/cjs/Canvas/utils/General/imageStitching.js.map +1 -1
  68. package/dist/cjs/Canvas/utils/Image/imageMasking.d.ts.map +1 -1
  69. package/dist/cjs/Canvas/utils/Image/imageMasking.js +5 -12
  70. package/dist/cjs/Canvas/utils/Image/imageMasking.js.map +1 -1
  71. package/dist/cjs/Canvas/utils/Image/imageProperties.d.ts +4 -4
  72. package/dist/cjs/Canvas/utils/Image/imageProperties.d.ts.map +1 -1
  73. package/dist/cjs/Canvas/utils/Image/imageProperties.js +44 -9
  74. package/dist/cjs/Canvas/utils/Image/imageProperties.js.map +1 -1
  75. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.d.ts +5 -0
  76. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.d.ts.map +1 -1
  77. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.js +48 -5
  78. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.js.map +1 -1
  79. package/dist/cjs/Canvas/utils/Texts/textProperties.d.ts +1 -1
  80. package/dist/cjs/Canvas/utils/Texts/textProperties.d.ts.map +1 -1
  81. package/dist/cjs/Canvas/utils/Texts/textProperties.js +48 -5
  82. package/dist/cjs/Canvas/utils/Texts/textProperties.js.map +1 -1
  83. package/dist/cjs/Canvas/utils/Video/videoHelpers.d.ts +489 -0
  84. package/dist/cjs/Canvas/utils/Video/videoHelpers.d.ts.map +1 -0
  85. package/dist/cjs/Canvas/utils/Video/videoHelpers.js +1835 -0
  86. package/dist/cjs/Canvas/utils/Video/videoHelpers.js.map +1 -0
  87. package/dist/cjs/Canvas/utils/errorUtils.d.ts +15 -0
  88. package/dist/cjs/Canvas/utils/errorUtils.d.ts.map +1 -0
  89. package/dist/cjs/Canvas/utils/errorUtils.js +26 -0
  90. package/dist/cjs/Canvas/utils/errorUtils.js.map +1 -0
  91. package/dist/cjs/Canvas/utils/types.d.ts +17 -178
  92. package/dist/cjs/Canvas/utils/types.d.ts.map +1 -1
  93. package/dist/cjs/Canvas/utils/types.js.map +1 -1
  94. package/dist/cjs/Canvas/utils/utils.d.ts +4 -3
  95. package/dist/cjs/Canvas/utils/utils.d.ts.map +1 -1
  96. package/dist/cjs/Canvas/utils/utils.js +40 -6
  97. package/dist/cjs/Canvas/utils/utils.js.map +1 -1
  98. package/dist/cjs/index.d.ts +1 -8
  99. package/dist/cjs/index.d.ts.map +1 -1
  100. package/dist/cjs/index.js +14 -45
  101. package/dist/cjs/index.js.map +1 -1
  102. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  103. package/dist/esm/Canvas/ApexPainter.d.ts +183 -204
  104. package/dist/esm/Canvas/ApexPainter.d.ts.map +1 -1
  105. package/dist/esm/Canvas/ApexPainter.js +524 -1282
  106. package/dist/esm/Canvas/ApexPainter.js.map +1 -1
  107. package/dist/esm/Canvas/extended/CanvasCreator.d.ts +33 -0
  108. package/dist/esm/Canvas/extended/CanvasCreator.d.ts.map +1 -0
  109. package/dist/esm/Canvas/extended/CanvasCreator.js +223 -0
  110. package/dist/esm/Canvas/extended/CanvasCreator.js.map +1 -0
  111. package/dist/esm/Canvas/extended/ChartCreator.d.ts +26 -0
  112. package/dist/esm/Canvas/extended/ChartCreator.d.ts.map +1 -0
  113. package/dist/esm/Canvas/extended/ChartCreator.js +50 -0
  114. package/dist/esm/Canvas/extended/ChartCreator.js.map +1 -0
  115. package/dist/esm/Canvas/extended/GIFCreator.d.ts +43 -0
  116. package/dist/esm/Canvas/extended/GIFCreator.d.ts.map +1 -0
  117. package/dist/esm/Canvas/extended/GIFCreator.js +157 -0
  118. package/dist/esm/Canvas/extended/GIFCreator.js.map +1 -0
  119. package/dist/esm/Canvas/extended/ImageCreator.d.ts +83 -0
  120. package/dist/esm/Canvas/extended/ImageCreator.d.ts.map +1 -0
  121. package/dist/esm/Canvas/extended/ImageCreator.js +479 -0
  122. package/dist/esm/Canvas/extended/ImageCreator.js.map +1 -0
  123. package/dist/esm/Canvas/extended/TextCreator.d.ts +35 -0
  124. package/dist/esm/Canvas/extended/TextCreator.d.ts.map +1 -0
  125. package/dist/esm/Canvas/extended/TextCreator.js +98 -0
  126. package/dist/esm/Canvas/extended/TextCreator.js.map +1 -0
  127. package/dist/esm/Canvas/extended/VideoCreator.d.ts +370 -0
  128. package/dist/esm/Canvas/extended/VideoCreator.d.ts.map +1 -0
  129. package/dist/esm/Canvas/extended/VideoCreator.js +478 -0
  130. package/dist/esm/Canvas/extended/VideoCreator.js.map +1 -0
  131. package/dist/esm/Canvas/utils/Background/bg.d.ts +1 -1
  132. package/dist/esm/Canvas/utils/Background/bg.d.ts.map +1 -1
  133. package/dist/esm/Canvas/utils/Background/bg.js +43 -7
  134. package/dist/esm/Canvas/utils/Background/bg.js.map +1 -1
  135. package/dist/esm/Canvas/utils/Charts/barchart.d.ts +230 -0
  136. package/dist/esm/Canvas/utils/Charts/barchart.d.ts.map +1 -0
  137. package/dist/esm/Canvas/utils/Charts/barchart.js +1891 -0
  138. package/dist/esm/Canvas/utils/Charts/barchart.js.map +1 -0
  139. package/dist/esm/Canvas/utils/Charts/comparisonchart.d.ts +103 -0
  140. package/dist/esm/Canvas/utils/Charts/comparisonchart.d.ts.map +1 -0
  141. package/dist/esm/Canvas/utils/Charts/comparisonchart.js +368 -0
  142. package/dist/esm/Canvas/utils/Charts/comparisonchart.js.map +1 -0
  143. package/dist/esm/Canvas/utils/Charts/horizontalbarchart.d.ts +181 -0
  144. package/dist/esm/Canvas/utils/Charts/horizontalbarchart.d.ts.map +1 -0
  145. package/dist/esm/Canvas/utils/Charts/horizontalbarchart.js +1389 -0
  146. package/dist/esm/Canvas/utils/Charts/horizontalbarchart.js.map +1 -0
  147. package/dist/esm/Canvas/utils/Charts/index.d.ts +45 -0
  148. package/dist/esm/Canvas/utils/Charts/index.d.ts.map +1 -0
  149. package/dist/esm/Canvas/utils/Charts/index.js +17 -0
  150. package/dist/esm/Canvas/utils/Charts/index.js.map +1 -0
  151. package/dist/esm/Canvas/utils/Charts/linechart.d.ts +216 -0
  152. package/dist/esm/Canvas/utils/Charts/linechart.d.ts.map +1 -0
  153. package/dist/esm/Canvas/utils/Charts/linechart.js +1761 -0
  154. package/dist/esm/Canvas/utils/Charts/linechart.js.map +1 -0
  155. package/dist/esm/Canvas/utils/Charts/piechart.d.ts +167 -0
  156. package/dist/esm/Canvas/utils/Charts/piechart.d.ts.map +1 -0
  157. package/dist/esm/Canvas/utils/Charts/piechart.js +794 -0
  158. package/dist/esm/Canvas/utils/Charts/piechart.js.map +1 -0
  159. package/dist/esm/Canvas/utils/General/batchOperations.d.ts.map +1 -1
  160. package/dist/esm/Canvas/utils/General/batchOperations.js +3 -4
  161. package/dist/esm/Canvas/utils/General/batchOperations.js.map +1 -1
  162. package/dist/esm/Canvas/utils/General/general functions.d.ts.map +1 -1
  163. package/dist/esm/Canvas/utils/General/general functions.js +62 -33
  164. package/dist/esm/Canvas/utils/General/general functions.js.map +1 -1
  165. package/dist/esm/Canvas/utils/General/imageStitching.d.ts.map +1 -1
  166. package/dist/esm/Canvas/utils/General/imageStitching.js +3 -6
  167. package/dist/esm/Canvas/utils/General/imageStitching.js.map +1 -1
  168. package/dist/esm/Canvas/utils/Image/imageMasking.d.ts.map +1 -1
  169. package/dist/esm/Canvas/utils/Image/imageMasking.js +5 -12
  170. package/dist/esm/Canvas/utils/Image/imageMasking.js.map +1 -1
  171. package/dist/esm/Canvas/utils/Image/imageProperties.d.ts +4 -4
  172. package/dist/esm/Canvas/utils/Image/imageProperties.d.ts.map +1 -1
  173. package/dist/esm/Canvas/utils/Image/imageProperties.js +44 -9
  174. package/dist/esm/Canvas/utils/Image/imageProperties.js.map +1 -1
  175. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.d.ts +5 -0
  176. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.d.ts.map +1 -1
  177. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.js +48 -5
  178. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.js.map +1 -1
  179. package/dist/esm/Canvas/utils/Texts/textProperties.d.ts +1 -1
  180. package/dist/esm/Canvas/utils/Texts/textProperties.d.ts.map +1 -1
  181. package/dist/esm/Canvas/utils/Texts/textProperties.js +48 -5
  182. package/dist/esm/Canvas/utils/Texts/textProperties.js.map +1 -1
  183. package/dist/esm/Canvas/utils/Video/videoHelpers.d.ts +489 -0
  184. package/dist/esm/Canvas/utils/Video/videoHelpers.d.ts.map +1 -0
  185. package/dist/esm/Canvas/utils/Video/videoHelpers.js +1835 -0
  186. package/dist/esm/Canvas/utils/Video/videoHelpers.js.map +1 -0
  187. package/dist/esm/Canvas/utils/errorUtils.d.ts +15 -0
  188. package/dist/esm/Canvas/utils/errorUtils.d.ts.map +1 -0
  189. package/dist/esm/Canvas/utils/errorUtils.js +26 -0
  190. package/dist/esm/Canvas/utils/errorUtils.js.map +1 -0
  191. package/dist/esm/Canvas/utils/types.d.ts +17 -178
  192. package/dist/esm/Canvas/utils/types.d.ts.map +1 -1
  193. package/dist/esm/Canvas/utils/types.js.map +1 -1
  194. package/dist/esm/Canvas/utils/utils.d.ts +4 -3
  195. package/dist/esm/Canvas/utils/utils.d.ts.map +1 -1
  196. package/dist/esm/Canvas/utils/utils.js +40 -6
  197. package/dist/esm/Canvas/utils/utils.js.map +1 -1
  198. package/dist/esm/index.d.ts +1 -8
  199. package/dist/esm/index.d.ts.map +1 -1
  200. package/dist/esm/index.js +14 -45
  201. package/dist/esm/index.js.map +1 -1
  202. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  203. package/package.json +235 -198
  204. package/dist/cjs/Canvas/utils/Charts/charts.d.ts +0 -13
  205. package/dist/cjs/Canvas/utils/Charts/charts.d.ts.map +0 -1
  206. package/dist/cjs/Canvas/utils/Charts/charts.js +0 -466
  207. package/dist/cjs/Canvas/utils/Charts/charts.js.map +0 -1
  208. package/dist/esm/Canvas/utils/Charts/charts.d.ts +0 -13
  209. package/dist/esm/Canvas/utils/Charts/charts.d.ts.map +0 -1
  210. package/dist/esm/Canvas/utils/Charts/charts.js +0 -466
  211. package/dist/esm/Canvas/utils/Charts/charts.js.map +0 -1
  212. package/lib/Canvas/ApexPainter.ts +0 -5414
  213. package/lib/Canvas/utils/Background/bg.ts +0 -285
  214. package/lib/Canvas/utils/Charts/charts.ts +0 -548
  215. package/lib/Canvas/utils/Custom/advancedLines.ts +0 -387
  216. package/lib/Canvas/utils/Custom/customLines.ts +0 -206
  217. package/lib/Canvas/utils/General/batchOperations.ts +0 -103
  218. package/lib/Canvas/utils/General/conversion.ts +0 -34
  219. package/lib/Canvas/utils/General/general functions.ts +0 -726
  220. package/lib/Canvas/utils/General/imageCompression.ts +0 -316
  221. package/lib/Canvas/utils/General/imageStitching.ts +0 -252
  222. package/lib/Canvas/utils/Image/imageEffects.ts +0 -175
  223. package/lib/Canvas/utils/Image/imageFilters.ts +0 -356
  224. package/lib/Canvas/utils/Image/imageMasking.ts +0 -335
  225. package/lib/Canvas/utils/Image/imageProperties.ts +0 -587
  226. package/lib/Canvas/utils/Image/professionalImageFilters.ts +0 -391
  227. package/lib/Canvas/utils/Image/simpleProfessionalFilters.ts +0 -229
  228. package/lib/Canvas/utils/Patterns/enhancedPatternRenderer.ts +0 -455
  229. package/lib/Canvas/utils/Shapes/shapes.ts +0 -528
  230. package/lib/Canvas/utils/Texts/enhancedTextRenderer.ts +0 -716
  231. package/lib/Canvas/utils/Texts/textPathRenderer.ts +0 -320
  232. package/lib/Canvas/utils/Texts/textProperties.ts +0 -231
  233. package/lib/Canvas/utils/types.ts +0 -983
  234. package/lib/Canvas/utils/utils.ts +0 -135
  235. package/lib/index.ts +0 -81
  236. package/lib/utils.ts +0 -5
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextCreator = void 0;
4
+ const canvas_1 = require("@napi-rs/canvas");
5
+ const enhancedTextRenderer_1 = require("../utils/Texts/enhancedTextRenderer");
6
+ const utils_1 = require("../utils/utils");
7
+ const errorUtils_1 = require("../utils/errorUtils");
8
+ /**
9
+ * Extended class for text creation functionality
10
+ */
11
+ class TextCreator {
12
+ /**
13
+ * Validates text properties for required fields.
14
+ * @private
15
+ * @param textProps - Text properties to validate
16
+ */
17
+ validateTextProperties(textProps) {
18
+ if (!textProps.text || textProps.x == null || textProps.y == null) {
19
+ throw new Error("createText: text, x, and y are required.");
20
+ }
21
+ }
22
+ /**
23
+ * Validates text properties array.
24
+ * @private
25
+ * @param textArray - Text properties to validate
26
+ */
27
+ validateTextArray(textArray) {
28
+ const textList = Array.isArray(textArray) ? textArray : [textArray];
29
+ if (textList.length === 0) {
30
+ throw new Error("createText: At least one text object is required.");
31
+ }
32
+ for (const textProps of textList) {
33
+ this.validateTextProperties(textProps);
34
+ }
35
+ }
36
+ /**
37
+ * Renders enhanced text using the new text renderer.
38
+ * @private
39
+ * @param ctx - Canvas 2D context
40
+ * @param textProps - Text properties
41
+ */
42
+ async renderEnhancedText(ctx, textProps) {
43
+ // Check if text should be rendered on a path
44
+ if (textProps.path && textProps.textOnPath) {
45
+ (0, utils_1.renderTextOnPath)(ctx, textProps.text, textProps.path, textProps.path.offset ?? 0);
46
+ }
47
+ else {
48
+ await enhancedTextRenderer_1.EnhancedTextRenderer.renderText(ctx, textProps);
49
+ }
50
+ }
51
+ /**
52
+ * Creates text on an existing canvas buffer with enhanced styling options.
53
+ *
54
+ * @param textArray - Single TextProperties object or array of TextProperties
55
+ * @param canvasBuffer - Existing canvas buffer (Buffer) or CanvasResults object
56
+ * @returns Promise<Buffer> - Updated canvas buffer in PNG format
57
+ */
58
+ async createText(textArray, canvasBuffer) {
59
+ try {
60
+ // Validate inputs
61
+ if (!canvasBuffer) {
62
+ throw new Error("createText: canvasBuffer is required.");
63
+ }
64
+ this.validateTextArray(textArray);
65
+ // Ensure textArray is an array
66
+ const textList = Array.isArray(textArray) ? textArray : [textArray];
67
+ // Load existing canvas buffer
68
+ let existingImage;
69
+ if (Buffer.isBuffer(canvasBuffer)) {
70
+ existingImage = await (0, canvas_1.loadImage)(canvasBuffer);
71
+ }
72
+ else if (canvasBuffer && canvasBuffer.buffer) {
73
+ existingImage = await (0, canvas_1.loadImage)(canvasBuffer.buffer);
74
+ }
75
+ else {
76
+ throw new Error('Invalid canvasBuffer provided. It should be a Buffer or CanvasResults object with a buffer');
77
+ }
78
+ if (!existingImage) {
79
+ throw new Error('Unable to load image from buffer');
80
+ }
81
+ // Create new canvas with same dimensions
82
+ const canvas = (0, canvas_1.createCanvas)(existingImage.width, existingImage.height);
83
+ const ctx = (0, errorUtils_1.getCanvasContext)(canvas);
84
+ // Draw existing image as background
85
+ ctx.drawImage(existingImage, 0, 0);
86
+ // Render each text object with enhanced features
87
+ for (const textProps of textList) {
88
+ await this.renderEnhancedText(ctx, textProps);
89
+ }
90
+ return canvas.toBuffer("image/png");
91
+ }
92
+ catch (error) {
93
+ throw new Error(`createText failed: ${(0, errorUtils_1.getErrorMessage)(error)}`);
94
+ }
95
+ }
96
+ }
97
+ exports.TextCreator = TextCreator;
98
+ //# sourceMappingURL=TextCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextCreator.js","sourceRoot":"","sources":["../../../../lib/Canvas/extended/TextCreator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,370 @@
1
+ import type { CanvasResults } from "./CanvasCreator";
2
+ /**
3
+ * Video creation options interface
4
+ */
5
+ export interface VideoCreationOptions {
6
+ source: string | Buffer;
7
+ getInfo?: boolean;
8
+ extractFrame?: {
9
+ time?: number;
10
+ frame?: number;
11
+ width?: number;
12
+ height?: number;
13
+ outputFormat?: 'jpg' | 'png';
14
+ quality?: number;
15
+ };
16
+ extractFrames?: {
17
+ times?: number[];
18
+ interval?: number;
19
+ frameSelection?: {
20
+ start?: number;
21
+ end?: number;
22
+ };
23
+ outputFormat?: 'jpg' | 'png';
24
+ quality?: number;
25
+ outputDirectory?: string;
26
+ };
27
+ extractAllFrames?: {
28
+ outputFormat?: 'jpg' | 'png';
29
+ outputDirectory?: string;
30
+ quality?: number;
31
+ prefix?: string;
32
+ startTime?: number;
33
+ endTime?: number;
34
+ };
35
+ generateThumbnail?: {
36
+ count?: number;
37
+ grid?: {
38
+ cols: number;
39
+ rows: number;
40
+ };
41
+ width?: number;
42
+ height?: number;
43
+ outputFormat?: 'jpg' | 'png';
44
+ quality?: number;
45
+ };
46
+ convert?: {
47
+ outputPath: string;
48
+ format?: 'mp4' | 'webm' | 'avi' | 'mov' | 'mkv';
49
+ quality?: 'low' | 'medium' | 'high' | 'ultra';
50
+ bitrate?: number;
51
+ fps?: number;
52
+ resolution?: {
53
+ width: number;
54
+ height: number;
55
+ };
56
+ };
57
+ trim?: {
58
+ startTime: number;
59
+ endTime: number;
60
+ outputPath: string;
61
+ };
62
+ extractAudio?: {
63
+ outputPath: string;
64
+ format?: 'mp3' | 'wav' | 'aac' | 'ogg';
65
+ bitrate?: number;
66
+ };
67
+ addWatermark?: {
68
+ watermarkPath: string;
69
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center';
70
+ opacity?: number;
71
+ size?: {
72
+ width: number;
73
+ height: number;
74
+ };
75
+ outputPath: string;
76
+ };
77
+ changeSpeed?: {
78
+ speed: number;
79
+ outputPath: string;
80
+ };
81
+ generatePreview?: {
82
+ count?: number;
83
+ outputDirectory?: string;
84
+ outputFormat?: 'jpg' | 'png';
85
+ quality?: number;
86
+ };
87
+ applyEffects?: {
88
+ filters: Array<{
89
+ type: 'blur' | 'brightness' | 'contrast' | 'saturation' | 'grayscale' | 'sepia' | 'invert' | 'sharpen' | 'noise';
90
+ intensity?: number;
91
+ value?: number;
92
+ }>;
93
+ outputPath: string;
94
+ };
95
+ merge?: {
96
+ videos: Array<string | Buffer>;
97
+ outputPath: string;
98
+ mode?: 'sequential' | 'side-by-side' | 'grid';
99
+ grid?: {
100
+ cols: number;
101
+ rows: number;
102
+ };
103
+ };
104
+ replaceSegment?: {
105
+ replacementVideo?: string | Buffer;
106
+ replacementStartTime?: number;
107
+ replacementDuration?: number;
108
+ replacementFrames?: Array<string | Buffer>;
109
+ replacementFps?: number;
110
+ targetStartTime: number;
111
+ targetEndTime: number;
112
+ outputPath: string;
113
+ };
114
+ rotate?: {
115
+ angle?: 90 | 180 | 270;
116
+ flip?: 'horizontal' | 'vertical' | 'both';
117
+ outputPath: string;
118
+ };
119
+ crop?: {
120
+ x: number;
121
+ y: number;
122
+ width: number;
123
+ height: number;
124
+ outputPath: string;
125
+ };
126
+ compress?: {
127
+ outputPath: string;
128
+ quality?: 'low' | 'medium' | 'high' | 'ultra';
129
+ targetSize?: number;
130
+ maxBitrate?: number;
131
+ };
132
+ addText?: {
133
+ text: string;
134
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center' | 'top-center' | 'bottom-center';
135
+ fontSize?: number;
136
+ fontColor?: string;
137
+ backgroundColor?: string;
138
+ startTime?: number;
139
+ endTime?: number;
140
+ outputPath: string;
141
+ };
142
+ addFade?: {
143
+ fadeIn?: number;
144
+ fadeOut?: number;
145
+ outputPath: string;
146
+ };
147
+ reverse?: {
148
+ outputPath: string;
149
+ };
150
+ createLoop?: {
151
+ outputPath: string;
152
+ smooth?: boolean;
153
+ };
154
+ batch?: {
155
+ videos: Array<{
156
+ source: string | Buffer;
157
+ operations: any;
158
+ }>;
159
+ outputDirectory: string;
160
+ };
161
+ detectScenes?: {
162
+ threshold?: number;
163
+ outputPath?: string;
164
+ };
165
+ stabilize?: {
166
+ outputPath: string;
167
+ smoothing?: number;
168
+ };
169
+ colorCorrect?: {
170
+ brightness?: number;
171
+ contrast?: number;
172
+ saturation?: number;
173
+ hue?: number;
174
+ temperature?: number;
175
+ outputPath: string;
176
+ };
177
+ pictureInPicture?: {
178
+ overlayVideo: string | Buffer;
179
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center';
180
+ size?: {
181
+ width: number;
182
+ height: number;
183
+ };
184
+ opacity?: number;
185
+ outputPath: string;
186
+ };
187
+ splitScreen?: {
188
+ videos: Array<string | Buffer>;
189
+ layout?: 'side-by-side' | 'top-bottom' | 'grid';
190
+ grid?: {
191
+ cols: number;
192
+ rows: number;
193
+ };
194
+ outputPath: string;
195
+ };
196
+ createTimeLapse?: {
197
+ speed?: number;
198
+ outputPath: string;
199
+ };
200
+ mute?: {
201
+ outputPath: string;
202
+ ranges?: Array<{
203
+ start: number;
204
+ end: number;
205
+ }>;
206
+ };
207
+ adjustVolume?: {
208
+ volume: number;
209
+ outputPath: string;
210
+ };
211
+ createFromFrames?: {
212
+ frames: Array<string | Buffer>;
213
+ outputPath: string;
214
+ fps?: number;
215
+ format?: 'mp4' | 'webm' | 'avi' | 'mov' | 'mkv';
216
+ quality?: 'low' | 'medium' | 'high' | 'ultra';
217
+ bitrate?: number;
218
+ resolution?: {
219
+ width: number;
220
+ height: number;
221
+ };
222
+ };
223
+ detectFormat?: boolean;
224
+ freezeFrame?: {
225
+ time: number;
226
+ duration: number;
227
+ outputPath: string;
228
+ };
229
+ exportPreset?: {
230
+ preset: 'youtube' | 'instagram' | 'tiktok' | 'twitter' | 'facebook' | '4k' | '1080p' | '720p' | 'mobile' | 'web';
231
+ outputPath: string;
232
+ };
233
+ normalizeAudio?: {
234
+ targetLevel?: number;
235
+ method?: 'peak' | 'rms' | 'lufs';
236
+ outputPath: string;
237
+ };
238
+ applyLUT?: {
239
+ lutPath: string;
240
+ intensity?: number;
241
+ outputPath: string;
242
+ };
243
+ addTransition?: {
244
+ type: 'fade' | 'wipe' | 'slide' | 'zoom' | 'rotate' | 'dissolve' | 'blur' | 'circle' | 'pixelize';
245
+ duration: number;
246
+ direction?: 'left' | 'right' | 'up' | 'down' | 'in' | 'out';
247
+ secondVideo?: string | Buffer;
248
+ outputPath: string;
249
+ };
250
+ addAnimatedText?: {
251
+ text: string;
252
+ animation?: 'fadeIn' | 'fadeOut' | 'slideIn' | 'slideOut' | 'typewriter' | 'bounce' | 'zoom' | 'rotate';
253
+ startTime: number;
254
+ endTime: number;
255
+ position?: {
256
+ x: number;
257
+ y: number;
258
+ } | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center' | 'top-center' | 'bottom-center';
259
+ fontSize?: number;
260
+ fontColor?: string;
261
+ fontPath?: string;
262
+ fontName?: string;
263
+ fontFamily?: string;
264
+ backgroundColor?: string;
265
+ outputPath: string;
266
+ };
267
+ onProgress?: (progress: {
268
+ percent: number;
269
+ time: number;
270
+ speed: number;
271
+ }) => void;
272
+ }
273
+ /**
274
+ * Extended class for video creation functionality
275
+ */
276
+ export declare class VideoCreator {
277
+ private checkFFmpegAvailable?;
278
+ private getFFmpegInstallInstructions?;
279
+ private getVideoInfo?;
280
+ private extractVideoFrame?;
281
+ private extractFrames?;
282
+ private extractAllFrames?;
283
+ /**
284
+ * Sets dependencies from ApexPainter
285
+ */
286
+ setDependencies(deps: {
287
+ checkFFmpegAvailable: () => Promise<boolean>;
288
+ getFFmpegInstallInstructions: () => string;
289
+ getVideoInfo: (videoSource: string | Buffer, skipFFmpegCheck?: boolean) => Promise<any>;
290
+ extractVideoFrame: (videoSource: string | Buffer, frameNumber?: number, timeSeconds?: number, outputFormat?: 'jpg' | 'png', quality?: number) => Promise<Buffer | null>;
291
+ extractFrames?: (videoSource: string | Buffer, options: any) => Promise<any>;
292
+ extractAllFrames?: (videoSource: string | Buffer, options?: any) => Promise<any>;
293
+ }): void;
294
+ /**
295
+ * Main createVideo method - handles all video operations
296
+ */
297
+ createVideo(options: VideoCreationOptions): Promise<any>;
298
+ private generateVideoThumbnail?;
299
+ private convertVideo?;
300
+ private trimVideo?;
301
+ private extractAudio?;
302
+ private addWatermarkToVideo?;
303
+ private changeVideoSpeed?;
304
+ private generateVideoPreview?;
305
+ private applyVideoEffects?;
306
+ private mergeVideos?;
307
+ private replaceVideoSegment?;
308
+ private rotateVideo?;
309
+ private cropVideo?;
310
+ private compressVideo?;
311
+ private addTextToVideo?;
312
+ private addFadeToVideo?;
313
+ private reverseVideo?;
314
+ private createVideoLoop?;
315
+ private batchProcessVideos?;
316
+ private detectVideoScenes?;
317
+ private stabilizeVideo?;
318
+ private colorCorrectVideo?;
319
+ private addPictureInPicture?;
320
+ private createSplitScreen?;
321
+ private createTimeLapseVideo?;
322
+ private muteVideo?;
323
+ private adjustVideoVolume?;
324
+ private createVideoFromFrames?;
325
+ private freezeVideoFrame?;
326
+ private exportVideoPreset?;
327
+ private normalizeVideoAudio?;
328
+ private applyLUTToVideo?;
329
+ private addVideoTransition?;
330
+ private addAnimatedTextToVideo?;
331
+ /**
332
+ * Sets helper methods from ApexPainter
333
+ */
334
+ setHelperMethods(helpers: {
335
+ generateVideoThumbnail?: (videoSource: string | Buffer, options: any, videoInfo: any) => Promise<CanvasResults>;
336
+ convertVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
337
+ trimVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
338
+ extractAudio?: (videoSource: string | Buffer, options: any) => Promise<any>;
339
+ addWatermarkToVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
340
+ changeVideoSpeed?: (videoSource: string | Buffer, options: any) => Promise<any>;
341
+ generateVideoPreview?: (videoSource: string | Buffer, options: any, videoInfo: any) => Promise<any>;
342
+ applyVideoEffects?: (videoSource: string | Buffer, options: any) => Promise<any>;
343
+ mergeVideos?: (options: any) => Promise<any>;
344
+ replaceVideoSegment?: (videoSource: string | Buffer, options: any) => Promise<any>;
345
+ rotateVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
346
+ cropVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
347
+ compressVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
348
+ addTextToVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
349
+ addFadeToVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
350
+ reverseVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
351
+ createVideoLoop?: (videoSource: string | Buffer, options: any) => Promise<any>;
352
+ batchProcessVideos?: (options: any) => Promise<any>;
353
+ detectVideoScenes?: (videoSource: string | Buffer, options: any) => Promise<any>;
354
+ stabilizeVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
355
+ colorCorrectVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
356
+ addPictureInPicture?: (videoSource: string | Buffer, options: any) => Promise<any>;
357
+ createSplitScreen?: (options: any) => Promise<any>;
358
+ createTimeLapseVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
359
+ muteVideo?: (videoSource: string | Buffer, options: any) => Promise<any>;
360
+ adjustVideoVolume?: (videoSource: string | Buffer, options: any) => Promise<any>;
361
+ createVideoFromFrames?: (options: any) => Promise<any>;
362
+ freezeVideoFrame?: (videoSource: string | Buffer, options: any, onProgress?: any) => Promise<any>;
363
+ exportVideoPreset?: (videoSource: string | Buffer, options: any, onProgress?: any) => Promise<any>;
364
+ normalizeVideoAudio?: (videoSource: string | Buffer, options: any, onProgress?: any) => Promise<any>;
365
+ applyLUTToVideo?: (videoSource: string | Buffer, options: any, onProgress?: any) => Promise<any>;
366
+ addVideoTransition?: (videoSource: string | Buffer, options: any, onProgress?: any) => Promise<any>;
367
+ addAnimatedTextToVideo?: (videoSource: string | Buffer, options: any, onProgress?: any) => Promise<any>;
368
+ }): void;
369
+ }
370
+ //# sourceMappingURL=VideoCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoCreator.d.ts","sourceRoot":"","sources":["../../../../lib/Canvas/extended/VideoCreator.ts"],"names":[],"mappings":"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"}