react-native-nitro-markdown 0.7.0 → 0.7.1
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 +128 -518
- package/lib/commonjs/MarkdownSession.js +6 -2
- package/lib/commonjs/MarkdownSession.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/markdown-stream.js +8 -6
- package/lib/commonjs/markdown-stream.js.map +1 -1
- package/lib/commonjs/use-markdown-stream.js +23 -4
- package/lib/commonjs/use-markdown-stream.js.map +1 -1
- package/lib/module/MarkdownSession.js +6 -2
- package/lib/module/MarkdownSession.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/markdown-stream.js +8 -6
- package/lib/module/markdown-stream.js.map +1 -1
- package/lib/module/use-markdown-stream.js +22 -5
- package/lib/module/use-markdown-stream.js.map +1 -1
- package/lib/typescript/commonjs/MarkdownSession.d.ts +1 -1
- package/lib/typescript/commonjs/MarkdownSession.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/markdown-stream.d.ts +2 -1
- package/lib/typescript/commonjs/markdown-stream.d.ts.map +1 -1
- package/lib/typescript/commonjs/use-markdown-stream.d.ts +4 -1
- package/lib/typescript/commonjs/use-markdown-stream.d.ts.map +1 -1
- package/lib/typescript/module/MarkdownSession.d.ts +1 -1
- package/lib/typescript/module/MarkdownSession.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/markdown-stream.d.ts +2 -1
- package/lib/typescript/module/markdown-stream.d.ts.map +1 -1
- package/lib/typescript/module/use-markdown-stream.d.ts +4 -1
- package/lib/typescript/module/use-markdown-stream.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/MarkdownSession.ts +9 -2
- package/src/index.ts +1 -0
- package/src/markdown-stream.tsx +12 -7
- package/src/use-markdown-stream.ts +53 -13
|
@@ -5,7 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createMarkdownSession = createMarkdownSession;
|
|
7
7
|
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
8
|
-
function createMarkdownSession() {
|
|
9
|
-
|
|
8
|
+
function createMarkdownSession(initialText) {
|
|
9
|
+
const session = _reactNativeNitroModules.NitroModules.createHybridObject("MarkdownSession");
|
|
10
|
+
if (initialText !== undefined) {
|
|
11
|
+
session.reset(initialText);
|
|
12
|
+
}
|
|
13
|
+
return session;
|
|
10
14
|
}
|
|
11
15
|
//# sourceMappingURL=MarkdownSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","createMarkdownSession","NitroModules","createHybridObject"],"sourceRoot":"../../src","sources":["MarkdownSession.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAKO,SAASC,qBAAqBA,
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","createMarkdownSession","initialText","session","NitroModules","createHybridObject","undefined","reset"],"sourceRoot":"../../src","sources":["MarkdownSession.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAKO,SAASC,qBAAqBA,CAACC,WAAoB,EAAmB;EAC3E,MAAMC,OAAO,GACXC,qCAAY,CAACC,kBAAkB,CAAkB,iBAAiB,CAAC;EAErE,IAAIH,WAAW,KAAKI,SAAS,EAAE;IAC7BH,OAAO,CAACI,KAAK,CAACL,WAAW,CAAC;EAC5B;EAEA,OAAOC,OAAO;AAChB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_headless","require","_markdown","_markdownStream","_MarkdownContext","_theme","_heading","_paragraph","_link","_blockquote","_horizontalRule","_code","_list","_table","_image","_math","_MarkdownSession","_useMarkdownStream","_codeHighlight"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAmBA,IAAAC,SAAA,GAAAD,OAAA;AASA,IAAAE,eAAA,GAAAF,OAAA;AAGA,IAAAG,gBAAA,GAAAH,OAAA;AAsBA,IAAAI,MAAA,GAAAJ,OAAA;AAYA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,KAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,MAAA,GAAAb,OAAA;AACA,IAAAc,KAAA,GAAAd,OAAA;AAEA,IAAAe,gBAAA,GAAAf,OAAA;AAEA,IAAAgB,kBAAA,GAAAhB,OAAA;
|
|
1
|
+
{"version":3,"names":["_headless","require","_markdown","_markdownStream","_MarkdownContext","_theme","_heading","_paragraph","_link","_blockquote","_horizontalRule","_code","_list","_table","_image","_math","_MarkdownSession","_useMarkdownStream","_codeHighlight"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAmBA,IAAAC,SAAA,GAAAD,OAAA;AASA,IAAAE,eAAA,GAAAF,OAAA;AAGA,IAAAG,gBAAA,GAAAH,OAAA;AAsBA,IAAAI,MAAA,GAAAJ,OAAA;AAYA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,KAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,MAAA,GAAAb,OAAA;AACA,IAAAc,KAAA,GAAAd,OAAA;AAEA,IAAAe,gBAAA,GAAAf,OAAA;AAEA,IAAAgB,kBAAA,GAAAhB,OAAA;AAQA,IAAAiB,cAAA,GAAAjB,OAAA","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.MarkdownStream = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _markdown = require("./markdown.js");
|
|
9
|
+
var _useMarkdownStream = require("./use-markdown-stream.js");
|
|
9
10
|
var _incrementalAst = require("./utils/incremental-ast.js");
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
12
|
const normalizeOffset = value => {
|
|
@@ -64,12 +65,13 @@ const MarkdownStream = ({
|
|
|
64
65
|
plugins,
|
|
65
66
|
...props
|
|
66
67
|
}) => {
|
|
68
|
+
const activeSession = (0, _useMarkdownStream.resolveMarkdownSession)(session);
|
|
67
69
|
const parseText = (0, _react.useCallback)(text => (0, _incrementalAst.parseMarkdownAst)(text, options), [options]);
|
|
68
70
|
const createEmptyAst = () => ({
|
|
69
71
|
type: "document",
|
|
70
72
|
children: []
|
|
71
73
|
});
|
|
72
|
-
const initialText =
|
|
74
|
+
const initialText = activeSession.getAllText();
|
|
73
75
|
const hasBeforeParsePlugins = plugins?.some(plugin => typeof plugin.beforeParse === "function") ?? false;
|
|
74
76
|
const [renderState, setRenderState] = (0, _react.useState)(() => ({
|
|
75
77
|
text: initialText,
|
|
@@ -94,7 +96,7 @@ const MarkdownStream = ({
|
|
|
94
96
|
};
|
|
95
97
|
}, []);
|
|
96
98
|
(0, _react.useEffect)(() => {
|
|
97
|
-
const initialText =
|
|
99
|
+
const initialText = activeSession.getAllText();
|
|
98
100
|
const initialState = {
|
|
99
101
|
text: initialText,
|
|
100
102
|
ast: hasBeforeParsePlugins ? createEmptyAst() : parseText(initialText)
|
|
@@ -105,7 +107,7 @@ const MarkdownStream = ({
|
|
|
105
107
|
forceFullSyncRef.current = false;
|
|
106
108
|
renderStateRef.current = initialState;
|
|
107
109
|
setRenderState(initialState);
|
|
108
|
-
}, [hasBeforeParsePlugins, parseText
|
|
110
|
+
}, [activeSession, hasBeforeParsePlugins, parseText]);
|
|
109
111
|
(0, _react.useEffect)(() => {
|
|
110
112
|
const flushUpdate = () => {
|
|
111
113
|
updateTimerRef.current = null;
|
|
@@ -127,7 +129,7 @@ const MarkdownStream = ({
|
|
|
127
129
|
pendingFrom,
|
|
128
130
|
pendingTo,
|
|
129
131
|
previousText: previousState.text,
|
|
130
|
-
session
|
|
132
|
+
session: activeSession
|
|
131
133
|
});
|
|
132
134
|
if (latest === previousState.text) return;
|
|
133
135
|
const nextAst = hasBeforeParsePlugins ? previousState.ast : (0, _incrementalAst.getNextStreamAst)({
|
|
@@ -165,7 +167,7 @@ const MarkdownStream = ({
|
|
|
165
167
|
};
|
|
166
168
|
let unsubscribe = null;
|
|
167
169
|
try {
|
|
168
|
-
unsubscribe =
|
|
170
|
+
unsubscribe = activeSession.addListener((from, to) => {
|
|
169
171
|
const nextFrom = normalizeOffset(from);
|
|
170
172
|
const nextTo = normalizeOffset(to);
|
|
171
173
|
if (nextFrom === null || nextTo === null || nextTo < nextFrom) {
|
|
@@ -197,7 +199,7 @@ const MarkdownStream = ({
|
|
|
197
199
|
rafRef.current = null;
|
|
198
200
|
}
|
|
199
201
|
};
|
|
200
|
-
}, [allowIncremental, hasBeforeParsePlugins, options, plugins,
|
|
202
|
+
}, [allowIncremental, hasBeforeParsePlugins, options, plugins, activeSession, updateIntervalMs, updateStrategy, useTransitionUpdates]);
|
|
201
203
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_markdown.Markdown, {
|
|
202
204
|
...props,
|
|
203
205
|
options: options,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_markdown","_incrementalAst","_jsxRuntime","normalizeOffset","value","Number","isFinite","Math","floor","resolveStreamText","forceFullSync","pendingFrom","pendingTo","previousText","session","getAllText","length","appendedChunk","getTextRange","warnStreamError","message","error","__DEV__","warn","Reflect","get","console","call","MarkdownStream","updateIntervalMs","updateStrategy","useTransitionUpdates","incrementalParsing","options","plugins","props","parseText","useCallback","text","parseMarkdownAst","createEmptyAst","type","children","initialText","hasBeforeParsePlugins","some","plugin","beforeParse","renderState","setRenderState","useState","ast","renderStateRef","useRef","pendingUpdateRef","pendingFromRef","pendingToRef","forceFullSyncRef","updateTimerRef","rafRef","mountedRef","allowIncremental","useEffect","current","initialState","flushUpdate","cancelAnimationFrame","previousState","latest","nextAst","getNextStreamAst","nextText","previousAst","nextState","startTransition","scheduleFlush","requestAnimationFrame","setTimeout","unsubscribe","addListener","from","to","nextFrom","nextTo","currentFrom","currentTo","min","max","clearTimeout","jsx","Markdown","sourceAst","undefined","exports"],"sourceRoot":"../../src","sources":["markdown-stream.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,
|
|
1
|
+
{"version":3,"names":["_react","require","_markdown","_useMarkdownStream","_incrementalAst","_jsxRuntime","normalizeOffset","value","Number","isFinite","Math","floor","resolveStreamText","forceFullSync","pendingFrom","pendingTo","previousText","session","getAllText","length","appendedChunk","getTextRange","warnStreamError","message","error","__DEV__","warn","Reflect","get","console","call","MarkdownStream","updateIntervalMs","updateStrategy","useTransitionUpdates","incrementalParsing","options","plugins","props","activeSession","resolveMarkdownSession","parseText","useCallback","text","parseMarkdownAst","createEmptyAst","type","children","initialText","hasBeforeParsePlugins","some","plugin","beforeParse","renderState","setRenderState","useState","ast","renderStateRef","useRef","pendingUpdateRef","pendingFromRef","pendingToRef","forceFullSyncRef","updateTimerRef","rafRef","mountedRef","allowIncremental","useEffect","current","initialState","flushUpdate","cancelAnimationFrame","previousState","latest","nextAst","getNextStreamAst","nextText","previousAst","nextState","startTransition","scheduleFlush","requestAnimationFrame","setTimeout","unsubscribe","addListener","from","to","nextFrom","nextTo","currentFrom","currentTo","min","max","clearTimeout","jsx","Markdown","sourceAst","undefined","exports"],"sourceRoot":"../../src","sources":["markdown-stream.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,15 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.isMarkdownSessionController = isMarkdownSessionController;
|
|
7
|
+
exports.resolveMarkdownSession = resolveMarkdownSession;
|
|
6
8
|
exports.useMarkdownSession = useMarkdownSession;
|
|
7
9
|
exports.useStream = useStream;
|
|
8
10
|
var _react = require("react");
|
|
9
11
|
var _MarkdownSession = require("./MarkdownSession.js");
|
|
10
12
|
var _streamTimeline = require("./utils/stream-timeline.js");
|
|
11
|
-
function useMarkdownSession() {
|
|
13
|
+
function useMarkdownSession(initialText) {
|
|
12
14
|
const sessionRef = (0, _react.useRef)(null);
|
|
15
|
+
const initialTextRef = (0, _react.useRef)(initialText);
|
|
13
16
|
if (sessionRef.current === null) {
|
|
14
|
-
sessionRef.current = (0, _MarkdownSession.createMarkdownSession)();
|
|
17
|
+
sessionRef.current = (0, _MarkdownSession.createMarkdownSession)(initialText);
|
|
15
18
|
}
|
|
16
19
|
const [isStreaming, setIsStreaming] = (0, _react.useState)(false);
|
|
17
20
|
(0, _react.useEffect)(() => {
|
|
@@ -28,6 +31,13 @@ function useMarkdownSession() {
|
|
|
28
31
|
}
|
|
29
32
|
};
|
|
30
33
|
}, []);
|
|
34
|
+
(0, _react.useEffect)(() => {
|
|
35
|
+
if (initialText === undefined || initialTextRef.current === initialText) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
initialTextRef.current = initialText;
|
|
39
|
+
sessionRef.current.reset(initialText);
|
|
40
|
+
}, [initialText]);
|
|
31
41
|
const stop = (0, _react.useCallback)(() => {
|
|
32
42
|
setIsStreaming(false);
|
|
33
43
|
}, []);
|
|
@@ -46,7 +56,7 @@ function useMarkdownSession() {
|
|
|
46
56
|
const replace = (0, _react.useCallback)((from, to, text) => {
|
|
47
57
|
return sessionRef.current.replace(from, to, text);
|
|
48
58
|
}, []);
|
|
49
|
-
return {
|
|
59
|
+
return (0, _react.useMemo)(() => ({
|
|
50
60
|
getSession,
|
|
51
61
|
isStreaming,
|
|
52
62
|
setIsStreaming,
|
|
@@ -55,7 +65,16 @@ function useMarkdownSession() {
|
|
|
55
65
|
setHighlight,
|
|
56
66
|
reset,
|
|
57
67
|
replace
|
|
58
|
-
};
|
|
68
|
+
}), [clear, getSession, isStreaming, replace, reset, setHighlight, setIsStreaming, stop]);
|
|
69
|
+
}
|
|
70
|
+
function isMarkdownSessionController(value) {
|
|
71
|
+
return typeof Reflect.get(value, "getSession") === "function";
|
|
72
|
+
}
|
|
73
|
+
function resolveMarkdownSession(session) {
|
|
74
|
+
if (isMarkdownSessionController(session)) {
|
|
75
|
+
return session.getSession();
|
|
76
|
+
}
|
|
77
|
+
return session;
|
|
59
78
|
}
|
|
60
79
|
function useStream(timestamps) {
|
|
61
80
|
const engine = useMarkdownSession();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_MarkdownSession","_streamTimeline","useMarkdownSession","sessionRef","useRef","current","createMarkdownSession","isStreaming","setIsStreaming","useState","useEffect","session","clear","dispose","stop","useCallback","highlightPosition","setHighlight","position","getSession","
|
|
1
|
+
{"version":3,"names":["_react","require","_MarkdownSession","_streamTimeline","useMarkdownSession","initialText","sessionRef","useRef","initialTextRef","current","createMarkdownSession","isStreaming","setIsStreaming","useState","useEffect","session","clear","dispose","undefined","reset","stop","useCallback","highlightPosition","setHighlight","position","getSession","text","replace","from","to","useMemo","isMarkdownSessionController","value","Reflect","get","resolveMarkdownSession","useStream","timestamps","engine","isPlaying","setIsPlaying","timelineRef","entries","monotonic","lastHighlightRef","createTimestampTimeline","sync","currentTimeMs","nextHighlight","resolveHighlightPosition"],"sourceRoot":"../../src","sources":["use-markdown-stream.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { NitroModules } from "react-native-nitro-modules";
|
|
4
|
-
export function createMarkdownSession() {
|
|
5
|
-
|
|
4
|
+
export function createMarkdownSession(initialText) {
|
|
5
|
+
const session = NitroModules.createHybridObject("MarkdownSession");
|
|
6
|
+
if (initialText !== undefined) {
|
|
7
|
+
session.reset(initialText);
|
|
8
|
+
}
|
|
9
|
+
return session;
|
|
6
10
|
}
|
|
7
11
|
//# sourceMappingURL=MarkdownSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroModules","createMarkdownSession","createHybridObject"],"sourceRoot":"../../src","sources":["MarkdownSession.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAKzD,OAAO,SAASC,qBAAqBA,
|
|
1
|
+
{"version":3,"names":["NitroModules","createMarkdownSession","initialText","session","createHybridObject","undefined","reset"],"sourceRoot":"../../src","sources":["MarkdownSession.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAKzD,OAAO,SAASC,qBAAqBA,CAACC,WAAoB,EAAmB;EAC3E,MAAMC,OAAO,GACXH,YAAY,CAACI,kBAAkB,CAAkB,iBAAiB,CAAC;EAErE,IAAIF,WAAW,KAAKG,SAAS,EAAE;IAC7BF,OAAO,CAACG,KAAK,CAACJ,WAAW,CAAC;EAC5B;EAEA,OAAOC,OAAO;AAChB","ignoreList":[]}
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MarkdownParserModule","parseMarkdown","parseMarkdownWithOptions","extractPlainText","extractPlainTextWithOptions","getTextContent","getFlattenedText","stripSourceOffsets","Markdown","MarkdownStream","useMarkdownContext","MarkdownContext","defaultMarkdownTheme","minimalMarkdownTheme","mergeThemes","Heading","Paragraph","Link","Blockquote","HorizontalRule","CodeBlock","InlineCode","List","ListItem","TaskListItem","TableRenderer","Image","MathInline","MathBlock","createMarkdownSession","useMarkdownSession","useStream","defaultHighlighter"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,oBAAoB,EACpBC,aAAa,EACbC,wBAAwB,EACxBC,gBAAgB,EAChBC,2BAA2B,EAC3BC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,QACb,eAAY;AAUnB,SAASC,QAAQ,QAAQ,eAAY;AASrC,SAASC,cAAc,QAAQ,sBAAmB;AAGlD,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,sBAAmB;AAsBvE,SACEC,oBAAoB,EACpBC,oBAAoB,EACpBC,WAAW,QACN,YAAS;AAQhB,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,SAAS,QAAQ,0BAAuB;AACjD,SAASC,IAAI,QAAQ,qBAAkB;AACvC,SAASC,UAAU,QAAQ,2BAAwB;AACnD,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,SAAS,EAAEC,UAAU,QAAQ,qBAAkB;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,qBAAkB;AAC/D,SAASC,aAAa,QAAQ,sBAAmB;AACjD,SAASC,KAAK,QAAQ,sBAAmB;AACzC,SAASC,UAAU,EAAEC,SAAS,QAAQ,qBAAkB;AAExD,SAASC,qBAAqB,QAAQ,sBAAmB;AAEzD,SAASC,kBAAkB,EAAEC,SAAS,QAAQ,0BAAuB;
|
|
1
|
+
{"version":3,"names":["MarkdownParserModule","parseMarkdown","parseMarkdownWithOptions","extractPlainText","extractPlainTextWithOptions","getTextContent","getFlattenedText","stripSourceOffsets","Markdown","MarkdownStream","useMarkdownContext","MarkdownContext","defaultMarkdownTheme","minimalMarkdownTheme","mergeThemes","Heading","Paragraph","Link","Blockquote","HorizontalRule","CodeBlock","InlineCode","List","ListItem","TaskListItem","TableRenderer","Image","MathInline","MathBlock","createMarkdownSession","useMarkdownSession","useStream","defaultHighlighter"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,oBAAoB,EACpBC,aAAa,EACbC,wBAAwB,EACxBC,gBAAgB,EAChBC,2BAA2B,EAC3BC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,QACb,eAAY;AAUnB,SAASC,QAAQ,QAAQ,eAAY;AASrC,SAASC,cAAc,QAAQ,sBAAmB;AAGlD,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,sBAAmB;AAsBvE,SACEC,oBAAoB,EACpBC,oBAAoB,EACpBC,WAAW,QACN,YAAS;AAQhB,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,SAAS,QAAQ,0BAAuB;AACjD,SAASC,IAAI,QAAQ,qBAAkB;AACvC,SAASC,UAAU,QAAQ,2BAAwB;AACnD,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,SAAS,EAAEC,UAAU,QAAQ,qBAAkB;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,qBAAkB;AAC/D,SAASC,aAAa,QAAQ,sBAAmB;AACjD,SAASC,KAAK,QAAQ,sBAAmB;AACzC,SAASC,UAAU,EAAEC,SAAS,QAAQ,qBAAkB;AAExD,SAASC,qBAAqB,QAAQ,sBAAmB;AAEzD,SAASC,kBAAkB,EAAEC,SAAS,QAAQ,0BAAuB;AAQrE,SAASC,kBAAkB,QAAQ,2BAAwB","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useState, useEffect, useRef, useCallback, startTransition } from "react";
|
|
4
4
|
import { Markdown } from "./markdown.js";
|
|
5
|
+
import { resolveMarkdownSession } from "./use-markdown-stream.js";
|
|
5
6
|
import { getNextStreamAst, parseMarkdownAst } from "./utils/incremental-ast.js";
|
|
6
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
8
|
const normalizeOffset = value => {
|
|
@@ -60,12 +61,13 @@ export const MarkdownStream = ({
|
|
|
60
61
|
plugins,
|
|
61
62
|
...props
|
|
62
63
|
}) => {
|
|
64
|
+
const activeSession = resolveMarkdownSession(session);
|
|
63
65
|
const parseText = useCallback(text => parseMarkdownAst(text, options), [options]);
|
|
64
66
|
const createEmptyAst = () => ({
|
|
65
67
|
type: "document",
|
|
66
68
|
children: []
|
|
67
69
|
});
|
|
68
|
-
const initialText =
|
|
70
|
+
const initialText = activeSession.getAllText();
|
|
69
71
|
const hasBeforeParsePlugins = plugins?.some(plugin => typeof plugin.beforeParse === "function") ?? false;
|
|
70
72
|
const [renderState, setRenderState] = useState(() => ({
|
|
71
73
|
text: initialText,
|
|
@@ -90,7 +92,7 @@ export const MarkdownStream = ({
|
|
|
90
92
|
};
|
|
91
93
|
}, []);
|
|
92
94
|
useEffect(() => {
|
|
93
|
-
const initialText =
|
|
95
|
+
const initialText = activeSession.getAllText();
|
|
94
96
|
const initialState = {
|
|
95
97
|
text: initialText,
|
|
96
98
|
ast: hasBeforeParsePlugins ? createEmptyAst() : parseText(initialText)
|
|
@@ -101,7 +103,7 @@ export const MarkdownStream = ({
|
|
|
101
103
|
forceFullSyncRef.current = false;
|
|
102
104
|
renderStateRef.current = initialState;
|
|
103
105
|
setRenderState(initialState);
|
|
104
|
-
}, [hasBeforeParsePlugins, parseText
|
|
106
|
+
}, [activeSession, hasBeforeParsePlugins, parseText]);
|
|
105
107
|
useEffect(() => {
|
|
106
108
|
const flushUpdate = () => {
|
|
107
109
|
updateTimerRef.current = null;
|
|
@@ -123,7 +125,7 @@ export const MarkdownStream = ({
|
|
|
123
125
|
pendingFrom,
|
|
124
126
|
pendingTo,
|
|
125
127
|
previousText: previousState.text,
|
|
126
|
-
session
|
|
128
|
+
session: activeSession
|
|
127
129
|
});
|
|
128
130
|
if (latest === previousState.text) return;
|
|
129
131
|
const nextAst = hasBeforeParsePlugins ? previousState.ast : getNextStreamAst({
|
|
@@ -161,7 +163,7 @@ export const MarkdownStream = ({
|
|
|
161
163
|
};
|
|
162
164
|
let unsubscribe = null;
|
|
163
165
|
try {
|
|
164
|
-
unsubscribe =
|
|
166
|
+
unsubscribe = activeSession.addListener((from, to) => {
|
|
165
167
|
const nextFrom = normalizeOffset(from);
|
|
166
168
|
const nextTo = normalizeOffset(to);
|
|
167
169
|
if (nextFrom === null || nextTo === null || nextTo < nextFrom) {
|
|
@@ -193,7 +195,7 @@ export const MarkdownStream = ({
|
|
|
193
195
|
rafRef.current = null;
|
|
194
196
|
}
|
|
195
197
|
};
|
|
196
|
-
}, [allowIncremental, hasBeforeParsePlugins, options, plugins,
|
|
198
|
+
}, [allowIncremental, hasBeforeParsePlugins, options, plugins, activeSession, updateIntervalMs, updateStrategy, useTransitionUpdates]);
|
|
197
199
|
return /*#__PURE__*/_jsx(Markdown, {
|
|
198
200
|
...props,
|
|
199
201
|
options: options,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useRef","useCallback","startTransition","Markdown","getNextStreamAst","parseMarkdownAst","jsx","_jsx","normalizeOffset","value","Number","isFinite","Math","floor","resolveStreamText","forceFullSync","pendingFrom","pendingTo","previousText","session","getAllText","length","appendedChunk","getTextRange","warnStreamError","message","error","__DEV__","warn","Reflect","get","console","call","MarkdownStream","updateIntervalMs","updateStrategy","useTransitionUpdates","incrementalParsing","options","plugins","props","parseText","text","createEmptyAst","type","children","initialText","hasBeforeParsePlugins","some","plugin","beforeParse","renderState","setRenderState","ast","renderStateRef","pendingUpdateRef","pendingFromRef","pendingToRef","forceFullSyncRef","updateTimerRef","rafRef","mountedRef","allowIncremental","current","initialState","flushUpdate","cancelAnimationFrame","previousState","latest","nextAst","nextText","previousAst","nextState","scheduleFlush","requestAnimationFrame","setTimeout","unsubscribe","addListener","from","to","nextFrom","nextTo","currentFrom","currentTo","min","max","clearTimeout","sourceAst","undefined"],"sourceRoot":"../../src","sources":["markdown-stream.tsx"],"mappings":";;AAAA,SACEA,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,eAAe,QAEV,OAAO;AAEd,SAASC,QAAQ,QAA4B,eAAY;AAEzD,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,4BAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE7E,MAAMC,eAAe,GAAIC,KAAa,IAAoB;EACxD,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,EAAE,OAAO,IAAI;EACxC,IAAIA,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC;EACxB,OAAOG,IAAI,CAACC,KAAK,CAACJ,KAAK,CAAC;AAC1B,CAAC;AAED,MAAMK,iBAAiB,GAAGA,CAAC;EACzBC,aAAa;EACbC,WAAW;EACXC,SAAS;EACTC,YAAY;EACZC;AAOF,CAAC,KAAa;EACZ,IAAIJ,aAAa,IAAIC,WAAW,KAAK,IAAI,IAAIC,SAAS,KAAK,IAAI,EAAE;IAC/D,OAAOE,OAAO,CAACC,UAAU,CAAC,CAAC;EAC7B;EAEA,IAAIH,SAAS,GAAGD,WAAW,EAAE;IAC3B,OAAOG,OAAO,CAACC,UAAU,CAAC,CAAC;EAC7B;EAEA,IAAIJ,WAAW,KAAKE,YAAY,CAACG,MAAM,EAAE;IACvC,IAAI;MACF,MAAMC,aAAa,GAAGH,OAAO,CAACI,YAAY,CAACP,WAAW,EAAEC,SAAS,CAAC;MAClE,OAAO,GAAGC,YAAY,GAAGI,aAAa,EAAE;IAC1C,CAAC,CAAC,MAAM;MACN,OAAOH,OAAO,CAACC,UAAU,CAAC,CAAC;IAC7B;EACF;EAEA,IAAIJ,WAAW,KAAK,CAAC,EAAE;IACrB,IAAI;MACF,OAAOG,OAAO,CAACI,YAAY,CAAC,CAAC,EAAEN,SAAS,CAAC;IAC3C,CAAC,CAAC,MAAM;MACN,OAAOE,OAAO,CAACC,UAAU,CAAC,CAAC;IAC7B;EACF;EAEA,OAAOD,OAAO,CAACC,UAAU,CAAC,CAAC;AAC7B,CAAC;AAED,SAASI,eAAeA,CAACC,OAAe,EAAEC,KAAc,EAAQ;EAC9D,IAAI,CAACC,OAAO,EAAE;EAEd,MAAMC,IAAI,GAAGC,OAAO,CAACC,GAAG,CAACC,OAAO,EAAE,MAAM,CAAC;EACzC,IAAI,OAAOH,IAAI,KAAK,UAAU,EAAE;IAC9BA,IAAI,CAACI,IAAI,CAACD,OAAO,EAAEN,OAAO,EAAEC,KAAK,CAAC;EACpC;AACF;AA+BA;AACA;AACA;AACA;AACA,OAAO,MAAMO,cAAuC,GAAGA,CAAC;EACtDd,OAAO;EACPe,gBAAgB,GAAG,EAAE;EACrBC,cAAc,GAAG,UAAU;EAC3BC,oBAAoB,GAAG,KAAK;EAC5BC,kBAAkB,GAAG,IAAI;EACzBC,OAAO;EACPC,OAAO;EACP,GAAGC;AACL,CAAC,KAAK;EACJ,MAAMC,SAAS,
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useRef","useCallback","startTransition","Markdown","resolveMarkdownSession","getNextStreamAst","parseMarkdownAst","jsx","_jsx","normalizeOffset","value","Number","isFinite","Math","floor","resolveStreamText","forceFullSync","pendingFrom","pendingTo","previousText","session","getAllText","length","appendedChunk","getTextRange","warnStreamError","message","error","__DEV__","warn","Reflect","get","console","call","MarkdownStream","updateIntervalMs","updateStrategy","useTransitionUpdates","incrementalParsing","options","plugins","props","activeSession","parseText","text","createEmptyAst","type","children","initialText","hasBeforeParsePlugins","some","plugin","beforeParse","renderState","setRenderState","ast","renderStateRef","pendingUpdateRef","pendingFromRef","pendingToRef","forceFullSyncRef","updateTimerRef","rafRef","mountedRef","allowIncremental","current","initialState","flushUpdate","cancelAnimationFrame","previousState","latest","nextAst","nextText","previousAst","nextState","scheduleFlush","requestAnimationFrame","setTimeout","unsubscribe","addListener","from","to","nextFrom","nextTo","currentFrom","currentTo","min","max","clearTimeout","sourceAst","undefined"],"sourceRoot":"../../src","sources":["markdown-stream.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useRef, useCallback, useState, useEffect } from "react";
|
|
3
|
+
import { useRef, useCallback, useState, useEffect, useMemo } from "react";
|
|
4
4
|
import { createMarkdownSession } from "./MarkdownSession.js";
|
|
5
5
|
import { createTimestampTimeline, resolveHighlightPosition } from "./utils/stream-timeline.js";
|
|
6
|
-
export function useMarkdownSession() {
|
|
6
|
+
export function useMarkdownSession(initialText) {
|
|
7
7
|
const sessionRef = useRef(null);
|
|
8
|
+
const initialTextRef = useRef(initialText);
|
|
8
9
|
if (sessionRef.current === null) {
|
|
9
|
-
sessionRef.current = createMarkdownSession();
|
|
10
|
+
sessionRef.current = createMarkdownSession(initialText);
|
|
10
11
|
}
|
|
11
12
|
const [isStreaming, setIsStreaming] = useState(false);
|
|
12
13
|
useEffect(() => {
|
|
@@ -23,6 +24,13 @@ export function useMarkdownSession() {
|
|
|
23
24
|
}
|
|
24
25
|
};
|
|
25
26
|
}, []);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (initialText === undefined || initialTextRef.current === initialText) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
initialTextRef.current = initialText;
|
|
32
|
+
sessionRef.current.reset(initialText);
|
|
33
|
+
}, [initialText]);
|
|
26
34
|
const stop = useCallback(() => {
|
|
27
35
|
setIsStreaming(false);
|
|
28
36
|
}, []);
|
|
@@ -41,7 +49,7 @@ export function useMarkdownSession() {
|
|
|
41
49
|
const replace = useCallback((from, to, text) => {
|
|
42
50
|
return sessionRef.current.replace(from, to, text);
|
|
43
51
|
}, []);
|
|
44
|
-
return {
|
|
52
|
+
return useMemo(() => ({
|
|
45
53
|
getSession,
|
|
46
54
|
isStreaming,
|
|
47
55
|
setIsStreaming,
|
|
@@ -50,7 +58,16 @@ export function useMarkdownSession() {
|
|
|
50
58
|
setHighlight,
|
|
51
59
|
reset,
|
|
52
60
|
replace
|
|
53
|
-
};
|
|
61
|
+
}), [clear, getSession, isStreaming, replace, reset, setHighlight, setIsStreaming, stop]);
|
|
62
|
+
}
|
|
63
|
+
export function isMarkdownSessionController(value) {
|
|
64
|
+
return typeof Reflect.get(value, "getSession") === "function";
|
|
65
|
+
}
|
|
66
|
+
export function resolveMarkdownSession(session) {
|
|
67
|
+
if (isMarkdownSessionController(session)) {
|
|
68
|
+
return session.getSession();
|
|
69
|
+
}
|
|
70
|
+
return session;
|
|
54
71
|
}
|
|
55
72
|
export function useStream(timestamps) {
|
|
56
73
|
const engine = useMarkdownSession();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useCallback","useState","useEffect","createMarkdownSession","createTimestampTimeline","resolveHighlightPosition","useMarkdownSession","sessionRef","current","isStreaming","setIsStreaming","session","clear","dispose","stop","highlightPosition","setHighlight","position","getSession","
|
|
1
|
+
{"version":3,"names":["useRef","useCallback","useState","useEffect","useMemo","createMarkdownSession","createTimestampTimeline","resolveHighlightPosition","useMarkdownSession","initialText","sessionRef","initialTextRef","current","isStreaming","setIsStreaming","session","clear","dispose","undefined","reset","stop","highlightPosition","setHighlight","position","getSession","text","replace","from","to","isMarkdownSessionController","value","Reflect","get","resolveMarkdownSession","useStream","timestamps","engine","isPlaying","setIsPlaying","timelineRef","entries","monotonic","lastHighlightRef","sync","currentTimeMs","nextHighlight"],"sourceRoot":"../../src","sources":["use-markdown-stream.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { MarkdownSession as MarkdownSessionSpec } from "./specs/MarkdownSession.nitro";
|
|
2
2
|
export type MarkdownSession = MarkdownSessionSpec;
|
|
3
|
-
export declare function createMarkdownSession(): MarkdownSession;
|
|
3
|
+
export declare function createMarkdownSession(initialText?: string): MarkdownSession;
|
|
4
4
|
//# sourceMappingURL=MarkdownSession.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSession.d.ts","sourceRoot":"","sources":["../../../src/MarkdownSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE5F,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAElD,wBAAgB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"MarkdownSession.d.ts","sourceRoot":"","sources":["../../../src/MarkdownSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE5F,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAElD,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,eAAe,CAS3E"}
|
|
@@ -21,6 +21,7 @@ export { MathInline, MathBlock } from "./renderers/math";
|
|
|
21
21
|
export { createMarkdownSession } from "./MarkdownSession";
|
|
22
22
|
export type { MarkdownSession } from "./MarkdownSession";
|
|
23
23
|
export { useMarkdownSession, useStream } from "./use-markdown-stream";
|
|
24
|
+
export type { MarkdownSessionController } from "./use-markdown-stream";
|
|
24
25
|
export type { HighlightedToken, TokenType, CodeHighlighter, } from "./utils/code-highlight";
|
|
25
26
|
export { defaultHighlighter } from "./utils/code-highlight";
|
|
26
27
|
export type { UrlSafetyOptions } from "./utils/link-security";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACtE,YAAY,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEvE,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { type FC } from "react";
|
|
2
2
|
import { type MarkdownProps } from "./markdown";
|
|
3
3
|
import type { MarkdownSession } from "./specs/MarkdownSession.nitro";
|
|
4
|
+
import { type MarkdownSessionController } from "./use-markdown-stream";
|
|
4
5
|
export type MarkdownStreamProps = {
|
|
5
6
|
/**
|
|
6
7
|
* The active MarkdownSession to stream content from.
|
|
7
8
|
*/
|
|
8
|
-
session: MarkdownSession;
|
|
9
|
+
session: MarkdownSession | MarkdownSessionController;
|
|
9
10
|
/**
|
|
10
11
|
* Throttle UI updates when updateStrategy is "interval".
|
|
11
12
|
* Ignored when updateStrategy is "raf".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-stream.d.ts","sourceRoot":"","sources":["../../../src/markdown-stream.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-stream.d.ts","sourceRoot":"","sources":["../../../src/markdown-stream.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AA2D/B,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,OAAO,EAAE,eAAe,GAAG,yBAAyB,CAAC;IACrD;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IACpC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAiMlD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createMarkdownSession } from "./MarkdownSession";
|
|
2
2
|
export type MarkdownSession = ReturnType<typeof createMarkdownSession>;
|
|
3
|
-
export declare function useMarkdownSession(): {
|
|
3
|
+
export declare function useMarkdownSession(initialText?: string): {
|
|
4
4
|
getSession: () => import("./specs/MarkdownSession.nitro").MarkdownSession;
|
|
5
5
|
isStreaming: boolean;
|
|
6
6
|
setIsStreaming: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
@@ -10,6 +10,9 @@ export declare function useMarkdownSession(): {
|
|
|
10
10
|
reset: (text: string) => void;
|
|
11
11
|
replace: (from: number, to: number, text: string) => number;
|
|
12
12
|
};
|
|
13
|
+
export type MarkdownSessionController = ReturnType<typeof useMarkdownSession>;
|
|
14
|
+
export declare function isMarkdownSessionController(value: MarkdownSession | MarkdownSessionController): value is MarkdownSessionController;
|
|
15
|
+
export declare function resolveMarkdownSession(session: MarkdownSession | MarkdownSessionController): MarkdownSession;
|
|
13
16
|
export declare function useStream(timestamps?: Record<number, number>): {
|
|
14
17
|
isPlaying: boolean;
|
|
15
18
|
setIsPlaying: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-markdown-stream.d.ts","sourceRoot":"","sources":["../../../src/use-markdown-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAO1D,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,wBAAgB,kBAAkB;;;;;;
|
|
1
|
+
{"version":3,"file":"use-markdown-stream.d.ts","sourceRoot":"","sources":["../../../src/use-markdown-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAO1D,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,wBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM;;;;;;6BA2CT,MAAM;kBAMjB,MAAM;oBAIJ,MAAM,MAAM,MAAM,QAAQ,MAAM;EA0BpE;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9E,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,GAAG,yBAAyB,GACjD,KAAK,IAAI,yBAAyB,CAEpC;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,GAAG,yBAAyB,GACnD,eAAe,CAMjB;AAED,wBAAgB,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;0BAgBzC,MAAM;;;;;;6BAxEoB,MAAM;kBAMjB,MAAM;oBAIJ,MAAM,MAAM,MAAM,QAAQ,MAAM;EAmFpE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { MarkdownSession as MarkdownSessionSpec } from "./specs/MarkdownSession.nitro";
|
|
2
2
|
export type MarkdownSession = MarkdownSessionSpec;
|
|
3
|
-
export declare function createMarkdownSession(): MarkdownSession;
|
|
3
|
+
export declare function createMarkdownSession(initialText?: string): MarkdownSession;
|
|
4
4
|
//# sourceMappingURL=MarkdownSession.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSession.d.ts","sourceRoot":"","sources":["../../../src/MarkdownSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE5F,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAElD,wBAAgB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"MarkdownSession.d.ts","sourceRoot":"","sources":["../../../src/MarkdownSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE5F,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAElD,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,eAAe,CAS3E"}
|
|
@@ -21,6 +21,7 @@ export { MathInline, MathBlock } from "./renderers/math";
|
|
|
21
21
|
export { createMarkdownSession } from "./MarkdownSession";
|
|
22
22
|
export type { MarkdownSession } from "./MarkdownSession";
|
|
23
23
|
export { useMarkdownSession, useStream } from "./use-markdown-stream";
|
|
24
|
+
export type { MarkdownSessionController } from "./use-markdown-stream";
|
|
24
25
|
export type { HighlightedToken, TokenType, CodeHighlighter, } from "./utils/code-highlight";
|
|
25
26
|
export { defaultHighlighter } from "./utils/code-highlight";
|
|
26
27
|
export type { UrlSafetyOptions } from "./utils/link-security";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACtE,YAAY,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEvE,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { type FC } from "react";
|
|
2
2
|
import { type MarkdownProps } from "./markdown";
|
|
3
3
|
import type { MarkdownSession } from "./specs/MarkdownSession.nitro";
|
|
4
|
+
import { type MarkdownSessionController } from "./use-markdown-stream";
|
|
4
5
|
export type MarkdownStreamProps = {
|
|
5
6
|
/**
|
|
6
7
|
* The active MarkdownSession to stream content from.
|
|
7
8
|
*/
|
|
8
|
-
session: MarkdownSession;
|
|
9
|
+
session: MarkdownSession | MarkdownSessionController;
|
|
9
10
|
/**
|
|
10
11
|
* Throttle UI updates when updateStrategy is "interval".
|
|
11
12
|
* Ignored when updateStrategy is "raf".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-stream.d.ts","sourceRoot":"","sources":["../../../src/markdown-stream.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-stream.d.ts","sourceRoot":"","sources":["../../../src/markdown-stream.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AA2D/B,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,OAAO,EAAE,eAAe,GAAG,yBAAyB,CAAC;IACrD;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IACpC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAiMlD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createMarkdownSession } from "./MarkdownSession";
|
|
2
2
|
export type MarkdownSession = ReturnType<typeof createMarkdownSession>;
|
|
3
|
-
export declare function useMarkdownSession(): {
|
|
3
|
+
export declare function useMarkdownSession(initialText?: string): {
|
|
4
4
|
getSession: () => import("./specs/MarkdownSession.nitro").MarkdownSession;
|
|
5
5
|
isStreaming: boolean;
|
|
6
6
|
setIsStreaming: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
@@ -10,6 +10,9 @@ export declare function useMarkdownSession(): {
|
|
|
10
10
|
reset: (text: string) => void;
|
|
11
11
|
replace: (from: number, to: number, text: string) => number;
|
|
12
12
|
};
|
|
13
|
+
export type MarkdownSessionController = ReturnType<typeof useMarkdownSession>;
|
|
14
|
+
export declare function isMarkdownSessionController(value: MarkdownSession | MarkdownSessionController): value is MarkdownSessionController;
|
|
15
|
+
export declare function resolveMarkdownSession(session: MarkdownSession | MarkdownSessionController): MarkdownSession;
|
|
13
16
|
export declare function useStream(timestamps?: Record<number, number>): {
|
|
14
17
|
isPlaying: boolean;
|
|
15
18
|
setIsPlaying: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|