@rendley/sdk 1.10.3 → 1.11.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 (46) hide show
  1. package/LICENSE +48 -48
  2. package/README.md +31 -31
  3. package/dist/Engine.d.ts +54 -4
  4. package/dist/index.cjs +1 -1
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.js +1 -1
  7. package/dist/modules/background-timer/background-timer.d.ts +2 -1
  8. package/dist/modules/clip/Clip.d.ts +37 -124
  9. package/dist/modules/clip/ClipStyle.d.ts +5 -0
  10. package/dist/modules/clip/clips/audio/AudioClip.d.ts +6 -18
  11. package/dist/modules/clip/clips/custom/CustomClip.d.ts +5 -17
  12. package/dist/modules/clip/clips/htmlText/HtmlTextClip.d.ts +6 -18
  13. package/dist/modules/clip/clips/lottie/LottieClip.d.ts +34 -41
  14. package/dist/modules/clip/clips/shape/ShapeClip.d.ts +5 -17
  15. package/dist/modules/clip/clips/text/TextClip.d.ts +6 -18
  16. package/dist/modules/clip/clips/video/VideoClip.d.ts +7 -18
  17. package/dist/modules/effect/BasicEffect.d.ts +6 -0
  18. package/dist/modules/effect/Effect.d.ts +47 -0
  19. package/dist/modules/effect/EffectBase.d.ts +9 -0
  20. package/dist/modules/effect/built-in-effects/BuiltInBlurEffect.d.ts +11 -0
  21. package/dist/modules/effect/built-in-effects/BuiltInFactory.d.ts +4 -0
  22. package/dist/modules/effect/index.d.ts +2 -0
  23. package/dist/modules/event-emitter/types/EventEmitter.types.d.ts +40 -4
  24. package/dist/modules/ffmpeg/types/FFmpeg.types.d.ts +1 -0
  25. package/dist/modules/filter/Filter.d.ts +27 -29
  26. package/dist/modules/filter/MaskFilter.d.ts +1 -1
  27. package/dist/modules/filter/index.d.ts +1 -1
  28. package/dist/modules/layer/Layer.d.ts +20 -19
  29. package/dist/modules/library/BuiltInEffectDefines.d.ts +7 -0
  30. package/dist/modules/library/EffectData.d.ts +141 -0
  31. package/dist/modules/library/FilterData.d.ts +49 -0
  32. package/dist/modules/library/Library.d.ts +355 -0
  33. package/dist/modules/library/MediaData.d.ts +11 -1
  34. package/dist/modules/library/TransitionData.d.ts +141 -0
  35. package/dist/modules/library/index.d.ts +7 -1
  36. package/dist/modules/library/types/Property.types.d.ts +54 -0
  37. package/dist/modules/library/types/Texture.types.d.ts +40 -0
  38. package/dist/modules/subtitles/SubtitleManager.d.ts +1 -1
  39. package/dist/modules/timeline/Timeline.d.ts +27 -24
  40. package/dist/modules/transition/Transition.d.ts +27 -17
  41. package/dist/modules/undo/UndoManager.types.d.ts +6 -0
  42. package/dist/modules/upgrader/Upgrader.d.ts +5 -0
  43. package/package.json +83 -82
  44. package/dist/modules/filter/Effect.d.ts +0 -84
  45. package/dist/modules/filter/utils/removeShaderNameLine.d.ts +0 -1
  46. package/dist/modules/library/types/MediaData.types.d.ts +0 -8
@@ -366,7 +366,7 @@ export declare class SubtitlesManager {
366
366
  private restartTween;
367
367
  update(currentTime: number): void;
368
368
  convertSRTToSubtitles(srt: string): Subtitles;
369
- extractSubtitlesFromVideo(mediaDataId: string): "" | Promise<string>;
369
+ extractSubtitlesFromVideo(mediaDataId: string): Promise<string> | "";
370
370
  hitTest(point: {
371
371
  cursorX: number;
372
372
  cursorY: number;
@@ -17,43 +17,43 @@ export declare const TimelineSchema: z.ZodObject<{
17
17
  clips: z.ZodArray<z.ZodAny, "many">;
18
18
  transitions: z.ZodArray<z.ZodObject<{
19
19
  id: z.ZodString;
20
- name: z.ZodString;
21
20
  startClipId: z.ZodString;
22
21
  endClipId: z.ZodString;
23
22
  inDuration: z.ZodNumber;
24
23
  outDuration: z.ZodNumber;
25
- transitionSrc: z.ZodString;
26
- type: z.ZodLiteral<"transition">;
24
+ transitionId: z.ZodString;
25
+ provider: z.ZodString;
26
+ properties: z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodAny], null>, "many">;
27
27
  }, "strip", z.ZodTypeAny, {
28
- type: "transition";
29
- name: string;
30
28
  id: string;
29
+ provider: string;
30
+ properties: [string, any][];
31
31
  startClipId: string;
32
32
  endClipId: string;
33
33
  inDuration: number;
34
34
  outDuration: number;
35
- transitionSrc: string;
35
+ transitionId: string;
36
36
  }, {
37
- type: "transition";
38
- name: string;
39
37
  id: string;
38
+ provider: string;
39
+ properties: [string, any][];
40
40
  startClipId: string;
41
41
  endClipId: string;
42
42
  inDuration: number;
43
43
  outDuration: number;
44
- transitionSrc: string;
44
+ transitionId: string;
45
45
  }>, "many">;
46
46
  }, "strip", z.ZodTypeAny, {
47
47
  id: string;
48
48
  transitions: {
49
- type: "transition";
50
- name: string;
51
49
  id: string;
50
+ provider: string;
51
+ properties: [string, any][];
52
52
  startClipId: string;
53
53
  endClipId: string;
54
54
  inDuration: number;
55
55
  outDuration: number;
56
- transitionSrc: string;
56
+ transitionId: string;
57
57
  }[];
58
58
  clips: any[];
59
59
  visible?: boolean | undefined;
@@ -62,14 +62,14 @@ export declare const TimelineSchema: z.ZodObject<{
62
62
  }, {
63
63
  id: string;
64
64
  transitions: {
65
- type: "transition";
66
- name: string;
67
65
  id: string;
66
+ provider: string;
67
+ properties: [string, any][];
68
68
  startClipId: string;
69
69
  endClipId: string;
70
70
  inDuration: number;
71
71
  outDuration: number;
72
- transitionSrc: string;
72
+ transitionId: string;
73
73
  }[];
74
74
  clips: any[];
75
75
  visible?: boolean | undefined;
@@ -83,14 +83,14 @@ export declare const TimelineSchema: z.ZodObject<{
83
83
  layers: {
84
84
  id: string;
85
85
  transitions: {
86
- type: "transition";
87
- name: string;
88
86
  id: string;
87
+ provider: string;
88
+ properties: [string, any][];
89
89
  startClipId: string;
90
90
  endClipId: string;
91
91
  inDuration: number;
92
92
  outDuration: number;
93
- transitionSrc: string;
93
+ transitionId: string;
94
94
  }[];
95
95
  clips: any[];
96
96
  visible?: boolean | undefined;
@@ -104,14 +104,14 @@ export declare const TimelineSchema: z.ZodObject<{
104
104
  layers: {
105
105
  id: string;
106
106
  transitions: {
107
- type: "transition";
108
- name: string;
109
107
  id: string;
108
+ provider: string;
109
+ properties: [string, any][];
110
110
  startClipId: string;
111
111
  endClipId: string;
112
112
  inDuration: number;
113
113
  outDuration: number;
114
- transitionSrc: string;
114
+ transitionId: string;
115
115
  }[];
116
116
  clips: any[];
117
117
  visible?: boolean | undefined;
@@ -131,6 +131,7 @@ export declare class Timeline {
131
131
  private isDestroyed;
132
132
  constructor();
133
133
  init(): Promise<void>;
134
+ reset(): void;
134
135
  destroy(): void;
135
136
  addMedia(file: File): Promise<string | null>;
136
137
  private updateLayerOrder;
@@ -157,24 +158,26 @@ export declare class Timeline {
157
158
  extractAudio(clip: string | Clip): AudioClip | undefined;
158
159
  alignTime(time: number, roundDirection?: AlignRoundEnum): number;
159
160
  adjustClipsLayout(): void;
161
+ getFrameDuration(): number;
160
162
  getFps(): number;
161
163
  setFps(fps: number): void;
162
164
  getFitDuration(): number;
163
165
  render(): Promise<void>;
166
+ loadSerializedData(data: object): void;
164
167
  serialize(): {
165
168
  startTime: number;
166
169
  fps: number;
167
170
  layers: {
168
171
  id: string;
169
172
  transitions: {
170
- type: "transition";
171
- name: string;
172
173
  id: string;
174
+ provider: string;
175
+ properties: [string, any][];
173
176
  startClipId: string;
174
177
  endClipId: string;
175
178
  inDuration: number;
176
179
  outDuration: number;
177
- transitionSrc: string;
180
+ transitionId: string;
178
181
  }[];
179
182
  clips: any[];
180
183
  visible?: boolean | undefined;
@@ -3,44 +3,45 @@ import { z } from "zod";
3
3
  import { Clip } from "../clip";
4
4
  export declare const TransitionSchema: z.ZodObject<{
5
5
  id: z.ZodString;
6
- name: z.ZodString;
7
6
  startClipId: z.ZodString;
8
7
  endClipId: z.ZodString;
9
8
  inDuration: z.ZodNumber;
10
9
  outDuration: z.ZodNumber;
11
- transitionSrc: z.ZodString;
12
- type: z.ZodLiteral<"transition">;
10
+ transitionId: z.ZodString;
11
+ provider: z.ZodString;
12
+ properties: z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodAny], null>, "many">;
13
13
  }, "strip", z.ZodTypeAny, {
14
- type: "transition";
15
- name: string;
16
14
  id: string;
15
+ provider: string;
16
+ properties: [string, any][];
17
17
  startClipId: string;
18
18
  endClipId: string;
19
19
  inDuration: number;
20
20
  outDuration: number;
21
- transitionSrc: string;
21
+ transitionId: string;
22
22
  }, {
23
- type: "transition";
24
- name: string;
25
23
  id: string;
24
+ provider: string;
25
+ properties: [string, any][];
26
26
  startClipId: string;
27
27
  endClipId: string;
28
28
  inDuration: number;
29
29
  outDuration: number;
30
- transitionSrc: string;
30
+ transitionId: string;
31
31
  }>;
32
32
  export interface TransitionOptions {
33
33
  startClipId: string;
34
34
  endClipId: string;
35
35
  inDuration: number;
36
36
  outDuration: number;
37
- name: string;
38
- transitionSrc: string;
37
+ transitionId: string;
38
+ properties?: Record<string, any>;
39
39
  }
40
40
  export declare class Transition {
41
41
  private id;
42
42
  private name;
43
- private transitionSrc;
43
+ private readonly transitionId;
44
+ private provider;
44
45
  private startClipId;
45
46
  private endClipId;
46
47
  private startClip;
@@ -51,10 +52,19 @@ export declare class Transition {
51
52
  private renderTexture2;
52
53
  private sprite;
53
54
  private transitionFilter;
55
+ private transitionData;
56
+ private readonly inputTextures;
57
+ private propertyMap;
58
+ private readonly tempProperties?;
54
59
  constructor(options: TransitionOptions);
55
60
  init(layerId: string): void;
56
- createRendererTexture(): void;
61
+ private createInputTextures;
62
+ private createRendererTexture;
63
+ setProperty(propertyName: string, value: any): void;
64
+ getProperty(propertyName: string): any;
57
65
  getId(): string;
66
+ getTransitionId(): string;
67
+ getProvider(): string;
58
68
  setInDuration(inDuration: number): void;
59
69
  getInDuration(): number;
60
70
  setOutDuration(outDuration: number): void;
@@ -75,16 +85,16 @@ export declare class Transition {
75
85
  getTransitionProgress(currentTime: number): number;
76
86
  render(currentTime: number): void;
77
87
  destroy(): void;
78
- update(transitionProgress: number): void;
88
+ update(currentTime: number): void;
79
89
  serialize(): {
80
- type: "transition";
81
- name: string;
82
90
  id: string;
91
+ provider: string;
92
+ properties: [string, any][];
83
93
  startClipId: string;
84
94
  endClipId: string;
85
95
  inDuration: number;
86
96
  outDuration: number;
87
- transitionSrc: string;
97
+ transitionId: string;
88
98
  };
89
99
  static deserialize(data: object): Transition;
90
100
  }
@@ -48,6 +48,7 @@ export declare enum UndoActionEnum {
48
48
  TRANSITION_REMOVE = "transition-remove",
49
49
  FILTER_ADD = "filter-add",
50
50
  FILTER_REMOVE = "filter-remove",
51
+ FILTER_INTENSITY = "filter-intensity",
51
52
  EFFECT_ADD = "effect-add",
52
53
  EFFECT_REMOVE = "effect-remove",
53
54
  SUBTITLES_TEXT_MODE = "subtitles-text-mode",
@@ -272,6 +273,11 @@ export type UndoActionMappings = {
272
273
  clipId: string;
273
274
  filter: any;
274
275
  };
276
+ [UndoActionEnum.FILTER_INTENSITY]: {
277
+ clipId: string;
278
+ id: string;
279
+ value: number;
280
+ };
275
281
  [UndoActionEnum.EFFECT_ADD]: {
276
282
  clipId: string;
277
283
  effect: any;
@@ -0,0 +1,5 @@
1
+ export declare class Upgrader {
2
+ private static upgradeTo_1_10_0;
3
+ private static upgradeTo_1_11_0;
4
+ static upgrade(data: any): void;
5
+ }
package/package.json CHANGED
@@ -1,82 +1,83 @@
1
- {
2
- "name": "@rendley/sdk",
3
- "version": "1.10.3",
4
- "license": "LICENSE",
5
- "author": "Onix Technologies",
6
- "homepage": "https://rendley.com",
7
- "description": "A Video Editing SDK that works completely in the browser.",
8
- "type": "module",
9
- "keywords": [
10
- "video editing sdk",
11
- "javascript video sdk",
12
- "typescript video sdk",
13
- "video api",
14
- "video processing",
15
- "ffmpeg",
16
- "video",
17
- "web codecs",
18
- "video editor"
19
- ],
20
- "main": "./dist/index.cjs",
21
- "module": "./dist/index.js",
22
- "typings": "./dist/index.d.ts",
23
- "files": [
24
- "dist"
25
- ],
26
- "publishConfig": {
27
- "registry": "https://registry.npmjs.org/",
28
- "access": "public"
29
- },
30
- "scripts": {
31
- "build:docs": "typedoc",
32
- "build": "tsc && vite build --mode development",
33
- "build:watch": "tsc && vite build --watch --mode development",
34
- "build:production": "tsc && vite build --mode production && npm run obfuscate",
35
- "obfuscate": "node ./plugins/obfuscate.js",
36
- "test": "jest",
37
- "lint": "eslint --ext .ts,.tsx src --fix",
38
- "format": "prettier --write 'src/**/*.{ts,tsx}'",
39
- "patch": "patch-package"
40
- },
41
- "devDependencies": {
42
- "@babel/core": "7.23.7",
43
- "@babel/preset-env": "7.23.7",
44
- "@babel/preset-typescript": "7.23.3",
45
- "@types/crypto-js": "4.2.2",
46
- "@types/emscripten": "1.39.10",
47
- "@types/eventemitter3": "2.0.2",
48
- "@types/gradient-parser": "0.1.5",
49
- "@types/jest": "29.5.11",
50
- "@types/node": "20.10.6",
51
- "@types/uuid": "9.0.8",
52
- "@typescript-eslint/eslint-plugin": "6.17.0",
53
- "@typescript-eslint/parser": "6.17.0",
54
- "babel-jest": "29.7.0",
55
- "eslint": "8.56.0",
56
- "eslint-plugin-import": "2.29.1",
57
- "javascript-obfuscator": "4.1.0",
58
- "jest": "29.7.0",
59
- "patch-package": "8.0.0",
60
- "postinstall-postinstall": "2.1.0",
61
- "prettier": "3.1.1",
62
- "ts-jest": "29.1.1",
63
- "typedoc": "0.27.2",
64
- "typedoc-plugin-markdown": "4.3.1",
65
- "typescript": "5.3.3",
66
- "vite": "^5.4.9",
67
- "vite-plugin-dts": "3.7.2"
68
- },
69
- "dependencies": {
70
- "@pixi/gif": "2.1.1",
71
- "@tweenjs/tween.js": "23.1.2",
72
- "bodymovin": "4.13.0",
73
- "crypto-js": "4.2.0",
74
- "eventemitter3": "5.0.1",
75
- "gradient-parser": "1.0.2",
76
- "lottie-web": "5.12.2",
77
- "pixi.js": "7.4.0",
78
- "unplugin-preprocessor-directives": "^1.0.3",
79
- "uuid": "9.0.1",
80
- "zod": "3.22.4"
81
- }
82
- }
1
+ {
2
+ "name": "@rendley/sdk",
3
+ "version": "1.11.0",
4
+ "license": "LICENSE",
5
+ "author": "Onix Technologies",
6
+ "homepage": "https://rendley.com",
7
+ "description": "A Video Editing SDK that works completely in the browser.",
8
+ "type": "module",
9
+ "keywords": [
10
+ "video editing sdk",
11
+ "javascript video sdk",
12
+ "typescript video sdk",
13
+ "video api",
14
+ "video processing",
15
+ "ffmpeg",
16
+ "video",
17
+ "web codecs",
18
+ "video editor"
19
+ ],
20
+ "main": "./dist/index.cjs",
21
+ "module": "./dist/index.js",
22
+ "typings": "./dist/index.d.ts",
23
+ "files": [
24
+ "dist"
25
+ ],
26
+ "publishConfig": {
27
+ "registry": "https://registry.npmjs.org/",
28
+ "access": "public"
29
+ },
30
+ "scripts": {
31
+ "build:docs": "typedoc",
32
+ "build": "tsc && vite build --mode development",
33
+ "build:watch": "tsc && vite build --watch --mode development",
34
+ "build:production": "tsc && vite build --mode production && npm run obfuscate",
35
+ "obfuscate": "node ./plugins/obfuscate.js",
36
+ "test": "jest",
37
+ "lint": "eslint --ext .ts,.tsx src --fix",
38
+ "format": "prettier --write 'src/**/*.{ts,tsx}'",
39
+ "patch": "patch-package"
40
+ },
41
+ "devDependencies": {
42
+ "@babel/core": "7.23.7",
43
+ "@babel/preset-env": "7.23.7",
44
+ "@babel/preset-typescript": "7.23.3",
45
+ "@types/crypto-js": "4.2.2",
46
+ "@types/emscripten": "1.39.10",
47
+ "@types/eventemitter3": "2.0.2",
48
+ "@types/gradient-parser": "0.1.5",
49
+ "@types/jest": "29.5.11",
50
+ "@types/node": "20.10.6",
51
+ "@types/uuid": "9.0.8",
52
+ "@typescript-eslint/eslint-plugin": "6.17.0",
53
+ "@typescript-eslint/parser": "6.17.0",
54
+ "babel-jest": "29.7.0",
55
+ "eslint": "8.56.0",
56
+ "eslint-plugin-import": "2.29.1",
57
+ "javascript-obfuscator": "4.1.0",
58
+ "jest": "29.7.0",
59
+ "patch-package": "8.0.0",
60
+ "postinstall-postinstall": "2.1.0",
61
+ "prettier": "3.1.1",
62
+ "ts-jest": "29.1.1",
63
+ "typedoc": "0.27.2",
64
+ "typedoc-plugin-markdown": "4.3.1",
65
+ "typescript": "5.3.3",
66
+ "vite": "^5.4.9",
67
+ "vite-plugin-dts": "3.7.2"
68
+ },
69
+ "dependencies": {
70
+ "@pixi/gif": "2.1.1",
71
+ "@tweenjs/tween.js": "23.1.2",
72
+ "bodymovin": "4.13.0",
73
+ "crypto-js": "4.2.0",
74
+ "eventemitter3": "5.0.1",
75
+ "gradient-parser": "1.0.2",
76
+ "lottie-web": "5.12.2",
77
+ "pixi-filters": "^5.3.0",
78
+ "pixi.js": "7.4.0",
79
+ "unplugin-preprocessor-directives": "^1.0.3",
80
+ "uuid": "9.0.1",
81
+ "zod": "3.22.4"
82
+ }
83
+ }
@@ -1,84 +0,0 @@
1
- import * as PIXI from "pixi.js";
2
- import { z } from "zod";
3
- export declare const EffectSchema: z.ZodObject<{
4
- id: z.ZodString;
5
- sourceId: z.ZodString;
6
- options: z.ZodObject<{
7
- fragmentSrc: z.ZodOptional<z.ZodString>;
8
- uniforms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
9
- textureWidth: z.ZodNumber;
10
- textureHeight: z.ZodNumber;
11
- frameWidth: z.ZodNumber;
12
- frameHeight: z.ZodNumber;
13
- }, "strip", z.ZodTypeAny, {
14
- textureWidth: number;
15
- textureHeight: number;
16
- frameWidth: number;
17
- frameHeight: number;
18
- fragmentSrc?: string | undefined;
19
- uniforms?: Record<string, unknown> | undefined;
20
- }, {
21
- textureWidth: number;
22
- textureHeight: number;
23
- frameWidth: number;
24
- frameHeight: number;
25
- fragmentSrc?: string | undefined;
26
- uniforms?: Record<string, unknown> | undefined;
27
- }>;
28
- }, "strip", z.ZodTypeAny, {
29
- id: string;
30
- options: {
31
- textureWidth: number;
32
- textureHeight: number;
33
- frameWidth: number;
34
- frameHeight: number;
35
- fragmentSrc?: string | undefined;
36
- uniforms?: Record<string, unknown> | undefined;
37
- };
38
- sourceId: string;
39
- }, {
40
- id: string;
41
- options: {
42
- textureWidth: number;
43
- textureHeight: number;
44
- frameWidth: number;
45
- frameHeight: number;
46
- fragmentSrc?: string | undefined;
47
- uniforms?: Record<string, unknown> | undefined;
48
- };
49
- sourceId: string;
50
- }>;
51
- export interface EffectOptions {
52
- sourceId: string;
53
- fragmentSrc?: string;
54
- uniforms?: Record<string, unknown>;
55
- textureWidth: number;
56
- textureHeight: number;
57
- frameWidth: number;
58
- frameHeight: number;
59
- }
60
- export declare class Effect {
61
- id: string;
62
- private sourceId;
63
- private options;
64
- private pixiFilter;
65
- constructor(options: EffectOptions);
66
- getSourceId(): string;
67
- getPixiFilter(): PIXI.Filter;
68
- private lastUpdate;
69
- updateUniformsFromSprite(sprite: PIXI.Sprite): void;
70
- update(currentTime: number): void;
71
- serialize(): {
72
- id: string;
73
- options: {
74
- textureWidth: number;
75
- textureHeight: number;
76
- frameWidth: number;
77
- frameHeight: number;
78
- fragmentSrc?: string | undefined;
79
- uniforms?: Record<string, unknown> | undefined;
80
- };
81
- sourceId: string;
82
- };
83
- static deserialize(data: object): Effect;
84
- }
@@ -1 +0,0 @@
1
- export declare function removeShaderNameLine(shaderCode: string): string | undefined;
@@ -1,8 +0,0 @@
1
- export declare enum MediaDataStatus {
2
- NONE = "none",
3
- ERROR = "error",
4
- LOADING = "loading",
5
- TRANSCODING = "transcoding",
6
- FILMSTRIP = "filmstrip",
7
- READY = "ready"
8
- }