mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-11-08 15:57:01 +00:00
* fix(studio): serve files whose name has a bare percent sign A browser sends src="100%.png" with the % unescaped, and decoding the whole path threw, so Studio answered 500. Only well-formed escapes are decoded now. * fix(cli): serve files with a bare percent sign from the check and snapshot server One shared decode rule for request paths; the image thumbnail route's malformed-escape 400 could no longer fire, so a name that is not a file is a 404. * fix(cli): name a failed file with a bare percent sign in check * fix(studio): keep apostrophes and dollar signs in file names when editing attributes An attribute value is matched by its own quote kind, so src="it's.png" is replaced instead of duplicated, and every insert uses a function replacer, so $1 or $& in a file name is written as is. * fix(studio): rename references spelled with %20 or & and read quoted media sources WIP: not yet tested; see the resume note. * fix(studio): match whole attribute names when editing media sources * fix(studio): compare decoded names and escape replacement references * fix(studio): preserve file references across URL and string consumers * docs: clarify raw file references and URL fields * fix(studio): keep raw path identity distinct from URL spelling * fix: share attribute grammar and decode media URLs at their readers * fix: preserve local filename identity in HTML URL output * fix: decode entity references before rename candidate matching * style: format rename entity handling and regressions * fix: preserve platform file identity when renaming references * fix(core): decode CSS escapes before rebasing asset URLs * fix(core): consume CSS continuations before URL encoding * fix(core): preserve CSS URL identity and escape rebased suffixes * fix(core): express CSS suffix controls with Unicode categories * fix(core): preserve URL backslash identity while rebasing * test(core): respect platform backslash filename semantics * fix(studio): a dropped file with %, # or ? in its name loads, and an encoded reference renames * fix(studio): read an authored src as a URL so dropped files with spaces, %, # or ? load * fix(studio): media routes find files named with ? or #, and the probe reads a src as a URL * fix(studio-server): one rule for request file paths, so loudness finds files named with %, # or ? * chore: drop the design note from the change * fix(core): rename replaced clips whose src is URL-encoded
79 lines
2.6 KiB
TypeScript
79 lines
2.6 KiB
TypeScript
export { createStudioApi } from "./createStudioApi.js";
|
|
export { MAX_UPLOAD_BYTES } from "./routes/files.js";
|
|
export {
|
|
createProjectSignature,
|
|
affectsProjectSignature,
|
|
STUDIO_SIGNATURE_MANIFEST_PATHS,
|
|
} from "./helpers/projectSignature.js";
|
|
export { compositionsAffectedBy } from "./helpers/compositionInputs.js";
|
|
export { affectsPreview } from "./helpers/previewReads.js";
|
|
export * from "./history/index.js";
|
|
export { cleanupProxyCache } from "./helpers/proxyCache.js";
|
|
export { CACHE_DIR_NAME as PROXY_CACHE_DIR_NAME } from "./helpers/proxyTranscoder.js";
|
|
export type {
|
|
StudioApiAdapter,
|
|
ResolvedProject,
|
|
RenderJobState,
|
|
MediaProcessingJobState,
|
|
LintResult,
|
|
StudioSelectionResponse,
|
|
StudioSelectionSnapshot,
|
|
StudioSelectionTextField,
|
|
} from "./types.js";
|
|
export { isSafePath, walkDir } from "./helpers/safePath.js";
|
|
export { stampProjectHfIds } from "./helpers/hfIdPersist.js";
|
|
export {
|
|
patchElementInHtml,
|
|
splitElementInHtml,
|
|
removeElementFromHtml,
|
|
findTargetElement,
|
|
parseSourceDocument,
|
|
dedupeClonedCompositionId,
|
|
type PatchOperation,
|
|
type SourceMutationTarget,
|
|
} from "./helpers/sourceMutation.js";
|
|
export { duplicateElementInHtml, type DuplicateElementResult } from "./helpers/duplicateElement.js";
|
|
export {
|
|
applyFileMutations,
|
|
type AppliedFileMutation,
|
|
type FileMutationInput,
|
|
} from "./helpers/applyFileMutations.js";
|
|
export type { PreviewApiAdapter } from "./helpers/mediaProxyPreview.js";
|
|
export { PREVIEW_BUNDLE_OPTIONS } from "./routes/preview.js";
|
|
export { createPreviewDocumentStore } from "./helpers/previewDocumentStore.js";
|
|
export { getMimeType, MIME_TYPES } from "./helpers/mime.js";
|
|
export { decodeWellFormedEscapes, requestSubPath } from "./helpers/requestSubPath.js";
|
|
export {
|
|
consumeFileWriteReceipt,
|
|
identifyFileWrite,
|
|
fileContentVersion,
|
|
DELETED_VERSION,
|
|
settledFileTag,
|
|
type FileWriteReceipt,
|
|
} from "./helpers/fileVersion.js";
|
|
export { buildSubCompositionHtml } from "./helpers/subComposition.js";
|
|
export {
|
|
clearElementScreenshotIsolation,
|
|
getElementScreenshotClip,
|
|
type ScreenshotClip,
|
|
} from "./helpers/screenshotClip.js";
|
|
export {
|
|
thumbnailDeviceScaleFactor,
|
|
type ThumbnailOutputDimensions,
|
|
} from "./helpers/thumbnailOutput.js";
|
|
export {
|
|
createBackgroundRemovalJob,
|
|
type BackgroundRemovalRender,
|
|
} from "./helpers/backgroundRemovalJob.js";
|
|
export {
|
|
STUDIO_MANUAL_EDITS_PATH,
|
|
createStudioManualEditsRenderBodyScript,
|
|
createStudioPositionSeekReapplyScript,
|
|
type StudioManualEditsRenderScriptOptions,
|
|
} from "./helpers/manualEditsRenderScript.js";
|
|
export {
|
|
STUDIO_MOTION_PATH,
|
|
createStudioMotionRenderBodyScript,
|
|
type StudioMotionRenderScriptOptions,
|
|
} from "./helpers/studioMotionRenderScript.js";
|