@vfrey/vfrey 0.0.1 → 1.0.0-beta.1
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.
- package/LICENSE +33 -0
- package/README.md +78 -3
- package/accounts.example.json +61 -0
- package/accounts.first-run.json +41 -0
- package/bin/vfrey.mjs +36 -0
- package/integration-tools/README.md +43 -0
- package/integration-tools/image/pillow.md +32 -0
- package/integration-tools/image/playwright.md +33 -0
- package/integration-tools/image/resvg.md +36 -0
- package/integration-tools/image/satori.md +36 -0
- package/integration-tools/image/sharp.md +38 -0
- package/integration-tools/video/blender.md +34 -0
- package/integration-tools/video/ffmpeg.md +41 -0
- package/integration-tools/video/manim.md +37 -0
- package/integration-tools/video/motion-canvas.md +37 -0
- package/integration-tools/video/remotion.md +50 -0
- package/integration-tools/video/revideo.md +32 -0
- package/package.json +74 -6
- package/skills/vfrey-orchestrator/SKILL.md +15 -0
- package/skills/vfrey-orchestrator/channel-video/SKILL.md +41 -0
- package/skills/vfrey-product/SKILL.md +63 -0
- package/skills/vfrey-product/examples/concurrency-vs-parallelism/framey/cook-one.svg +14 -0
- package/skills/vfrey-product/examples/concurrency-vs-parallelism/framey/cook-two.svg +22 -0
- package/skills/vfrey-product/examples/concurrency-vs-parallelism/framey/index.html +70 -0
- package/skills/vfrey-product/examples/concurrency-vs-parallelism/remotion/cook-one.svg +14 -0
- package/skills/vfrey-product/examples/concurrency-vs-parallelism/remotion/cook-two.svg +22 -0
- package/skills/vfrey-product/examples/concurrency-vs-parallelism/remotion/index.tsx +49 -0
- package/skills/vfrey-product/examples/concurrency-vs-parallelism/script.json +15 -0
- package/skills/vfrey-product/examples/octopus-facts/index.html +60 -0
- package/skills/vfrey-product/examples/octopus-facts/octopus.svg +8 -0
- package/skills/vfrey-product/examples/octopus-facts/script.json +14 -0
- package/skills/vfrey-product/push/SKILL.md +15 -0
- package/skills/vfrey-product/scenes/NOTICE +5 -0
- package/skills/vfrey-product/scenes/blocks.md +57 -0
- package/skills/vfrey-product/scenes/craft.md +118 -0
- package/skills/vfrey-product/scenes/motion.md +88 -0
- package/src/analytics/dashboard.ts +109 -0
- package/src/analytics/index.ts +260 -0
- package/src/api/client.ts +361 -0
- package/src/api/cloud-files.ts +197 -0
- package/src/api/cloud-runs.ts +75 -0
- package/src/api/cloud.ts +413 -0
- package/src/api/commands.ts +330 -0
- package/src/api/config.ts +34 -0
- package/src/api/creators.ts +463 -0
- package/src/api/credentials.ts +152 -0
- package/src/api/mail.ts +333 -0
- package/src/api/topics.ts +207 -0
- package/src/api/types.ts +273 -0
- package/src/cli.ts +468 -0
- package/src/cloud/bundle.ts +70 -0
- package/src/cloud/cloudrun-executor.ts +237 -0
- package/src/cloud/executor.ts +281 -0
- package/src/cloud/gcs-sign.ts +76 -0
- package/src/cloud/job.ts +106 -0
- package/src/cloud/remote-job.ts +67 -0
- package/src/cloud/render-job.ts +191 -0
- package/src/config.ts +309 -0
- package/src/dashboard-link.ts +180 -0
- package/src/dashboard-start.ts +103 -0
- package/src/desk/channel.ts +64 -0
- package/src/desk/cli.ts +216 -0
- package/src/desk/creators-route.ts +129 -0
- package/src/desk/fonts/JetBrainsMono-OFL.txt +93 -0
- package/src/desk/fonts/google-sans-flex-latin.woff2 +0 -0
- package/src/desk/fonts/jetbrains-mono-medium.woff2 +0 -0
- package/src/desk/http.ts +460 -0
- package/src/desk/mail-route.ts +103 -0
- package/src/desk/overlay.ts +112 -0
- package/src/desk/preview.ts +422 -0
- package/src/desk/screens.ts +149 -0
- package/src/desk/secrets.ts +143 -0
- package/src/desk/series.ts +127 -0
- package/src/desk/state.ts +77 -0
- package/src/desk/studio-route.ts +119 -0
- package/src/desk/tick-runner.ts +66 -0
- package/src/desk/tick.ts +56 -0
- package/src/desk/topics-route.ts +41 -0
- package/src/desk/ui/app.css +505 -0
- package/src/desk/ui/app.js +185 -0
- package/src/desk/ui/apple-icon.png +0 -0
- package/src/desk/ui/components.js +79 -0
- package/src/desk/ui/core.js +156 -0
- package/src/desk/ui/favicon.ico +0 -0
- package/src/desk/ui/icon.svg +1 -0
- package/src/desk/ui/icons.js +49 -0
- package/src/desk/ui/index.html +41 -0
- package/src/desk/ui/metrics-math.d.ts +22 -0
- package/src/desk/ui/metrics-math.js +135 -0
- package/src/desk/ui/theme.js +5 -0
- package/src/desk/ui/views-creators.js +209 -0
- package/src/desk/ui/views-keys.js +114 -0
- package/src/desk/ui/views-mail.js +188 -0
- package/src/desk/ui/views-misc.js +123 -0
- package/src/desk/ui/views-review.js +119 -0
- package/src/desk/ui/views-runs.js +350 -0
- package/src/desk/ui/views-screens.js +163 -0
- package/src/desk/ui/views-series.js +318 -0
- package/src/desk/ui/views-topics.js +87 -0
- package/src/desk/verbs.ts +361 -0
- package/src/doctor.ts +212 -0
- package/src/drain.ts +14 -0
- package/src/engage/index.ts +217 -0
- package/src/generate/index.ts +110 -0
- package/src/generate/script.ts +152 -0
- package/src/generate/title.ts +78 -0
- package/src/help.ts +252 -0
- package/src/home.ts +45 -0
- package/src/llm/client.ts +177 -0
- package/src/log.ts +7 -0
- package/src/oauth/tokens.ts +189 -0
- package/src/oauth/vault.ts +72 -0
- package/src/pipeline/review.ts +642 -0
- package/src/pipeline/run.ts +443 -0
- package/src/pipeline/series-guard.ts +26 -0
- package/src/pipeline/source-fetch.ts +69 -0
- package/src/pipeline/stages.ts +728 -0
- package/src/pipeline/topics-source.ts +90 -0
- package/src/product/commands.ts +296 -0
- package/src/product/config-file.ts +38 -0
- package/src/product/engine-choice.ts +89 -0
- package/src/product/engines.ts +103 -0
- package/src/product/insights.ts +50 -0
- package/src/product/keys.ts +67 -0
- package/src/product/paths.ts +18 -0
- package/src/product/probes.ts +88 -0
- package/src/product/push-flow.ts +90 -0
- package/src/product/render-video.ts +21 -0
- package/src/product/short.ts +62 -0
- package/src/product/update.ts +32 -0
- package/src/project/canonical.ts +14 -0
- package/src/project/commands.ts +177 -0
- package/src/project/dashboard-status.ts +28 -0
- package/src/project/discover.ts +19 -0
- package/src/project/index-file.ts +73 -0
- package/src/project/marker.ts +92 -0
- package/src/project/migrate.ts +201 -0
- package/src/project/names.ts +27 -0
- package/src/project/notice.ts +16 -0
- package/src/project/open.ts +88 -0
- package/src/project/scaffold.ts +112 -0
- package/src/project/templates.ts +42 -0
- package/src/project/videos.ts +64 -0
- package/src/publish/facebook.ts +91 -0
- package/src/publish/index.ts +12 -0
- package/src/publish/instagram.ts +97 -0
- package/src/publish/rate.ts +62 -0
- package/src/publish/session.ts +242 -0
- package/src/publish/tiktok.ts +202 -0
- package/src/publish/youtube.ts +177 -0
- package/src/queue/desk-ops.ts +1170 -0
- package/src/queue/seal.ts +3 -0
- package/src/queue/store.ts +1006 -0
- package/src/remotion/AiLabel.tsx +26 -0
- package/src/remotion/Root.tsx +73 -0
- package/src/remotion/defaults.ts +26 -0
- package/src/remotion/films/claude/ClaudeFilm.tsx +1014 -0
- package/src/remotion/films/engine/EngineMark.tsx +17 -0
- package/src/remotion/films/rea/ReaShort.tsx +552 -0
- package/src/remotion/films/rea/drawings.tsx +907 -0
- package/src/remotion/films/rea/timing.ts +144 -0
- package/src/remotion/index.ts +4 -0
- package/src/remotion/templates/EditorialSplit.tsx +39 -0
- package/src/remotion/templates/KineticType.tsx +39 -0
- package/src/remotion/templates/SignalBoard.tsx +50 -0
- package/src/remotion/timing.ts +22 -0
- package/src/render/chrome.ts +78 -0
- package/src/render/engine-mark.ts +29 -0
- package/src/render/framey-template.ts +130 -0
- package/src/render/html-engine.ts +149 -0
- package/src/render/node-crypto-stub.ts +11 -0
- package/src/render/probe.ts +29 -0
- package/src/render/props.ts +17 -0
- package/src/render/vertical-short.ts +35 -0
- package/src/render/webpack.ts +33 -0
- package/src/render/worker.ts +65 -0
- package/src/scene/assets/fonts/TitanOne-OFL.txt +94 -0
- package/src/scene/assets/fonts/titan-one.woff2 +0 -0
- package/src/scene/assets/gsap/LICENSE.txt +8 -0
- package/src/scene/assets/gsap/gsap.min.js +11 -0
- package/src/scene/audio.ts +54 -0
- package/src/scene/blocks/LICENSE +190 -0
- package/src/scene/blocks/NOTICE +5 -0
- package/src/scene/blocks/bar-chart-race/bar-chart-race.html +585 -0
- package/src/scene/blocks/beat-freeze-cut/beat-freeze-cut.html +874 -0
- package/src/scene/blocks/camcorder-hud/camcorder-hud.html +164 -0
- package/src/scene/blocks/camera-dolly-zoom/camera-dolly-zoom.html +355 -0
- package/src/scene/blocks/code-diff/code-diff.html +817 -0
- package/src/scene/blocks/code-snippet-apple-terminal-pro/code-snippet-apple-terminal-pro.html +248 -0
- package/src/scene/blocks/code-typing/code-typing.html +764 -0
- package/src/scene/blocks/data-chart/data-chart.html +452 -0
- package/src/scene/blocks/flowchart-vertical/flowchart-vertical.html +454 -0
- package/src/scene/blocks/hw-scribble-transition/hw-scribble-transition.html +153 -0
- package/src/scene/blocks/index.json +824 -0
- package/src/scene/blocks/lt-accent-underline/lt-accent-underline.html +107 -0
- package/src/scene/blocks/lt-bold-block/lt-bold-block.html +109 -0
- package/src/scene/blocks/lt-clean-bar/lt-clean-bar.html +112 -0
- package/src/scene/blocks/lt-dark-card/lt-dark-card.html +111 -0
- package/src/scene/blocks/lt-kicker-name/lt-kicker-name.html +114 -0
- package/src/scene/blocks/lt-mask-reveal/lt-mask-reveal.html +120 -0
- package/src/scene/blocks/lt-neon-border/lt-neon-border.html +391 -0
- package/src/scene/blocks/lt-stack-bars/lt-stack-bars.html +109 -0
- package/src/scene/blocks/macos-notification/macos-notification.html +194 -0
- package/src/scene/blocks/mk-background/mk-background.html +236 -0
- package/src/scene/blocks/mk-callout-highlight/mk-callout-highlight.html +183 -0
- package/src/scene/blocks/mk-clone-wall-transition/mk-clone-wall-transition.html +226 -0
- package/src/scene/blocks/mk-line-graph/mk-line-graph.html +293 -0
- package/src/scene/blocks/mk-progress-stat/mk-progress-stat.html +186 -0
- package/src/scene/blocks/mk-specs-list/mk-specs-list.html +223 -0
- package/src/scene/blocks/news-ticker/news-ticker.html +409 -0
- package/src/scene/blocks/organic-light-leak-overlay/organic-light-leak-overlay.html +126 -0
- package/src/scene/blocks/oscilloscope-trace/oscilloscope-trace.html +519 -0
- package/src/scene/blocks/snow/snow.html +205 -0
- package/src/scene/blocks/split-flap-board/split-flap-board.html +347 -0
- package/src/scene/blocks/spotify-card/spotify-card.html +294 -0
- package/src/scene/blocks/starfield/starfield.html +188 -0
- package/src/scene/blocks/thread-message-stack/thread-message-stack.html +239 -0
- package/src/scene/blocks/week-in-merges/week-in-merges.html +470 -0
- package/src/scene/blocks/x-post/x-post.html +437 -0
- package/src/scene/blocks/yt-comment-card/yt-comment-card.html +319 -0
- package/src/scene/blocks/yt-lcd-background/yt-lcd-background.html +307 -0
- package/src/scene/blocks/yt-prism-title/yt-prism-title.html +205 -0
- package/src/scene/blocks.ts +229 -0
- package/src/scene/command.ts +272 -0
- package/src/scene/figure.ts +181 -0
- package/src/scene/glyphs.ts +107 -0
- package/src/scene/init.ts +86 -0
- package/src/scene/inspect/css-tree.d.ts +6 -0
- package/src/scene/inspect/page-scripts.ts +272 -0
- package/src/scene/inspect/report.ts +405 -0
- package/src/scene/inspect/run.ts +200 -0
- package/src/scene/inspect/source.ts +236 -0
- package/src/scene/label.ts +131 -0
- package/src/scene/net-guard.ts +74 -0
- package/src/scene/render.ts +292 -0
- package/src/scene/runtime/browser.ts +199 -0
- package/src/scene/runtime/core.ts +181 -0
- package/src/scene/runtime/react.tsx +115 -0
- package/src/scene/runtime/transitions.ts +133 -0
- package/src/scene/sanitize.ts +181 -0
- package/src/scene/scene.ts +152 -0
- package/src/scene/studio-command.ts +48 -0
- package/src/scene/studio-skin.ts +59 -0
- package/src/scene/studio.ts +337 -0
- package/src/scene/supply.ts +111 -0
- package/src/scene/timing.ts +288 -0
- package/src/scene/transitions/LICENSE +190 -0
- package/src/scene/transitions/NOTICE +5 -0
- package/src/scene/transitions/SOURCE.json +24 -0
- package/src/scene/transitions/transitions.global.js +38 -0
- package/src/scene/transitions.ts +26 -0
- package/src/service/all-projects.ts +153 -0
- package/src/service/commands.ts +256 -0
- package/src/service/due.ts +82 -0
- package/src/service/lock.ts +101 -0
- package/src/service/log-file.ts +56 -0
- package/src/service/state.ts +41 -0
- package/src/service/units.ts +90 -0
- package/src/service/worker.ts +51 -0
- package/src/skill-agents.ts +74 -0
- package/src/skill-install.ts +334 -0
- package/src/sync-write.ts +21 -0
- package/src/tick-report.ts +205 -0
- package/src/tts.ts +124 -0
- package/vendor/@vfrey/contracts/dist/account.d.ts +97 -0
- package/vendor/@vfrey/contracts/dist/account.js +27 -0
- package/vendor/@vfrey/contracts/dist/checks.d.ts +8 -0
- package/vendor/@vfrey/contracts/dist/checks.js +1 -0
- package/vendor/@vfrey/contracts/dist/credentials/crypto.d.ts +4 -0
- package/vendor/@vfrey/contracts/dist/credentials/crypto.js +38 -0
- package/vendor/@vfrey/contracts/dist/domain/advice-persona.d.ts +10 -0
- package/vendor/@vfrey/contracts/dist/domain/advice-persona.js +24 -0
- package/vendor/@vfrey/contracts/dist/domain/backoff.d.ts +13 -0
- package/vendor/@vfrey/contracts/dist/domain/backoff.js +27 -0
- package/vendor/@vfrey/contracts/dist/domain/cadence.d.ts +29 -0
- package/vendor/@vfrey/contracts/dist/domain/cadence.js +95 -0
- package/vendor/@vfrey/contracts/dist/domain/creators.d.ts +146 -0
- package/vendor/@vfrey/contracts/dist/domain/creators.js +2 -0
- package/vendor/@vfrey/contracts/dist/domain/disclosure.d.ts +127 -0
- package/vendor/@vfrey/contracts/dist/domain/disclosure.js +250 -0
- package/vendor/@vfrey/contracts/dist/domain/errors.d.ts +34 -0
- package/vendor/@vfrey/contracts/dist/domain/errors.js +68 -0
- package/vendor/@vfrey/contracts/dist/domain/redact.d.ts +1 -0
- package/vendor/@vfrey/contracts/dist/domain/redact.js +21 -0
- package/vendor/@vfrey/contracts/dist/domain/revenue.d.ts +13 -0
- package/vendor/@vfrey/contracts/dist/domain/revenue.js +16 -0
- package/vendor/@vfrey/contracts/dist/domain/safety.d.ts +20 -0
- package/vendor/@vfrey/contracts/dist/domain/safety.js +61 -0
- package/vendor/@vfrey/contracts/dist/domain/similarity.d.ts +13 -0
- package/vendor/@vfrey/contracts/dist/domain/similarity.js +100 -0
- package/vendor/@vfrey/contracts/dist/domain/templates.d.ts +18 -0
- package/vendor/@vfrey/contracts/dist/domain/templates.js +67 -0
- package/vendor/@vfrey/contracts/dist/domain/tiktok-chunks.d.ts +19 -0
- package/vendor/@vfrey/contracts/dist/domain/tiktok-chunks.js +52 -0
- package/vendor/@vfrey/contracts/dist/domain/topics.d.ts +78 -0
- package/vendor/@vfrey/contracts/dist/domain/topics.js +4 -0
- package/vendor/@vfrey/contracts/dist/domain/types.d.ts +216 -0
- package/vendor/@vfrey/contracts/dist/domain/types.js +1 -0
- package/vendor/@vfrey/contracts/dist/domain/variation.d.ts +57 -0
- package/vendor/@vfrey/contracts/dist/domain/variation.js +278 -0
- package/vendor/@vfrey/contracts/dist/events.d.ts +20 -0
- package/vendor/@vfrey/contracts/dist/events.js +1 -0
- package/vendor/@vfrey/contracts/dist/http.d.ts +11 -0
- package/vendor/@vfrey/contracts/dist/http.js +37 -0
- package/vendor/@vfrey/contracts/dist/index.d.ts +22 -0
- package/vendor/@vfrey/contracts/dist/index.js +22 -0
- package/vendor/@vfrey/contracts/dist/log.d.ts +2 -0
- package/vendor/@vfrey/contracts/dist/log.js +10 -0
- package/vendor/@vfrey/contracts/dist/mail.d.ts +55 -0
- package/vendor/@vfrey/contracts/dist/mail.js +1 -0
- package/vendor/@vfrey/contracts/package.json +18 -0
- package/vendor/@vfrey/ingest/dist/index.d.ts +41 -0
- package/vendor/@vfrey/ingest/dist/index.js +221 -0
- package/vendor/@vfrey/ingest/dist/parse.d.ts +5 -0
- package/vendor/@vfrey/ingest/dist/parse.js +165 -0
- package/vendor/@vfrey/ingest/package.json +21 -0
- package/vendor/framey/LICENSE +190 -0
- package/vendor/framey/NOTICE +15 -0
- package/vendor/framey/SOURCE.json +24 -0
- package/vendor/framey/STUDIO-SOURCE.json +9 -0
- package/vendor/framey/bin/framey-localize-fonts.mjs +12 -0
- package/vendor/framey/bin/framey.mjs +16 -0
- package/vendor/framey/dist/add-VMJD5KBS.js +75 -0
- package/vendor/framey/dist/animatedGifPrep-QPKGJ6PM.js +43 -0
- package/vendor/framey/dist/api.d.ts +211 -0
- package/vendor/framey/dist/api.js +76 -0
- package/vendor/framey/dist/appHistory-WW56FZTT.js +31 -0
- package/vendor/framey/dist/asset-WQKGOELE.js +26 -0
- package/vendor/framey/dist/audio-RSJWVWRA.js +1936 -0
- package/vendor/framey/dist/batchRender-3HPICDCT.js +366 -0
- package/vendor/framey/dist/beats-HL2BDUZI.js +273 -0
- package/vendor/framey/dist/benchmark-RWCWHI5Z.js +230 -0
- package/vendor/framey/dist/browser-ECYET3Q2.js +206 -0
- package/vendor/framey/dist/bundleWithLocalizedFonts-ALYBQEQT.js +52 -0
- package/vendor/framey/dist/captureCompositionFrame-4DA6SEH2.js +94 -0
- package/vendor/framey/dist/catalog-5JVDEUWK.js +979 -0
- package/vendor/framey/dist/catch-up-NEBCL5NO.js +106 -0
- package/vendor/framey/dist/check-F5N544ML.js +111 -0
- package/vendor/framey/dist/checkBrowser-LZ66CMJG.js +110 -0
- package/vendor/framey/dist/chunk-2K7Z2HVP.js +372 -0
- package/vendor/framey/dist/chunk-2UZQHDM7.js +323 -0
- package/vendor/framey/dist/chunk-2X4PQEYM.js +34 -0
- package/vendor/framey/dist/chunk-3422KMTD.js +168 -0
- package/vendor/framey/dist/chunk-3FYD4YEK.js +72 -0
- package/vendor/framey/dist/chunk-3GXQPCJC.js +682 -0
- package/vendor/framey/dist/chunk-3LM6YPBR.js +179 -0
- package/vendor/framey/dist/chunk-442JNXRM.js +20 -0
- package/vendor/framey/dist/chunk-4BNN5FGX.js +182 -0
- package/vendor/framey/dist/chunk-4P7NX5BM.js +11532 -0
- package/vendor/framey/dist/chunk-4UMPIPCQ.js +88 -0
- package/vendor/framey/dist/chunk-4YYJOFKS.js +28 -0
- package/vendor/framey/dist/chunk-54HJ63Q2.js +29 -0
- package/vendor/framey/dist/chunk-5ETJX6WM.js +89 -0
- package/vendor/framey/dist/chunk-5SG54JRS.js +68 -0
- package/vendor/framey/dist/chunk-634HSJ3J.js +58 -0
- package/vendor/framey/dist/chunk-66LREXGS.js +48 -0
- package/vendor/framey/dist/chunk-6BEFEWFB.js +25 -0
- package/vendor/framey/dist/chunk-6BNTGNGD.js +286 -0
- package/vendor/framey/dist/chunk-6DDPOHMK.js +140 -0
- package/vendor/framey/dist/chunk-6GV5XSOR.js +214 -0
- package/vendor/framey/dist/chunk-6JR2XUEE.js +127 -0
- package/vendor/framey/dist/chunk-73QVATIM.js +362 -0
- package/vendor/framey/dist/chunk-7FMUTGOH.js +279 -0
- package/vendor/framey/dist/chunk-7JQFJ6JJ.js +291 -0
- package/vendor/framey/dist/chunk-AHPGAESX.js +113 -0
- package/vendor/framey/dist/chunk-AHX34EFP.js +15 -0
- package/vendor/framey/dist/chunk-AJ5CSAEZ.js +487 -0
- package/vendor/framey/dist/chunk-B7RJV74O.js +5047 -0
- package/vendor/framey/dist/chunk-BL4U6U52.js +254 -0
- package/vendor/framey/dist/chunk-BSQ7XANM.js +210 -0
- package/vendor/framey/dist/chunk-BZ56MTDX.js +6 -0
- package/vendor/framey/dist/chunk-C5BO7PMT.js +282 -0
- package/vendor/framey/dist/chunk-CFUCHO4T.js +358 -0
- package/vendor/framey/dist/chunk-CZGHFATT.js +31 -0
- package/vendor/framey/dist/chunk-DLA44CMS.js +5649 -0
- package/vendor/framey/dist/chunk-DPVXBVLL.js +31292 -0
- package/vendor/framey/dist/chunk-DQBY7FRR.js +397 -0
- package/vendor/framey/dist/chunk-EAMLBAHA.js +154 -0
- package/vendor/framey/dist/chunk-EOVYQ3IG.js +143 -0
- package/vendor/framey/dist/chunk-EVMY7IPL.js +612 -0
- package/vendor/framey/dist/chunk-FG4BBFZI.js +122 -0
- package/vendor/framey/dist/chunk-FI4I7CME.js +56 -0
- package/vendor/framey/dist/chunk-FLREUEHW.js +2081 -0
- package/vendor/framey/dist/chunk-FUFP7A7S.js +1126 -0
- package/vendor/framey/dist/chunk-FV3PIKGH.js +56 -0
- package/vendor/framey/dist/chunk-FXMKHHPO.js +123 -0
- package/vendor/framey/dist/chunk-GGZAM5VH.js +1187 -0
- package/vendor/framey/dist/chunk-GKZEVJIB.js +39 -0
- package/vendor/framey/dist/chunk-GMECXFAN.js +57 -0
- package/vendor/framey/dist/chunk-GNEFDLFB.js +621 -0
- package/vendor/framey/dist/chunk-GPMLSOEG.js +19274 -0
- package/vendor/framey/dist/chunk-GPYVT5EE.js +59 -0
- package/vendor/framey/dist/chunk-H6IEMZEV.js +40 -0
- package/vendor/framey/dist/chunk-HEFQCIXR.js +170 -0
- package/vendor/framey/dist/chunk-HFQ4CWHA.js +118 -0
- package/vendor/framey/dist/chunk-HPDTCOKE.js +304 -0
- package/vendor/framey/dist/chunk-HTUHQKDB.js +548 -0
- package/vendor/framey/dist/chunk-HU2SPFNG.js +103 -0
- package/vendor/framey/dist/chunk-HVW7ABXD.js +19 -0
- package/vendor/framey/dist/chunk-IG7NDKXO.js +26 -0
- package/vendor/framey/dist/chunk-II3J3WXK.js +246 -0
- package/vendor/framey/dist/chunk-IR35BCLK.js +13 -0
- package/vendor/framey/dist/chunk-ISN5GRYI.js +20 -0
- package/vendor/framey/dist/chunk-IUONB55J.js +669 -0
- package/vendor/framey/dist/chunk-IVSUQR2B.js +161 -0
- package/vendor/framey/dist/chunk-IXU6PQSW.js +259 -0
- package/vendor/framey/dist/chunk-IZCW2NKT.js +29 -0
- package/vendor/framey/dist/chunk-JGXJU5PF.js +68 -0
- package/vendor/framey/dist/chunk-JHOCK3DG.js +27 -0
- package/vendor/framey/dist/chunk-JVBRJMOP.js +121 -0
- package/vendor/framey/dist/chunk-K4MJX7SR.js +17 -0
- package/vendor/framey/dist/chunk-K4WKGXRC.js +18 -0
- package/vendor/framey/dist/chunk-KGPLIH7B.js +127 -0
- package/vendor/framey/dist/chunk-KLIKCX6Q.js +63 -0
- package/vendor/framey/dist/chunk-KXTKKBOC.js +61 -0
- package/vendor/framey/dist/chunk-KZI44OPA.js +185 -0
- package/vendor/framey/dist/chunk-LEKZNRKI.js +45 -0
- package/vendor/framey/dist/chunk-LFGJWOVA.js +61 -0
- package/vendor/framey/dist/chunk-LLMSX6V6.js +17 -0
- package/vendor/framey/dist/chunk-LTGTN2TH.js +195 -0
- package/vendor/framey/dist/chunk-M2WBOQ2Q.js +54 -0
- package/vendor/framey/dist/chunk-MI5FTLYK.js +399 -0
- package/vendor/framey/dist/chunk-MLQP2QUF.js +1809 -0
- package/vendor/framey/dist/chunk-MMQ52NIZ.js +956 -0
- package/vendor/framey/dist/chunk-ND46XKK3.js +742 -0
- package/vendor/framey/dist/chunk-NYEXNSHM.js +504 -0
- package/vendor/framey/dist/chunk-O4YRB27L.js +57 -0
- package/vendor/framey/dist/chunk-O7BGSQ5F.js +92 -0
- package/vendor/framey/dist/chunk-OFQWTKPW.js +117 -0
- package/vendor/framey/dist/chunk-P5ZBLXJ6.js +91 -0
- package/vendor/framey/dist/chunk-P6LJ4Y32.js +4662 -0
- package/vendor/framey/dist/chunk-PKZ7RK5N.js +281 -0
- package/vendor/framey/dist/chunk-PURHAXFL.js +15 -0
- package/vendor/framey/dist/chunk-Q5X2B5WT.js +29 -0
- package/vendor/framey/dist/chunk-QAMKOG67.js +248 -0
- package/vendor/framey/dist/chunk-R6YBK4XX.js +514 -0
- package/vendor/framey/dist/chunk-RGLQURIX.js +2997 -0
- package/vendor/framey/dist/chunk-RNV3DM4S.js +3573 -0
- package/vendor/framey/dist/chunk-ROEW726S.js +4638 -0
- package/vendor/framey/dist/chunk-RQVDTPGD.js +6 -0
- package/vendor/framey/dist/chunk-RVZHGOGR.js +26 -0
- package/vendor/framey/dist/chunk-RXATE6FZ.js +385 -0
- package/vendor/framey/dist/chunk-S3S4TGEH.js +424 -0
- package/vendor/framey/dist/chunk-SDYDNHEE.js +11202 -0
- package/vendor/framey/dist/chunk-SSWBU67I.js +173 -0
- package/vendor/framey/dist/chunk-ST35C4K6.js +28 -0
- package/vendor/framey/dist/chunk-SZNTYTIV.js +990 -0
- package/vendor/framey/dist/chunk-T2EUWCJE.js +29 -0
- package/vendor/framey/dist/chunk-T6AGUTZJ.js +444 -0
- package/vendor/framey/dist/chunk-THJALHFJ.js +11131 -0
- package/vendor/framey/dist/chunk-TIQB63MX.js +18128 -0
- package/vendor/framey/dist/chunk-U242RTCT.js +134 -0
- package/vendor/framey/dist/chunk-UJZREAV6.js +3901 -0
- package/vendor/framey/dist/chunk-UMD3V7CU.js +264 -0
- package/vendor/framey/dist/chunk-UOFAE5RF.js +42 -0
- package/vendor/framey/dist/chunk-UTEIUGAZ.js +29 -0
- package/vendor/framey/dist/chunk-VAS6HQX3.js +138 -0
- package/vendor/framey/dist/chunk-VC76R6W2.js +27 -0
- package/vendor/framey/dist/chunk-VFZ7W5W7.js +226 -0
- package/vendor/framey/dist/chunk-VHNLZAE2.js +348 -0
- package/vendor/framey/dist/chunk-VMC4WSH5.js +278 -0
- package/vendor/framey/dist/chunk-VORQIH64.js +108 -0
- package/vendor/framey/dist/chunk-VTXFRIHO.js +186 -0
- package/vendor/framey/dist/chunk-W2LGJSEN.js +182 -0
- package/vendor/framey/dist/chunk-WKBM7NDG.js +32 -0
- package/vendor/framey/dist/chunk-WMQNIQDJ.js +2057 -0
- package/vendor/framey/dist/chunk-WN4XZC5F.js +504 -0
- package/vendor/framey/dist/chunk-WQ6ZXHFQ.js +133 -0
- package/vendor/framey/dist/chunk-X7HBSTCZ.js +53 -0
- package/vendor/framey/dist/chunk-X7MTZ4T2.js +6 -0
- package/vendor/framey/dist/chunk-XPTOJZJF.js +308 -0
- package/vendor/framey/dist/chunk-XT6MXC7A.js +6 -0
- package/vendor/framey/dist/chunk-XT7X6QCP.js +6 -0
- package/vendor/framey/dist/chunk-XTMDWNEC.js +2820 -0
- package/vendor/framey/dist/chunk-XUHOIDKG.js +6 -0
- package/vendor/framey/dist/chunk-XX7LTW5Y.js +138 -0
- package/vendor/framey/dist/chunk-Y3YGTZEG.js +382 -0
- package/vendor/framey/dist/chunk-Y5SBSGN7.js +346 -0
- package/vendor/framey/dist/chunk-YCMVI4MZ.js +625 -0
- package/vendor/framey/dist/chunk-YOR4CTCE.js +261 -0
- package/vendor/framey/dist/chunk-YPRBGITP.js +2748 -0
- package/vendor/framey/dist/chunk-ZKDMAOFU.js +32 -0
- package/vendor/framey/dist/chunk-ZW6DURPF.js +1318 -0
- package/vendor/framey/dist/clean-ZJOGDKDM.js +336 -0
- package/vendor/framey/dist/cli.js +439 -0
- package/vendor/framey/dist/cloudrun-HGJ3B6ZV.js +767 -0
- package/vendor/framey/dist/commands/contrast-audit.browser.js +643 -0
- package/vendor/framey/dist/commands/layout-audit.browser.js +2914 -0
- package/vendor/framey/dist/commands/motion-sample.browser.js +74 -0
- package/vendor/framey/dist/commands/motion-signature.browser.js +475 -0
- package/vendor/framey/dist/compare-W7UY3BAZ.js +463 -0
- package/vendor/framey/dist/compiler-TM3W6GYF.js +136 -0
- package/vendor/framey/dist/component-QF5VGYMU.js +176 -0
- package/vendor/framey/dist/compositions-XT3PMNDF.js +238 -0
- package/vendor/framey/dist/contactSheet-7W6GYHBQ.js +24 -0
- package/vendor/framey/dist/deploy-6FJPWKF2.js +299 -0
- package/vendor/framey/dist/destroy-HE2RIPKZ.js +57 -0
- package/vendor/framey/dist/deterministicFonts-RADD3BSX.js +50 -0
- package/vendor/framey/dist/dist-4S2FGGVY.js +422 -0
- package/vendor/framey/dist/dist-BE4B2EZE.js +32 -0
- package/vendor/framey/dist/dist-EWXJGN63.js +129 -0
- package/vendor/framey/dist/docs-VKIRFEEX.js +131 -0
- package/vendor/framey/dist/doctor-2UNJ2G7U.js +74 -0
- package/vendor/framey/dist/dom-37K6YOH4.js +14 -0
- package/vendor/framey/dist/dotEnv-7PZQTVIM.js +54 -0
- package/vendor/framey/dist/events-ACY3P2PA.js +76 -0
- package/vendor/framey/dist/events-IHB3B2MK.js +69 -0
- package/vendor/framey/dist/ffmpeg-DR5LGGSK.js +63 -0
- package/vendor/framey/dist/figma-BODVUPHB.js +63 -0
- package/vendor/framey/dist/fontData.generated-NXAOI4GH.js +13 -0
- package/vendor/framey/dist/fontLocalizeCli.js +142 -0
- package/vendor/framey/dist/gpuPolicy-XLEXORZY.js +49 -0
- package/vendor/framey/dist/grade-compare-GAXFQ74C.js +661 -0
- package/vendor/framey/dist/gsapParser-IEUSLYDJ.js +2885 -0
- package/vendor/framey/dist/gsapParserAcorn-LZJKCFQI.js +30 -0
- package/vendor/framey/dist/help-VCB5X2HS.js +184 -0
- package/vendor/framey/dist/history-ENGZEVFT.js +471 -0
- package/vendor/framey/dist/hyperframe.manifest.json +22 -0
- package/vendor/framey/dist/hyperframe.runtime.iife.js +1132 -0
- package/vendor/framey/dist/hyperframes-player.global.js +478 -0
- package/vendor/framey/dist/hyperframes-slideshow.global.js +148 -0
- package/vendor/framey/dist/info-WPCJHBMU.js +182 -0
- package/vendor/framey/dist/init-G4WGLYGD.js +1176 -0
- package/vendor/framey/dist/inspect-5IQ6CNEQ.js +106 -0
- package/vendor/framey/dist/installer-ML4HWUV7.js +40 -0
- package/vendor/framey/dist/keyframes-Q6XJO7VW.js +2755 -0
- package/vendor/framey/dist/lambda-A7JC74JF.js +468 -0
- package/vendor/framey/dist/layout-YET6XNXA.js +95 -0
- package/vendor/framey/dist/lint-I7FZN2VJ.js +162 -0
- package/vendor/framey/dist/lintProject-PDB3UN72.js +30 -0
- package/vendor/framey/dist/manager-CD6LJ7ZN.js +45 -0
- package/vendor/framey/dist/manager-WA4F2GST.js +67 -0
- package/vendor/framey/dist/media-treatment-BXYS4WVA.js +1030 -0
- package/vendor/framey/dist/media-use-LWH3MANK.js +113 -0
- package/vendor/framey/dist/models-K363FYM4.js +195 -0
- package/vendor/framey/dist/motionShot-GPAVWXLH.js +640 -0
- package/vendor/framey/dist/normalize-FASIPBUM.js +24 -0
- package/vendor/framey/dist/normalize-audio-VDWYRHN6.js +268 -0
- package/vendor/framey/dist/open-E3TB6P6J.js +128 -0
- package/vendor/framey/dist/parakeetRunner-UP34UOI2.js +58 -0
- package/vendor/framey/dist/pipeline-VXIUYEBU.js +64 -0
- package/vendor/framey/dist/play-BUTDQ4DV.js +353 -0
- package/vendor/framey/dist/policies-OLDYGFK5.js +309 -0
- package/vendor/framey/dist/preflight-2KZ2GWAZ.js +55 -0
- package/vendor/framey/dist/present-GXYSM7NX.js +353 -0
- package/vendor/framey/dist/preview-EKZ33JOJ.js +1910 -0
- package/vendor/framey/dist/producer-SKU5EV3J.js +13 -0
- package/vendor/framey/dist/progress-ZWB4Z4ET.js +76 -0
- package/vendor/framey/dist/projectConfig-3MZAYVTS.js +60 -0
- package/vendor/framey/dist/publication-DTKWNF74.js +33 -0
- package/vendor/framey/dist/remove-background-OY5L7XN2.js +265 -0
- package/vendor/framey/dist/render-CDV4GDFX.js +187 -0
- package/vendor/framey/dist/render-YE5YAMOD.js +2620 -0
- package/vendor/framey/dist/render-batch-ZAMFPCLL.js +274 -0
- package/vendor/framey/dist/renderSetupWorker.js +120 -0
- package/vendor/framey/dist/resolver-D5BIPSEW.js +42 -0
- package/vendor/framey/dist/runtimeVersion.js +18 -0
- package/vendor/framey/dist/sam-WFZXI4F7.js +23 -0
- package/vendor/framey/dist/shaderTransitionWorker.js +44 -0
- package/vendor/framey/dist/sherpa-RQWLV7I3.js +79 -0
- package/vendor/framey/dist/sherpaWorker.js +84 -0
- package/vendor/framey/dist/sites-AMOVABTK.js +54 -0
- package/vendor/framey/dist/skill-ZHVLH7KX.js +15 -0
- package/vendor/framey/dist/slideshow-SJGK4RQS.js +24 -0
- package/vendor/framey/dist/snapshot-TUXL6LBQ.js +1515 -0
- package/vendor/framey/dist/src-JHQGB2S6.js +215 -0
- package/vendor/framey/dist/src-Z5PGEMXB.js +532 -0
- package/vendor/framey/dist/state-B6H3WHCF.js +28 -0
- package/vendor/framey/dist/staticProjectServer-DFVZOUGI.js +63 -0
- package/vendor/framey/dist/studio/assets/hyperframes-player-DLaKjw0L.js +478 -0
- package/vendor/framey/dist/studio/assets/index-BX3KHhGX.js +71 -0
- package/vendor/framey/dist/studio/assets/index-CYbvOVp-.css +1 -0
- package/vendor/framey/dist/studio/assets/index-Dp3QEUGL.js +402 -0
- package/vendor/framey/dist/studio/assets/index-qrTAXbqc.js +531 -0
- package/vendor/framey/dist/studio/favicon.svg +14 -0
- package/vendor/framey/dist/studio/icons/timeline/audio.svg +7 -0
- package/vendor/framey/dist/studio/icons/timeline/captions.svg +5 -0
- package/vendor/framey/dist/studio/icons/timeline/composition.svg +12 -0
- package/vendor/framey/dist/studio/icons/timeline/image.svg +18 -0
- package/vendor/framey/dist/studio/icons/timeline/music.svg +10 -0
- package/vendor/framey/dist/studio/icons/timeline/text.svg +3 -0
- package/vendor/framey/dist/studio/index.html +23 -0
- package/vendor/framey/dist/studio-api-2NECGRMB.js +179 -0
- package/vendor/framey/dist/studioSelectionClient-IUUPKUHZ.js +25 -0
- package/vendor/framey/dist/studioServer-N2OPUMOQ.js +1569 -0
- package/vendor/framey/dist/synthesize-PKTB5ATG.js +183 -0
- package/vendor/framey/dist/system-7F3UEHQT.js +27 -0
- package/vendor/framey/dist/telemetry-DQGPEKM6.js +145 -0
- package/vendor/framey/dist/telemetry-UN55N6U6.js +77 -0
- package/vendor/framey/dist/timeline-LHUUMK63.js +1295 -0
- package/vendor/framey/dist/tokens-OLECWDFK.js +92 -0
- package/vendor/framey/dist/transcribe-O7HQKMIV.js +331 -0
- package/vendor/framey/dist/transcribe-UJESPBT5.js +76 -0
- package/vendor/framey/dist/tts-YCCQHZD4.js +234 -0
- package/vendor/framey/dist/urlDownloader-H2LXLG4U.js +48 -0
- package/vendor/framey/dist/usage-HG4WMM7A.js +2167 -0
- package/vendor/framey/dist/validate-F2XMN6EV.js +87 -0
- package/vendor/framey/dist/vendor/npm/gsap@3.15.0/GSAP-LICENSE.txt +8 -0
- package/vendor/framey/dist/vendor/npm/gsap@3.15.0/dist/CustomEase.min.js +11 -0
- package/vendor/framey/dist/vendor/npm/gsap@3.15.0/dist/MotionPathPlugin.min.js +11 -0
- package/vendor/framey/dist/vendor/npm/gsap@3.15.0/dist/gsap.min.js +11 -0
- package/vendor/framey/dist/warmCheck.js +220 -0
- package/vendor/framey/dist/warmCheckClient.js +139 -0
- package/vendor/framey/dist/workspaceBuildCheck-XYD2YTFW.js +133 -0
- package/vendor/framey-player/LICENSE +190 -0
- package/vendor/framey-player/NOTICE +16 -0
- package/vendor/framey-player/SOURCE.json +6 -0
- package/vendor/framey-player/hyperframes-player.global.js +478 -0
- package/vendor/framey.pin +1 -0
- package/bin/index.js +0 -3
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import { createRequire as __hf_createRequire } from "node:module";
|
|
2
|
+
import { fileURLToPath as __hf_fileURLToPath } from "node:url";
|
|
3
|
+
import { dirname as __hf_dirname } from "node:path";
|
|
4
|
+
var require = __hf_createRequire(import.meta.url);
|
|
5
|
+
var __filename = __hf_fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = __hf_dirname(__filename);
|
|
7
|
+
import {
|
|
8
|
+
getIdentityPersistence,
|
|
9
|
+
getIdentityWriteOutcome,
|
|
10
|
+
posthogApiKey,
|
|
11
|
+
posthogHost,
|
|
12
|
+
readConfig,
|
|
13
|
+
telemetryRuntimeOverride,
|
|
14
|
+
writeConfig
|
|
15
|
+
} from "./chunk-NYEXNSHM.js";
|
|
16
|
+
import {
|
|
17
|
+
getInvocationId
|
|
18
|
+
} from "./chunk-54HJ63Q2.js";
|
|
19
|
+
import {
|
|
20
|
+
c
|
|
21
|
+
} from "./chunk-VORQIH64.js";
|
|
22
|
+
import {
|
|
23
|
+
CANARIES,
|
|
24
|
+
canaryEnvVar,
|
|
25
|
+
canaryFeatureProperties,
|
|
26
|
+
evaluateCanary,
|
|
27
|
+
findCanary,
|
|
28
|
+
parseCanaryOverride
|
|
29
|
+
} from "./chunk-FXMKHHPO.js";
|
|
30
|
+
import {
|
|
31
|
+
VERSION
|
|
32
|
+
} from "./chunk-AHX34EFP.js";
|
|
33
|
+
import {
|
|
34
|
+
getSystemMeta
|
|
35
|
+
} from "./chunk-T6AGUTZJ.js";
|
|
36
|
+
|
|
37
|
+
// src/telemetry/transport.ts
|
|
38
|
+
import { spawn } from "child_process";
|
|
39
|
+
import { randomUUID } from "crypto";
|
|
40
|
+
|
|
41
|
+
// src/utils/hostAnswers.ts
|
|
42
|
+
import { promises as dns } from "dns";
|
|
43
|
+
var PROBE_TIMEOUT_MS = 1e3;
|
|
44
|
+
function fetchGoesThroughEnvProxy() {
|
|
45
|
+
if (!(process.env["HTTPS_PROXY"] ?? process.env["https_proxy"])?.trim()) return false;
|
|
46
|
+
const flags = [...process.execArgv, ...process.env["NODE_OPTIONS"]?.split(/\s+/u) ?? []];
|
|
47
|
+
return process.env["NODE_USE_ENV_PROXY"] === "1" || flags.includes("--use-env-proxy");
|
|
48
|
+
}
|
|
49
|
+
async function hostAnswers(host) {
|
|
50
|
+
if (fetchGoesThroughEnvProxy()) return true;
|
|
51
|
+
try {
|
|
52
|
+
const resolver = new dns.Resolver({ timeout: PROBE_TIMEOUT_MS, tries: 1 });
|
|
53
|
+
const results = await Promise.allSettled([resolver.resolve4(host), resolver.resolve6(host)]);
|
|
54
|
+
const anyFamilyTimedOut = results.some(
|
|
55
|
+
(r) => r.status === "rejected" && r.reason.code === "ETIMEOUT"
|
|
56
|
+
);
|
|
57
|
+
return !anyFamilyTimedOut && results.some((r) => r.status === "fulfilled");
|
|
58
|
+
} catch {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// src/telemetry/transport.ts
|
|
64
|
+
var FLUSH_TIMEOUT_MS = 5e3;
|
|
65
|
+
var eventQueue = [];
|
|
66
|
+
function enqueue(event, properties, distinctId) {
|
|
67
|
+
eventQueue.push({
|
|
68
|
+
uuid: randomUUID(),
|
|
69
|
+
event,
|
|
70
|
+
distinctId,
|
|
71
|
+
properties,
|
|
72
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
function buildPayload(events) {
|
|
76
|
+
if (events.length === 0) return null;
|
|
77
|
+
const config = readConfig();
|
|
78
|
+
const batch = events.map((e) => ({
|
|
79
|
+
uuid: e.uuid,
|
|
80
|
+
event: e.event,
|
|
81
|
+
properties: { ...e.properties, $ip: null },
|
|
82
|
+
distinct_id: e.distinctId ?? config.anonymousId,
|
|
83
|
+
timestamp: e.timestamp
|
|
84
|
+
}));
|
|
85
|
+
return JSON.stringify({ api_key: posthogApiKey(), batch });
|
|
86
|
+
}
|
|
87
|
+
var inFlight;
|
|
88
|
+
async function flush() {
|
|
89
|
+
const run = inFlight ? inFlight.then((sent) => sent ? sendQueued() : false, sendQueued) : sendQueued();
|
|
90
|
+
const current = run.finally(() => {
|
|
91
|
+
if (inFlight === current) inFlight = void 0;
|
|
92
|
+
});
|
|
93
|
+
inFlight = current;
|
|
94
|
+
await current;
|
|
95
|
+
}
|
|
96
|
+
async function sendQueued() {
|
|
97
|
+
const snapshot = eventQueue.slice();
|
|
98
|
+
const payload = buildPayload(snapshot);
|
|
99
|
+
if (payload == null) return true;
|
|
100
|
+
if (!await hostAnswers(new URL(posthogHost()).hostname)) return false;
|
|
101
|
+
const controller = new AbortController();
|
|
102
|
+
const timeout = setTimeout(() => controller.abort(), FLUSH_TIMEOUT_MS);
|
|
103
|
+
try {
|
|
104
|
+
const res = await fetch(`${posthogHost()}/batch/`, {
|
|
105
|
+
method: "POST",
|
|
106
|
+
headers: { "Content-Type": "application/json", Connection: "close" },
|
|
107
|
+
body: payload,
|
|
108
|
+
signal: controller.signal
|
|
109
|
+
});
|
|
110
|
+
await res.body?.cancel();
|
|
111
|
+
const sent = new Set(snapshot);
|
|
112
|
+
eventQueue = eventQueue.filter((e) => !sent.has(e));
|
|
113
|
+
return true;
|
|
114
|
+
} catch {
|
|
115
|
+
return false;
|
|
116
|
+
} finally {
|
|
117
|
+
clearTimeout(timeout);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function flushSync() {
|
|
121
|
+
const payload = buildPayload(eventQueue);
|
|
122
|
+
if (payload == null) return;
|
|
123
|
+
eventQueue = [];
|
|
124
|
+
try {
|
|
125
|
+
const child = spawn(
|
|
126
|
+
process.execPath,
|
|
127
|
+
[
|
|
128
|
+
"-e",
|
|
129
|
+
`fetch(${JSON.stringify(`${posthogHost()}/batch/`)},{method:"POST",headers:{"Content-Type":"application/json"},body:${JSON.stringify(payload)},signal:AbortSignal.timeout(${FLUSH_TIMEOUT_MS})}).catch(()=>{})`
|
|
130
|
+
],
|
|
131
|
+
{ detached: true, stdio: "ignore", windowsHide: true }
|
|
132
|
+
);
|
|
133
|
+
child.unref();
|
|
134
|
+
} catch {
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// src/ui/diagnostics.ts
|
|
139
|
+
var diag = {
|
|
140
|
+
/** A user-facing notice or progress line (e.g. "Installing … skills…"). */
|
|
141
|
+
notice(...args) {
|
|
142
|
+
console.error(...args);
|
|
143
|
+
},
|
|
144
|
+
/** A warning the user should see but that isn't fatal. */
|
|
145
|
+
warn(...args) {
|
|
146
|
+
console.warn(...args);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
// src/telemetry/canary.ts
|
|
151
|
+
function telemetryActive() {
|
|
152
|
+
if (telemetryRuntimeOverride() !== null) return false;
|
|
153
|
+
return readConfig().telemetryEnabled;
|
|
154
|
+
}
|
|
155
|
+
var decisions = /* @__PURE__ */ new Map();
|
|
156
|
+
var decisionsTelemetryPosture;
|
|
157
|
+
function decideCanary(name) {
|
|
158
|
+
const definition = findCanary(name);
|
|
159
|
+
if (!definition) return { enabled: false, reason: "out_of_cohort" };
|
|
160
|
+
const override = parseCanaryOverride(process.env[canaryEnvVar(definition.name)]);
|
|
161
|
+
if (override === void 0 && !telemetryActive()) {
|
|
162
|
+
return { enabled: false, reason: "telemetry_opt_out" };
|
|
163
|
+
}
|
|
164
|
+
const config = readConfig();
|
|
165
|
+
return evaluateCanary({
|
|
166
|
+
feature: definition.name,
|
|
167
|
+
// The bucket seed, NOT the anonymousId: the seed is inherited across
|
|
168
|
+
// config.json re-mints via the install-state file, so cohorts hold when
|
|
169
|
+
// the telemetry id re-rolls. Both files live in ~/.hyperframes, so
|
|
170
|
+
// deleting that directory clears the cohort too — intentional. Fallback
|
|
171
|
+
// covers only a failed backfill write on a legacy config.
|
|
172
|
+
unitId: config.bucketSeed ?? config.anonymousId,
|
|
173
|
+
percentage: definition.percentage,
|
|
174
|
+
override,
|
|
175
|
+
// CI installs regenerate their config per run, so their ids are
|
|
176
|
+
// ephemeral — they would hop cohorts between runs, adding noise to the
|
|
177
|
+
// rollout signal while saying nothing about real users. An explicit
|
|
178
|
+
// override still gets through, which is how you test a canary in CI.
|
|
179
|
+
exclude: getSystemMeta().is_ci
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
function resolveCanary(name) {
|
|
183
|
+
const posture = telemetryActive();
|
|
184
|
+
if (decisionsTelemetryPosture !== posture) {
|
|
185
|
+
decisions.clear();
|
|
186
|
+
decisionsTelemetryPosture = posture;
|
|
187
|
+
}
|
|
188
|
+
const cached = decisions.get(name);
|
|
189
|
+
if (cached) return cached;
|
|
190
|
+
const decision = decideCanary(name);
|
|
191
|
+
decisions.set(name, decision);
|
|
192
|
+
return decision;
|
|
193
|
+
}
|
|
194
|
+
function canaryDecisionsForStudio() {
|
|
195
|
+
const out = {};
|
|
196
|
+
for (const canary of CANARIES) {
|
|
197
|
+
const { enabled, reason } = resolveCanary(canary.name);
|
|
198
|
+
out[canary.name] = {
|
|
199
|
+
enabled,
|
|
200
|
+
// Provenance, not decoration. Studio has its own telemetry opt-out that
|
|
201
|
+
// the CLI cannot see, and it must be able to refuse ordinary cohort
|
|
202
|
+
// enrolment while still honouring a deliberate `HF_CANARY_*` override.
|
|
203
|
+
// A bare boolean cannot express that difference, so Studio would have
|
|
204
|
+
// had to either ignore its own opt-out or drop the override.
|
|
205
|
+
forced: reason === "forced_on" || reason === "forced_off"
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
return out;
|
|
209
|
+
}
|
|
210
|
+
function canaryEventProperties() {
|
|
211
|
+
return canaryFeatureProperties(
|
|
212
|
+
CANARIES.map((c2) => {
|
|
213
|
+
const { enabled, reason } = resolveCanary(c2.name);
|
|
214
|
+
return { name: c2.name, enabled, reason };
|
|
215
|
+
})
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// src/telemetry/client.ts
|
|
220
|
+
var telemetryEnabled = null;
|
|
221
|
+
function shouldTrack() {
|
|
222
|
+
if (telemetryEnabled !== null) return telemetryEnabled;
|
|
223
|
+
if (telemetryRuntimeOverride() !== null) {
|
|
224
|
+
telemetryEnabled = false;
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
const config = readConfig();
|
|
228
|
+
telemetryEnabled = config.telemetryEnabled;
|
|
229
|
+
return telemetryEnabled;
|
|
230
|
+
}
|
|
231
|
+
function resetTelemetryPostureCache() {
|
|
232
|
+
telemetryEnabled = null;
|
|
233
|
+
}
|
|
234
|
+
function trackEvent(event, properties = {}, distinctId) {
|
|
235
|
+
if (!shouldTrack()) return;
|
|
236
|
+
const sys = getSystemMeta();
|
|
237
|
+
enqueue(
|
|
238
|
+
event,
|
|
239
|
+
{
|
|
240
|
+
...properties,
|
|
241
|
+
cli_version: VERSION,
|
|
242
|
+
os: process.platform,
|
|
243
|
+
arch: process.arch,
|
|
244
|
+
node_version: process.version,
|
|
245
|
+
os_release: sys.os_release,
|
|
246
|
+
cpu_count: sys.cpu_count,
|
|
247
|
+
cpu_model: sys.cpu_model ?? void 0,
|
|
248
|
+
cpu_speed: sys.cpu_speed ?? void 0,
|
|
249
|
+
memory_total_mb: sys.memory_total_mb,
|
|
250
|
+
is_docker: sys.is_docker,
|
|
251
|
+
is_ci: sys.is_ci,
|
|
252
|
+
ci_name: sys.ci_name ?? void 0,
|
|
253
|
+
is_wsl: sys.is_wsl,
|
|
254
|
+
is_tty: sys.is_tty,
|
|
255
|
+
sandbox_runtime: sys.sandbox_runtime ?? void 0,
|
|
256
|
+
agent_runtime: sys.agent_runtime ?? void 0,
|
|
257
|
+
execution_harness_hint: sys.execution_harness_hint ?? void 0,
|
|
258
|
+
// New-agent discovery signals — populated only when agent_runtime is null.
|
|
259
|
+
agent_hint: sys.agent_hint ?? void 0,
|
|
260
|
+
term_program: sys.term_program ?? void 0,
|
|
261
|
+
// Did this install's mint find a previous install's state marker?
|
|
262
|
+
// The fleet-wide rate of `true` IS the recoverable-churn fraction —
|
|
263
|
+
// the share of "new" ids that are really a config re-mint on a machine
|
|
264
|
+
// we already knew. Absent (not false) when the config predates the
|
|
265
|
+
// marker. Resolved after the shouldTrack guard.
|
|
266
|
+
install_predecessor_found: readConfig().predecessorFound,
|
|
267
|
+
// Splits the `true` share above: a machine we knew but whose record we
|
|
268
|
+
// could not read. Without it a partial disk write is indistinguishable
|
|
269
|
+
// from a genuinely fresh install. Absent in the normal case.
|
|
270
|
+
install_state_file_corrupt: readConfig().stateFileCorrupt,
|
|
271
|
+
// Whether this process's anonymousId can be trusted to survive to the
|
|
272
|
+
// next run: `durable` (loaded from a preexisting config), `unknown`
|
|
273
|
+
// (minted+persisted this run — an ephemeral HOME is indistinguishable
|
|
274
|
+
// from a genuine first run), `process_only` (not persisted). Install-
|
|
275
|
+
// grain metrics must also consider environment and repeated-day use:
|
|
276
|
+
// a short-lived container can persist its id between two CLI processes.
|
|
277
|
+
identity_persistence: getIdentityPersistence(),
|
|
278
|
+
// Outcome of the identity-establishing config write; absent when that
|
|
279
|
+
// path did not write (including a durable id loaded from disk).
|
|
280
|
+
config_write_outcome: getIdentityWriteOutcome(),
|
|
281
|
+
// Groups one invocation's events even when the install identity is
|
|
282
|
+
// untrustworthy. Always present, unlike the orchestrator-set run_id.
|
|
283
|
+
invocation_id: getInvocationId(),
|
|
284
|
+
// Canary assignments as `$feature/canary-<name>` — PostHog's native flag
|
|
285
|
+
// property shape, so breakdowns and experiment analysis work on a canary
|
|
286
|
+
// with nothing configured server-side. On EVERY event, not just renders:
|
|
287
|
+
// a staged rollout is only as good as the ability to split any metric by
|
|
288
|
+
// cohort. Resolved after the shouldTrack guard, so opted-out installs
|
|
289
|
+
// never pay for it. See telemetry/canary.ts.
|
|
290
|
+
...canaryEventProperties(),
|
|
291
|
+
agent_env_hints: sys.agent_env_hints ?? void 0,
|
|
292
|
+
client: sys.client ?? void 0
|
|
293
|
+
},
|
|
294
|
+
distinctId
|
|
295
|
+
);
|
|
296
|
+
}
|
|
297
|
+
function showTelemetryNotice() {
|
|
298
|
+
if (!shouldTrack()) return false;
|
|
299
|
+
const config = readConfig();
|
|
300
|
+
if (config.telemetryNoticeShown) return false;
|
|
301
|
+
config.telemetryNoticeShown = true;
|
|
302
|
+
writeConfig(config);
|
|
303
|
+
diag.notice();
|
|
304
|
+
diag.notice(` ${c.dim("Framey collects anonymous usage data to improve the tool.")}`);
|
|
305
|
+
diag.notice(` ${c.dim("File paths and composition content are never collected.")}`);
|
|
306
|
+
diag.notice(
|
|
307
|
+
` ${c.dim("If you sign in to HeyGen, your account (email, or username) is linked to your usage.")}`
|
|
308
|
+
);
|
|
309
|
+
diag.notice();
|
|
310
|
+
diag.notice(` ${c.dim("Disable anytime:")} ${c.accent("framey telemetry disable")}`);
|
|
311
|
+
diag.notice();
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
export {
|
|
316
|
+
canaryDecisionsForStudio,
|
|
317
|
+
flush,
|
|
318
|
+
flushSync,
|
|
319
|
+
shouldTrack,
|
|
320
|
+
resetTelemetryPostureCache,
|
|
321
|
+
trackEvent,
|
|
322
|
+
showTelemetryNotice
|
|
323
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createRequire as __hf_createRequire } from "node:module";
|
|
2
|
+
import { fileURLToPath as __hf_fileURLToPath } from "node:url";
|
|
3
|
+
import { dirname as __hf_dirname } from "node:path";
|
|
4
|
+
var require = __hf_createRequire(import.meta.url);
|
|
5
|
+
var __filename = __hf_fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = __hf_dirname(__filename);
|
|
7
|
+
|
|
8
|
+
// src/commands/lambda/repoRoot.ts
|
|
9
|
+
import { existsSync } from "fs";
|
|
10
|
+
import { dirname, resolve } from "path";
|
|
11
|
+
import { fileURLToPath } from "url";
|
|
12
|
+
function repoRoot() {
|
|
13
|
+
const override = process.env.HYPERFRAMES_REPO_ROOT;
|
|
14
|
+
if (override) {
|
|
15
|
+
if (existsSync(resolve(override, "packages", "aws-lambda", "package.json"))) return override;
|
|
16
|
+
throw new Error(
|
|
17
|
+
"[hyperframes lambda] HYPERFRAMES_REPO_ROOT is not a hyperframes checkout (no packages/aws-lambda/package.json there). Point it at the repo root, or unset it."
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
let dir = dirname(fileURLToPath(import.meta.url));
|
|
21
|
+
for (let depth = 0; depth < 12; depth++) {
|
|
22
|
+
if (existsSync(resolve(dir, "packages", "aws-lambda", "package.json"))) {
|
|
23
|
+
return dir;
|
|
24
|
+
}
|
|
25
|
+
const parent = dirname(dir);
|
|
26
|
+
if (parent === dir) break;
|
|
27
|
+
dir = parent;
|
|
28
|
+
}
|
|
29
|
+
return void 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
repoRoot
|
|
34
|
+
};
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { createRequire as __hf_createRequire } from "node:module";
|
|
2
|
+
import { fileURLToPath as __hf_fileURLToPath } from "node:url";
|
|
3
|
+
import { dirname as __hf_dirname } from "node:path";
|
|
4
|
+
var require = __hf_createRequire(import.meta.url);
|
|
5
|
+
var __filename = __hf_fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = __hf_dirname(__filename);
|
|
7
|
+
|
|
8
|
+
// ../parsers/dist/slideshow.js
|
|
9
|
+
var SLIDESHOW_MANIFEST_VERSION = 1;
|
|
10
|
+
var SLIDESHOW_ISLAND_TYPE = "application/hyperframes-slideshow+json";
|
|
11
|
+
function slideshowIslandRegex(flags = "i") {
|
|
12
|
+
const escaped = SLIDESHOW_ISLAND_TYPE.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
13
|
+
const htmlWhitespace = "[\\t\\n\\f\\r ]*";
|
|
14
|
+
return new RegExp(
|
|
15
|
+
`<script[^>]*type${htmlWhitespace}=${htmlWhitespace}["']${escaped}["'][^>]*>([\\s\\S]*?)<\\/script>`,
|
|
16
|
+
flags
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
function parseSlideshowManifest(html) {
|
|
20
|
+
const re = slideshowIslandRegex("i");
|
|
21
|
+
const match = re.exec(html);
|
|
22
|
+
if (!match || match[1] === void 0) return null;
|
|
23
|
+
const raw = match[1].trim();
|
|
24
|
+
if (raw.length === 0) return null;
|
|
25
|
+
const parsed = JSON.parse(raw);
|
|
26
|
+
if (!isManifest(parsed)) {
|
|
27
|
+
throw new Error("slideshow island is not a valid SlideshowManifest");
|
|
28
|
+
}
|
|
29
|
+
return parsed;
|
|
30
|
+
}
|
|
31
|
+
function isOptionalNumberArray(v) {
|
|
32
|
+
return v === void 0 || Array.isArray(v) && v.every((n) => typeof n === "number");
|
|
33
|
+
}
|
|
34
|
+
function isOptionalBoolean(v) {
|
|
35
|
+
return v === void 0 || typeof v === "boolean";
|
|
36
|
+
}
|
|
37
|
+
function isRecord(v) {
|
|
38
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
39
|
+
}
|
|
40
|
+
function isHotspotRegion(v) {
|
|
41
|
+
return isRecord(v) && [v["x"], v["y"], v["w"], v["h"]].every(
|
|
42
|
+
(coordinate) => typeof coordinate === "number" && Number.isFinite(coordinate)
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
function isSlideHotspot(v) {
|
|
46
|
+
return isRecord(v) && typeof v["id"] === "string" && typeof v["label"] === "string" && typeof v["target"] === "string" && (v["region"] === void 0 || isHotspotRegion(v["region"]));
|
|
47
|
+
}
|
|
48
|
+
function isSlideRef(v) {
|
|
49
|
+
if (!isRecord(v)) return false;
|
|
50
|
+
const r = v;
|
|
51
|
+
if (typeof r["sceneId"] !== "string") return false;
|
|
52
|
+
if (!isOptionalNumberArray(r["fragments"])) return false;
|
|
53
|
+
if (r["hotspots"] !== void 0 && (!Array.isArray(r["hotspots"]) || !r["hotspots"].every(isSlideHotspot)))
|
|
54
|
+
return false;
|
|
55
|
+
if (!isOptionalBoolean(r["autoplay"])) return false;
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
function isSlideSequence(v) {
|
|
59
|
+
if (typeof v !== "object" || v === null) return false;
|
|
60
|
+
const s = v;
|
|
61
|
+
return typeof s["id"] === "string" && typeof s["label"] === "string" && Array.isArray(s["slides"]) && s["slides"].every(isSlideRef);
|
|
62
|
+
}
|
|
63
|
+
function isManifest(v) {
|
|
64
|
+
if (typeof v !== "object" || v === null || Array.isArray(v)) return false;
|
|
65
|
+
const o = v;
|
|
66
|
+
if (!Array.isArray(o["slides"]) || !o["slides"].every(isSlideRef)) return false;
|
|
67
|
+
if (o["slideSequences"] !== void 0) {
|
|
68
|
+
if (!Array.isArray(o["slideSequences"]) || !o["slideSequences"].every(isSlideSequence))
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
function missingBoundError(sceneId, missing) {
|
|
74
|
+
const present = missing === "startTime" ? "endTime" : "startTime";
|
|
75
|
+
return `slide "${sceneId}" sets ${present} but ${missing} cannot be resolved (no scene "${sceneId}")`;
|
|
76
|
+
}
|
|
77
|
+
function resolveTimeRange(ref, scene, errors) {
|
|
78
|
+
const { startTime, endTime, sceneId } = ref;
|
|
79
|
+
if (startTime !== void 0 && endTime !== void 0) {
|
|
80
|
+
return { start: startTime, end: endTime };
|
|
81
|
+
}
|
|
82
|
+
if (startTime === void 0 && endTime === void 0) {
|
|
83
|
+
if (!scene) {
|
|
84
|
+
errors.push(`slide references unresolved sceneId "${sceneId}"`);
|
|
85
|
+
return { start: 0, end: 0 };
|
|
86
|
+
}
|
|
87
|
+
return { start: scene.start, end: scene.start + scene.duration };
|
|
88
|
+
}
|
|
89
|
+
if (!scene) {
|
|
90
|
+
const missing = startTime === void 0 ? "startTime" : "endTime";
|
|
91
|
+
errors.push(missingBoundError(sceneId, missing));
|
|
92
|
+
const bound = startTime ?? endTime ?? 0;
|
|
93
|
+
return { start: bound, end: bound };
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
start: startTime ?? scene.start,
|
|
97
|
+
end: endTime ?? scene.start + scene.duration
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function validateFragments(sceneId, fragments, start, end, errors) {
|
|
101
|
+
for (const f of fragments) {
|
|
102
|
+
if (f < start || f > end) {
|
|
103
|
+
errors.push(`slide "${sceneId}" fragment ${f} is outside range [${start}, ${end}]`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function resolveSlide(ref, sceneById, errors) {
|
|
108
|
+
const scene = sceneById.get(ref.sceneId);
|
|
109
|
+
const { start, end } = resolveTimeRange(ref, scene, errors);
|
|
110
|
+
if (ref.startTime !== void 0 && ref.endTime !== void 0 && end <= start) {
|
|
111
|
+
errors.push(`slide "${ref.sceneId}" has endTime (${end}) <= startTime (${start})`);
|
|
112
|
+
}
|
|
113
|
+
const fragments = [...new Set(ref.fragments ?? [])].sort((a, b) => a - b);
|
|
114
|
+
validateFragments(ref.sceneId, fragments, start, end, errors);
|
|
115
|
+
return { ...ref, start, end, fragments, hotspots: ref.hotspots ?? [] };
|
|
116
|
+
}
|
|
117
|
+
function resolveSlideshow(manifest, scenes) {
|
|
118
|
+
const errors = [];
|
|
119
|
+
const sceneById = new Map(scenes.map((s) => [s.id, s]));
|
|
120
|
+
const sequences = {};
|
|
121
|
+
for (const seq of manifest.slideSequences ?? []) {
|
|
122
|
+
if (Object.prototype.hasOwnProperty.call(sequences, seq.id)) {
|
|
123
|
+
errors.push(`duplicate slideSequence id "${seq.id}": only the last definition is kept`);
|
|
124
|
+
}
|
|
125
|
+
sequences[seq.id] = {
|
|
126
|
+
id: seq.id,
|
|
127
|
+
label: seq.label,
|
|
128
|
+
slides: seq.slides.map((s) => resolveSlide(s, sceneById, errors))
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const slides = manifest.slides.map((s) => resolveSlide(s, sceneById, errors));
|
|
132
|
+
const allSlides = [...slides, ...Object.values(sequences).flatMap((s) => s.slides)];
|
|
133
|
+
for (const slide of allSlides) {
|
|
134
|
+
for (const h of slide.hotspots) {
|
|
135
|
+
const seq = sequences[h.target];
|
|
136
|
+
if (!seq) {
|
|
137
|
+
errors.push(`hotspot "${h.id}" targets unknown sequence "${h.target}"`);
|
|
138
|
+
} else if (seq.slides.length === 0) {
|
|
139
|
+
errors.push(`hotspot "${h.id}" targets empty sequence "${h.target}"`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const ordered = [...slides].sort((a, b) => a.start - b.start);
|
|
144
|
+
for (let i = 1; i < ordered.length; i++) {
|
|
145
|
+
const prev = ordered[i - 1];
|
|
146
|
+
const curr = ordered[i];
|
|
147
|
+
if (prev !== void 0 && curr !== void 0 && curr.start < prev.end) {
|
|
148
|
+
errors.push(`main-line slides "${prev.sceneId}" and "${curr.sceneId}" overlap`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return { resolved: { slides, sequences }, errors };
|
|
152
|
+
}
|
|
153
|
+
function isSceneLikeCompositionId(compositionId) {
|
|
154
|
+
const normalized = compositionId.trim().toLowerCase();
|
|
155
|
+
if (!normalized || normalized === "main") return false;
|
|
156
|
+
if (normalized.includes("caption")) return false;
|
|
157
|
+
if (normalized.includes("ambient")) return false;
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export {
|
|
162
|
+
SLIDESHOW_MANIFEST_VERSION,
|
|
163
|
+
SLIDESHOW_ISLAND_TYPE,
|
|
164
|
+
slideshowIslandRegex,
|
|
165
|
+
parseSlideshowManifest,
|
|
166
|
+
resolveSlideshow,
|
|
167
|
+
isSceneLikeCompositionId
|
|
168
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { createRequire as __hf_createRequire } from "node:module";
|
|
2
|
+
import { fileURLToPath as __hf_fileURLToPath } from "node:url";
|
|
3
|
+
import { dirname as __hf_dirname } from "node:path";
|
|
4
|
+
var require = __hf_createRequire(import.meta.url);
|
|
5
|
+
var __filename = __hf_fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = __hf_dirname(__filename);
|
|
7
|
+
import {
|
|
8
|
+
failCommand
|
|
9
|
+
} from "./chunk-JVBRJMOP.js";
|
|
10
|
+
|
|
11
|
+
// src/commands/lambda/state.ts
|
|
12
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "fs";
|
|
13
|
+
import { dirname, join } from "path";
|
|
14
|
+
function videoArchitecture(stack) {
|
|
15
|
+
return stack.videoFunctionName ? "arm64" : void 0;
|
|
16
|
+
}
|
|
17
|
+
var STATE_DIR_NAME = ".hyperframes";
|
|
18
|
+
var STATE_FILE_PREFIX = "lambda-stack-";
|
|
19
|
+
var DEFAULT_STACK_NAME = "hyperframes-default";
|
|
20
|
+
function stateFilePath(stackName = DEFAULT_STACK_NAME, cwd = process.cwd()) {
|
|
21
|
+
return join(cwd, STATE_DIR_NAME, `${STATE_FILE_PREFIX}${stackName}.json`);
|
|
22
|
+
}
|
|
23
|
+
function writeStackOutputs(outputs, cwd = process.cwd()) {
|
|
24
|
+
const path = stateFilePath(outputs.stackName, cwd);
|
|
25
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
26
|
+
writeFileSync(path, JSON.stringify(outputs, null, 2) + "\n");
|
|
27
|
+
return path;
|
|
28
|
+
}
|
|
29
|
+
function readStackOutputs(stackName = DEFAULT_STACK_NAME, cwd = process.cwd()) {
|
|
30
|
+
const path = stateFilePath(stackName, cwd);
|
|
31
|
+
if (!existsSync(path)) return null;
|
|
32
|
+
try {
|
|
33
|
+
return JSON.parse(readFileSync(path, "utf-8"));
|
|
34
|
+
} catch {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function deleteStackOutputs(stackName = DEFAULT_STACK_NAME, cwd = process.cwd()) {
|
|
39
|
+
const path = stateFilePath(stackName, cwd);
|
|
40
|
+
if (existsSync(path)) rmSync(path);
|
|
41
|
+
}
|
|
42
|
+
function listStackNames(cwd = process.cwd()) {
|
|
43
|
+
const dir = join(cwd, STATE_DIR_NAME);
|
|
44
|
+
if (!existsSync(dir)) return [];
|
|
45
|
+
return readdirSync(dir).filter((f) => f.startsWith(STATE_FILE_PREFIX) && f.endsWith(".json")).map((f) => f.slice(STATE_FILE_PREFIX.length, -".json".length));
|
|
46
|
+
}
|
|
47
|
+
function requireStack(stackName, cwd = process.cwd()) {
|
|
48
|
+
const stack = readStackOutputs(stackName, cwd);
|
|
49
|
+
if (!stack) {
|
|
50
|
+
const known = listStackNames(cwd);
|
|
51
|
+
let hint = `Run \`framey lambda deploy${stackName === DEFAULT_STACK_NAME ? "" : ` --stack-name=${stackName}`}\` first.`;
|
|
52
|
+
if (known.length) {
|
|
53
|
+
hint += ` Known stacks here: ${known.join(", ")}.`;
|
|
54
|
+
}
|
|
55
|
+
console.error(
|
|
56
|
+
`[framey lambda] no stack state for "${stackName}" at ${stateFilePath(stackName, cwd)}. ${hint}`
|
|
57
|
+
);
|
|
58
|
+
failCommand();
|
|
59
|
+
}
|
|
60
|
+
return stack;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export {
|
|
64
|
+
videoArchitecture,
|
|
65
|
+
DEFAULT_STACK_NAME,
|
|
66
|
+
stateFilePath,
|
|
67
|
+
writeStackOutputs,
|
|
68
|
+
readStackOutputs,
|
|
69
|
+
deleteStackOutputs,
|
|
70
|
+
listStackNames,
|
|
71
|
+
requireStack
|
|
72
|
+
};
|