@hyperframes/core 0.7.63 → 0.7.64

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.
@@ -0,0 +1,33 @@
1
+ export interface HtmlParityComposition {
2
+ id: string;
3
+ originalId: string | null;
4
+ start: number;
5
+ duration: number | null;
6
+ trackIndex: number | null;
7
+ width: number | null;
8
+ height: number | null;
9
+ variableValues: string | null;
10
+ }
11
+ export interface HtmlParityTimedElement {
12
+ identity: string;
13
+ start: number;
14
+ duration: number | null;
15
+ trackIndex: number | null;
16
+ }
17
+ export interface HtmlParityResource {
18
+ identity: string;
19
+ attribute: "src" | "href" | "poster";
20
+ locality: "local" | "remote";
21
+ }
22
+ export interface CompiledHtmlParityContract {
23
+ compositions: HtmlParityComposition[];
24
+ timedElements: HtmlParityTimedElement[];
25
+ authoredStyleSignatures: string[];
26
+ parityFontFamilies: string[];
27
+ resources: HtmlParityResource[];
28
+ runtimeBootstrap: boolean;
29
+ variableBootstrap: boolean;
30
+ }
31
+ /** Extract the browser-visible contract shared by preview and render compilation. */
32
+ export declare function extractCompiledHtmlParityContract(html: string): CompiledHtmlParityContract;
33
+ //# sourceMappingURL=htmlParityContract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlParityContract.d.ts","sourceRoot":"","sources":["../../src/compiler/htmlParityContract.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAiGD,qFAAqF;AACrF,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,CAmC1F"}
@@ -0,0 +1,118 @@
1
+ import { parseHTML } from "linkedom";
2
+ function finiteAttribute(element, name) {
3
+ const raw = element.getAttribute(name);
4
+ if (raw === null || raw.trim() === "")
5
+ return null;
6
+ const value = Number(raw);
7
+ return Number.isFinite(value) ? value : null;
8
+ }
9
+ function timing(element) {
10
+ const start = finiteAttribute(element, "data-start") ?? 0;
11
+ const duration = finiteAttribute(element, "data-duration") ??
12
+ (() => {
13
+ const end = finiteAttribute(element, "data-end");
14
+ return end === null ? null : Math.max(0, end - start);
15
+ })();
16
+ return {
17
+ start,
18
+ duration,
19
+ trackIndex: finiteAttribute(element, "data-track-index") ?? finiteAttribute(element, "data-layer"),
20
+ };
21
+ }
22
+ function normalizeJson(value) {
23
+ if (value === null)
24
+ return null;
25
+ try {
26
+ return JSON.stringify(canonicalizeJson(JSON.parse(value)));
27
+ }
28
+ catch {
29
+ return value.trim();
30
+ }
31
+ }
32
+ function canonicalizeJson(value) {
33
+ if (Array.isArray(value))
34
+ return value.map(canonicalizeJson);
35
+ if (value === null || typeof value !== "object")
36
+ return value;
37
+ return Object.fromEntries(Object.entries(value)
38
+ .sort(([left], [right]) => left.localeCompare(right))
39
+ .map(([key, nested]) => [key, canonicalizeJson(nested)]));
40
+ }
41
+ function styleSignatures(document) {
42
+ return [...document.querySelectorAll("style")]
43
+ .map((style) => style.textContent ?? "")
44
+ .flatMap((css) => css.match(/[^{}]+\{[^{}]*--parity-contract\s*:[^{}]+\}/g) ?? [])
45
+ .map((rule) => rule
46
+ .replace(/\s+/g, " ")
47
+ .replace(/\s*([:;{},])\s*/g, "$1")
48
+ .trim())
49
+ .sort();
50
+ }
51
+ function parityFontFamilies(html) {
52
+ const families = new Set();
53
+ for (const match of html.matchAll(/font-family\s*:\s*([^;}]+)/gi)) {
54
+ for (const family of match[1].split(",")) {
55
+ const normalized = family.trim().replace(/^['"]|['"]$/g, "");
56
+ if (normalized.startsWith("Parity"))
57
+ families.add(normalized);
58
+ }
59
+ }
60
+ return [...families].sort();
61
+ }
62
+ function resources(document) {
63
+ const resources = [];
64
+ for (const [index, element] of [
65
+ ...document.querySelectorAll("[src], [href], [poster]"),
66
+ ].entries()) {
67
+ for (const attribute of ["src", "href", "poster"]) {
68
+ const value = element.getAttribute(attribute)?.trim();
69
+ if (!value)
70
+ continue;
71
+ if (element.tagName.toLowerCase() === "script" && /hyperframes|runtime/i.test(value))
72
+ continue;
73
+ resources.push({
74
+ identity: element.getAttribute("data-hf-id") ??
75
+ element.getAttribute("id") ??
76
+ `${element.tagName.toLowerCase()}[${index}]`,
77
+ attribute,
78
+ locality: /^https?:\/\//i.test(value) ? "remote" : "local",
79
+ });
80
+ }
81
+ }
82
+ return resources.sort((left, right) => `${left.identity}:${left.attribute}`.localeCompare(`${right.identity}:${right.attribute}`));
83
+ }
84
+ /** Extract the browser-visible contract shared by preview and render compilation. */
85
+ export function extractCompiledHtmlParityContract(html) {
86
+ const { document } = parseHTML(html);
87
+ const compositions = [...document.querySelectorAll("[data-composition-id]")].map((element) => {
88
+ const resolved = timing(element);
89
+ return {
90
+ id: element.getAttribute("data-composition-id") ?? "",
91
+ originalId: element.getAttribute("data-hf-original-composition-id"),
92
+ ...resolved,
93
+ width: finiteAttribute(element, "data-width"),
94
+ height: finiteAttribute(element, "data-height"),
95
+ variableValues: normalizeJson(element.getAttribute("data-variable-values")),
96
+ };
97
+ });
98
+ const timedElements = [
99
+ ...document.querySelectorAll("[data-start], [data-duration], [data-end], [data-track-index], [data-layer]"),
100
+ ]
101
+ .filter((element) => !element.hasAttribute("data-composition-id"))
102
+ .map((element, index) => ({
103
+ identity: element.getAttribute("data-hf-id") ??
104
+ element.getAttribute("id") ??
105
+ `${element.tagName.toLowerCase()}[${index}]`,
106
+ ...timing(element),
107
+ }));
108
+ return {
109
+ compositions,
110
+ timedElements,
111
+ authoredStyleSignatures: styleSignatures(document),
112
+ parityFontFamilies: parityFontFamilies(html),
113
+ resources: resources(document),
114
+ runtimeBootstrap: /__hyperframes|data-hyperframes-(?:preview-)?runtime/i.test(html),
115
+ variableBootstrap: /__hfVariables(?:ByComp)?/.test(html),
116
+ };
117
+ }
118
+ //# sourceMappingURL=htmlParityContract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlParityContract.js","sourceRoot":"","sources":["../../src/compiler/htmlParityContract.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export { compileTimingAttrs, injectDurations, extractResolvedMedia, clampDuratio
3
3
  export { compileHtml, type MediaDurationProber } from "./htmlCompiler";
4
4
  export { assignBundledRuntimeCompositionIds, type BundledHostCompositionIdentity, bundleToSingleHtml, type BundleOptions, prepareFlattenedInnerRoot, FLATTENED_INNER_ROOT_STRIP_ATTRS, emitRootCompositionVariableStyles, } from "./htmlBundler";
5
5
  export { readDeclaredDefaults, parseHostVariableValues } from "../runtime/getVariables";
6
+ export { extractCompiledHtmlParityContract, type CompiledHtmlParityContract, type HtmlParityComposition, type HtmlParityResource, type HtmlParityTimedElement, } from "./htmlParityContract";
6
7
  export { RUNTIME_BOOTSTRAP_ATTR, injectScriptsAtHeadStart, injectScriptsIntoHtml, parseHTMLContent, stripEmbeddedRuntimeScripts, } from "./htmlDocument";
7
8
  export { validateHyperframeHtmlContract, type HyperframeStaticFailureReason, type HyperframeStaticGuardResult, } from "./staticGuard";
8
9
  export { buildVariablesByCompScript, scopeCssToComposition, wrapScopedCompositionScript, } from "./compositionScoping";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,gCAAgC,EAChC,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EACL,kCAAkC,EAClC,KAAK,8BAA8B,EACnC,kBAAkB,EAClB,KAAK,aAAa,EAClB,yBAAyB,EACzB,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,8BAA8B,EAC9B,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EACL,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,gCAAgC,EAChC,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EACL,kCAAkC,EAClC,KAAK,8BAA8B,EACnC,kBAAkB,EAClB,KAAK,aAAa,EAClB,yBAAyB,EACzB,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EACL,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,8BAA8B,EAC9B,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EACL,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -8,6 +8,7 @@ export { compileHtml } from "./htmlCompiler.js";
8
8
  // HTML bundler (Node.js — requires fs, linkedom, esbuild)
9
9
  export { assignBundledRuntimeCompositionIds, bundleToSingleHtml, prepareFlattenedInnerRoot, FLATTENED_INNER_ROOT_STRIP_ATTRS, emitRootCompositionVariableStyles, } from "./htmlBundler.js";
10
10
  export { readDeclaredDefaults, parseHostVariableValues } from "../runtime/getVariables.js";
11
+ export { extractCompiledHtmlParityContract, } from "./htmlParityContract.js";
11
12
  export { RUNTIME_BOOTSTRAP_ATTR, injectScriptsAtHeadStart, injectScriptsIntoHtml, parseHTMLContent, stripEmbeddedRuntimeScripts, } from "./htmlDocument.js";
12
13
  // Static guard
13
14
  export { validateHyperframeHtmlContract, } from "./staticGuard.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,oEAAoE;AACpE,OAAO,EACL,cAAc,GAOf,MAAM,kBAAkB,CAAC;AAE1B,iCAAiC;AACjC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,gCAAgC,GAKjC,MAAM,kBAAkB,CAAC;AAE1B,wCAAwC;AACxC,OAAO,EAAE,WAAW,EAA4B,MAAM,gBAAgB,CAAC;AAEvE,0DAA0D;AAC1D,OAAO,EACL,kCAAkC,EAElC,kBAAkB,EAElB,yBAAyB,EACzB,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAExB,eAAe;AACf,OAAO,EACL,8BAA8B,GAG/B,MAAM,eAAe,CAAC;AAEvB,gCAAgC;AAChC,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,iEAAiE;AACjE,OAAO,EACL,qBAAqB,GAGtB,MAAM,yBAAyB,CAAC;AAEjC,6EAA6E;AAC7E,iEAAiE;AACjE,qCAAqC;AACrC,OAAO,EACL,4BAA4B,GAI7B,MAAM,0BAA0B,CAAC;AAElC,4DAA4D;AAC5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,oEAAoE;AACpE,OAAO,EACL,cAAc,GAOf,MAAM,kBAAkB,CAAC;AAE1B,iCAAiC;AACjC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,gCAAgC,GAKjC,MAAM,kBAAkB,CAAC;AAE1B,wCAAwC;AACxC,OAAO,EAAE,WAAW,EAA4B,MAAM,gBAAgB,CAAC;AAEvE,0DAA0D;AAC1D,OAAO,EACL,kCAAkC,EAElC,kBAAkB,EAElB,yBAAyB,EACzB,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EACL,iCAAiC,GAKlC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAExB,eAAe;AACf,OAAO,EACL,8BAA8B,GAG/B,MAAM,eAAe,CAAC;AAEvB,gCAAgC;AAChC,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,iEAAiE;AACjE,OAAO,EACL,qBAAqB,GAGtB,MAAM,yBAAyB,CAAC;AAEjC,6EAA6E;AAC7E,iEAAiE;AACjE,qCAAqC;AACrC,OAAO,EACL,4BAA4B,GAI7B,MAAM,0BAA0B,CAAC;AAElC,4DAA4D;AAC5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Browser-safe wire constants shared by the runtime, Studio, and studio-server.
3
+ *
4
+ * Keep this module dependency-free. These names are part of the edit protocol,
5
+ * not server implementation details, so browser code must be able to import
6
+ * them without pulling the studio-server package into its graph.
7
+ */
8
+ export declare const STUDIO_OFFSET_X_PROP = "--hf-studio-offset-x";
9
+ export declare const STUDIO_OFFSET_Y_PROP = "--hf-studio-offset-y";
10
+ export declare const STUDIO_WIDTH_PROP = "--hf-studio-width";
11
+ export declare const STUDIO_HEIGHT_PROP = "--hf-studio-height";
12
+ export declare const STUDIO_MANUAL_EDIT_GESTURE_ATTR = "data-hf-studio-manual-edit-gesture";
13
+ //# sourceMappingURL=draftMarkers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draftMarkers.d.ts","sourceRoot":"","sources":["../../src/editing/draftMarkers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,+BAA+B,uCAAuC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Browser-safe wire constants shared by the runtime, Studio, and studio-server.
3
+ *
4
+ * Keep this module dependency-free. These names are part of the edit protocol,
5
+ * not server implementation details, so browser code must be able to import
6
+ * them without pulling the studio-server package into its graph.
7
+ */
8
+ export const STUDIO_OFFSET_X_PROP = "--hf-studio-offset-x";
9
+ export const STUDIO_OFFSET_Y_PROP = "--hf-studio-offset-y";
10
+ export const STUDIO_WIDTH_PROP = "--hf-studio-width";
11
+ export const STUDIO_HEIGHT_PROP = "--hf-studio-height";
12
+ export const STUDIO_MANUAL_EDIT_GESTURE_ATTR = "data-hf-studio-manual-edit-gesture";
13
+ //# sourceMappingURL=draftMarkers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draftMarkers.js","sourceRoot":"","sources":["../../src/editing/draftMarkers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,+BAA+B,GAAG,oCAAoC,CAAC"}
@@ -1,3 +1,3 @@
1
- /** @deprecated Import from @hyperframes/studio-server/draft-markers */
2
- export * from "@hyperframes/studio-server/draft-markers";
1
+ /** @deprecated Import from @hyperframes/core/editing/draft-markers. */
2
+ export * from "../../editing/draftMarkers.js";
3
3
  //# sourceMappingURL=draftMarkers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"draftMarkers.d.ts","sourceRoot":"","sources":["../../../src/studio-api/helpers/draftMarkers.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,cAAc,0CAA0C,CAAC"}
1
+ {"version":3,"file":"draftMarkers.d.ts","sourceRoot":"","sources":["../../../src/studio-api/helpers/draftMarkers.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,cAAc,+BAA+B,CAAC"}
@@ -1,3 +1,3 @@
1
- /** @deprecated Import from @hyperframes/studio-server/draft-markers */
2
- export * from "@hyperframes/studio-server/draft-markers";
1
+ /** @deprecated Import from @hyperframes/core/editing/draft-markers. */
2
+ export * from "../../editing/draftMarkers.js";
3
3
  //# sourceMappingURL=draftMarkers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"draftMarkers.js","sourceRoot":"","sources":["../../../src/studio-api/helpers/draftMarkers.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,cAAc,0CAA0C,CAAC"}
1
+ {"version":3,"file":"draftMarkers.js","sourceRoot":"","sources":["../../../src/studio-api/helpers/draftMarkers.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,cAAc,+BAA+B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperframes/core",
3
- "version": "0.7.63",
3
+ "version": "0.7.64",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -42,6 +42,10 @@
42
42
  "import": "./dist/editing/affordances.js",
43
43
  "types": "./dist/editing/affordances.d.ts"
44
44
  },
45
+ "./editing/draft-markers": {
46
+ "import": "./dist/editing/draftMarkers.js",
47
+ "types": "./dist/editing/draftMarkers.d.ts"
48
+ },
45
49
  "./figma": {
46
50
  "import": "./dist/figma/index.js",
47
51
  "types": "./dist/figma/index.d.ts"
@@ -194,9 +198,9 @@
194
198
  "bpm-detective": "^2.0.5",
195
199
  "linkedom": "^0.18.12",
196
200
  "postcss": "^8.5.8",
197
- "@hyperframes/lint": "0.7.63",
198
- "@hyperframes/studio-server": "0.7.63",
199
- "@hyperframes/parsers": "0.7.63"
201
+ "@hyperframes/parsers": "0.7.64",
202
+ "@hyperframes/studio-server": "0.7.64",
203
+ "@hyperframes/lint": "0.7.64"
200
204
  },
201
205
  "devDependencies": {
202
206
  "@types/jsdom": "^28.0.0",