@mengine/medeo-client 3.0.1-tool-guardrails.0 → 3.1.1-dsl.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{dsl-96AZnd7O.js → dsl-Xm5NW58k.js} +164 -4
- package/dist/dsl.d.ts +2 -2
- package/dist/dsl.js +2 -2
- package/dist/{index-C1iiDt_Q.d.ts → index-CQ8h3u9S.d.ts} +30 -2
- package/dist/{index-CSjqNIoR.d.ts → index-D48u9I25.d.ts} +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ For explicit synchronization, use `ManualSyncDoc.open({client, peerId})`, then `
|
|
|
47
47
|
- AudioScript: segmented text; segments are inserted, moved and deleted by id, each with its own native Text. A transcript names the transcription file it was read from, and its segments keep the `startMs`/`endMs` that file gave them (`tx.insertSegment(..., time)`); a segment's time is written when it is added and never edited.
|
|
48
48
|
- Caption: independent native Text or a selection of one script segment (whole, or a Cursor run inside it); style and source switching.
|
|
49
49
|
|
|
50
|
-
`resolveDslLayout`, `toVideoDraft`, `fromVideoDraft`, `toAudioScriptViews`, `MedeoDsl` and the model types are exported from the root and `/dsl`. `toAudioScriptViews` (on a session, `projectAudioScripts()`) reads the same snapshot as the VideoDraft and lists every AudioScript with its segments — a transcript's with their `startMs`/`endMs` and a `timelineMs`, the position on the earliest Clip playing the transcribed medium whose window holds that moment — its PhoneticScripts with their digests, the speech Clips saying it (with `applied`) and the Caption Clips showing one of its segments. Projection returns diagnostics; unrepresentable legacy output throws `DslProjectionError`. `MengineHttpClient.fetchDraft()` / `fetchDraftAt(seq)` read the server's content, diagnostics and matching version.
|
|
50
|
+
`resolveDslLayout`, `toVideoDraft`, `fromVideoDraft`, `normalizeLegacyVideoDraft` (the repairs a saved Legacy draft gets before import), `toAudioScriptViews`, `MedeoDsl`, the placeholder media (`BLANK_PLACEHOLDER`, `missingMediaPlaceholder`) and the model types are exported from the root and `/dsl`. `toAudioScriptViews` (on a session, `projectAudioScripts()`) reads the same snapshot as the VideoDraft and lists every AudioScript with its segments — a transcript's with their `startMs`/`endMs` and a `timelineMs`, the position on the earliest Clip playing the transcribed medium whose window holds that moment — its PhoneticScripts with their digests, the speech Clips saying it (with `applied`) and the Caption Clips showing one of its segments. Projection returns diagnostics; unrepresentable legacy output throws `DslProjectionError`. `MengineHttpClient.fetchDraft()` / `fetchDraftAt(seq)` read the server's content, diagnostics and matching version.
|
|
51
51
|
|
|
52
52
|
## The DSL document
|
|
53
53
|
|
|
@@ -173,9 +173,39 @@ function assertScriptSegment(value) {
|
|
|
173
173
|
/** A script's segments: each with its own id, unique within the script. */
|
|
174
174
|
const segments = (v) => Array.isArray(v) && v.every(segment) && new Set(v.map((s) => s.id)).size === v.length;
|
|
175
175
|
const locator = {
|
|
176
|
-
system: required(oneOf("memota", "memota-speech")),
|
|
176
|
+
system: required(oneOf("memota", "memota-speech", "placeholder")),
|
|
177
177
|
key: required(nonempty)
|
|
178
178
|
};
|
|
179
|
+
/**
|
|
180
|
+
* A placeholder medium is an Image with no file, standing in where a legacy VideoDraft placed a
|
|
181
|
+
* visual clip the old editor drew as a blank (D205). The blank one stands in for a clip placed
|
|
182
|
+
* without media (`origin_media_id: ''`); one keyed by a memota media id stands in for media the
|
|
183
|
+
* clip named but Director found missing, so the id survives. Importing keeps the clips' time on
|
|
184
|
+
* them instead of dropping them. Only migration authors them.
|
|
185
|
+
*/
|
|
186
|
+
const BLANK_PLACEHOLDER = {
|
|
187
|
+
system: "placeholder",
|
|
188
|
+
key: "blank",
|
|
189
|
+
kind: "image"
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Only a memota media id may key a missing-media placeholder: visual parts name media and nothing
|
|
193
|
+
* else, and a key of this shape can never be mistaken for a file.
|
|
194
|
+
*/
|
|
195
|
+
const MISSING_MEDIA_KEY = /^media_[0-9A-Za-z]+$/;
|
|
196
|
+
/** The placeholder for a memota media id Director found missing. */
|
|
197
|
+
function missingMediaPlaceholder(mediaId) {
|
|
198
|
+
return {
|
|
199
|
+
system: "placeholder",
|
|
200
|
+
key: mediaId,
|
|
201
|
+
kind: "image"
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
function assertPlaceholder(media) {
|
|
205
|
+
if (media.system !== "placeholder") return;
|
|
206
|
+
if (media.kind !== "image" || media.key !== BLANK_PLACEHOLDER.key && !(typeof media.key === "string" && MISSING_MEDIA_KEY.test(media.key))) throw new Error("A placeholder is the blank Image or one standing in for a missing memota media id");
|
|
207
|
+
if (media.storageKey !== void 0 || media.digest !== void 0) throw new Error("A placeholder has no file");
|
|
208
|
+
}
|
|
179
209
|
const entityFields = {
|
|
180
210
|
"timeline-entities": {},
|
|
181
211
|
"track-entities": {
|
|
@@ -271,6 +301,7 @@ function assertEntity(table, value) {
|
|
|
271
301
|
checkFields(value, entityFields[table]);
|
|
272
302
|
if (table === "audio-script-entities") assertTranscriptFile(value);
|
|
273
303
|
if (table === "media-entities") {
|
|
304
|
+
assertPlaceholder(value);
|
|
274
305
|
if (value.kind === "image" && value.durationMs !== void 0) throw new Error("Image has no intrinsic duration");
|
|
275
306
|
if (value.kind !== "image" && !positive(value.durationMs)) throw new Error("Finite media requires durationMs");
|
|
276
307
|
if (["audio", "voiceover-recording"].includes(value.kind) && !nonempty(value.storageKey)) throw new Error("Audio requires storageKey");
|
|
@@ -299,6 +330,7 @@ function assertEntityPatch(table, patch, current) {
|
|
|
299
330
|
]) if (Object.hasOwn(patch, key) && patch[key] !== current[key]) throw new Error(`Resource identity field is immutable: ${key}`);
|
|
300
331
|
}
|
|
301
332
|
if (table === "media-entities") {
|
|
333
|
+
assertPlaceholder(next);
|
|
302
334
|
if (Object.hasOwn(patch, "durationMs")) {
|
|
303
335
|
if (next.kind === "image" ? next.durationMs !== void 0 : !positive(next.durationMs)) throw new Error("durationMs must match the media kind");
|
|
304
336
|
}
|
|
@@ -8290,13 +8322,14 @@ function toVideoDraft(snapshot) {
|
|
|
8290
8322
|
duration_ms: clip.durationMs
|
|
8291
8323
|
};
|
|
8292
8324
|
if (track.role === "video_clip") {
|
|
8293
|
-
|
|
8325
|
+
const placeholder = source?.system === "placeholder";
|
|
8326
|
+
if (!source || !["image", "video"].includes(source.kind) || !(source.system === "memota" || placeholder)) fail("Visual playback requires a memota Image or Video, or a placeholder Image");
|
|
8294
8327
|
if (clip.fillTimeline) fail("VideoDraft cannot express timeline-filling visual content");
|
|
8295
8328
|
parts[clip.clipId] = { video_clip: {
|
|
8296
8329
|
...common,
|
|
8297
8330
|
play_in: clip.inMs,
|
|
8298
8331
|
play_out: clip.outMs,
|
|
8299
|
-
origin_media_id: source.key,
|
|
8332
|
+
origin_media_id: placeholder && source.key === BLANK_PLACEHOLDER.key ? "" : source.key,
|
|
8300
8333
|
volume: clip.volume,
|
|
8301
8334
|
...snapshot["clip-entities"][clip.clipId].seqMarker.rate === void 0 ? {} : { speed_shift: {
|
|
8302
8335
|
category: "linear",
|
|
@@ -8518,6 +8551,7 @@ function prepare(input, options) {
|
|
|
8518
8551
|
if (facts.has(id)) fail("mediaFacts", `Duplicate facts for ${fact.system}/${fact.key}`);
|
|
8519
8552
|
facts.set(id, fact);
|
|
8520
8553
|
}
|
|
8554
|
+
for (const fact of facts.values()) if (fact.system === "placeholder" && facts.has(resourceId("media", "memota", fact.key))) fail("mediaFacts", `Media cannot be both present and missing: ${fact.key}`);
|
|
8521
8555
|
const register = (media) => {
|
|
8522
8556
|
const id = resourceId("media", media.system, media.key), old = imported.get(id);
|
|
8523
8557
|
if (old) {
|
|
@@ -8543,6 +8577,15 @@ function prepare(input, options) {
|
|
|
8543
8577
|
const mediaByPart = /* @__PURE__ */ new Map(), scriptByRecording = /* @__PURE__ */ new Map(), scriptsByPart = /* @__PURE__ */ new Map();
|
|
8544
8578
|
const voices = /* @__PURE__ */ new Set();
|
|
8545
8579
|
for (const [id, p] of Object.entries(library)) if (p.video_clip) {
|
|
8580
|
+
if (p.video_clip.origin_media_id === "") {
|
|
8581
|
+
mediaByPart.set(id, register(BLANK_PLACEHOLDER));
|
|
8582
|
+
continue;
|
|
8583
|
+
}
|
|
8584
|
+
const missing = p.video_clip.origin_media_id && facts.get(resourceId("media", "placeholder", p.video_clip.origin_media_id));
|
|
8585
|
+
if (missing) {
|
|
8586
|
+
mediaByPart.set(id, register(missing));
|
|
8587
|
+
continue;
|
|
8588
|
+
}
|
|
8546
8589
|
const fact = factFor("memota", p.video_clip.origin_media_id);
|
|
8547
8590
|
if (fact.kind !== "image" && fact.kind !== "video") fail(`part_library/${id}`, "Expected Image or Video facts");
|
|
8548
8591
|
mediaByPart.set(id, register(fact));
|
|
@@ -8760,5 +8803,122 @@ function importedScript(id, text, mintSegment) {
|
|
|
8760
8803
|
segments
|
|
8761
8804
|
};
|
|
8762
8805
|
}
|
|
8806
|
+
function normalizeLegacyVideoDraft(input, mediaFacts = []) {
|
|
8807
|
+
const draft = structuredClone(input);
|
|
8808
|
+
const diagnostics = [];
|
|
8809
|
+
const note = (code, path, message) => diagnostics.push({
|
|
8810
|
+
code,
|
|
8811
|
+
path,
|
|
8812
|
+
message
|
|
8813
|
+
});
|
|
8814
|
+
const library = draft.part_library ?? {};
|
|
8815
|
+
const tracks = [
|
|
8816
|
+
...draft.above_main_tracks ?? [],
|
|
8817
|
+
...draft.main_track ? [draft.main_track] : [],
|
|
8818
|
+
...draft.below_main_tracks ?? []
|
|
8819
|
+
];
|
|
8820
|
+
const facts = new Map(mediaFacts.map((fact) => [resourceId("media", fact.system, fact.key), fact]));
|
|
8821
|
+
const round = (owner, field, path) => {
|
|
8822
|
+
const fields = owner;
|
|
8823
|
+
const value = fields[field];
|
|
8824
|
+
if (typeof value !== "number" || !Number.isFinite(value) || Number.isSafeInteger(value)) return;
|
|
8825
|
+
const rounded = Math.round(value);
|
|
8826
|
+
fields[field] = rounded;
|
|
8827
|
+
note("legacy-time-rounded", `${path}/${field}`, `${value} → ${rounded}`);
|
|
8828
|
+
};
|
|
8829
|
+
for (const track of tracks) for (const item of track.items ?? []) round(item, "abs_time_position", `tracks/${track.id}/${item.part_id}`);
|
|
8830
|
+
for (const [id, part] of Object.entries(library)) {
|
|
8831
|
+
const path = `part_library/${id}`;
|
|
8832
|
+
if (part.video_clip) for (const f of [
|
|
8833
|
+
"play_in",
|
|
8834
|
+
"play_out",
|
|
8835
|
+
"duration_ms"
|
|
8836
|
+
]) round(part.video_clip, f, path);
|
|
8837
|
+
if (part.speech) for (const f of ["duration_ms", "media_duration_ms"]) round(part.speech, f, path);
|
|
8838
|
+
if (part.caption) for (const f of [
|
|
8839
|
+
"duration_ms",
|
|
8840
|
+
"initial_duration_ms",
|
|
8841
|
+
"start_ms"
|
|
8842
|
+
]) round(part.caption, f, path);
|
|
8843
|
+
if (part.bgm) round(part.bgm, "duration_ms", path);
|
|
8844
|
+
}
|
|
8845
|
+
for (const aggregation of draft.part_aggregations ?? []) for (const attachment of aggregation.attachments ?? []) round(attachment, "relative_time_position", `part_aggregations/${aggregation.body_part_id}/${attachment.part_id}`);
|
|
8846
|
+
const dropped = /* @__PURE__ */ new Set();
|
|
8847
|
+
const drop = (id, why) => {
|
|
8848
|
+
dropped.add(id);
|
|
8849
|
+
note("legacy-part-dropped", `part_library/${id}`, why);
|
|
8850
|
+
};
|
|
8851
|
+
for (const [id, part] of Object.entries(library)) {
|
|
8852
|
+
const path = `part_library/${id}`;
|
|
8853
|
+
const clip = part.video_clip;
|
|
8854
|
+
const sound = part.bgm ?? part.speech;
|
|
8855
|
+
const fact = part.bgm ? facts.get(resourceId("media", "memota", part.bgm.origin_media_id ?? "")) : part.speech && facts.get(resourceId("media", "memota-speech", part.speech.origin_speech_id ?? ""));
|
|
8856
|
+
if (sound && fact && "storageKey" in fact && fact.storageKey && fact.storageKey !== sound.audio_storage_key) {
|
|
8857
|
+
note("legacy-storage-key-current", `${path}/audio_storage_key`, `${sound.audio_storage_key} → ${fact.storageKey}`);
|
|
8858
|
+
sound.audio_storage_key = fact.storageKey;
|
|
8859
|
+
}
|
|
8860
|
+
if (!clip) continue;
|
|
8861
|
+
const rate = clip.speed_shift?.config?.linear?.speed ?? 1;
|
|
8862
|
+
const inMs = clip.play_in ?? 0;
|
|
8863
|
+
const outMs = clip.play_out ?? (clip.duration_ms === void 0 ? void 0 : inMs + Math.round(clip.duration_ms * rate));
|
|
8864
|
+
const source = facts.get(resourceId("media", "memota", clip.origin_media_id ?? ""));
|
|
8865
|
+
let windowEnd = outMs;
|
|
8866
|
+
if (source?.kind === "video" && outMs !== void 0 && outMs > source.durationMs) {
|
|
8867
|
+
windowEnd = source.durationMs;
|
|
8868
|
+
if (windowEnd > inMs) {
|
|
8869
|
+
note("legacy-window-cut", `${path}/play_out`, `${outMs} → ${windowEnd} (source length)`);
|
|
8870
|
+
clip.play_out = windowEnd;
|
|
8871
|
+
if (clip.duration_ms !== void 0) clip.duration_ms = Math.max(0, Math.round((windowEnd - inMs) / rate));
|
|
8872
|
+
}
|
|
8873
|
+
}
|
|
8874
|
+
if (windowEnd === void 0) continue;
|
|
8875
|
+
const length = windowEnd - inMs;
|
|
8876
|
+
if (length <= 0) drop(id, `Empty window ${inMs}–${windowEnd}`);
|
|
8877
|
+
else if (clip.origin_media_id === "" && length / rate < 40) drop(id, `Placeholder sliver of ${length / rate}ms`);
|
|
8878
|
+
}
|
|
8879
|
+
for (const id of dropped) delete library[id];
|
|
8880
|
+
for (const track of tracks) track.items = track.items?.filter((item) => !dropped.has(item.part_id ?? ""));
|
|
8881
|
+
const abs = /* @__PURE__ */ new Map();
|
|
8882
|
+
for (const track of tracks) for (const item of track.items ?? []) abs.set(item.part_id ?? "", item.abs_time_position ?? 0);
|
|
8883
|
+
const mainOrder = new Map((draft.main_track?.items ?? []).map((item, index) => [item.part_id ?? "", index]));
|
|
8884
|
+
const candidates = /* @__PURE__ */ new Map();
|
|
8885
|
+
for (const aggregation of draft.part_aggregations ?? []) {
|
|
8886
|
+
const host = aggregation.body_part_id ?? "";
|
|
8887
|
+
for (const attachment of aggregation.attachments ?? []) {
|
|
8888
|
+
const speech = attachment.part_id ?? "";
|
|
8889
|
+
const path = `part_aggregations/${host}/${speech}`;
|
|
8890
|
+
if (!library[speech]?.speech) note("legacy-attachment-dropped", path, "Not a placed Speech");
|
|
8891
|
+
else if (!library[host]?.video_clip || !mainOrder.has(host)) note("legacy-attachment-dropped", path, "Host is not a placed visual clip");
|
|
8892
|
+
else candidates.set(speech, [...candidates.get(speech) ?? [], {
|
|
8893
|
+
host,
|
|
8894
|
+
offset: attachment.relative_time_position ?? 0
|
|
8895
|
+
}]);
|
|
8896
|
+
}
|
|
8897
|
+
}
|
|
8898
|
+
const chosen = /* @__PURE__ */ new Map();
|
|
8899
|
+
for (const [speech, list] of candidates) {
|
|
8900
|
+
if (list.length === 1) {
|
|
8901
|
+
chosen.set(speech, list[0]);
|
|
8902
|
+
continue;
|
|
8903
|
+
}
|
|
8904
|
+
const playing = list.filter((c) => (abs.get(c.host) ?? 0) + c.offset === abs.get(speech)).sort((a, b) => mainOrder.get(a.host) - mainOrder.get(b.host));
|
|
8905
|
+
const pick = playing[0] ?? list[0];
|
|
8906
|
+
chosen.set(speech, pick);
|
|
8907
|
+
note(playing.length ? "legacy-speech-host-chosen" : "legacy-speech-host-unmatched", `part_aggregations/${pick.host}/${speech}`, `${list.length} hosts: ${list.map((c) => c.host).join(", ")}`);
|
|
8908
|
+
}
|
|
8909
|
+
const byHost = /* @__PURE__ */ new Map();
|
|
8910
|
+
for (const [speech, { host, offset }] of chosen) byHost.set(host, [...byHost.get(host) ?? [], {
|
|
8911
|
+
part_id: speech,
|
|
8912
|
+
relative_time_position: offset
|
|
8913
|
+
}]);
|
|
8914
|
+
if (draft.part_aggregations) draft.part_aggregations = [...new Set(draft.part_aggregations.map((a) => a.body_part_id ?? ""))].filter((host) => byHost.has(host)).map((host) => ({
|
|
8915
|
+
body_part_id: host,
|
|
8916
|
+
attachments: byHost.get(host)
|
|
8917
|
+
}));
|
|
8918
|
+
return {
|
|
8919
|
+
draft,
|
|
8920
|
+
diagnostics
|
|
8921
|
+
};
|
|
8922
|
+
}
|
|
8763
8923
|
//#endregion
|
|
8764
|
-
export {
|
|
8924
|
+
export { relationId as C, defaultIdFactory as S, tupleHash as T, timeAnchorCodec as _, createInitialMedeoDsl as a, BLANK_PLACEHOLDER as b, toAudioScriptViews as c, assertDslDocument as d, assertPhoneticBindingFormat as f, isInvalidAtomic as g, captionContentCodec as h, DEFAULT_UNIT_TIME_MS as i, MedeoDsl as l, medeoDslLoroShape as m, fromVideoDraft as n, DslEditor as o, documentFormat as p, toVideoDraft as r, spokenScripts as s, normalizeLegacyVideoDraft as t, UnsupportedDocumentFormatError as u, resolveDslLayout as v, resourceId as w, missingMediaPlaceholder as x, DslProjectionError as y };
|
package/dist/dsl.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { type AddDslClip, type AddDslClipsInput, type ApplyVoiceoverInput, type AudioScript, type AudioScriptView, type Caption, type CaptionContent, type CaptionDisplayCue, type CaptionSelection, type CaptionStyle, type CaptionText, type Clip, type ClipPlacement, type ClipSource, type CommitOptions, type ContainMutation, type ContainNode, type CreateMedeoDslOptions, DEFAULT_UNIT_TIME_MS, type DeepReadonly, type DslAudit, type DslClipLayout, type DslClipUpdate, type DslDiagnostic, DslEditor, type DslIdFactory, type DslLayout, type DslMutation, DslProjectionError, type DslTrackLayout, type DslTransaction, type EntityIdKind, type EntityMutation, type EntityTable, type EntityTables, type EntityValues, type FieldPatch, type FromVideoDraftOptions, type ImportedVideoDraft, type InvalidAtomic, MedeoDsl, type MedeoDslDraft, type MedeoDslLoroState, type MedeoDslSnapshot, type Media, type MoveDslClipsInput, type OpActor, type RelationMutation, type RelationTable, type RelationTables, type RelationValues, type ReplaceDslClipsInput, type ResourceSystem, type RichTextSnapshot, type SpokenScript, type StoredFile, type TextDelta, type TextEdit, type TextMark, type TextMutation, type TextRun, type TimeAnchor, type Track, type TrackRole, UnsupportedDocumentFormatError, type UploadText, type VideoCreationSettings, type VideoDraft, type VideoDraftCaptionStyle, type VideoDraftContent, type VideoDraftContentPartUnion, type VideoDraftInput, type VideoDraftPartUnion, type VideoDraftProjection, type VideoDraftTimeline, type VideoDraftTrack, type VideoDraftTrackItem, type Voice, type VoiceoverCaptionInput, type VoiceoverResult, assertDslDocument, captionContentCodec, createInitialMedeoDsl, defaultIdFactory, documentFormat, fromVideoDraft, isInvalidAtomic, medeoDslLoroShape, relationId, resolveDslLayout, resourceId, spokenScripts, timeAnchorCodec, toAudioScriptViews, toVideoDraft, tupleHash };
|
|
1
|
+
import { $ as ClipSource, A as DslEditor, At as Media, B as assertDslDocument, Bt as TextMark, C as VideoDraftTrackItem, Ct as DslMutation, D as DslProjectionError, Dt as EntityValues, E as DslLayout, Et as EntityTables, F as CreateMedeoDslOptions, Ft as ResourceSystem, G as timeAnchorCodec, Gt as TrackRole, H as InvalidAtomic, Ht as TextRun, I as MedeoDsl, It as RichTextSnapshot, J as medeoDslLoroShape, K as MedeoDslDraft, Kt as Voice, L as DslAudit, Lt as StoredFile, M as ApplyVoiceoverInput, Mt as RelationTable, N as VoiceoverCaptionInput, Nt as RelationTables, O as DslTrackLayout, Ot as FieldPatch, P as VoiceoverResult, Pt as RelationValues, Q as AddDslClipsInput, R as DslTransaction, Rt as TextDelta, S as VideoDraftTrack, St as DslDiagnostic, T as DslClipLayout, Tt as EntityTable, U as captionContentCodec, Ut as TimeAnchor, V as documentFormat, Vt as TextMutation, W as isInvalidAtomic, Wt as Track, X as OpActor, Y as CommitOptions, Z as AddDslClip, _ as VideoDraftContent, _t as CaptionText, a as fromVideoDraft, at as missingMediaPlaceholder, b as VideoDraftPartUnion, bt as ContainNode, c as spokenScripts, ct as defaultIdFactory, d as toVideoDraft, dt as tupleHash, et as DslClipUpdate, f as CaptionDisplayCue, ft as AudioScript, g as VideoDraftCaptionStyle, gt as CaptionStyle, h as VideoDraft, ht as CaptionSelection, i as ImportedVideoDraft, it as BLANK_PLACEHOLDER, j as UploadText, jt as RelationMutation, k as createInitialMedeoDsl, kt as MedeoDslSnapshot, l as toAudioScriptViews, lt as relationId, m as VideoCreationSettings, mt as CaptionContent, n as normalizeLegacyVideoDraft, nt as ReplaceDslClipsInput, o as AudioScriptView, ot as DslIdFactory, p as DEFAULT_UNIT_TIME_MS, pt as Caption, q as MedeoDslLoroState, r as FromVideoDraftOptions, rt as ClipPlacement, s as SpokenScript, st as EntityIdKind, t as NormalizedLegacyVideoDraft, tt as MoveDslClipsInput, u as VideoDraftProjection, ut as resourceId, v as VideoDraftContentPartUnion, vt as Clip, w as resolveDslLayout, wt as EntityMutation, x as VideoDraftTimeline, xt as DeepReadonly, y as VideoDraftInput, yt as ContainMutation, z as UnsupportedDocumentFormatError, zt as TextEdit } from "./index-CQ8h3u9S.js";
|
|
2
|
+
export { type AddDslClip, type AddDslClipsInput, type ApplyVoiceoverInput, type AudioScript, type AudioScriptView, BLANK_PLACEHOLDER, type Caption, type CaptionContent, type CaptionDisplayCue, type CaptionSelection, type CaptionStyle, type CaptionText, type Clip, type ClipPlacement, type ClipSource, type CommitOptions, type ContainMutation, type ContainNode, type CreateMedeoDslOptions, DEFAULT_UNIT_TIME_MS, type DeepReadonly, type DslAudit, type DslClipLayout, type DslClipUpdate, type DslDiagnostic, DslEditor, type DslIdFactory, type DslLayout, type DslMutation, DslProjectionError, type DslTrackLayout, type DslTransaction, type EntityIdKind, type EntityMutation, type EntityTable, type EntityTables, type EntityValues, type FieldPatch, type FromVideoDraftOptions, type ImportedVideoDraft, type InvalidAtomic, MedeoDsl, type MedeoDslDraft, type MedeoDslLoroState, type MedeoDslSnapshot, type Media, type MoveDslClipsInput, type NormalizedLegacyVideoDraft, type OpActor, type RelationMutation, type RelationTable, type RelationTables, type RelationValues, type ReplaceDslClipsInput, type ResourceSystem, type RichTextSnapshot, type SpokenScript, type StoredFile, type TextDelta, type TextEdit, type TextMark, type TextMutation, type TextRun, type TimeAnchor, type Track, type TrackRole, UnsupportedDocumentFormatError, type UploadText, type VideoCreationSettings, type VideoDraft, type VideoDraftCaptionStyle, type VideoDraftContent, type VideoDraftContentPartUnion, type VideoDraftInput, type VideoDraftPartUnion, type VideoDraftProjection, type VideoDraftTimeline, type VideoDraftTrack, type VideoDraftTrackItem, type Voice, type VoiceoverCaptionInput, type VoiceoverResult, assertDslDocument, captionContentCodec, createInitialMedeoDsl, defaultIdFactory, documentFormat, fromVideoDraft, isInvalidAtomic, medeoDslLoroShape, missingMediaPlaceholder, normalizeLegacyVideoDraft, relationId, resolveDslLayout, resourceId, spokenScripts, timeAnchorCodec, toAudioScriptViews, toVideoDraft, tupleHash };
|
package/dist/dsl.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { S as tupleHash, _ as
|
|
2
|
-
export { DEFAULT_UNIT_TIME_MS, DslEditor, DslProjectionError, MedeoDsl, UnsupportedDocumentFormatError, assertDslDocument, captionContentCodec, createInitialMedeoDsl, defaultIdFactory, documentFormat, fromVideoDraft, isInvalidAtomic, medeoDslLoroShape, relationId, resolveDslLayout, resourceId, spokenScripts, timeAnchorCodec, toAudioScriptViews, toVideoDraft, tupleHash };
|
|
1
|
+
import { C as relationId, S as defaultIdFactory, T as tupleHash, _ as timeAnchorCodec, a as createInitialMedeoDsl, b as BLANK_PLACEHOLDER, c as toAudioScriptViews, d as assertDslDocument, g as isInvalidAtomic, h as captionContentCodec, i as DEFAULT_UNIT_TIME_MS, l as MedeoDsl, m as medeoDslLoroShape, n as fromVideoDraft, o as DslEditor, p as documentFormat, r as toVideoDraft, s as spokenScripts, t as normalizeLegacyVideoDraft, u as UnsupportedDocumentFormatError, v as resolveDslLayout, w as resourceId, x as missingMediaPlaceholder, y as DslProjectionError } from "./dsl-Xm5NW58k.js";
|
|
2
|
+
export { BLANK_PLACEHOLDER, DEFAULT_UNIT_TIME_MS, DslEditor, DslProjectionError, MedeoDsl, UnsupportedDocumentFormatError, assertDslDocument, captionContentCodec, createInitialMedeoDsl, defaultIdFactory, documentFormat, fromVideoDraft, isInvalidAtomic, medeoDslLoroShape, missingMediaPlaceholder, normalizeLegacyVideoDraft, relationId, resolveDslLayout, resourceId, spokenScripts, timeAnchorCodec, toAudioScriptViews, toVideoDraft, tupleHash };
|
|
@@ -2,7 +2,11 @@ import { ContainerType, Cursor, LoroDoc, PeerID, TreeID } from "loro-crdt";
|
|
|
2
2
|
|
|
3
3
|
//#region ../medeo-dsl/src/types.d.ts
|
|
4
4
|
type TrackRole = 'video_clip' | 'speech' | 'caption' | 'bgm';
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Where a resource's bytes live. `placeholder` is no store: its Images stand in for a visual Clip a
|
|
7
|
+
* legacy VideoDraft placed without media ({@link BLANK_PLACEHOLDER}) or with media found missing.
|
|
8
|
+
*/
|
|
9
|
+
type ResourceSystem = 'memota' | 'memota-speech' | 'placeholder';
|
|
6
10
|
interface Track$1 {
|
|
7
11
|
role: TrackRole;
|
|
8
12
|
hidden?: boolean;
|
|
@@ -335,6 +339,22 @@ type EntityIdKind = 'timeline' | 'track' | 'clip' | 'audio-script' | 'segment' |
|
|
|
335
339
|
type DslIdFactory = (kind: EntityIdKind) => string;
|
|
336
340
|
declare const defaultIdFactory: DslIdFactory;
|
|
337
341
|
//#endregion
|
|
342
|
+
//#region ../medeo-dsl/src/fields.d.ts
|
|
343
|
+
/**
|
|
344
|
+
* A placeholder medium is an Image with no file, standing in where a legacy VideoDraft placed a
|
|
345
|
+
* visual clip the old editor drew as a blank (D205). The blank one stands in for a clip placed
|
|
346
|
+
* without media (`origin_media_id: ''`); one keyed by a memota media id stands in for media the
|
|
347
|
+
* clip named but Director found missing, so the id survives. Importing keeps the clips' time on
|
|
348
|
+
* them instead of dropping them. Only migration authors them.
|
|
349
|
+
*/
|
|
350
|
+
declare const BLANK_PLACEHOLDER: {
|
|
351
|
+
readonly system: "placeholder";
|
|
352
|
+
readonly key: "blank";
|
|
353
|
+
readonly kind: "image";
|
|
354
|
+
};
|
|
355
|
+
/** The placeholder for a memota media id Director found missing. */
|
|
356
|
+
declare function missingMediaPlaceholder(mediaId: string): Media;
|
|
357
|
+
//#endregion
|
|
338
358
|
//#region src/dsl/action-context.d.ts
|
|
339
359
|
type ClipPlacement = {
|
|
340
360
|
kind: 'sequential';
|
|
@@ -1862,4 +1882,12 @@ interface ImportedVideoDraft {
|
|
|
1862
1882
|
/** One-time import into a newly owned document; never reverse-diff a live collaborative document. */
|
|
1863
1883
|
declare function fromVideoDraft(input: VideoDraftInput, options: FromVideoDraftOptions): ImportedVideoDraft;
|
|
1864
1884
|
//#endregion
|
|
1865
|
-
|
|
1885
|
+
//#region src/dsl/projection/normalize-legacy-video-draft.d.ts
|
|
1886
|
+
interface NormalizedLegacyVideoDraft {
|
|
1887
|
+
draft: VideoDraftInput;
|
|
1888
|
+
/** One entry per repair, naming the part or field and its value before and after. */
|
|
1889
|
+
diagnostics: DslDiagnostic[];
|
|
1890
|
+
}
|
|
1891
|
+
declare function normalizeLegacyVideoDraft(input: VideoDraftInput, mediaFacts?: readonly Media[]): NormalizedLegacyVideoDraft;
|
|
1892
|
+
//#endregion
|
|
1893
|
+
export { ClipSource as $, DslEditor as A, Media as At, assertDslDocument as B, TextMark as Bt, VideoDraftTrackItem as C, DslMutation as Ct, DslProjectionError as D, EntityValues as Dt, DslLayout as E, EntityTables as Et, CreateMedeoDslOptions as F, ResourceSystem as Ft, timeAnchorCodec as G, TrackRole as Gt, InvalidAtomic as H, TextRun as Ht, MedeoDsl as I, RichTextSnapshot as It, medeoDslLoroShape as J, MedeoDslDraft as K, Voice as Kt, DslAudit as L, StoredFile as Lt, ApplyVoiceoverInput as M, RelationTable as Mt, VoiceoverCaptionInput as N, RelationTables as Nt, DslTrackLayout as O, FieldPatch as Ot, VoiceoverResult as P, RelationValues as Pt, AddDslClipsInput as Q, DslTransaction as R, TextDelta as Rt, VideoDraftTrack as S, DslDiagnostic as St, DslClipLayout as T, EntityTable as Tt, captionContentCodec as U, TimeAnchor as Ut, documentFormat as V, TextMutation as Vt, isInvalidAtomic as W, Track$1 as Wt, OpActor as X, CommitOptions as Y, AddDslClip as Z, VideoDraftContent as _, CaptionText as _t, fromVideoDraft as a, missingMediaPlaceholder as at, VideoDraftPartUnion as b, ContainNode as bt, spokenScripts as c, defaultIdFactory as ct, toVideoDraft as d, tupleHash as dt, DslClipUpdate as et, CaptionDisplayCue as f, AudioScript as ft, VideoDraftCaptionStyle as g, CaptionStyle$1 as gt, VideoDraft as h, CaptionSelection as ht, ImportedVideoDraft as i, BLANK_PLACEHOLDER as it, UploadText as j, RelationMutation as jt, createInitialMedeoDsl as k, MedeoDslSnapshot as kt, toAudioScriptViews as l, relationId as lt, VideoCreationSettings as m, CaptionContent as mt, normalizeLegacyVideoDraft as n, ReplaceDslClipsInput as nt, AudioScriptView as o, DslIdFactory as ot, DEFAULT_UNIT_TIME_MS as p, Caption as pt, MedeoDslLoroState as q, FromVideoDraftOptions as r, ClipPlacement as rt, SpokenScript as s, EntityIdKind as st, NormalizedLegacyVideoDraft as t, MoveDslClipsInput as tt, VideoDraftProjection as u, resourceId as ut, VideoDraftContentPartUnion as v, Clip as vt, resolveDslLayout as w, EntityMutation as wt, VideoDraftTimeline as x, DeepReadonly as xt, VideoDraftInput as y, ContainMutation as yt, UnsupportedDocumentFormatError as z, TextEdit as zt };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { A as DslEditor, Ft as ResourceSystem, Gt as TrackRole, I as MedeoDsl, St as DslDiagnostic, Y as CommitOptions, _ as VideoDraftContent, j as UploadText, kt as MedeoDslSnapshot, o as AudioScriptView, u as VideoDraftProjection } from "./index-CQ8h3u9S.js";
|
|
2
2
|
import { LoroDoc, PeerID, VersionVector } from "loro-crdt";
|
|
3
3
|
import { DocState, LocalSaveState } from "@mengine/sync";
|
|
4
4
|
import { BaseDocStorage, Connection, DocDiff, DocPushReceipt, DocSnapshotRecord, DocStorage, DocStorageOptions, DocUpdate, DocUpdateRecord } from "@mengine/storage";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import { A as MenginePushRejectedError, B as MengineSyncResponse, C as PushResult, D as MengineHttpClient, E as readMengineEventStream, F as MenginePushResponse, H as base64ToBytes, I as MenginePushUpdateResponse, L as MengineRejectedResponse, M as MengineAuditResponse, N as MengineDocumentVersion, O as MengineHttpClientOptions, P as MengineDraftResponse, R as MengineSnapshotResponse, S as PullResult, T as MengineEventStreamOptions, U as bytesToBase64, V as MengineUpdateMeta, _ as ManualSyncDocOptions, a as MengineDocSessionOptions, b as DocVersionMark, c as WaitForLocalSaveOptions, d as MengineUndoState, f as MedeoHttpDocStorage, g as ManualSyncDoc, h as PushOutcomeKind, i as MengineAckFailedError, j as MengineAuditEntry, k as MengineHttpRequestError, l as WaitForServerAckOptions, m as PushOutcome, n as MengineDocSession, o as MengineDocSyncState, p as MedeoHttpDocStorageOptions, r as MengineDocSessionUpdateEvent, s as MengineLocalSaveState, t as MemoryDocStorage, u as DocStorageLike, v as decodeDocVersionMark, w as PushResultKind, x as PullFailureReason, y as encodeDocVersionMark, z as MengineSseUpdateEvent } from "./index-
|
|
3
|
-
export { type AddDslClip, type AddDslClipsInput, type ApplyVoiceoverInput, type AudioScript, type AudioScriptView, type Caption, type CaptionContent, type CaptionDisplayCue, type CaptionSelection, type CaptionStyle, type CaptionText, type Clip, type ClipPlacement, type ClipSource, type CommitOptions, type ContainMutation, type ContainNode, type CreateMedeoDslOptions, DEFAULT_UNIT_TIME_MS, type DeepReadonly, type DocStorageLike, type DocVersionMark, type DslAudit, type DslClipLayout, type DslClipUpdate, type DslDiagnostic, DslEditor, type DslIdFactory, type DslLayout, type DslMutation, DslProjectionError, type DslTrackLayout, type DslTransaction, type EntityIdKind, type EntityMutation, type EntityTable, type EntityTables, type EntityValues, type FieldPatch, type FromVideoDraftOptions, type ImportedVideoDraft, type InvalidAtomic, ManualSyncDoc, type ManualSyncDocOptions, MedeoDsl, type MedeoDslDraft, type MedeoDslLoroState, type MedeoDslSnapshot, MedeoHttpDocStorage, type MedeoHttpDocStorageOptions, type Media, MemoryDocStorage, MengineAckFailedError, type MengineAuditEntry, type MengineAuditResponse, MengineDocSession, type MengineDocSessionOptions, type MengineDocSessionUpdateEvent, type MengineDocSyncState, type MengineDocumentVersion, type MengineDraftResponse, type MengineEventStreamOptions, MengineHttpClient, type MengineHttpClientOptions, MengineHttpRequestError, type MengineLocalSaveState, MenginePushRejectedError, type MenginePushResponse, type MenginePushUpdateResponse, type MengineRejectedResponse, type MengineSnapshotResponse, type MengineSseUpdateEvent, type MengineSyncResponse, type MengineUndoState, type MengineUpdateMeta, type MoveDslClipsInput, type OpActor, type PullFailureReason, type PullResult, type PushOutcome, type PushOutcomeKind, type PushResult, type PushResultKind, type RelationMutation, type RelationTable, type RelationTables, type RelationValues, type ReplaceDslClipsInput, type ResourceSystem, type RichTextSnapshot, type SpokenScript, type StoredFile, type TextDelta, type TextEdit, type TextMark, type TextMutation, type TextRun, type TimeAnchor, type Track, type TrackRole, UnsupportedDocumentFormatError, type UploadText, type VideoCreationSettings, type VideoDraft, type VideoDraftCaptionStyle, type VideoDraftContent, type VideoDraftContentPartUnion, type VideoDraftInput, type VideoDraftPartUnion, type VideoDraftProjection, type VideoDraftTimeline, type VideoDraftTrack, type VideoDraftTrackItem, type Voice, type VoiceoverCaptionInput, type VoiceoverResult, type WaitForLocalSaveOptions, type WaitForServerAckOptions, assertDslDocument, base64ToBytes, bytesToBase64, captionContentCodec, createInitialMedeoDsl, decodeDocVersionMark, defaultIdFactory, documentFormat, encodeDocVersionMark, fromVideoDraft, isInvalidAtomic, medeoDslLoroShape, readMengineEventStream, relationId, resolveDslLayout, resourceId, spokenScripts, timeAnchorCodec, toAudioScriptViews, toVideoDraft, tupleHash };
|
|
1
|
+
import { $ as ClipSource, A as DslEditor, At as Media, B as assertDslDocument, Bt as TextMark, C as VideoDraftTrackItem, Ct as DslMutation, D as DslProjectionError, Dt as EntityValues, E as DslLayout, Et as EntityTables, F as CreateMedeoDslOptions, Ft as ResourceSystem, G as timeAnchorCodec, Gt as TrackRole, H as InvalidAtomic, Ht as TextRun, I as MedeoDsl, It as RichTextSnapshot, J as medeoDslLoroShape, K as MedeoDslDraft, Kt as Voice, L as DslAudit, Lt as StoredFile, M as ApplyVoiceoverInput, Mt as RelationTable, N as VoiceoverCaptionInput, Nt as RelationTables, O as DslTrackLayout, Ot as FieldPatch, P as VoiceoverResult, Pt as RelationValues, Q as AddDslClipsInput, R as DslTransaction, Rt as TextDelta, S as VideoDraftTrack, St as DslDiagnostic, T as DslClipLayout, Tt as EntityTable, U as captionContentCodec, Ut as TimeAnchor, V as documentFormat, Vt as TextMutation, W as isInvalidAtomic, Wt as Track, X as OpActor, Y as CommitOptions, Z as AddDslClip, _ as VideoDraftContent, _t as CaptionText, a as fromVideoDraft, at as missingMediaPlaceholder, b as VideoDraftPartUnion, bt as ContainNode, c as spokenScripts, ct as defaultIdFactory, d as toVideoDraft, dt as tupleHash, et as DslClipUpdate, f as CaptionDisplayCue, ft as AudioScript, g as VideoDraftCaptionStyle, gt as CaptionStyle, h as VideoDraft, ht as CaptionSelection, i as ImportedVideoDraft, it as BLANK_PLACEHOLDER, j as UploadText, jt as RelationMutation, k as createInitialMedeoDsl, kt as MedeoDslSnapshot, l as toAudioScriptViews, lt as relationId, m as VideoCreationSettings, mt as CaptionContent, n as normalizeLegacyVideoDraft, nt as ReplaceDslClipsInput, o as AudioScriptView, ot as DslIdFactory, p as DEFAULT_UNIT_TIME_MS, pt as Caption, q as MedeoDslLoroState, r as FromVideoDraftOptions, rt as ClipPlacement, s as SpokenScript, st as EntityIdKind, t as NormalizedLegacyVideoDraft, tt as MoveDslClipsInput, u as VideoDraftProjection, ut as resourceId, v as VideoDraftContentPartUnion, vt as Clip, w as resolveDslLayout, wt as EntityMutation, x as VideoDraftTimeline, xt as DeepReadonly, y as VideoDraftInput, yt as ContainMutation, z as UnsupportedDocumentFormatError, zt as TextEdit } from "./index-CQ8h3u9S.js";
|
|
2
|
+
import { A as MenginePushRejectedError, B as MengineSyncResponse, C as PushResult, D as MengineHttpClient, E as readMengineEventStream, F as MenginePushResponse, H as base64ToBytes, I as MenginePushUpdateResponse, L as MengineRejectedResponse, M as MengineAuditResponse, N as MengineDocumentVersion, O as MengineHttpClientOptions, P as MengineDraftResponse, R as MengineSnapshotResponse, S as PullResult, T as MengineEventStreamOptions, U as bytesToBase64, V as MengineUpdateMeta, _ as ManualSyncDocOptions, a as MengineDocSessionOptions, b as DocVersionMark, c as WaitForLocalSaveOptions, d as MengineUndoState, f as MedeoHttpDocStorage, g as ManualSyncDoc, h as PushOutcomeKind, i as MengineAckFailedError, j as MengineAuditEntry, k as MengineHttpRequestError, l as WaitForServerAckOptions, m as PushOutcome, n as MengineDocSession, o as MengineDocSyncState, p as MedeoHttpDocStorageOptions, r as MengineDocSessionUpdateEvent, s as MengineLocalSaveState, t as MemoryDocStorage, u as DocStorageLike, v as decodeDocVersionMark, w as PushResultKind, x as PullFailureReason, y as encodeDocVersionMark, z as MengineSseUpdateEvent } from "./index-D48u9I25.js";
|
|
3
|
+
export { type AddDslClip, type AddDslClipsInput, type ApplyVoiceoverInput, type AudioScript, type AudioScriptView, BLANK_PLACEHOLDER, type Caption, type CaptionContent, type CaptionDisplayCue, type CaptionSelection, type CaptionStyle, type CaptionText, type Clip, type ClipPlacement, type ClipSource, type CommitOptions, type ContainMutation, type ContainNode, type CreateMedeoDslOptions, DEFAULT_UNIT_TIME_MS, type DeepReadonly, type DocStorageLike, type DocVersionMark, type DslAudit, type DslClipLayout, type DslClipUpdate, type DslDiagnostic, DslEditor, type DslIdFactory, type DslLayout, type DslMutation, DslProjectionError, type DslTrackLayout, type DslTransaction, type EntityIdKind, type EntityMutation, type EntityTable, type EntityTables, type EntityValues, type FieldPatch, type FromVideoDraftOptions, type ImportedVideoDraft, type InvalidAtomic, ManualSyncDoc, type ManualSyncDocOptions, MedeoDsl, type MedeoDslDraft, type MedeoDslLoroState, type MedeoDslSnapshot, MedeoHttpDocStorage, type MedeoHttpDocStorageOptions, type Media, MemoryDocStorage, MengineAckFailedError, type MengineAuditEntry, type MengineAuditResponse, MengineDocSession, type MengineDocSessionOptions, type MengineDocSessionUpdateEvent, type MengineDocSyncState, type MengineDocumentVersion, type MengineDraftResponse, type MengineEventStreamOptions, MengineHttpClient, type MengineHttpClientOptions, MengineHttpRequestError, type MengineLocalSaveState, MenginePushRejectedError, type MenginePushResponse, type MenginePushUpdateResponse, type MengineRejectedResponse, type MengineSnapshotResponse, type MengineSseUpdateEvent, type MengineSyncResponse, type MengineUndoState, type MengineUpdateMeta, type MoveDslClipsInput, type NormalizedLegacyVideoDraft, type OpActor, type PullFailureReason, type PullResult, type PushOutcome, type PushOutcomeKind, type PushResult, type PushResultKind, type RelationMutation, type RelationTable, type RelationTables, type RelationValues, type ReplaceDslClipsInput, type ResourceSystem, type RichTextSnapshot, type SpokenScript, type StoredFile, type TextDelta, type TextEdit, type TextMark, type TextMutation, type TextRun, type TimeAnchor, type Track, type TrackRole, UnsupportedDocumentFormatError, type UploadText, type VideoCreationSettings, type VideoDraft, type VideoDraftCaptionStyle, type VideoDraftContent, type VideoDraftContentPartUnion, type VideoDraftInput, type VideoDraftPartUnion, type VideoDraftProjection, type VideoDraftTimeline, type VideoDraftTrack, type VideoDraftTrackItem, type Voice, type VoiceoverCaptionInput, type VoiceoverResult, type WaitForLocalSaveOptions, type WaitForServerAckOptions, assertDslDocument, base64ToBytes, bytesToBase64, captionContentCodec, createInitialMedeoDsl, decodeDocVersionMark, defaultIdFactory, documentFormat, encodeDocVersionMark, fromVideoDraft, isInvalidAtomic, medeoDslLoroShape, missingMediaPlaceholder, normalizeLegacyVideoDraft, readMengineEventStream, relationId, resolveDslLayout, resourceId, spokenScripts, timeAnchorCodec, toAudioScriptViews, toVideoDraft, tupleHash };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as bytesToBase64, t as base64ToBytes } from "./base64-D-jd-dr5.js";
|
|
2
|
-
import { S as tupleHash, _ as
|
|
2
|
+
import { C as relationId, S as defaultIdFactory, T as tupleHash, _ as timeAnchorCodec, a as createInitialMedeoDsl, b as BLANK_PLACEHOLDER, c as toAudioScriptViews, d as assertDslDocument, g as isInvalidAtomic, h as captionContentCodec, i as DEFAULT_UNIT_TIME_MS, l as MedeoDsl, m as medeoDslLoroShape, n as fromVideoDraft, o as DslEditor, p as documentFormat, r as toVideoDraft, s as spokenScripts, t as normalizeLegacyVideoDraft, u as UnsupportedDocumentFormatError, v as resolveDslLayout, w as resourceId, x as missingMediaPlaceholder, y as DslProjectionError } from "./dsl-Xm5NW58k.js";
|
|
3
3
|
import { LoroDoc, UndoManager, VersionVector, decodeImportBlobMeta } from "loro-crdt";
|
|
4
4
|
import { ClientServerSynchronizer, DocManager } from "@mengine/sync";
|
|
5
5
|
import { DisposableSet, EventBus, Task } from "@mengine/utils";
|
|
@@ -1472,4 +1472,4 @@ var MengineDocSession = class extends DocumentSession {
|
|
|
1472
1472
|
}
|
|
1473
1473
|
};
|
|
1474
1474
|
//#endregion
|
|
1475
|
-
export { DEFAULT_UNIT_TIME_MS, DslEditor, DslProjectionError, ManualSyncDoc, MedeoDsl, MedeoHttpDocStorage, MemoryDocStorage, MengineAckFailedError, MengineDocSession, MengineHttpClient, MengineHttpRequestError, MenginePushRejectedError, UnsupportedDocumentFormatError, assertDslDocument, base64ToBytes, bytesToBase64, captionContentCodec, createInitialMedeoDsl, decodeDocVersionMark, defaultIdFactory, documentFormat, encodeDocVersionMark, fromVideoDraft, isInvalidAtomic, medeoDslLoroShape, readMengineEventStream, relationId, resolveDslLayout, resourceId, spokenScripts, timeAnchorCodec, toAudioScriptViews, toVideoDraft, tupleHash };
|
|
1475
|
+
export { BLANK_PLACEHOLDER, DEFAULT_UNIT_TIME_MS, DslEditor, DslProjectionError, ManualSyncDoc, MedeoDsl, MedeoHttpDocStorage, MemoryDocStorage, MengineAckFailedError, MengineDocSession, MengineHttpClient, MengineHttpRequestError, MenginePushRejectedError, UnsupportedDocumentFormatError, assertDslDocument, base64ToBytes, bytesToBase64, captionContentCodec, createInitialMedeoDsl, decodeDocVersionMark, defaultIdFactory, documentFormat, encodeDocVersionMark, fromVideoDraft, isInvalidAtomic, medeoDslLoroShape, missingMediaPlaceholder, normalizeLegacyVideoDraft, readMengineEventStream, relationId, resolveDslLayout, resourceId, spokenScripts, timeAnchorCodec, toAudioScriptViews, toVideoDraft, tupleHash };
|
package/dist/testing.d.ts
CHANGED
package/dist/testing.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as bytesToBase64, t as base64ToBytes } from "./base64-D-jd-dr5.js";
|
|
2
|
-
import { a as
|
|
2
|
+
import { a as createInitialMedeoDsl, d as assertDslDocument, f as assertPhoneticBindingFormat, l as MedeoDsl, o as DslEditor, p as documentFormat, r as toVideoDraft, y as DslProjectionError } from "./dsl-Xm5NW58k.js";
|
|
3
3
|
import { t as classifyUpdate } from "./loro-relay-doc-Bi6JKqtQ.js";
|
|
4
4
|
import { LoroDoc, VersionVector, encodeFrontiers } from "loro-crdt";
|
|
5
5
|
//#region src/testing/in-memory-mengine-server.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mengine/medeo-client",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.1-dsl.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@noble/hashes": "^2.4.0",
|
|
29
29
|
"zod": "^4.4.3",
|
|
30
|
-
"@mengine/storage": "3.
|
|
31
|
-
"@mengine/sync": "3.
|
|
32
|
-
"@mengine/utils": "3.
|
|
30
|
+
"@mengine/storage": "3.1.1-dsl.0",
|
|
31
|
+
"@mengine/sync": "3.1.1-dsl.0",
|
|
32
|
+
"@mengine/utils": "3.1.1-dsl.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^25.9.1",
|