@mevdragon/vidfarm-devcli 0.2.13 → 0.3.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 (200) hide show
  1. package/README.md +11 -4
  2. package/SKILL.director.md +97 -0
  3. package/SKILL.platform.md +66 -6
  4. package/dist/src/cli.js +137 -1524
  5. package/dist/src/dev-serve.js +169 -0
  6. package/package.json +5 -24
  7. package/.env.example +0 -60
  8. package/auto-create-hyperframe-templates/AUTO_CREATE_HYPERFRAME_TEMPLATES.md +0 -275
  9. package/auto-create-hyperframe-templates/extractor-system-prompt.md +0 -128
  10. package/auto-create-hyperframe-templates/input-manifest.schema.json +0 -56
  11. package/auto-create-hyperframe-templates/lambda-memory-estimator.md +0 -118
  12. package/auto-create-hyperframe-templates/production-graph.schema.json +0 -314
  13. package/auto-create-hyperframe-templates/runbook.md +0 -198
  14. package/auto-create-hyperframe-templates/scripts/create-hyperframe-template.mjs +0 -368
  15. package/auto-create-hyperframe-templates/template-plan.schema.json +0 -311
  16. package/auto-create-hyperframe-templates/template-planner-prompt.md +0 -144
  17. package/auto-create-templates/AUTO_CREATE_TEMPLATES.md +0 -599
  18. package/auto-create-templates/extractor-system-prompt.md +0 -119
  19. package/auto-create-templates/production-graph.schema.json +0 -276
  20. package/auto-create-templates/runbook.md +0 -140
  21. package/auto-create-templates/template-plan.schema.json +0 -301
  22. package/auto-create-templates/template-planner-prompt.md +0 -137
  23. package/dist/src/account-pages-legacy.js +0 -9336
  24. package/dist/src/account-pages-legacy.js.map +0 -1
  25. package/dist/src/account-pages.js +0 -61
  26. package/dist/src/account-pages.js.map +0 -1
  27. package/dist/src/app.js +0 -14023
  28. package/dist/src/app.js.map +0 -1
  29. package/dist/src/cli.js.map +0 -1
  30. package/dist/src/composition-runtime.js +0 -581
  31. package/dist/src/composition-runtime.js.map +0 -1
  32. package/dist/src/config.js +0 -140
  33. package/dist/src/config.js.map +0 -1
  34. package/dist/src/context.js +0 -492
  35. package/dist/src/context.js.map +0 -1
  36. package/dist/src/dev-app-legacy.js +0 -694
  37. package/dist/src/dev-app-legacy.js.map +0 -1
  38. package/dist/src/dev-app.js +0 -6
  39. package/dist/src/dev-app.js.map +0 -1
  40. package/dist/src/domain.js +0 -2
  41. package/dist/src/domain.js.map +0 -1
  42. package/dist/src/editor-chat-history.js +0 -82
  43. package/dist/src/editor-chat-history.js.map +0 -1
  44. package/dist/src/editor-chat.js +0 -311
  45. package/dist/src/editor-chat.js.map +0 -1
  46. package/dist/src/frontend/flockposter-cache-store.js +0 -124
  47. package/dist/src/frontend/flockposter-cache-store.js.map +0 -1
  48. package/dist/src/frontend/homepage-client.js +0 -117
  49. package/dist/src/frontend/homepage-client.js.map +0 -1
  50. package/dist/src/frontend/homepage-shared.js +0 -4
  51. package/dist/src/frontend/homepage-shared.js.map +0 -1
  52. package/dist/src/frontend/homepage-store.js +0 -28
  53. package/dist/src/frontend/homepage-store.js.map +0 -1
  54. package/dist/src/frontend/homepage-view.js +0 -260
  55. package/dist/src/frontend/homepage-view.js.map +0 -1
  56. package/dist/src/frontend/page-runtime-client.js +0 -103
  57. package/dist/src/frontend/page-runtime-client.js.map +0 -1
  58. package/dist/src/frontend/page-runtime-store.js +0 -9
  59. package/dist/src/frontend/page-runtime-store.js.map +0 -1
  60. package/dist/src/frontend/sentry.js +0 -42
  61. package/dist/src/frontend/sentry.js.map +0 -1
  62. package/dist/src/frontend/template-editor-chat.js +0 -3767
  63. package/dist/src/frontend/template-editor-chat.js.map +0 -1
  64. package/dist/src/help-page.js +0 -333
  65. package/dist/src/help-page.js.map +0 -1
  66. package/dist/src/homepage.js +0 -919
  67. package/dist/src/homepage.js.map +0 -1
  68. package/dist/src/hyperframes/composition.js +0 -180
  69. package/dist/src/hyperframes/composition.js.map +0 -1
  70. package/dist/src/index.js +0 -16
  71. package/dist/src/index.js.map +0 -1
  72. package/dist/src/instrument.js +0 -30
  73. package/dist/src/instrument.js.map +0 -1
  74. package/dist/src/lib/crypto.js +0 -45
  75. package/dist/src/lib/crypto.js.map +0 -1
  76. package/dist/src/lib/dev-log.js +0 -54
  77. package/dist/src/lib/dev-log.js.map +0 -1
  78. package/dist/src/lib/display-name.js +0 -11
  79. package/dist/src/lib/display-name.js.map +0 -1
  80. package/dist/src/lib/ids.js +0 -24
  81. package/dist/src/lib/ids.js.map +0 -1
  82. package/dist/src/lib/images.js +0 -19
  83. package/dist/src/lib/images.js.map +0 -1
  84. package/dist/src/lib/json.js +0 -15
  85. package/dist/src/lib/json.js.map +0 -1
  86. package/dist/src/lib/template-dna.js +0 -543
  87. package/dist/src/lib/template-dna.js.map +0 -1
  88. package/dist/src/lib/template-paths.js +0 -28
  89. package/dist/src/lib/template-paths.js.map +0 -1
  90. package/dist/src/lib/template-style-options.js +0 -203
  91. package/dist/src/lib/template-style-options.js.map +0 -1
  92. package/dist/src/lib/time.js +0 -7
  93. package/dist/src/lib/time.js.map +0 -1
  94. package/dist/src/lib/video-quality-harness.js +0 -60
  95. package/dist/src/lib/video-quality-harness.js.map +0 -1
  96. package/dist/src/page-runtime.js +0 -2
  97. package/dist/src/page-runtime.js.map +0 -1
  98. package/dist/src/page-shell.js +0 -2393
  99. package/dist/src/page-shell.js.map +0 -1
  100. package/dist/src/primitive-context.js +0 -299
  101. package/dist/src/primitive-context.js.map +0 -1
  102. package/dist/src/primitive-registry.js +0 -2181
  103. package/dist/src/primitive-registry.js.map +0 -1
  104. package/dist/src/primitive-sdk.js +0 -4
  105. package/dist/src/primitive-sdk.js.map +0 -1
  106. package/dist/src/primitives/remotion/html-image.js +0 -30
  107. package/dist/src/primitives/remotion/html-image.js.map +0 -1
  108. package/dist/src/primitives/remotion/media-slideshow.js +0 -60
  109. package/dist/src/primitives/remotion/media-slideshow.js.map +0 -1
  110. package/dist/src/react-page-shell.js +0 -35
  111. package/dist/src/react-page-shell.js.map +0 -1
  112. package/dist/src/ready-post-schedule-component.js +0 -1515
  113. package/dist/src/ready-post-schedule-component.js.map +0 -1
  114. package/dist/src/registry.js +0 -296
  115. package/dist/src/registry.js.map +0 -1
  116. package/dist/src/runtime.js +0 -31
  117. package/dist/src/runtime.js.map +0 -1
  118. package/dist/src/services/api-call-history.js +0 -249
  119. package/dist/src/services/api-call-history.js.map +0 -1
  120. package/dist/src/services/auth.js +0 -152
  121. package/dist/src/services/auth.js.map +0 -1
  122. package/dist/src/services/billing.js +0 -231
  123. package/dist/src/services/billing.js.map +0 -1
  124. package/dist/src/services/chat-threads.js +0 -92
  125. package/dist/src/services/chat-threads.js.map +0 -1
  126. package/dist/src/services/fork-access.js +0 -94
  127. package/dist/src/services/fork-access.js.map +0 -1
  128. package/dist/src/services/ghostcut.js +0 -132
  129. package/dist/src/services/ghostcut.js.map +0 -1
  130. package/dist/src/services/hyperframes.js +0 -1014
  131. package/dist/src/services/hyperframes.js.map +0 -1
  132. package/dist/src/services/job-capacity.js +0 -14
  133. package/dist/src/services/job-capacity.js.map +0 -1
  134. package/dist/src/services/job-logs.js +0 -197
  135. package/dist/src/services/job-logs.js.map +0 -1
  136. package/dist/src/services/jobs.js +0 -136
  137. package/dist/src/services/jobs.js.map +0 -1
  138. package/dist/src/services/media-processing.js +0 -743
  139. package/dist/src/services/media-processing.js.map +0 -1
  140. package/dist/src/services/primitive-media-lambda.js +0 -280
  141. package/dist/src/services/primitive-media-lambda.js.map +0 -1
  142. package/dist/src/services/providers.js +0 -2870
  143. package/dist/src/services/providers.js.map +0 -1
  144. package/dist/src/services/rate-limits.js +0 -237
  145. package/dist/src/services/rate-limits.js.map +0 -1
  146. package/dist/src/services/remotion.js +0 -688
  147. package/dist/src/services/remotion.js.map +0 -1
  148. package/dist/src/services/serverless-auth.js +0 -374
  149. package/dist/src/services/serverless-auth.js.map +0 -1
  150. package/dist/src/services/serverless-jobs.js +0 -1074
  151. package/dist/src/services/serverless-jobs.js.map +0 -1
  152. package/dist/src/services/serverless-provider-keys.js +0 -401
  153. package/dist/src/services/serverless-provider-keys.js.map +0 -1
  154. package/dist/src/services/serverless-records.js +0 -1086
  155. package/dist/src/services/serverless-records.js.map +0 -1
  156. package/dist/src/services/serverless-template-configs.js +0 -67
  157. package/dist/src/services/serverless-template-configs.js.map +0 -1
  158. package/dist/src/services/storage.js +0 -382
  159. package/dist/src/services/storage.js.map +0 -1
  160. package/dist/src/services/template-certification.js +0 -475
  161. package/dist/src/services/template-certification.js.map +0 -1
  162. package/dist/src/services/template-loader.js +0 -99
  163. package/dist/src/services/template-loader.js.map +0 -1
  164. package/dist/src/services/template-runtime-bundles.js +0 -217
  165. package/dist/src/services/template-runtime-bundles.js.map +0 -1
  166. package/dist/src/services/template-sources.js +0 -1017
  167. package/dist/src/services/template-sources.js.map +0 -1
  168. package/dist/src/services/video-normalization.js +0 -2
  169. package/dist/src/services/video-normalization.js.map +0 -1
  170. package/dist/src/services/webhooks.js +0 -62
  171. package/dist/src/services/webhooks.js.map +0 -1
  172. package/dist/src/template-editor-pages.js +0 -6624
  173. package/dist/src/template-editor-pages.js.map +0 -1
  174. package/dist/src/template-editor-shell.js +0 -2713
  175. package/dist/src/template-editor-shell.js.map +0 -1
  176. package/dist/src/template-sdk.js +0 -4
  177. package/dist/src/template-sdk.js.map +0 -1
  178. package/dist/src/worker.js +0 -17
  179. package/dist/src/worker.js.map +0 -1
  180. package/public/assets/homepage-app.js +0 -54
  181. package/public/assets/homepage-client-app.js +0 -80
  182. package/public/assets/page-runtime-client-app.js +0 -94
  183. package/readme.secret.md +0 -89
  184. package/templates/vidfarm_template_0000/README.md +0 -106
  185. package/templates/vidfarm_template_0000/SKILL.md +0 -266
  186. package/templates/vidfarm_template_0000/assets/Abel-Regular.ttf +0 -0
  187. package/templates/vidfarm_template_0000/assets/DMSerifDisplay-Regular.ttf +0 -0
  188. package/templates/vidfarm_template_0000/assets/Montserrat[wght].ttf +0 -0
  189. package/templates/vidfarm_template_0000/assets/SourceCodePro[wght].ttf +0 -0
  190. package/templates/vidfarm_template_0000/assets/TikTokSans-SemiBold.ttf +0 -0
  191. package/templates/vidfarm_template_0000/assets/Yesteryear-Regular.ttf +0 -0
  192. package/templates/vidfarm_template_0000/composition.json +0 -11
  193. package/templates/vidfarm_template_0000/src/lib/images.js +0 -221
  194. package/templates/vidfarm_template_0000/src/remotion/Root.js +0 -33
  195. package/templates/vidfarm_template_0000/src/remotion/index.js +0 -3
  196. package/templates/vidfarm_template_0000/src/sdk.js +0 -3
  197. package/templates/vidfarm_template_0000/src/style-options.js +0 -200
  198. package/templates/vidfarm_template_0000/src/template-dna.js +0 -9
  199. package/templates/vidfarm_template_0000/src/template.js +0 -1566
  200. package/templates/vidfarm_template_0000/template.config.json +0 -21
@@ -1 +0,0 @@
1
- {"version":3,"file":"homepage.js","sourceRoot":"","sources":["../../src/homepage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEhG,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,MAAM,qBAAqB,GAAG,gCAAgC,CAAC;AAI/D,MAAM,UAAU,cAAc,CAAC,KAA6I;IAC1K,MAAM,IAAI,GAAiB;QACzB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,mBAAmB,EAAE,mBAAmB;KACzC,CAAC;IAEF,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;YAC7B,CAAC,CAAC,yBAAyB,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,YAAY;YACnH,CAAC,CAAC,oBAAoB;QACxB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,KAAK,CAAC,UAAU;YAC3B,CAAC,CAAC;gBACE,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI;gBACpC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B;YACH,CAAC,CAAC,SAAS;QACb,IAAI,EAAE;gCACsB,cAAc,CACtC,KAAC,aAAa,IACZ,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,gBAAgB,EAAE,KAAK,CAAC,SAAS,EACjC,WAAW,EAAC,EAAE,EACd,aAAa,EAAE,KAAK,EACpB,SAAS,EAAE,IAAI,GAAG,EAAE,EACpB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EACrC,KAAK,EAAE,IAAI,EACX,mBAAmB,EAAE,SAAS,EAC9B,qBAAqB,EAAE,SAAS,EAChC,gBAAgB,EAAE,SAAS,EAC3B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,GAC7C,CACH;2DACoD,iBAAiB,CAAC,IAAI,CAAC;mCAC/C,qBAAqB;KACnD;QACD,KAAK,EAAE;QACH,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAm3B/B;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,180 +0,0 @@
1
- export function buildHyperframeCompositionHtml(input) {
2
- const duration = positiveNumber(input.duration, inferDuration(input.layers));
3
- const width = positiveInteger(input.width, 720);
4
- const height = positiveInteger(input.height, 1280);
5
- const background = input.backgroundColor || "#050604";
6
- const fontImport = input.fontImportCss ?? "@import url(\"https://fonts.googleapis.com/css2?family=Abel&family=Montserrat:wght@600&family=Source+Code+Pro:wght@700&family=TikTok+Sans:wght@400;600;700;800;900&display=swap\");";
7
- const layers = input.layers.map(renderLayer).join("\n ");
8
- return `<!doctype html>
9
- <html>
10
- <head>
11
- <meta charset="UTF-8" />
12
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13
- <style>
14
- ${fontImport}
15
- html, body { width:100%; height:100%; margin:0; overflow:hidden; background:${background}; }
16
- [data-composition-id] { position:relative; width:100vw; height:100vh; overflow:hidden; background:${background}; }
17
- audio { display:none; }
18
- ${input.css ?? ""}
19
- </style>
20
- </head>
21
- <body>
22
- <div data-composition-id="${escapeAttr(input.compositionId)}" data-source-folder="${escapeAttr(input.sourceFolder || "")}" data-width="${width}" data-height="${height}" data-duration="${num(duration)}">
23
- ${layers}
24
- </div>
25
- </body>
26
- </html>
27
- `;
28
- }
29
- export function inferDuration(layers) {
30
- return layers.reduce((max, layer) => Math.max(max, positiveNumber(layer.start, 0) + positiveNumber(layer.duration, 0)), 0);
31
- }
32
- export function assertHyperframeTimeline(layers) {
33
- const timedLayers = layers.filter((layer) => positiveNumber(layer.duration, 0) > 0);
34
- for (const layer of timedLayers) {
35
- if (!layer.id.trim())
36
- throw new Error("HyperFrame layer id is required.");
37
- if (positiveNumber(layer.start, -1) < 0)
38
- throw new Error(`HyperFrame layer ${layer.id} has a negative start.`);
39
- if (positiveNumber(layer.duration, 0) <= 0)
40
- throw new Error(`HyperFrame layer ${layer.id} must have a positive duration.`);
41
- }
42
- }
43
- function renderLayer(layer) {
44
- const attrs = timedAttrs(layer);
45
- const style = layerStyle(layer);
46
- if (layer.kind === "video") {
47
- return `<video ${attrs} src="${escapeAttr(layer.src || "")}" ${layer.muted === false ? "" : "muted"} playsinline preload="auto" style="${escapeAttr(style)}"></video>`;
48
- }
49
- if (layer.kind === "audio") {
50
- return `<audio ${attrs} src="${escapeAttr(layer.src || "")}" data-timeline-role="music" data-volume="${num(positiveNumber(layer.volume, 1))}" preload="metadata"></audio>`;
51
- }
52
- if (layer.kind === "image") {
53
- return `<img ${attrs} src="${escapeAttr(layer.src || "")}" alt="" style="${escapeAttr(style)}" />`;
54
- }
55
- if (layer.kind === "html") {
56
- return `<div ${attrs} style="${escapeAttr(style)}">${layer.html || ""}</div>`;
57
- }
58
- const text = layer.text ?? layer.label ?? "";
59
- const inlineStyle = textInlineCss(layer.textBackgroundStyle || "plain", layer.color || "#ffffff", layer.background || "#000000", layer.fontFamily || "TikTok Sans", positiveInteger(layer.fontWeight, 700));
60
- const linesStyle = [
61
- "display:block",
62
- "max-width:100%",
63
- "text-align:inherit",
64
- `line-height:${positiveNumber(layer.lineHeight, 1.18)}`,
65
- "white-space:pre-wrap",
66
- "overflow:visible"
67
- ].join(";");
68
- return `<div ${attrs} style="${escapeAttr(style)}"><span data-vf-text-lines="true" style="${escapeAttr(linesStyle)}"><span data-vf-text-inline="true" style="${escapeAttr(inlineStyle)}">${escapeHtml(text)}</span></span></div>`;
69
- }
70
- function timedAttrs(layer) {
71
- const attrs = [
72
- `id="${escapeAttr(layer.id)}"`,
73
- `data-hf-id="${escapeAttr(layer.id)}"`,
74
- `data-layer-mode="${escapeAttr(layer.mode || "publish")}"`,
75
- `data-layer-kind="${escapeAttr(layer.kind)}"`,
76
- `data-viral-note="${escapeAttr(layer.viralAlignment || "")}"`,
77
- `data-start="${num(positiveNumber(layer.start, 0))}"`,
78
- `data-duration="${num(positiveNumber(layer.duration, 0))}"`,
79
- `data-track-index="${positiveInteger(layer.track, 0)}"`,
80
- `data-label="${escapeAttr(layer.label || layer.id)}"`
81
- ];
82
- if (layer.mediaStart !== undefined || layer.playbackStart !== undefined) {
83
- const mediaStart = positiveNumber(layer.playbackStart ?? layer.mediaStart, 0);
84
- attrs.push(`data-media-start="${num(mediaStart)}"`, `data-playback-start="${num(mediaStart)}"`);
85
- }
86
- if (["caption", "text", "shape", "html"].includes(layer.kind)) {
87
- attrs.push(`data-text-background-style="${escapeAttr(layer.textBackgroundStyle || "plain")}"`, `data-text-background-color="${escapeAttr(layer.background || "#000000")}"`, `data-font-family="${escapeAttr(layer.fontFamily || "TikTok Sans")}"`);
88
- }
89
- return attrs.join(" ");
90
- }
91
- function layerStyle(layer) {
92
- const styles = [
93
- "position:absolute",
94
- `left:${positiveNumber(layer.x, 0)}%`,
95
- `top:${positiveNumber(layer.y, 0)}%`,
96
- `width:${positiveNumber(layer.width, 100)}%`,
97
- `height:${positiveNumber(layer.height, 100)}%`,
98
- `z-index:${positiveInteger(layer.z, 0)}`,
99
- `opacity:${positiveNumber(layer.opacity, 1)}`,
100
- `border-radius:${positiveInteger(layer.radius, 0)}px`,
101
- "overflow:hidden"
102
- ];
103
- if (layer.kind === "video" || layer.kind === "image") {
104
- styles.push(`object-fit:${layer.fit || "cover"}`);
105
- }
106
- if (["caption", "text", "shape", "html"].includes(layer.kind)) {
107
- const fontFamily = layer.fontFamily || "TikTok Sans";
108
- styles.push("display:flex", "align-items:center", "justify-content:center", "padding:3px", `font-family:${fontCssFamily(fontFamily)}, 'TikTok Sans', Montserrat, Abel, sans-serif`, `font-weight:${positiveInteger(layer.fontWeight, 700)}`, `line-height:${positiveNumber(layer.lineHeight, 1.18)}`, "text-align:center", "text-transform:none", `font-size:${positiveInteger(layer.fontSize, 32)}px`, `color:${layer.color || "#ffffff"}`, layer.kind === "shape" && layer.textBackgroundStyle === "panel"
109
- ? `background:${layer.background || "transparent"}`
110
- : "background:transparent");
111
- }
112
- for (const [property, value] of Object.entries(layer.style || {})) {
113
- styles.push(`${property}:${value}`);
114
- }
115
- return styles.join(";");
116
- }
117
- function textInlineCss(style, color, background, fontFamily, fontWeight) {
118
- const styles = [
119
- "display:inline",
120
- "box-decoration-break:clone",
121
- "-webkit-box-decoration-break:clone",
122
- "line-height:inherit"
123
- ];
124
- if (style === "plain" || style === "panel") {
125
- styles.push("padding:0", "border-radius:0", "background:transparent", "text-shadow:none", "-webkit-text-stroke:0 transparent");
126
- }
127
- else if (style === "outline") {
128
- styles.push("padding:0", "border-radius:0", "background:transparent", `text-shadow:2px 0 ${background},-2px 0 ${background},0 2px ${background},0 -2px ${background},1.5px 1.5px ${background},-1.5px 1.5px ${background},1.5px -1.5px ${background},-1.5px -1.5px ${background}`, `-webkit-text-stroke:1.5px ${background}`, "paint-order:stroke fill");
129
- }
130
- else if (style === "highlight-solid") {
131
- styles.push("padding:0.07em 0.46em 0.09em", "border-radius:0.32em", `background:${background}`, "text-shadow:none", "-webkit-text-stroke:0 transparent");
132
- }
133
- else if (style === "highlight-translucent") {
134
- styles.push("padding:0.07em 0.46em 0.09em", "border-radius:0.32em", `background:${rgbaFromColor(background, 0.34)}`, "text-shadow:none", "-webkit-text-stroke:0 transparent");
135
- }
136
- styles.push(`font-family:${fontCssFamily(fontFamily)}, 'TikTok Sans', sans-serif`);
137
- styles.push(`font-weight:${fontWeight}`);
138
- styles.push(`color:${color}`);
139
- return styles.join(";");
140
- }
141
- function fontCssFamily(font) {
142
- return font === "Georgia" ? "Georgia" : `'${font.replaceAll("'", "")}'`;
143
- }
144
- function rgbaFromColor(value, alpha) {
145
- const clean = String(value || "").trim();
146
- const hex = clean.startsWith("#") ? clean.slice(1) : "";
147
- if (hex.length === 3 || hex.length === 6) {
148
- const full = hex.length === 3 ? hex.split("").map((part) => part + part).join("") : hex;
149
- const numeric = Number.parseInt(full, 16);
150
- if (Number.isFinite(numeric)) {
151
- const red = (numeric >> 16) & 255;
152
- const green = (numeric >> 8) & 255;
153
- const blue = numeric & 255;
154
- return `rgba(${red}, ${green}, ${blue}, ${alpha})`;
155
- }
156
- }
157
- return clean.startsWith("rgba(") || clean.startsWith("rgb(") ? clean : `rgba(0, 0, 0, ${alpha})`;
158
- }
159
- function positiveNumber(value, fallback) {
160
- const next = Number(value);
161
- return Number.isFinite(next) && next >= 0 ? next : fallback;
162
- }
163
- function positiveInteger(value, fallback) {
164
- const next = Math.round(Number(value));
165
- return Number.isFinite(next) && next >= 0 ? next : fallback;
166
- }
167
- function num(value) {
168
- return Number(Number(value || 0).toFixed(3)).toString();
169
- }
170
- function escapeHtml(value) {
171
- return String(value ?? "")
172
- .replaceAll("&", "&amp;")
173
- .replaceAll("<", "&lt;")
174
- .replaceAll(">", "&gt;")
175
- .replaceAll('"', "&quot;");
176
- }
177
- function escapeAttr(value) {
178
- return escapeHtml(String(value ?? ""));
179
- }
180
- //# sourceMappingURL=composition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"composition.js","sourceRoot":"","sources":["../../../src/hyperframes/composition.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js DELETED
@@ -1,16 +0,0 @@
1
- import { startRuntime } from "./runtime.js";
2
- void (async () => {
3
- const runtime = await startRuntime();
4
- for (const signal of ["SIGINT", "SIGTERM"]) {
5
- process.on(signal, () => {
6
- void (async () => {
7
- await runtime.shutdown();
8
- process.exit(0);
9
- })();
10
- });
11
- }
12
- })().catch((error) => {
13
- console.error(error instanceof Error ? error.stack ?? error.message : String(error));
14
- process.exit(1);
15
- });
16
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;IAErC,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;QACpD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,30 +0,0 @@
1
- import dotenv from "dotenv";
2
- import * as Sentry from "@sentry/hono/node";
3
- dotenv.config();
4
- function readBoolean(name, defaultValue) {
5
- const raw = process.env[name]?.trim().toLowerCase();
6
- if (!raw)
7
- return defaultValue;
8
- return raw === "1" || raw === "true" || raw === "yes";
9
- }
10
- function readSampleRate(name, defaultValue) {
11
- const raw = process.env[name]?.trim();
12
- if (!raw)
13
- return defaultValue;
14
- const parsed = Number(raw);
15
- return Number.isFinite(parsed) && parsed >= 0 && parsed <= 1 ? parsed : defaultValue;
16
- }
17
- const dsn = process.env.SENTRY_DSN?.trim();
18
- if (dsn) {
19
- const environment = process.env.SENTRY_ENVIRONMENT?.trim() || process.env.NODE_ENV || "development";
20
- const defaultTracesSampleRate = environment === "production" ? 0.1 : 1.0;
21
- Sentry.init({
22
- dsn,
23
- environment,
24
- release: process.env.SENTRY_RELEASE?.trim() || undefined,
25
- tracesSampleRate: readSampleRate("SENTRY_TRACES_SAMPLE_RATE", defaultTracesSampleRate),
26
- enableLogs: readBoolean("SENTRY_ENABLE_LOGS", true),
27
- sendDefaultPii: readBoolean("SENTRY_SEND_DEFAULT_PII", false)
28
- });
29
- }
30
- //# sourceMappingURL=instrument.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instrument.js","sourceRoot":"","sources":["../../src/instrument.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,SAAS,WAAW,CAAC,IAAY,EAAE,YAAqB;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,CAAC,GAAG;QAAE,OAAO,YAAY,CAAC;IAC9B,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,YAAoB;IACxD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,YAAY,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;AACvF,CAAC;AAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;AAE3C,IAAI,GAAG,EAAE,CAAC;IACR,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;IACpG,MAAM,uBAAuB,GAAG,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAEzE,MAAM,CAAC,IAAI,CAAC;QACV,GAAG;QACH,WAAW;QACX,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,SAAS;QACxD,gBAAgB,EAAE,cAAc,CAAC,2BAA2B,EAAE,uBAAuB,CAAC;QACtF,UAAU,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC;QACnD,cAAc,EAAE,WAAW,CAAC,yBAAyB,EAAE,KAAK,CAAC;KAC9D,CAAC,CAAC;AACL,CAAC"}
@@ -1,45 +0,0 @@
1
- import { createCipheriv, createDecipheriv, createHash, randomBytes, scryptSync, timingSafeEqual } from "node:crypto";
2
- function deriveKey(secret) {
3
- return scryptSync(secret, "vidfarm", 32);
4
- }
5
- export function hashSecret(value) {
6
- return createHash("sha256").update(value).digest("hex");
7
- }
8
- export function safeEqualHash(raw, hashed) {
9
- const left = Buffer.from(hashSecret(raw), "hex");
10
- const right = Buffer.from(hashed, "hex");
11
- return left.length === right.length && timingSafeEqual(left, right);
12
- }
13
- export function encryptString(value, secret) {
14
- const iv = randomBytes(12);
15
- const key = deriveKey(secret);
16
- const cipher = createCipheriv("aes-256-gcm", key, iv);
17
- const encrypted = Buffer.concat([cipher.update(value, "utf8"), cipher.final()]);
18
- const tag = cipher.getAuthTag();
19
- return Buffer.concat([iv, tag, encrypted]).toString("base64");
20
- }
21
- export function decryptString(value, secret) {
22
- const raw = Buffer.from(value, "base64");
23
- const iv = raw.subarray(0, 12);
24
- const tag = raw.subarray(12, 28);
25
- const encrypted = raw.subarray(28);
26
- const key = deriveKey(secret);
27
- const decipher = createDecipheriv("aes-256-gcm", key, iv);
28
- decipher.setAuthTag(tag);
29
- return Buffer.concat([decipher.update(encrypted), decipher.final()]).toString("utf8");
30
- }
31
- export function hashPassword(password) {
32
- const salt = randomBytes(16).toString("hex");
33
- const digest = scryptSync(password, salt, 32).toString("hex");
34
- return `${salt}:${digest}`;
35
- }
36
- export function verifyPassword(password, storedHash) {
37
- const [salt, digest] = storedHash.split(":");
38
- if (!salt || !digest) {
39
- return false;
40
- }
41
- const left = Buffer.from(scryptSync(password, salt, 32).toString("hex"), "hex");
42
- const right = Buffer.from(digest, "hex");
43
- return left.length === right.length && timingSafeEqual(left, right);
44
- }
45
- //# sourceMappingURL=crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/lib/crypto.ts"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- import { config } from "../config.js";
2
- const SECRET_KEY_PATTERN = /(secret|token|password|api[_-]?key|authorization|credential)/i;
3
- export function devLog(event, fields = {}, level = "info") {
4
- if (!config.debugLogs) {
5
- return;
6
- }
7
- const entry = {
8
- level,
9
- event,
10
- time: new Date().toISOString(),
11
- deployment_target: config.VIDFARM_DEPLOYMENT_TARGET ?? null,
12
- runtime_backend: config.VIDFARM_RUNTIME_BACKEND,
13
- ...sanitizeLogFields(fields)
14
- };
15
- const line = JSON.stringify(entry);
16
- if (level === "error") {
17
- console.error(line);
18
- }
19
- else if (level === "warn") {
20
- console.warn(line);
21
- }
22
- else {
23
- console.log(line);
24
- }
25
- }
26
- export function devErrorFields(error) {
27
- if (error instanceof Error) {
28
- return {
29
- error_name: error.name,
30
- error_message: error.message,
31
- error_stack: error.stack?.split("\n").slice(0, 8).join("\n") ?? null
32
- };
33
- }
34
- return {
35
- error_message: String(error)
36
- };
37
- }
38
- function sanitizeLogValue(value) {
39
- if (Array.isArray(value)) {
40
- return value.map(sanitizeLogValue);
41
- }
42
- if (!value || typeof value !== "object") {
43
- return value;
44
- }
45
- const output = {};
46
- for (const [key, child] of Object.entries(value)) {
47
- output[key] = SECRET_KEY_PATTERN.test(key) ? "[redacted]" : sanitizeLogValue(child);
48
- }
49
- return output;
50
- }
51
- function sanitizeLogFields(fields) {
52
- return sanitizeLogValue(fields);
53
- }
54
- //# sourceMappingURL=dev-log.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev-log.js","sourceRoot":"","sources":["../../../src/lib/dev-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,MAAM,kBAAkB,GAAG,+DAA+D,CAAC;AAE3F,MAAM,UAAU,MAAM,CAAC,KAAa,EAAE,SAAkC,EAAE,EAAE,QAAqB,MAAM;IACrG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG;QACZ,KAAK;QACL,KAAK;QACL,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9B,iBAAiB,EAAE,MAAM,CAAC,yBAAyB,IAAI,IAAI;QAC3D,eAAe,EAAE,MAAM,CAAC,uBAAuB;QAC/C,GAAG,iBAAiB,CAAC,MAAM,CAAC;KAC7B,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,IAAI;YACtB,aAAa,EAAE,KAAK,CAAC,OAAO;YAC5B,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;SACrE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA+B;IACxD,OAAO,gBAAgB,CAAC,MAAM,CAA4B,CAAC;AAC7D,CAAC"}
@@ -1,11 +0,0 @@
1
- export function displayNameFromEmail(email) {
2
- const normalized = email.trim().toLowerCase();
3
- const localPart = normalized.split("@", 1)[0] || normalized;
4
- const words = localPart
5
- .split(/[^a-z0-9]+/i)
6
- .map((word) => word.trim())
7
- .filter(Boolean)
8
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase());
9
- return words.join(" ") || normalized;
10
- }
11
- //# sourceMappingURL=display-name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"display-name.js","sourceRoot":"","sources":["../../../src/lib/display-name.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;IAC5D,MAAM,KAAK,GAAG,SAAS;SACpB,KAAK,CAAC,aAAa,CAAC;SACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC;AACvC,CAAC"}
@@ -1,24 +0,0 @@
1
- import { randomBytes, randomUUID } from "node:crypto";
2
- export function createId(prefix) {
3
- return `${prefix}_${randomUUID().replace(/-/g, "")}`;
4
- }
5
- // UUIDv7: time-ordered 128-bit id. First 48 bits are Unix millis, next 4 bits
6
- // are the version (7), next 12 bits are random, next 2 bits are the variant
7
- // (0b10), and the rest is random. Chronologically sortable — good for DDB
8
- // keys and for humans skimming a list of forks.
9
- export function uuidv7() {
10
- const timestampMs = BigInt(Date.now());
11
- const rand = randomBytes(10);
12
- const bytes = Buffer.alloc(16);
13
- bytes.writeUIntBE(Number((timestampMs >> 16n) & 0xffffffffn), 0, 4);
14
- bytes.writeUIntBE(Number(timestampMs & 0xffffn), 4, 2);
15
- rand.copy(bytes, 6);
16
- bytes[6] = (bytes[6] & 0x0f) | 0x70; // version 7
17
- bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant RFC 4122
18
- const hex = bytes.toString("hex");
19
- return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
20
- }
21
- export function createIdV7(prefix) {
22
- return `${prefix}_${uuidv7().replace(/-/g, "")}`;
23
- }
24
- //# sourceMappingURL=ids.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/lib/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAC1E,gDAAgD;AAChD,MAAM,UAAU,MAAM;IACpB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/B,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACpB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,YAAY;IACjD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,mBAAmB;IACxD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AACnD,CAAC"}
@@ -1,19 +0,0 @@
1
- import sharp from "sharp";
2
- export async function normalizeToPortraitFrame(input, target = { width: 1080, height: 1920 }) {
3
- const buffer = Buffer.isBuffer(input) ? input : Buffer.from(input);
4
- const output = await sharp(buffer, { density: 144 })
5
- .rotate()
6
- .resize(target.width, target.height, {
7
- fit: "cover",
8
- position: sharp.strategy.attention
9
- })
10
- .png()
11
- .toBuffer();
12
- return {
13
- bytes: output,
14
- contentType: "image/png",
15
- width: target.width,
16
- height: target.height
17
- };
18
- }
19
- //# sourceMappingURL=images.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"images.js","sourceRoot":"","sources":["../../../src/lib/images.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAiB,EACjB,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;SACjD,MAAM,EAAE;SACR,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QACnC,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS;KACnC,CAAC;SACD,GAAG,EAAE;SACL,QAAQ,EAAE,CAAC;IAEd,OAAO;QACL,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,WAAoB;QACjC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC"}
@@ -1,15 +0,0 @@
1
- export function parseJson(value, fallback) {
2
- if (!value) {
3
- return fallback;
4
- }
5
- try {
6
- return JSON.parse(value);
7
- }
8
- catch {
9
- return fallback;
10
- }
11
- }
12
- export function stringifyJson(value) {
13
- return JSON.stringify(value ?? null);
14
- }
15
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/lib/json.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAI,KAAgC,EAAE,QAAW;IACxE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AACvC,CAAC"}