motiondesk-studio 1.3.0 → 1.5.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 (75) hide show
  1. package/README.md +9 -4
  2. package/app/assets/bank-banker-chat-B_iF_sFM.js +257 -0
  3. package/app/assets/bank-business-loan-BFWWaq-c.js +247 -0
  4. package/app/assets/bank-car-choice-DLE2OVcc.js +229 -0
  5. package/app/assets/bank-card-freeze-J1JfFmLr.js +281 -0
  6. package/app/assets/bank-code-never-CQDlq8GN.js +234 -0
  7. package/app/assets/bank-dark-interlude-DhcdkPP1.js +190 -0
  8. package/app/assets/bank-digital-JTuIxFOJ.js +1 -0
  9. package/app/assets/bank-dinner-split-Be1e7DOQ.js +246 -0
  10. package/app/assets/bank-fast-pay-DoW0ClI6.js +230 -0
  11. package/app/assets/bank-first-salary-D9WxYgJf.js +212 -0
  12. package/app/assets/bank-fomo-stop-uEzdT0HP.js +230 -0
  13. package/app/assets/bank-forex-trip-BHW39y4z.js +205 -0
  14. package/app/assets/bank-growth-bars-DirAz4xB.js +203 -0
  15. package/app/assets/bank-holiday-budget-J41dLHwR.js +224 -0
  16. package/app/assets/bank-invest-B--KJb5m.js +1 -0
  17. package/app/assets/bank-life-C-4wZKyu.js +1 -0
  18. package/app/assets/bank-mortgage-papers-DMtx0XsI.js +214 -0
  19. package/app/assets/bank-new-app-look-CKmeKBU6.js +228 -0
  20. package/app/assets/bank-one-click-loan-BVhe1AGv.js +223 -0
  21. package/app/assets/bank-paper-explainer-CD8mPtnJ.js +191 -0
  22. package/app/assets/bank-pension-compare-BArvoVu7.js +243 -0
  23. package/app/assets/bank-remote-access-Df8UNpc7.js +257 -0
  24. package/app/assets/bank-safety-CBkr-iwJ.js +1 -0
  25. package/app/assets/bank-savings-pocket-B53nO1Z_.js +220 -0
  26. package/app/assets/bank-share-explained-DCp805RD.js +228 -0
  27. package/app/assets/bank-small-business-Bc7Ad4GW.js +217 -0
  28. package/app/assets/bank-student-routine-CnPPhtoV.js +224 -0
  29. package/app/assets/bank-suspicious-sms-CwOrdi3d.js +229 -0
  30. package/app/assets/bank-wedding-budget-CDM2kO0R.js +230 -0
  31. package/app/assets/bank-young-BwV6418l.js +1 -0
  32. package/app/assets/{catalog-Cdx5nbp0.js → catalog-CDdvrdnk.js} +1 -1
  33. package/app/assets/{index-D3rEDfqX.js → index-BRse9TUl.js} +4 -4
  34. package/app/assets/index-b6-Cm4vot4j.js +1 -0
  35. package/app/assets/index-b7-BLEay8YC.js +1 -0
  36. package/app/assets/index-b8-Jbh-zOZB.js +1 -0
  37. package/app/assets/index-b9-caOB8GyX.js +1 -0
  38. package/app/index.html +1 -1
  39. package/bin/motiondesk-studio.mjs +8 -1
  40. package/lib/catalog/hyperframes/bank-banker-chat.html +256 -0
  41. package/lib/catalog/hyperframes/bank-business-loan.html +246 -0
  42. package/lib/catalog/hyperframes/bank-car-choice.html +228 -0
  43. package/lib/catalog/hyperframes/bank-card-freeze.html +280 -0
  44. package/lib/catalog/hyperframes/bank-code-never.html +233 -0
  45. package/lib/catalog/hyperframes/bank-dark-interlude.html +189 -0
  46. package/lib/catalog/hyperframes/bank-dinner-split.html +245 -0
  47. package/lib/catalog/hyperframes/bank-fast-pay.html +229 -0
  48. package/lib/catalog/hyperframes/bank-first-salary.html +211 -0
  49. package/lib/catalog/hyperframes/bank-fomo-stop.html +229 -0
  50. package/lib/catalog/hyperframes/bank-forex-trip.html +204 -0
  51. package/lib/catalog/hyperframes/bank-growth-bars.html +202 -0
  52. package/lib/catalog/hyperframes/bank-holiday-budget.html +223 -0
  53. package/lib/catalog/hyperframes/bank-mortgage-papers.html +213 -0
  54. package/lib/catalog/hyperframes/bank-new-app-look.html +227 -0
  55. package/lib/catalog/hyperframes/bank-one-click-loan.html +222 -0
  56. package/lib/catalog/hyperframes/bank-paper-explainer.html +190 -0
  57. package/lib/catalog/hyperframes/bank-pension-compare.html +242 -0
  58. package/lib/catalog/hyperframes/bank-remote-access.html +256 -0
  59. package/lib/catalog/hyperframes/bank-savings-pocket.html +219 -0
  60. package/lib/catalog/hyperframes/bank-share-explained.html +227 -0
  61. package/lib/catalog/hyperframes/bank-small-business.html +216 -0
  62. package/lib/catalog/hyperframes/bank-student-routine.html +223 -0
  63. package/lib/catalog/hyperframes/bank-suspicious-sms.html +228 -0
  64. package/lib/catalog/hyperframes/bank-wedding-budget.html +229 -0
  65. package/lib/catalog/hyperframes/index-b6.json +146 -0
  66. package/lib/catalog/hyperframes/index-b7.json +121 -0
  67. package/lib/catalog/hyperframes/index-b8.json +92 -0
  68. package/lib/catalog/hyperframes/index-b9.json +87 -0
  69. package/lib/catalog/studio/bank-digital.json +3586 -0
  70. package/lib/catalog/studio/bank-invest.json +3653 -0
  71. package/lib/catalog/studio/bank-life.json +3605 -0
  72. package/lib/catalog/studio/bank-safety.json +3198 -0
  73. package/lib/catalog/studio/bank-young.json +3426 -0
  74. package/lib/vercel-render.mjs +16 -1
  75. package/package.json +30 -7
@@ -7,7 +7,21 @@ const require = createRequire(import.meta.url);
7
7
  const core = require('./core.cjs');
8
8
  const { withPreviewControls } = require('./vercel-source.cjs');
9
9
  const { motionBlurSettings, subframeTime, ffmpegBlurArgs } = require('./motion-blur.cjs');
10
- const ffmpeg = require('ffmpeg-static');
10
+ import { existsSync } from 'node:fs';
11
+ /** FFmpeg, in order: MOTIONDESK_FFMPEG_PATH, the bundled ffmpeg-static (an optional dependency), or one installed on the system. */
12
+ export function findFfmpeg() {
13
+ const fromEnv = process.env.MOTIONDESK_FFMPEG_PATH;
14
+ if (fromEnv && existsSync(fromEnv)) return fromEnv;
15
+ try { const bundled = require('ffmpeg-static'); if (bundled && existsSync(bundled)) return bundled; } catch { /* not installed */ }
16
+ const exe = process.platform === 'win32' ? 'ffmpeg.exe' : 'ffmpeg';
17
+ for (const dir of [...(process.env.PATH || '').split(path.delimiter), '/opt/homebrew/bin', '/usr/local/bin', '/usr/bin']) {
18
+ if (dir && existsSync(path.join(dir, exe))) return path.join(dir, exe);
19
+ }
20
+ return null;
21
+ }
22
+ export const FFMPEG_MISSING = 'ייצוא MP4 צריך FFmpeg, והוא לא נמצא במחשב. ב־Mac: brew install ffmpeg · ב־Windows: winget install ffmpeg · או הגדירו MOTIONDESK_FFMPEG_PATH. כל שאר הסטודיו עובד גם בלי FFmpeg, וייצוא HTML זמין תמיד.';
23
+ let ffmpeg = null; // resolved when a render starts
24
+ function useFfmpeg() { ffmpeg ??= findFfmpeg(); if (!ffmpeg) throw new Error(FFMPEG_MISSING); return ffmpeg; }
11
25
  const num = n => Number(n.toFixed(6)).toString();
12
26
 
13
27
  /** Preserve native authored geometry while using a physically smaller raster target. */
@@ -84,6 +98,7 @@ let renderQueue = Promise.resolve();
84
98
 
85
99
  /** Fluid Compute can run requests concurrently in the same memory-limited VM. */
86
100
  export async function renderVercelProject(input, options) {
101
+ useFfmpeg();
87
102
  const ready = renderQueue;
88
103
  let release;
89
104
  const slot = new Promise(resolve => { release = resolve; });
package/package.json CHANGED
@@ -1,18 +1,41 @@
1
1
  {
2
2
  "name": "motiondesk-studio",
3
- "version": "1.3.0",
4
- "description": "MotionDesk Studio — Hebrew/RTL motion video studio: 420+ editable motion templates in 31 categories, 60+ HyperFrames (GSAP) templates, text-to-video without AI, 300+ vector assets, a scene-block builder and LLM prompts that turn a JSON config into a video.",
3
+ "version": "1.5.0",
4
+ "description": "MotionDesk Studio — Hebrew/RTL motion video studio: 540+ editable motion templates in 36 categories (incl. bank-YouTube style), 80+ HyperFrames (GSAP) templates, text-to-video without AI, 300+ vector assets, a scene-block builder and LLM prompts that turn a JSON config into a video.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
7
7
  "bin": {
8
8
  "motiondesk-studio": "bin/motiondesk-studio.mjs"
9
9
  },
10
- "files": ["bin/", "lib/", "app/", "README.md", "LICENSE", "THIRD_PARTY_NOTICES.md"],
11
- "engines": { "node": ">=20.10" },
12
- "keywords": ["motion-graphics", "video", "templates", "hyperframes", "gsap", "hebrew", "rtl", "llm", "json-to-video"],
10
+ "files": [
11
+ "bin/",
12
+ "lib/",
13
+ "app/",
14
+ "README.md",
15
+ "LICENSE",
16
+ "THIRD_PARTY_NOTICES.md"
17
+ ],
18
+ "engines": {
19
+ "node": ">=20.10"
20
+ },
21
+ "keywords": [
22
+ "motion-graphics",
23
+ "video",
24
+ "templates",
25
+ "hyperframes",
26
+ "gsap",
27
+ "hebrew",
28
+ "rtl",
29
+ "llm",
30
+ "json-to-video"
31
+ ],
13
32
  "dependencies": {
14
- "ffmpeg-static": "^5.3.0",
15
33
  "puppeteer-core": "25.14.0"
16
34
  },
17
- "publishConfig": { "access": "public" }
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "optionalDependencies": {
39
+ "ffmpeg-static": "^5.3.0"
40
+ }
18
41
  }