hyperframes 0.8.79 → 0.8.80
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/dist/cli.js +1945 -1428
- package/dist/fontLocalizeCli.js +63 -23
- package/dist/hyperframe-runtime.js +55 -55
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +55 -55
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/registry/localSemantic.js +6 -25
- package/dist/skills/media-use/audio/references/remove-background.md +1 -1
- package/dist/skills/media-use/registry/localSemantic.js +6 -25
- package/dist/skills/media-use/scripts/lib/config-lock.d.mts +3 -0
- package/dist/skills/media-use/scripts/lib/config-lock.mjs +45 -0
- package/dist/skills/media-use/scripts/lib/config-lock.test.mjs +79 -0
- package/dist/skills/media-use/scripts/lib/telemetry.mjs +24 -8
- package/dist/skills/media-use/scripts/lib/telemetry.test.mjs +63 -0
- package/dist/skills/registry/localSemantic.js +6 -25
- package/dist/studio/assets/hyperframes-player-CgnoxDoD.js +464 -0
- package/dist/studio/assets/{index-DBKySIo7.js → index-CsG24Jub.js} +190 -187
- package/dist/studio/assets/{index-CJP92F4-.js → index-DZGVvqDT.js} +1 -1
- package/dist/studio/assets/{index-ORZXYB0k.js → index-J9HXe7mU.js} +1 -1
- package/dist/studio/index.d.ts +18 -1
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +1491 -1177
- package/dist/studio/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/studio/assets/hyperframes-player-Bx_Kw4Ey.js +0 -464
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as P}from"./index-
|
|
1
|
+
import{g as P}from"./index-CsG24Jub.js";function j(c,d){for(var s=0;s<d.length;s++){const a=d[s];if(typeof a!="string"&&!Array.isArray(a)){for(const i in a)if(i!=="default"&&!(i in c)){const l=Object.getOwnPropertyDescriptor(a,i);l&&Object.defineProperty(c,i,l.get?l:{enumerable:!0,get:()=>a[i]})}}}return Object.freeze(Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}))}var v={},w;function k(){if(w)return v;w=1,Object.defineProperty(v,"__esModule",{value:!0}),v.default=d;var c=window.OfflineAudioContext||window.webkitOfflineAudioContext;function d(e){var r=a(e);return r.start(0),[i,y,O(e.sampleRate),s].reduce(function(t,o){return o(t)},r.buffer.getChannelData(0))}function s(e){return e.sort(function(r,t){return t.count-r.count}).splice(0,5)[0].tempo}function a(e){var r=e.length,t=e.numberOfChannels,o=e.sampleRate,n=new c(t,r,o),u=n.createBufferSource();u.buffer=e;var f=n.createBiquadFilter();return f.type="lowpass",u.connect(f),f.connect(n.destination),u}function i(e){for(var r=[],t=.9,o=.3,n=15;r.length<n&&t>=o;)r=l(e,t),t-=.05;if(r.length<n)throw new Error("Could not find enough samples for a reliable detection.");return r}function l(e,r){for(var t=[],o=0,n=e.length;o<n;o+=1)e[o]>r&&(t.push(o),o+=1e4);return t}function y(e){var r=[];return e.forEach(function(t,o){for(var n=function(x){var g=e[o+x]-t,_=r.some(function(h){if(h.interval===g)return h.count+=1});_||r.push({interval:g,count:1})},u=0;u<10;u+=1)n(u)}),r}function O(e){return function(r){var t=[];return r.forEach(function(o){if(o.interval!==0){for(var n=60/(o.interval/e);n<90;)n*=2;for(;n>180;)n/=2;n=Math.round(n);var u=t.some(function(f){if(f.tempo===n)return f.count+=o.count});u||t.push({tempo:n,count:o.count})}}),t}}return v}var p,b;function q(){return b||(b=1,p=k().default),p}var m=q();const A=P(m),D=j({__proto__:null,default:A},[m]);export{D as i};
|
package/dist/studio/index.d.ts
CHANGED
|
@@ -1246,6 +1246,7 @@ interface TimelineEditCallbacks {
|
|
|
1246
1246
|
onToggleTrackHidden?: (track: number, hidden: boolean, displayNumber?: number | null) => Promise<void> | void;
|
|
1247
1247
|
/** B7's bus strip: live-write the group's own attribute while dragging. */
|
|
1248
1248
|
onSetAudioGroupAttributeLive?: (groupId: string, attr: string, value: string | null) => void;
|
|
1249
|
+
onRevertAudioGroupAttributeLive?: (groupId: string, attr: string) => void;
|
|
1249
1250
|
/** ...and persist one undo entry on release. */
|
|
1250
1251
|
onSetAudioGroupAttributeQuiet?: (groupId: string, attr: string, value: string | null, label: string) => Promise<TimelineEditOutcome | void>;
|
|
1251
1252
|
/** C1's ungrouped-track FX pointer: "Group these clips" — write
|
|
@@ -1255,6 +1256,7 @@ interface TimelineEditCallbacks {
|
|
|
1255
1256
|
/** C1's single-clip FX write: addressed by the clip itself rather than the
|
|
1256
1257
|
* current selection, mirroring `onSetAudioGroupAttributeLive/Quiet`. */
|
|
1257
1258
|
onSetElementAttributeLive?: (element: TimelineElement, attr: string, value: string | null) => void;
|
|
1259
|
+
onRevertElementAttributeLive?: (element: TimelineElement, attr: string) => void;
|
|
1258
1260
|
onSetElementAttributeQuiet?: (element: TimelineElement, attr: string, value: string | null, label: string) => Promise<TimelineEditOutcome | void>;
|
|
1259
1261
|
onBlockedEditAttempt?: (element: TimelineElement, intent: BlockedTimelineEditIntent) => void;
|
|
1260
1262
|
onSplitElement?: (element: TimelineElement, splitTime: number) => Promise<void> | void;
|
|
@@ -2027,6 +2029,7 @@ interface TimelineEditCallbackDeps {
|
|
|
2027
2029
|
handleToggleTrackHidden: (track: number, hidden: boolean) => Promise<void> | void;
|
|
2028
2030
|
setAudioGroupAttribute: {
|
|
2029
2031
|
setLive: (groupId: string, attr: string, value: string | null) => void;
|
|
2032
|
+
revertLive?: (groupId: string, attr: string) => void;
|
|
2030
2033
|
setQuiet: (groupId: string, attr: string, value: string | null, label: string) => Promise<TimelineEditOutcome | void>;
|
|
2031
2034
|
};
|
|
2032
2035
|
handleBlockedTimelineEdit: (element: TimelineElement, intent: BlockedTimelineEditIntent) => void;
|
|
@@ -2038,6 +2041,7 @@ interface TimelineEditCallbackDeps {
|
|
|
2038
2041
|
/** C1's single-clip FX write, addressed by the clip itself. */
|
|
2039
2042
|
setElementFxAttribute?: {
|
|
2040
2043
|
setLive: (element: TimelineElement, attr: string, value: string | null) => void;
|
|
2044
|
+
revertLive?: (element: TimelineElement, attr: string) => void;
|
|
2041
2045
|
setQuiet: (element: TimelineElement, attr: string, value: string | null, label: string) => Promise<TimelineEditOutcome | void>;
|
|
2042
2046
|
};
|
|
2043
2047
|
}
|
|
@@ -2695,6 +2699,14 @@ declare function usePersistentEditHistory({ projectId }: UsePersistentEditHistor
|
|
|
2695
2699
|
redo: (callbacks: ApplyCallbacks) => Promise<ApplyResult>;
|
|
2696
2700
|
};
|
|
2697
2701
|
|
|
2702
|
+
/** The files an undo or redo rewrote. */
|
|
2703
|
+
interface LiveLaneRestore {
|
|
2704
|
+
paths?: string[];
|
|
2705
|
+
files?: Record<string, {
|
|
2706
|
+
restored: string;
|
|
2707
|
+
}>;
|
|
2708
|
+
}
|
|
2709
|
+
|
|
2698
2710
|
declare function useTimelineEditing({ projectId, activeCompPath, timelineElements, showToast, writeProjectFile, observeProjectFileVersion, recordEdit, reloadPreview, previewIframeRef, pendingTimelineEditPathRef, uploadProjectFiles, isRecordingRef, sdkSession, publishSdkSession, forceReloadSdkSession, invalidateGsapCache, handleDomZIndexReorderCommitRef, canEdit, }: UseTimelineEditingOptions): {
|
|
2699
2711
|
handleTimelineElementMove: (element: TimelineElement, updates: TimelineMoveUpdates) => Promise<void>;
|
|
2700
2712
|
handleTimelineElementResize: (element: TimelineElement, updates: Pick<TimelineElement, "start" | "duration" | "playbackStart">) => Promise<void>;
|
|
@@ -2704,10 +2716,14 @@ declare function useTimelineEditing({ projectId, activeCompPath, timelineElement
|
|
|
2704
2716
|
setAudioGroupAttribute: {
|
|
2705
2717
|
setQuiet: (groupId: string, attr: string, value: string | null, label: string) => Promise<TimelineEditOutcome>;
|
|
2706
2718
|
setLive: (groupId: string, attr: string, value: string | null) => void;
|
|
2719
|
+
revertLive: (groupId: string, attr: string) => void;
|
|
2720
|
+
restoreLive: (restore: LiveLaneRestore) => void;
|
|
2707
2721
|
};
|
|
2708
2722
|
setElementFxAttribute: {
|
|
2709
2723
|
setQuiet: (element: TimelineElement, attr: string, value: string | null, label: string) => Promise<TimelineEditOutcome>;
|
|
2710
2724
|
setLive: (element: TimelineElement, attr: string, value: string | null) => void;
|
|
2725
|
+
revertLive: (element: TimelineElement, attr: string) => void;
|
|
2726
|
+
restoreLive: (restore: LiveLaneRestore) => void;
|
|
2711
2727
|
};
|
|
2712
2728
|
handleTimelineElementDelete: (element: TimelineElement) => Promise<void>;
|
|
2713
2729
|
handleTimelineElementsDelete: (selection: TimelineElement[]) => Promise<void>;
|
|
@@ -2720,6 +2736,7 @@ declare function useTimelineEditing({ projectId, activeCompPath, timelineElement
|
|
|
2720
2736
|
handleBlockedTimelineEdit: (element: TimelineElement) => void;
|
|
2721
2737
|
handleTimelineGroupMove: (changes: TimelineGroupMoveChange[], options?: TimelineGroupCommitOptions | undefined) => Promise<void>;
|
|
2722
2738
|
handleTimelineGroupResize: (changes: TimelineGroupResizeChange[], options?: TimelineGroupCommitOptions | undefined) => Promise<void>;
|
|
2739
|
+
restoreLiveLanes: (restore: Parameters<(restore: LiveLaneRestore) => void>[0]) => void;
|
|
2723
2740
|
};
|
|
2724
2741
|
|
|
2725
2742
|
declare class StudioSaveHttpError extends Error {
|
|
@@ -2790,7 +2807,7 @@ interface UseEditHistoryActionsOptions {
|
|
|
2790
2807
|
showToast: (message: string, tone?: "error" | "info") => void;
|
|
2791
2808
|
syncHistoryPreviewAfterApply: (restore: Pick<HistoryResult, "paths" | "files">) => Promise<void>;
|
|
2792
2809
|
waitForPendingDomEditSaves: () => Promise<void>;
|
|
2793
|
-
onAfterUndoRedo?: () => void;
|
|
2810
|
+
onAfterUndoRedo?: (restore: Pick<HistoryResult, "paths" | "files">) => void;
|
|
2794
2811
|
/** Active composition path — decides whether undo/redo must resync the SDK session. */
|
|
2795
2812
|
activeCompPath?: string | null;
|
|
2796
2813
|
/** Reloads the SDK session after a revert of the active comp, past the self-write suppress window. */
|
package/dist/studio/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
7
7
|
<title>HyperFrames Studio</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-CsG24Jub.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-BWJqxeaH.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|