visualfries 0.1.10115 → 0.3.2

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 (139) hide show
  1. package/README.md +122 -0
  2. package/bin/visualfries.js +1570 -0
  3. package/dist/DIContainer.d.ts +2 -1
  4. package/dist/DIContainer.js +16 -5
  5. package/dist/SceneBuilder.svelte.d.ts +70 -1
  6. package/dist/SceneBuilder.svelte.js +96 -29
  7. package/dist/agent/audioMixer.d.ts +34 -0
  8. package/dist/agent/audioMixer.js +308 -0
  9. package/dist/agent/broll.d.ts +35 -0
  10. package/dist/agent/broll.js +226 -0
  11. package/dist/agent/capabilities.d.ts +34 -0
  12. package/dist/agent/capabilities.js +246 -0
  13. package/dist/agent/captionScene.d.ts +23 -0
  14. package/dist/agent/captionScene.js +204 -0
  15. package/dist/agent/catalog.d.ts +24 -0
  16. package/dist/agent/catalog.js +67 -0
  17. package/dist/agent/cueFiles.d.ts +54 -0
  18. package/dist/agent/cueFiles.js +219 -0
  19. package/dist/agent/cuePresets.d.ts +7 -0
  20. package/dist/agent/cuePresets.js +50 -0
  21. package/dist/agent/deterministicMedia.d.ts +61 -0
  22. package/dist/agent/deterministicMedia.js +303 -0
  23. package/dist/agent/index.d.ts +18 -0
  24. package/dist/agent/index.js +18 -0
  25. package/dist/agent/inspectScene.d.ts +36 -0
  26. package/dist/agent/inspectScene.js +139 -0
  27. package/dist/agent/localRender.d.ts +82 -0
  28. package/dist/agent/localRender.js +702 -0
  29. package/dist/agent/overlays.d.ts +40 -0
  30. package/dist/agent/overlays.js +325 -0
  31. package/dist/agent/productionPlan.d.ts +131 -0
  32. package/dist/agent/productionPlan.js +322 -0
  33. package/dist/agent/renderPlan.d.ts +27 -0
  34. package/dist/agent/renderPlan.js +68 -0
  35. package/dist/agent/renderRanges.d.ts +24 -0
  36. package/dist/agent/renderRanges.js +73 -0
  37. package/dist/agent/runtimeSupport.d.ts +19 -0
  38. package/dist/agent/runtimeSupport.js +192 -0
  39. package/dist/agent/streamingEncoder.d.ts +31 -0
  40. package/dist/agent/streamingEncoder.js +208 -0
  41. package/dist/agent/transcripts.d.ts +29 -0
  42. package/dist/agent/transcripts.js +146 -0
  43. package/dist/agent/transitions.d.ts +20 -0
  44. package/dist/agent/transitions.js +169 -0
  45. package/dist/animations/PixiAnimationTarget.d.ts +29 -0
  46. package/dist/animations/PixiAnimationTarget.js +63 -0
  47. package/dist/animations/builders/LineHighlighterAnimationBuilder.js +20 -3
  48. package/dist/animations/builders/WordHighlighterAnimationBuilder.js +15 -2
  49. package/dist/browser/browserExport.d.ts +73 -0
  50. package/dist/browser/browserExport.js +180 -0
  51. package/dist/browser/glTransitions.d.ts +37 -0
  52. package/dist/browser/glTransitions.js +261 -0
  53. package/dist/browser/index.d.ts +3 -0
  54. package/dist/browser/index.js +3 -0
  55. package/dist/browser/mediaDecode.d.ts +31 -0
  56. package/dist/browser/mediaDecode.js +152 -0
  57. package/dist/builders/PixiComponentBuilder.d.ts +6 -0
  58. package/dist/builders/PixiComponentBuilder.js +12 -0
  59. package/dist/builders/_ComponentState.svelte.d.ts +7 -5
  60. package/dist/builders/_ComponentState.svelte.js +29 -15
  61. package/dist/builders/html/StyleBuilder.js +9 -8
  62. package/dist/builders/html/TextComponentHtmlBuilder.js +4 -2
  63. package/dist/builders/html/processors/AppearanceStyleProcessor.js +1 -1
  64. package/dist/builders/html/processors/TextAppearanceStyleProcessor.js +7 -0
  65. package/dist/builders/html/processors/TextEffectsStyleProcessor.js +32 -13
  66. package/dist/commands/ReplaceSourceOnTimeCommand.js +9 -1
  67. package/dist/commands/SeekCommand.js +19 -6
  68. package/dist/components/AnimatedGIF.d.ts +3 -0
  69. package/dist/components/AnimatedGIF.js +28 -1
  70. package/dist/components/Component.svelte.d.ts +5 -5
  71. package/dist/components/Component.svelte.js +29 -13
  72. package/dist/components/ComponentContext.svelte.js +68 -23
  73. package/dist/components/hooks/AnimationHook.js +1 -1
  74. package/dist/components/hooks/CanvasFillHook.d.ts +12 -0
  75. package/dist/components/hooks/CanvasFillHook.js +75 -0
  76. package/dist/components/hooks/DeterministicMediaFrameHook.js +3 -0
  77. package/dist/components/hooks/HtmlTextHook.js +11 -3
  78. package/dist/components/hooks/HtmlToCanvasHook.js +8 -25
  79. package/dist/components/hooks/MediaHook.js +172 -47
  80. package/dist/components/hooks/MediaSeekingHook.js +138 -88
  81. package/dist/components/hooks/PixiGifHook.js +4 -4
  82. package/dist/components/hooks/PixiSplitScreenDisplayObjectHook.d.ts +3 -0
  83. package/dist/components/hooks/PixiSplitScreenDisplayObjectHook.js +85 -8
  84. package/dist/components/hooks/PixiVideoTextureHook.js +10 -4
  85. package/dist/components/hooks/PixiVisualTransformHook.d.ts +16 -0
  86. package/dist/components/hooks/PixiVisualTransformHook.js +102 -0
  87. package/dist/components/hooks/SubtitlesHook.js +48 -24
  88. package/dist/components/hooks/VerifyMediaHook.js +2 -2
  89. package/dist/directors/ComponentDirector.d.ts +1 -0
  90. package/dist/directors/ComponentDirector.js +41 -8
  91. package/dist/factories/SceneBuilderFactory.d.ts +3 -0
  92. package/dist/factories/SceneBuilderFactory.js +6 -0
  93. package/dist/fonts/fontDiscovery.js +12 -1
  94. package/dist/layers/Layer.svelte.d.ts +54 -0
  95. package/dist/layers/Layer.svelte.js +2 -25
  96. package/dist/managers/AppManager.svelte.d.ts +12 -0
  97. package/dist/managers/AppManager.svelte.js +180 -8
  98. package/dist/managers/ComponentsManager.svelte.d.ts +7 -7
  99. package/dist/managers/ComponentsManager.svelte.js +29 -15
  100. package/dist/managers/DeterministicMediaManager.d.ts +6 -0
  101. package/dist/managers/DeterministicMediaManager.js +57 -3
  102. package/dist/managers/EventManager.js +3 -1
  103. package/dist/managers/LayersManager.svelte.d.ts +54 -0
  104. package/dist/managers/RenderManager.d.ts +5 -0
  105. package/dist/managers/RenderManager.js +67 -21
  106. package/dist/managers/StateManager.svelte.d.ts +56 -0
  107. package/dist/managers/StateManager.svelte.js +60 -58
  108. package/dist/managers/SubtitlesManager.svelte.js +1 -3
  109. package/dist/managers/TimeManager.svelte.d.ts +4 -0
  110. package/dist/managers/TimeManager.svelte.js +23 -7
  111. package/dist/schemas/runtime/deterministic.d.ts +3 -0
  112. package/dist/schemas/runtime/deterministic.js +5 -1
  113. package/dist/schemas/runtime/types.d.ts +36 -15
  114. package/dist/schemas/scene/components.d.ts +126 -0
  115. package/dist/schemas/scene/components.js +11 -0
  116. package/dist/schemas/scene/core.d.ts +109 -10
  117. package/dist/schemas/scene/core.js +1 -1
  118. package/dist/utils/mediaWindow.d.ts +13 -0
  119. package/dist/utils/mediaWindow.js +25 -0
  120. package/dist/utils/svgGenerator.js +1 -1
  121. package/dist/utils/timelineWindow.d.ts +2 -0
  122. package/dist/utils/timelineWindow.js +7 -0
  123. package/dist/utils/utils.js +2 -4
  124. package/docs/AGENT_PATTERNS.md +243 -0
  125. package/docs/AGENT_WORKFLOW.md +364 -0
  126. package/docs/AUTHORING_BEST_PRACTICES.md +188 -0
  127. package/docs/AUTHORING_SYSTEM_AUDIT.md +98 -0
  128. package/docs/BROWSER_EXPORT_SPIKE.md +55 -0
  129. package/docs/DETERMINISTIC_RENDERER.md +83 -0
  130. package/docs/NEXT_RELEASE.md +28 -0
  131. package/docs/PROPOSED_VISUALFRIES_SKILL.md +68 -0
  132. package/docs/examples/agent-cues.json +49 -0
  133. package/docs/examples/agent-transcript.json +23 -0
  134. package/docs/examples/agent-transcript.srt +7 -0
  135. package/docs/examples/agent-transcript.vtt +7 -0
  136. package/docs/examples/image-animation.json +87 -0
  137. package/docs/examples/native-text-metric-badge.json +109 -0
  138. package/package.json +133 -100
  139. package/skills/visualfries/SKILL.md +328 -0
@@ -0,0 +1,87 @@
1
+ {
2
+ "id": "image-animation-runtime-proof",
3
+ "version": "2.0",
4
+ "name": "IMAGE animation runtime proof",
5
+ "settings": {
6
+ "width": 1080,
7
+ "height": 1920,
8
+ "duration": 3,
9
+ "fps": 30,
10
+ "backgroundColor": "#111827"
11
+ },
12
+ "assets": [
13
+ {
14
+ "id": "proof-card-asset",
15
+ "type": "IMAGE",
16
+ "url": "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='480'%3E%3Crect width='720' height='480' rx='48' fill='%23F5D547'/%3E%3Ccircle cx='360' cy='240' r='96' fill='%23101820'/%3E%3C/svg%3E"
17
+ }
18
+ ],
19
+ "layers": [
20
+ {
21
+ "id": "image-layer",
22
+ "name": "Animated image",
23
+ "order": 10,
24
+ "visible": true,
25
+ "muted": false,
26
+ "components": [
27
+ {
28
+ "id": "proof-card",
29
+ "name": "Animated proof card asset",
30
+ "type": "IMAGE",
31
+ "source": {
32
+ "assetId": "proof-card-asset",
33
+ "url": "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='480'%3E%3Crect width='720' height='480' rx='48' fill='%23F5D547'/%3E%3Ccircle cx='360' cy='240' r='96' fill='%23101820'/%3E%3C/svg%3E"
34
+ },
35
+ "timeline": { "startAt": 0.5, "endAt": 3 },
36
+ "visible": true,
37
+ "order": 0,
38
+ "appearance": {
39
+ "x": 180,
40
+ "y": 720,
41
+ "width": 720,
42
+ "height": 480,
43
+ "opacity": 0.9,
44
+ "rotation": 3,
45
+ "scaleX": 1,
46
+ "scaleY": 1
47
+ },
48
+ "animations": {
49
+ "enabled": true,
50
+ "list": [
51
+ {
52
+ "id": "proof-card-enter",
53
+ "name": "Image enter",
54
+ "startAt": 0.15,
55
+ "enabled": true,
56
+ "animation": {
57
+ "id": "proof-card-enter-preset",
58
+ "duration": 0.6,
59
+ "timeline": [
60
+ {
61
+ "tweens": [
62
+ {
63
+ "method": "from",
64
+ "vars": {
65
+ "duration": 0.6,
66
+ "x": -360,
67
+ "opacity": 0,
68
+ "scale": 0.82,
69
+ "rotation": -10,
70
+ "ease": "power3.out"
71
+ }
72
+ }
73
+ ]
74
+ }
75
+ ]
76
+ }
77
+ }
78
+ ]
79
+ },
80
+ "effects": { "enabled": true, "map": {} }
81
+ }
82
+ ]
83
+ }
84
+ ],
85
+ "transitions": [],
86
+ "audioTracks": []
87
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "id": "native-text-metric-badge",
3
+ "version": "2.0",
4
+ "name": "Native TEXT metric badge",
5
+ "settings": {
6
+ "width": 1080,
7
+ "height": 1920,
8
+ "duration": 3,
9
+ "fps": 30,
10
+ "backgroundColor": "#151A22"
11
+ },
12
+ "assets": [],
13
+ "layers": [
14
+ {
15
+ "id": "metric-layer",
16
+ "name": "Semantic metric typography",
17
+ "order": 10,
18
+ "visible": true,
19
+ "muted": false,
20
+ "components": [
21
+ {
22
+ "id": "views-badge",
23
+ "name": "881 VIEWS",
24
+ "type": "TEXT",
25
+ "text": "881 VIEWS",
26
+ "timeline": { "startAt": 0.2, "endAt": 3 },
27
+ "visible": true,
28
+ "order": 0,
29
+ "appearance": {
30
+ "x": 90,
31
+ "y": 820,
32
+ "width": 900,
33
+ "height": 220,
34
+ "opacity": 1,
35
+ "rotation": -2,
36
+ "scaleX": 1,
37
+ "scaleY": 1,
38
+ "horizontalAlign": "center",
39
+ "verticalAlign": "center",
40
+ "background": {
41
+ "enabled": true,
42
+ "color": "#F5D547",
43
+ "target": "wrapper",
44
+ "radius": 32
45
+ },
46
+ "text": {
47
+ "fontFamily": "Montserrat",
48
+ "fontSize": { "value": 116, "unit": "px" },
49
+ "fontWeight": "900",
50
+ "lineHeight": { "value": 1, "unit": "em" },
51
+ "color": "#101820",
52
+ "textAlign": "center",
53
+ "textTransform": "uppercase",
54
+ "outline": {
55
+ "enabled": true,
56
+ "color": "#FFFFFF",
57
+ "size": 2,
58
+ "opacity": 1,
59
+ "style": "solid"
60
+ },
61
+ "shadow": {
62
+ "enabled": true,
63
+ "color": "#000000",
64
+ "blur": 16,
65
+ "offsetX": 0,
66
+ "offsetY": 8,
67
+ "opacity": 0.5
68
+ }
69
+ }
70
+ },
71
+ "animations": {
72
+ "enabled": true,
73
+ "list": [
74
+ {
75
+ "id": "views-badge-enter",
76
+ "name": "Badge enter",
77
+ "startAt": 0.1,
78
+ "enabled": true,
79
+ "animation": {
80
+ "id": "views-badge-enter-preset",
81
+ "duration": 0.5,
82
+ "timeline": [
83
+ {
84
+ "tweens": [
85
+ {
86
+ "method": "from",
87
+ "vars": {
88
+ "duration": 0.5,
89
+ "opacity": 0,
90
+ "scale": 0.82,
91
+ "y": 70,
92
+ "ease": "back.out(1.8)"
93
+ }
94
+ }
95
+ ]
96
+ }
97
+ ]
98
+ }
99
+ }
100
+ ]
101
+ },
102
+ "effects": { "enabled": true, "map": {} }
103
+ }
104
+ ]
105
+ }
106
+ ],
107
+ "transitions": [],
108
+ "audioTracks": []
109
+ }
package/package.json CHANGED
@@ -1,101 +1,134 @@
1
1
  {
2
- "name": "visualfries",
3
- "version": "0.1.10115",
4
- "license": "MIT",
5
- "author": "ContentFries",
6
- "repository": {
7
- "type": "git",
8
- "url": "https://github.com/contentfries/visualfries"
9
- },
10
- "bugs": {
11
- "url": "https://github.com/contentfries/visualfries/issues"
12
- },
13
- "files": [
14
- "dist",
15
- "!dist/**/*.test.*",
16
- "!dist/**/*.spec.*",
17
- "!dist/stories/**"
18
- ],
19
- "sideEffects": [
20
- "**/*.css"
21
- ],
22
- "@parcel/resolver-default": {
23
- "packageExports": true
24
- },
25
- "main": "./dist/index.js",
26
- "module": "./dist/index.js",
27
- "svelte": "./dist/index.js",
28
- "types": "./dist/index.d.ts",
29
- "type": "module",
30
- "exports": {
31
- ".": {
32
- "types": "./dist/index.d.ts",
33
- "svelte": "./dist/index.js",
34
- "import": "./dist/index.js",
35
- "default": "./dist/index.js"
36
- }
37
- },
38
- "peerDependencies": {
39
- "svelte": "^5.0.0",
40
- "zod": "^4.1.12"
41
- },
42
- "devDependencies": {
43
- "@sveltejs/adapter-auto": "^3.0.0",
44
- "@sveltejs/kit": "^2.46.4",
45
- "@sveltejs/package": "^2.0.0",
46
- "@sveltejs/vite-plugin-svelte": "^4.0.0",
47
- "@tailwindcss/aspect-ratio": "^0.4.2",
48
- "@tailwindcss/typography": "^0.5.16",
49
- "@types/lodash-es": "^4.17.12",
50
- "@types/md5": "^2.3.5",
51
- "@types/node": "^20.17.30",
52
- "@types/tinycolor2": "^1.4.6",
53
- "@types/uuid": "^10.0.0",
54
- "autoprefixer": "^10.4.20",
55
- "daisyui": "^4.12.13",
56
- "eslint": "^9.7.0",
57
- "jsdom": "^26.1.0",
58
- "knip": "^5.65.0",
59
- "md5": "^2.3.0",
60
- "postcss": "^8.4.47",
61
- "prettier": "^3.3.2",
62
- "prettier-plugin-svelte": "^3.2.6",
63
- "prettier-plugin-tailwindcss": "^0.7.0",
64
- "publint": "^0.2.0",
65
- "release-please": "^15.0.0",
66
- "svelte": "^5.0.0",
67
- "svelte-check": "^4.0.0",
68
- "tailwindcss": "^3.4.14",
69
- "typescript": "^5.8.3",
70
- "vite": "^5.0.11",
71
- "vitest": "^2.0.4"
72
- },
73
- "dependencies": {
74
- "awilix": "^12.0.3",
75
- "dompurify": "^3.3.0",
76
- "gifuct-js": "^2.1.2",
77
- "gsap": "^3.13.0",
78
- "hls.js": "^1.5.17",
79
- "lodash-es": "^4.17.21",
80
- "pixi.js-legacy": "^7.4.3",
81
- "tinycolor2": "^1.6.0",
82
- "uuid": "^10.0.0"
83
- },
84
- "scripts": {
85
- "dev": "vite dev",
86
- "build": "vite build && pnpm run package",
87
- "preview": "vite preview",
88
- "package": "svelte-kit sync && svelte-package && publint",
89
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
90
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
91
- "test": "pnpm run test:unit -- --run",
92
- "test:unit": "vitest",
93
- "bench:deterministic": "pnpm vitest tests/perf/deterministic-server-render.perf.test.ts --run",
94
- "lint": "eslint . && prettier --check .",
95
- "format": "prettier --write .",
96
- "knip": "knip",
97
- "release:pr": "release-please release-pr",
98
- "release:github": "release-please github-release",
99
- "release:bootstrap": "release-please bootstrap"
100
- }
101
- }
2
+ "name": "visualfries",
3
+ "version": "0.3.2",
4
+ "license": "MIT",
5
+ "author": "ContentFries",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/ContentFries/visualfries"
9
+ },
10
+ "bugs": {
11
+ "url": "https://github.com/ContentFries/visualfries/issues"
12
+ },
13
+ "scripts": {
14
+ "dev": "vite dev",
15
+ "build": "vite build && pnpm run package",
16
+ "preview": "vite preview",
17
+ "package": "svelte-kit sync && svelte-package && publint",
18
+ "prepublishOnly": "pnpm run package",
19
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
20
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
21
+ "test": "pnpm run test:unit -- --run",
22
+ "test:unit": "vitest",
23
+ "lint": "eslint . && prettier --check .",
24
+ "format": "prettier --write .",
25
+ "knip": "knip",
26
+ "release:pr": "release-please release-pr",
27
+ "release:github": "release-please github-release",
28
+ "release:bootstrap": "release-please bootstrap"
29
+ },
30
+ "files": [
31
+ "bin",
32
+ "dist",
33
+ "skills",
34
+ "docs",
35
+ "!dist/**/*.test.*",
36
+ "!dist/**/*.spec.*",
37
+ "!dist/stories/**"
38
+ ],
39
+ "bin": {
40
+ "visualfries": "bin/visualfries.js"
41
+ },
42
+ "sideEffects": [
43
+ "**/*.css"
44
+ ],
45
+ "@parcel/resolver-default": {
46
+ "packageExports": true
47
+ },
48
+ "main": "./dist/index.js",
49
+ "module": "./dist/index.js",
50
+ "svelte": "./dist/index.js",
51
+ "types": "./dist/index.d.ts",
52
+ "type": "module",
53
+ "exports": {
54
+ ".": {
55
+ "types": "./dist/index.d.ts",
56
+ "svelte": "./dist/index.js",
57
+ "import": "./dist/index.js",
58
+ "default": "./dist/index.js"
59
+ },
60
+ "./agent": {
61
+ "types": "./dist/agent/index.d.ts",
62
+ "import": "./dist/agent/index.js",
63
+ "default": "./dist/agent/index.js"
64
+ },
65
+ "./browser": {
66
+ "types": "./dist/browser/index.d.ts",
67
+ "import": "./dist/browser/index.js",
68
+ "default": "./dist/browser/index.js"
69
+ }
70
+ },
71
+ "peerDependencies": {
72
+ "@sveltejs/vite-plugin-svelte": "^4.0.0 || ^5.0.0 || ^6.0.0",
73
+ "playwright": "^1.40.0",
74
+ "svelte": "^5.0.0",
75
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0"
76
+ },
77
+ "peerDependenciesMeta": {
78
+ "@sveltejs/vite-plugin-svelte": {
79
+ "optional": true
80
+ },
81
+ "playwright": {
82
+ "optional": true
83
+ },
84
+ "vite": {
85
+ "optional": true
86
+ }
87
+ },
88
+ "devDependencies": {
89
+ "@sveltejs/adapter-auto": "^3.0.0",
90
+ "@sveltejs/kit": "^2.46.4",
91
+ "@sveltejs/package": "^2.0.0",
92
+ "@sveltejs/vite-plugin-svelte": "^4.0.0",
93
+ "@tailwindcss/aspect-ratio": "^0.4.2",
94
+ "@tailwindcss/typography": "^0.5.16",
95
+ "@types/lodash-es": "^4.17.12",
96
+ "@types/md5": "^2.3.5",
97
+ "@types/node": "^20.17.30",
98
+ "@types/tinycolor2": "^1.4.6",
99
+ "@types/uuid": "^10.0.0",
100
+ "autoprefixer": "^10.4.20",
101
+ "daisyui": "^4.12.13",
102
+ "eslint": "^9.7.0",
103
+ "jsdom": "^26.1.0",
104
+ "knip": "^5.65.0",
105
+ "md5": "^2.3.0",
106
+ "postcss": "^8.4.47",
107
+ "playwright": "^1.52.0",
108
+ "prettier": "^3.3.2",
109
+ "prettier-plugin-svelte": "^3.2.6",
110
+ "prettier-plugin-tailwindcss": "^0.7.0",
111
+ "publint": "^0.2.0",
112
+ "release-please": "^15.0.0",
113
+ "svelte": "^5.0.0",
114
+ "svelte-check": "^4.0.0",
115
+ "tailwindcss": "^3.4.14",
116
+ "typescript": "^5.8.3",
117
+ "vite": "^5.0.11",
118
+ "vitest": "^2.0.4"
119
+ },
120
+ "dependencies": {
121
+ "awilix": "^12.0.3",
122
+ "dompurify": "^3.3.0",
123
+ "earcut": "^2.2.4",
124
+ "gifuct-js": "^2.1.2",
125
+ "gsap": "^3.13.0",
126
+ "hls.js": "^1.5.17",
127
+ "lodash-es": "^4.17.21",
128
+ "mediabunny": "1.49.0",
129
+ "pixi.js-legacy": "^7.4.3",
130
+ "tinycolor2": "^1.6.0",
131
+ "uuid": "^10.0.0",
132
+ "zod": "^4.1.12"
133
+ }
134
+ }