@stream-mdx/worker 0.3.0 → 0.4.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 +6 -4
- package/dist/direct.cjs +3978 -0
- package/dist/direct.d.cts +50 -0
- package/dist/direct.d.ts +50 -0
- package/dist/direct.mjs +3961 -0
- package/dist/hosted/markdown-worker.js +85 -8
- package/dist/index.cjs +3954 -3
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.mjs +3960 -0
- package/dist/node/index.cjs +383 -4
- package/dist/node/index.d.cts +68 -1
- package/dist/node/index.d.ts +68 -1
- package/dist/node/index.mjs +381 -4
- package/dist/node/worker-thread-entry.cjs +127 -3
- package/dist/node/worker-thread-entry.d.cts +2 -1
- package/dist/node/worker-thread-entry.d.ts +2 -1
- package/dist/node/worker-thread-entry.mjs +106 -3
- package/dist/worker-client-wln-351a.d.cts +84 -0
- package/dist/worker-client-wln-351a.d.ts +84 -0
- package/dist/worker-client.d.cts +2 -84
- package/dist/worker-client.d.ts +2 -84
- package/package.json +8 -3
|
@@ -17946,7 +17946,7 @@ function getGroupContents(expression, contentsStartPos) {
|
|
|
17946
17946
|
return expression.slice(contentsStartPos, contentsEndPos);
|
|
17947
17947
|
}
|
|
17948
17948
|
|
|
17949
|
-
// node_modules/regex/src/subclass.js
|
|
17949
|
+
// ../../node_modules/regex/src/subclass.js
|
|
17950
17950
|
var emulationGroupMarker = "$E$";
|
|
17951
17951
|
var RegExpSubclass = class _RegExpSubclass extends RegExp {
|
|
17952
17952
|
/**
|
|
@@ -18059,13 +18059,13 @@ function unmarkEmulationGroups(expression) {
|
|
|
18059
18059
|
};
|
|
18060
18060
|
}
|
|
18061
18061
|
|
|
18062
|
-
// node_modules/regex/src/utils-internals.js
|
|
18062
|
+
// ../../node_modules/regex/src/utils-internals.js
|
|
18063
18063
|
var noncapturingDelim = String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;
|
|
18064
18064
|
function spliceStr(str, pos, oldValue, newValue) {
|
|
18065
18065
|
return str.slice(0, pos) + newValue + str.slice(pos + oldValue.length);
|
|
18066
18066
|
}
|
|
18067
18067
|
|
|
18068
|
-
// node_modules/regex/src/atomic.js
|
|
18068
|
+
// ../../node_modules/regex/src/atomic.js
|
|
18069
18069
|
var atomicPluginToken = new RegExp(String.raw`(?<noncapturingStart>${noncapturingDelim})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`, "gsu");
|
|
18070
18070
|
function atomic(expression, data2) {
|
|
18071
18071
|
if (!/\(\?>/.test(expression)) {
|
|
@@ -18206,7 +18206,7 @@ function possessive(expression) {
|
|
|
18206
18206
|
return expression;
|
|
18207
18207
|
}
|
|
18208
18208
|
|
|
18209
|
-
// node_modules/regex-recursion/src/index.js
|
|
18209
|
+
// ../../node_modules/regex-recursion/src/index.js
|
|
18210
18210
|
var r2 = String.raw;
|
|
18211
18211
|
var gRToken = r2`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`;
|
|
18212
18212
|
var recursiveToken = r2`\(\?R=(?<rDepth>[^\)]+)\)|${gRToken}`;
|
|
@@ -18356,7 +18356,7 @@ function emulationGroupMarkerLength(expression, index2) {
|
|
|
18356
18356
|
return match ? match[0].length : 0;
|
|
18357
18357
|
}
|
|
18358
18358
|
|
|
18359
|
-
// node_modules/oniguruma-to-es/dist/esm/index.js
|
|
18359
|
+
// ../../node_modules/oniguruma-to-es/dist/esm/index.js
|
|
18360
18360
|
var cp = String.fromCodePoint;
|
|
18361
18361
|
var r3 = String.raw;
|
|
18362
18362
|
var envSupportsFlagGroups = (() => {
|
|
@@ -21379,7 +21379,7 @@ function toRegExp(pattern, options) {
|
|
|
21379
21379
|
return new RegExp(result.pattern, result.flags);
|
|
21380
21380
|
}
|
|
21381
21381
|
|
|
21382
|
-
// node_modules/@shikijs/engine-javascript/dist/shared/engine-javascript.hzpS1_41.mjs
|
|
21382
|
+
// ../../node_modules/@shikijs/engine-javascript/dist/shared/engine-javascript.hzpS1_41.mjs
|
|
21383
21383
|
var MAX = 4294967295;
|
|
21384
21384
|
var JavaScriptScanner = class {
|
|
21385
21385
|
constructor(patterns, options = {}) {
|
|
@@ -21472,7 +21472,7 @@ var JavaScriptScanner = class {
|
|
|
21472
21472
|
}
|
|
21473
21473
|
};
|
|
21474
21474
|
|
|
21475
|
-
// node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs
|
|
21475
|
+
// ../../node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs
|
|
21476
21476
|
function defaultJavaScriptRegexConstructor(pattern, options) {
|
|
21477
21477
|
return toRegExp(
|
|
21478
21478
|
pattern,
|
|
@@ -82144,6 +82144,9 @@ var lastStructuralDiffSummary = null;
|
|
|
82144
82144
|
var maxEmittedBlockCount = 0;
|
|
82145
82145
|
var maxDeferredQueueSize = 0;
|
|
82146
82146
|
var maxStructuralBlockCount = 0;
|
|
82147
|
+
var tocHeadings = [];
|
|
82148
|
+
var tocSignature = "";
|
|
82149
|
+
var headingIdCounts = /* @__PURE__ */ new Map();
|
|
82147
82150
|
var lastHighCountNoStructural = null;
|
|
82148
82151
|
var MAX_DEFERRED_PATCHES = 400;
|
|
82149
82152
|
var deferredPatchQueue = [];
|
|
@@ -82579,12 +82582,57 @@ function parseInlineStreaming(content4) {
|
|
|
82579
82582
|
status
|
|
82580
82583
|
};
|
|
82581
82584
|
}
|
|
82585
|
+
function slugifyHeading(text12) {
|
|
82586
|
+
const normalized = text12.trim().toLowerCase().replace(/[\u0000-\u001f]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").replace(/-{2,}/g, "-");
|
|
82587
|
+
return normalized;
|
|
82588
|
+
}
|
|
82589
|
+
function buildTocHeadings(blocksInput) {
|
|
82590
|
+
const headings = [];
|
|
82591
|
+
for (const block of blocksInput) {
|
|
82592
|
+
if (block.type !== "heading") continue;
|
|
82593
|
+
const meta2 = block.payload.meta ?? {};
|
|
82594
|
+
const rawHeading = typeof block.payload.raw === "string" ? block.payload.raw : "";
|
|
82595
|
+
const headingText = typeof meta2.headingText === "string" && meta2.headingText.trim().length > 0 ? meta2.headingText : removeHeadingMarkers(rawHeading).trim();
|
|
82596
|
+
const levelFromMeta = typeof meta2.headingLevel === "number" ? meta2.headingLevel : 1;
|
|
82597
|
+
const level = Math.min(Math.max(levelFromMeta, 1), 6);
|
|
82598
|
+
const id = typeof meta2.headingId === "string" && meta2.headingId.trim().length > 0 ? meta2.headingId : slugifyHeading(headingText) || "heading";
|
|
82599
|
+
headings.push({
|
|
82600
|
+
id,
|
|
82601
|
+
text: headingText,
|
|
82602
|
+
level,
|
|
82603
|
+
blockId: block.id
|
|
82604
|
+
});
|
|
82605
|
+
}
|
|
82606
|
+
return headings;
|
|
82607
|
+
}
|
|
82608
|
+
function tocSignatureFor(headings) {
|
|
82609
|
+
if (headings.length === 0) return "";
|
|
82610
|
+
return headings.map((heading4) => `${heading4.id}:${heading4.level}:${heading4.text}`).join("|");
|
|
82611
|
+
}
|
|
82612
|
+
function maybeBuildTocPatch(blocksInput) {
|
|
82613
|
+
const nextHeadings = buildTocHeadings(blocksInput);
|
|
82614
|
+
const nextSignature = tocSignatureFor(nextHeadings);
|
|
82615
|
+
tocHeadings = nextHeadings;
|
|
82616
|
+
if (nextSignature === tocSignature) {
|
|
82617
|
+
return null;
|
|
82618
|
+
}
|
|
82619
|
+
tocSignature = nextSignature;
|
|
82620
|
+
return {
|
|
82621
|
+
op: "setProps",
|
|
82622
|
+
at: { blockId: PATCH_ROOT_ID },
|
|
82623
|
+
props: {
|
|
82624
|
+
tocHeadings: nextHeadings
|
|
82625
|
+
}
|
|
82626
|
+
};
|
|
82627
|
+
}
|
|
82582
82628
|
async function initialize(initialContent = "", prewarmLangs = [], docPlugins, mdxOptions) {
|
|
82583
82629
|
performanceTimer = new PerformanceTimer();
|
|
82584
82630
|
blocks = [];
|
|
82585
82631
|
lastTree = null;
|
|
82586
82632
|
currentContent = "";
|
|
82587
82633
|
deferredPatchQueue = [];
|
|
82634
|
+
tocHeadings = [];
|
|
82635
|
+
tocSignature = "";
|
|
82588
82636
|
resetIncrementalHighlightState();
|
|
82589
82637
|
lazyTokenizationStates.clear();
|
|
82590
82638
|
lazyTokenizationQueue.clear();
|
|
@@ -82753,6 +82801,7 @@ async function appendAndReparse(appendedText, metrics) {
|
|
|
82753
82801
|
}
|
|
82754
82802
|
async function extractBlocks(tree, content4, options = {}) {
|
|
82755
82803
|
try {
|
|
82804
|
+
headingIdCounts = /* @__PURE__ */ new Map();
|
|
82756
82805
|
const blocks2 = [];
|
|
82757
82806
|
const cursor = tree.cursor();
|
|
82758
82807
|
if (cursor.firstChild()) {
|
|
@@ -82845,10 +82894,15 @@ async function enrichBlock(block) {
|
|
|
82845
82894
|
const rawHeading = typeof block.payload.raw === "string" ? block.payload.raw : "";
|
|
82846
82895
|
const normalizedHeading = removeHeadingMarkers(rawHeading);
|
|
82847
82896
|
const headingLevel = Math.min(Math.max(rawHeading.match(/^#{1,6}/)?.[0].length ?? 1, 1), 6);
|
|
82897
|
+
const baseSlug = slugifyHeading(normalizedHeading) || "heading";
|
|
82898
|
+
const nextCount = (headingIdCounts.get(baseSlug) ?? 0) + 1;
|
|
82899
|
+
headingIdCounts.set(baseSlug, nextCount);
|
|
82900
|
+
const headingId = nextCount > 1 ? `${baseSlug}-${nextCount}` : baseSlug;
|
|
82848
82901
|
block.payload.meta = {
|
|
82849
82902
|
...block.payload.meta ?? {},
|
|
82850
82903
|
headingLevel,
|
|
82851
|
-
headingText: normalizedHeading
|
|
82904
|
+
headingText: normalizedHeading,
|
|
82905
|
+
headingId
|
|
82852
82906
|
};
|
|
82853
82907
|
if (block.isFinalized) {
|
|
82854
82908
|
block.payload.raw = normalizedHeading;
|
|
@@ -83913,6 +83967,7 @@ async function enrichCodeBlock(block) {
|
|
|
83913
83967
|
resetIncrementalHighlightState(block.id);
|
|
83914
83968
|
block.payload.highlightedHtml = void 0;
|
|
83915
83969
|
const nextMeta2 = { ...baseMeta, ...meta2, lang: resolvedLanguage };
|
|
83970
|
+
nextMeta2.code = codeBody;
|
|
83916
83971
|
if ("highlightedLines" in nextMeta2) {
|
|
83917
83972
|
delete nextMeta2.highlightedLines;
|
|
83918
83973
|
}
|
|
@@ -84014,6 +84069,7 @@ async function enrichCodeBlock(block) {
|
|
|
84014
84069
|
block.payload.highlightedHtml = void 0;
|
|
84015
84070
|
const effectiveLang2 = wantsHtml ? resolvedLanguage : resolvedTokenLanguage;
|
|
84016
84071
|
const nextMeta2 = { ...baseMeta, ...meta2, lang: effectiveLang2 };
|
|
84072
|
+
nextMeta2.code = codeBody;
|
|
84017
84073
|
if (wantsHtml) {
|
|
84018
84074
|
nextMeta2.highlightedLines = state.highlightedLines;
|
|
84019
84075
|
} else if ("highlightedLines" in nextMeta2) {
|
|
@@ -84065,6 +84121,7 @@ async function enrichCodeBlock(block) {
|
|
|
84065
84121
|
const state = getOrInitLazyState(block.id, signature, codeLines.length, resolvedLanguage, resolvedTokenLanguage, diffEnabled);
|
|
84066
84122
|
const effectiveLang2 = wantsHtml ? resolvedLanguage : resolvedTokenLanguage;
|
|
84067
84123
|
const nextMeta2 = { ...baseMeta, ...meta2, lang: effectiveLang2 };
|
|
84124
|
+
nextMeta2.code = codeBody;
|
|
84068
84125
|
nextMeta2.lazyTokenization = true;
|
|
84069
84126
|
nextMeta2.lazyTokenizedUntil = state.processedLines;
|
|
84070
84127
|
if (wantsHtml) {
|
|
@@ -84178,6 +84235,7 @@ async function enrichCodeBlock(block) {
|
|
|
84178
84235
|
}
|
|
84179
84236
|
const effectiveLang = wantsHtml ? resolvedLanguage : resolvedTokenLanguage;
|
|
84180
84237
|
const nextMeta = { ...baseMeta, ...meta2, lang: effectiveLang };
|
|
84238
|
+
nextMeta.code = codeBody;
|
|
84181
84239
|
if ("highlightedLines" in nextMeta) {
|
|
84182
84240
|
delete nextMeta.highlightedLines;
|
|
84183
84241
|
}
|
|
@@ -84546,6 +84604,7 @@ async function blockToNodeSnapshot(block) {
|
|
|
84546
84604
|
}
|
|
84547
84605
|
async function emitDocumentPatch(currentBlocks) {
|
|
84548
84606
|
const patches = [];
|
|
84607
|
+
const tocPatch = maybeBuildTocPatch(currentBlocks);
|
|
84549
84608
|
for (let index2 = 0; index2 < currentBlocks.length; index2++) {
|
|
84550
84609
|
const block = currentBlocks[index2];
|
|
84551
84610
|
if (!block) continue;
|
|
@@ -84556,6 +84615,9 @@ async function emitDocumentPatch(currentBlocks) {
|
|
|
84556
84615
|
node: await blockToNodeSnapshot(block)
|
|
84557
84616
|
});
|
|
84558
84617
|
}
|
|
84618
|
+
if (tocPatch) {
|
|
84619
|
+
patches.push(tocPatch);
|
|
84620
|
+
}
|
|
84559
84621
|
if (patches.length > 0) {
|
|
84560
84622
|
postMessage({
|
|
84561
84623
|
type: "PATCH",
|
|
@@ -84566,6 +84628,7 @@ async function emitDocumentPatch(currentBlocks) {
|
|
|
84566
84628
|
}
|
|
84567
84629
|
async function emitBlockDiffPatches(previousBlocks, nextBlocks, changedRanges, metrics) {
|
|
84568
84630
|
const patches = [];
|
|
84631
|
+
const tocPatch = maybeBuildTocPatch(nextBlocks);
|
|
84569
84632
|
if (previousBlocks === nextBlocks) return;
|
|
84570
84633
|
let prefix = 0;
|
|
84571
84634
|
const maxPrefix = Math.min(previousBlocks.length, nextBlocks.length);
|
|
@@ -84613,6 +84676,9 @@ async function emitBlockDiffPatches(previousBlocks, nextBlocks, changedRanges, m
|
|
|
84613
84676
|
const { patches: contentPatches, changedBlockCount } = await diffBlockContent(previousBlocks, nextBlocks, changedRanges, metrics);
|
|
84614
84677
|
metrics?.markDiffEnd();
|
|
84615
84678
|
const combined = patches.concat(contentPatches);
|
|
84679
|
+
if (tocPatch) {
|
|
84680
|
+
combined.push(tocPatch);
|
|
84681
|
+
}
|
|
84616
84682
|
let paragraphLimit = null;
|
|
84617
84683
|
if (workerCredits < 0.9) {
|
|
84618
84684
|
const dynamicBase = workerCredits < 0.5 ? 48 : 96;
|
|
@@ -85212,6 +85278,9 @@ async function finalizeAllBlocks() {
|
|
|
85212
85278
|
}
|
|
85213
85279
|
workerCredits = previousCredits;
|
|
85214
85280
|
}
|
|
85281
|
+
postMessage({
|
|
85282
|
+
type: "FINALIZED"
|
|
85283
|
+
});
|
|
85215
85284
|
if (getActiveMetricsCollector() === metricsCollector) {
|
|
85216
85285
|
setActiveMetricsCollector(null);
|
|
85217
85286
|
}
|
|
@@ -85357,6 +85426,14 @@ async function processWorkerMessage(msg) {
|
|
|
85357
85426
|
});
|
|
85358
85427
|
return;
|
|
85359
85428
|
}
|
|
85429
|
+
case "DUMP_BLOCKS": {
|
|
85430
|
+
postMessage({
|
|
85431
|
+
type: "DUMP_BLOCKS",
|
|
85432
|
+
blocks,
|
|
85433
|
+
tocHeadings
|
|
85434
|
+
});
|
|
85435
|
+
return;
|
|
85436
|
+
}
|
|
85360
85437
|
case "TOKENIZE_RANGE": {
|
|
85361
85438
|
const priority = msg.priority === "prefetch" ? "prefetch" : "visible";
|
|
85362
85439
|
enqueueLazyTokenization({
|