@mevdragon/vidfarm-devcli 0.5.2 → 0.6.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 (113) hide show
  1. package/README.md +3 -3
  2. package/demo/README.md +28 -0
  3. package/demo/dist/app.css +1 -0
  4. package/demo/dist/app.js +1184 -0
  5. package/demo/dist/chunks/chunk-DXB73IDG.js +1 -0
  6. package/demo/dist/chunks/chunk-S7OWAJDS.js +36 -0
  7. package/demo/dist/chunks/chunk-VTIBZ6AN.js +1 -0
  8. package/demo/dist/chunks/dist-ADSJKBVE.js +332 -0
  9. package/demo/dist/chunks/domEditingLayers-VZMLL4AP-SGHWPND4.js +1 -0
  10. package/demo/dist/chunks/hyperframes-player-XB65TCD6.js +425 -0
  11. package/demo/dist/chunks/lib-XAQ37YOE.js +1 -0
  12. package/demo/dist/chunks/src-TJ2QYA4U.js +207 -0
  13. package/demo/dist/favicon.ico +0 -0
  14. package/demo/dist/icons/timeline/audio.svg +7 -0
  15. package/demo/dist/icons/timeline/captions.svg +5 -0
  16. package/demo/dist/icons/timeline/composition.svg +12 -0
  17. package/demo/dist/icons/timeline/image.svg +18 -0
  18. package/demo/dist/icons/timeline/music.svg +10 -0
  19. package/demo/dist/icons/timeline/text.svg +3 -0
  20. package/demo/dist/index.html +15 -0
  21. package/dist/src/account-pages-legacy.js +9396 -0
  22. package/dist/src/account-pages.js +61 -0
  23. package/dist/src/app.js +14378 -0
  24. package/dist/src/cli.js +1 -1
  25. package/dist/src/composition-runtime.js +613 -0
  26. package/dist/src/config.js +166 -0
  27. package/dist/src/context.js +447 -0
  28. package/dist/src/dev-app-legacy.js +739 -0
  29. package/dist/src/dev-app.js +6 -0
  30. package/dist/src/domain.js +2 -0
  31. package/dist/src/editor-chat-history.js +82 -0
  32. package/dist/src/editor-chat.js +449 -0
  33. package/dist/src/editor-dark-theme.js +1128 -0
  34. package/dist/src/frontend/debug.js +71 -0
  35. package/dist/src/frontend/flockposter-cache-store.js +124 -0
  36. package/dist/src/frontend/homepage-client.js +182 -0
  37. package/dist/src/frontend/homepage-shared.js +4 -0
  38. package/dist/src/frontend/homepage-store.js +28 -0
  39. package/dist/src/frontend/homepage-view.js +547 -0
  40. package/dist/src/frontend/page-runtime-client.js +132 -0
  41. package/dist/src/frontend/page-runtime-store.js +9 -0
  42. package/dist/src/frontend/sentry.js +42 -0
  43. package/dist/src/frontend/template-editor-chat.js +3960 -0
  44. package/dist/src/help-page.js +346 -0
  45. package/dist/src/homepage.js +1235 -0
  46. package/dist/src/hyperframes/composition.js +180 -0
  47. package/dist/src/index.js +16 -0
  48. package/dist/src/instrument.js +30 -0
  49. package/dist/src/lib/crypto.js +45 -0
  50. package/dist/src/lib/dev-log.js +54 -0
  51. package/dist/src/lib/display-name.js +11 -0
  52. package/dist/src/lib/ids.js +24 -0
  53. package/dist/src/lib/images.js +19 -0
  54. package/dist/src/lib/json.js +15 -0
  55. package/dist/src/lib/package-root.js +47 -0
  56. package/dist/src/lib/template-paths.js +28 -0
  57. package/dist/src/lib/time.js +7 -0
  58. package/dist/src/lib/url-clean.js +85 -0
  59. package/dist/src/page-runtime.js +2 -0
  60. package/dist/src/page-shell.js +1381 -0
  61. package/dist/src/primitive-context.js +357 -0
  62. package/dist/src/primitive-registry.js +2436 -0
  63. package/dist/src/primitive-sdk.js +4 -0
  64. package/dist/src/primitives/hyperframes-media.js +108 -0
  65. package/dist/src/react-page-shell.js +35 -0
  66. package/dist/src/ready-post-schedule-component.js +1540 -0
  67. package/dist/src/registry.js +296 -0
  68. package/dist/src/runtime.js +35 -0
  69. package/dist/src/services/api-call-history.js +249 -0
  70. package/dist/src/services/auth.js +152 -0
  71. package/dist/src/services/billing-pricing.js +39 -0
  72. package/dist/src/services/billing.js +228 -0
  73. package/dist/src/services/cast.js +127 -0
  74. package/dist/src/services/chat-threads.js +92 -0
  75. package/dist/src/services/composition-sanitize.js +124 -0
  76. package/dist/src/services/composition-watch.js +79 -0
  77. package/dist/src/services/fork-access.js +93 -0
  78. package/dist/src/services/fork-manifest.js +42 -0
  79. package/dist/src/services/ghostcut.js +179 -0
  80. package/dist/src/services/hyperframes.js +2307 -0
  81. package/dist/src/services/job-capacity.js +14 -0
  82. package/dist/src/services/job-logs.js +197 -0
  83. package/dist/src/services/jobs.js +136 -0
  84. package/dist/src/services/local-dynamo.js +0 -0
  85. package/dist/src/services/media-processing.js +766 -0
  86. package/dist/src/services/primitive-media-lambda.js +280 -0
  87. package/dist/src/services/providers.js +2926 -0
  88. package/dist/src/services/rate-limits.js +262 -0
  89. package/dist/src/services/serverless-auth.js +382 -0
  90. package/dist/src/services/serverless-jobs.js +1082 -0
  91. package/dist/src/services/serverless-provider-keys.js +409 -0
  92. package/dist/src/services/serverless-records.js +1385 -0
  93. package/dist/src/services/serverless-template-configs.js +75 -0
  94. package/dist/src/services/storage.js +383 -0
  95. package/dist/src/services/template-certification.js +413 -0
  96. package/dist/src/services/template-loader.js +99 -0
  97. package/dist/src/services/template-runtime-bundles.js +217 -0
  98. package/dist/src/services/template-sources.js +1017 -0
  99. package/dist/src/services/video-normalization.js +2 -0
  100. package/dist/src/services/webhooks.js +62 -0
  101. package/dist/src/template-editor-pages.js +2576 -0
  102. package/dist/src/template-editor-shell.js +2840 -0
  103. package/dist/src/template-sdk.js +4 -0
  104. package/dist/src/worker.js +17 -0
  105. package/package.json +6 -4
  106. package/public/assets/homepage-app.js +54 -0
  107. package/public/assets/homepage-client-app.js +80 -0
  108. package/public/assets/page-runtime-client-app.js +94 -0
  109. package/src/assets/SELLING_AWARENESS_STAGES.md +579 -0
  110. package/src/assets/SELLING_WITH_HOOKS.md +377 -0
  111. package/src/assets/SELLING_WITH_VSLS.md +606 -0
  112. package/src/assets/favicon.ico +0 -0
  113. package/src/assets/logo-vidfarm.png +0 -0
@@ -0,0 +1,346 @@
1
+ import { escapeAttribute, escapeHtml, renderBrandLockup, renderPageShell, renderPrimaryNav } from "./page-shell.js";
2
+ const HELP_SECTION_IDS = new Set(["video_tutorials", "report_bug", "contact_team", "cancel_subscription"]);
3
+ function parseExpandedSections(expand) {
4
+ if (!expand) {
5
+ return new Set();
6
+ }
7
+ return new Set(expand
8
+ .split(",")
9
+ .map((value) => value.trim())
10
+ .filter((value) => HELP_SECTION_IDS.has(value)));
11
+ }
12
+ function renderHelpDetails(input) {
13
+ return `
14
+ <details class="help-details" data-expand-id="${escapeAttribute(input.id)}"${input.open ? " open" : ""}>
15
+ <summary>
16
+ <span>${escapeHtml(input.title)}</span>
17
+ </summary>
18
+ <div class="help-details-body">
19
+ ${input.body}
20
+ </div>
21
+ </details>
22
+ `;
23
+ }
24
+ export function renderHelpPage(input) {
25
+ const expanded = parseExpandedSections(input.expand);
26
+ return renderPageShell({
27
+ title: "Help Page",
28
+ mainClass: "is-wide",
29
+ body: `
30
+ <section class="frame help-frame">
31
+ <header class="topbar">
32
+ ${renderBrandLockup({
33
+ displayName: input.account.displayName,
34
+ email: input.account.email,
35
+ accountId: input.account.userId
36
+ })}
37
+ <div class="topbar-actions">
38
+ ${renderPrimaryNav({
39
+ loggedIn: input.account.isLoggedIn,
40
+ current: "help",
41
+ accountId: input.account.userId
42
+ })}
43
+ </div>
44
+ </header>
45
+ <div class="frame-body">
46
+ <section class="help-shell" aria-labelledby="help-page-title">
47
+ <div class="help-content">
48
+ <header class="help-head">
49
+ <h1 id="help-page-title">Help Page</h1>
50
+ </header>
51
+ <div class="help-sections">
52
+ ${renderHelpDetails({
53
+ id: "video_tutorials",
54
+ title: "Video Tutorials",
55
+ open: expanded.has("video_tutorials"),
56
+ body: `
57
+ <div class="help-video-frame">
58
+ <iframe
59
+ src="https://www.youtube.com/embed/BG2vuCDzehc"
60
+ title="Video Tutorials"
61
+ allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
62
+ allowfullscreen
63
+ loading="lazy"
64
+ referrerpolicy="strict-origin-when-cross-origin"></iframe>
65
+ </div>
66
+ `
67
+ })}
68
+ ${renderHelpDetails({
69
+ id: "report_bug",
70
+ title: "Report a Bug",
71
+ open: expanded.has("report_bug"),
72
+ body: `
73
+ <iframe
74
+ class="help-form-frame"
75
+ src="https://tally.so/embed/NpdkNj?alignLeft=1&amp;hideTitle=1&amp;transparentBackground=1"
76
+ title="Report a Bug"
77
+ loading="lazy"></iframe>
78
+ `
79
+ })}
80
+ ${renderHelpDetails({
81
+ id: "contact_team",
82
+ title: "Ask Question / Contact Team",
83
+ open: expanded.has("contact_team"),
84
+ body: `
85
+ <iframe
86
+ class="help-form-frame"
87
+ src="https://tally.so/embed/javNVa?alignLeft=1&amp;hideTitle=1&amp;transparentBackground=1"
88
+ title="Ask Question / Contact Team"
89
+ loading="lazy"></iframe>
90
+ `
91
+ })}
92
+ ${renderHelpDetails({
93
+ id: "cancel_subscription",
94
+ title: "Cancel Subscription",
95
+ open: expanded.has("cancel_subscription"),
96
+ body: `
97
+ <div class="help-copy-stack">
98
+ <p>You can cancel your subscription at any time with a simple self-serve billing portal.</p>
99
+ <p>For refunds, we offer 90 day refunds. Email <a href="mailto:operator@zoom-gtm.com">operator@zoom-gtm.com</a> and mention the original email address you used in Stripe so we can find your subscription quickly.</p>
100
+ <div>
101
+ <a
102
+ class="help-link-button"
103
+ href="https://billing.stripe.com/p/login/fZecQubkxcwOgDuaEE"
104
+ target="_blank"
105
+ rel="noopener noreferrer">Open Cancellation Portal</a>
106
+ </div>
107
+ </div>
108
+ `
109
+ })}
110
+ </div>
111
+ </div>
112
+ </section>
113
+ </div>
114
+ </section>
115
+ <script>
116
+ (() => {
117
+ const details = Array.from(document.querySelectorAll(".help-details[data-expand-id]"));
118
+ const allowed = new Set(details.map((detail) => detail.dataset.expandId).filter(Boolean));
119
+
120
+ function readExpandedFromUrl() {
121
+ const params = new URLSearchParams(window.location.search);
122
+ return new Set((params.get("expand") || "")
123
+ .split(",")
124
+ .map((value) => value.trim())
125
+ .filter((value) => allowed.has(value)));
126
+ }
127
+
128
+ function writeExpandedToUrl() {
129
+ const expanded = details
130
+ .filter((detail) => detail.open && detail.dataset.expandId)
131
+ .map((detail) => detail.dataset.expandId);
132
+ const url = new URL(window.location.href);
133
+ if (expanded.length) {
134
+ url.searchParams.set("expand", expanded.join(","));
135
+ } else {
136
+ url.searchParams.delete("expand");
137
+ }
138
+ window.history.replaceState(null, "", url.pathname + url.search + url.hash);
139
+ }
140
+
141
+ const initialExpanded = readExpandedFromUrl();
142
+ for (const detail of details) {
143
+ const id = detail.dataset.expandId;
144
+ detail.open = Boolean(id && initialExpanded.has(id));
145
+ detail.addEventListener("toggle", writeExpandedToUrl);
146
+ }
147
+
148
+ const firstOpen = details.find((detail) => detail.open);
149
+ if (firstOpen) {
150
+ requestAnimationFrame(() => {
151
+ firstOpen.scrollIntoView({ block: "start", behavior: "smooth" });
152
+ });
153
+ }
154
+ })();
155
+ </script>
156
+ `,
157
+ style: `
158
+ .help-frame {
159
+ height: 100%;
160
+ min-height: 0;
161
+ }
162
+
163
+ .help-frame .frame-body {
164
+ min-height: 0;
165
+ overflow: hidden;
166
+ }
167
+
168
+ .help-shell {
169
+ display: grid;
170
+ min-height: 0;
171
+ overflow: hidden;
172
+ border: 1px solid rgba(255, 255, 255, 0.82);
173
+ border-radius: 32px;
174
+ background: rgba(255, 251, 245, 0.84);
175
+ box-shadow: var(--shadow);
176
+ }
177
+
178
+ .help-content {
179
+ display: grid;
180
+ align-content: start;
181
+ gap: 22px;
182
+ min-height: 0;
183
+ overflow-y: auto;
184
+ padding: clamp(22px, 4vw, 48px);
185
+ }
186
+
187
+ .help-head {
188
+ display: grid;
189
+ gap: 8px;
190
+ padding-bottom: 2px;
191
+ }
192
+
193
+ .help-sections {
194
+ display: grid;
195
+ gap: 14px;
196
+ max-width: 980px;
197
+ }
198
+
199
+ .help-details {
200
+ border: 1px solid rgba(209, 219, 233, 0.92);
201
+ border-radius: 8px;
202
+ background: rgba(255, 255, 255, 0.82);
203
+ box-shadow: 0 12px 28px rgba(118, 89, 38, 0.08);
204
+ overflow: hidden;
205
+ }
206
+
207
+ .help-details > summary {
208
+ display: flex;
209
+ align-items: center;
210
+ justify-content: space-between;
211
+ gap: 16px;
212
+ min-height: 62px;
213
+ padding: 0 20px;
214
+ color: #283244;
215
+ cursor: pointer;
216
+ font-weight: 800;
217
+ list-style: none;
218
+ }
219
+
220
+ .help-details > summary::-webkit-details-marker {
221
+ display: none;
222
+ }
223
+
224
+ .help-details > summary::after {
225
+ content: "+";
226
+ display: inline-flex;
227
+ align-items: center;
228
+ justify-content: center;
229
+ width: 26px;
230
+ height: 26px;
231
+ border-radius: 999px;
232
+ border: 1px solid rgba(191, 164, 109, 0.42);
233
+ color: #6f6451;
234
+ flex: 0 0 auto;
235
+ }
236
+
237
+ .help-details[open] > summary::after {
238
+ content: "-";
239
+ }
240
+
241
+ .help-details-body {
242
+ display: grid;
243
+ gap: 14px;
244
+ padding: 0 20px 20px;
245
+ }
246
+
247
+ .help-copy-stack {
248
+ display: grid;
249
+ gap: 12px;
250
+ max-width: 760px;
251
+ color: #3f4b5f;
252
+ line-height: 1.6;
253
+ }
254
+
255
+ .help-copy-stack p {
256
+ margin: 0;
257
+ }
258
+
259
+ .help-link-button {
260
+ display: inline-flex;
261
+ align-items: center;
262
+ justify-content: center;
263
+ min-height: 44px;
264
+ padding: 0 18px;
265
+ border-radius: 999px;
266
+ background: #283244;
267
+ color: #fff9ef;
268
+ font-weight: 800;
269
+ text-decoration: none;
270
+ box-shadow: 0 12px 28px rgba(40, 50, 68, 0.18);
271
+ transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
272
+ }
273
+
274
+ .help-link-button:hover {
275
+ background: #1f2736;
276
+ box-shadow: 0 16px 34px rgba(40, 50, 68, 0.22);
277
+ transform: translateY(-1px);
278
+ }
279
+
280
+ .help-link-button:focus-visible {
281
+ outline: 3px solid rgba(191, 164, 109, 0.42);
282
+ outline-offset: 3px;
283
+ }
284
+
285
+ .help-video-frame {
286
+ position: relative;
287
+ width: 100%;
288
+ aspect-ratio: 16 / 9;
289
+ overflow: hidden;
290
+ border-radius: 8px;
291
+ background: #151a23;
292
+ }
293
+
294
+ .help-video-frame iframe,
295
+ .help-form-frame {
296
+ display: block;
297
+ width: 100%;
298
+ border: 0;
299
+ }
300
+
301
+ .help-video-frame iframe {
302
+ position: absolute;
303
+ inset: 0;
304
+ height: 100%;
305
+ }
306
+
307
+ .help-form-frame {
308
+ min-height: 680px;
309
+ border-radius: 8px;
310
+ background: rgba(255, 255, 255, 0.72);
311
+ }
312
+
313
+ @media (max-width: 1024px) {
314
+ .help-frame .frame-body,
315
+ .help-shell,
316
+ .help-content {
317
+ overflow: visible;
318
+ }
319
+
320
+ .help-content {
321
+ padding: 18px 10px 24px;
322
+ }
323
+
324
+ .help-details > summary {
325
+ min-height: 56px;
326
+ padding: 0 14px;
327
+ }
328
+
329
+ .help-details-body {
330
+ padding: 0 14px 14px;
331
+ }
332
+
333
+ .help-form-frame {
334
+ min-height: 720px;
335
+ }
336
+ }
337
+
338
+ @media (max-width: 560px) {
339
+ .help-form-frame {
340
+ min-height: 75svh;
341
+ }
342
+ }
343
+ `
344
+ });
345
+ }
346
+ //# sourceMappingURL=help-page.js.map