@springbrand/file-renderers 0.1.0-alpha.0 → 0.1.0-alpha.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 +7 -1
- package/dist/file-renderers/src/attachment-format.d.ts +1 -1
- package/dist/file-renderers/src/attachment-format.js +21 -21
- package/dist/file-renderers/src/attachment.d.ts +3 -3
- package/dist/file-renderers/src/attachment.js +4 -4
- package/dist/file-renderers/src/code/index.d.ts +3 -3
- package/dist/file-renderers/src/code/index.js +2 -2
- package/dist/file-renderers/src/code/mime.d.ts +1 -1
- package/dist/file-renderers/src/code/mime.js +1 -1
- package/dist/file-renderers/src/config/index.d.ts +8 -8
- package/dist/file-renderers/src/config/index.js +11 -11
- package/dist/file-renderers/src/config/limits.js +1 -1
- package/dist/file-renderers/src/config/mime.d.ts +1 -1
- package/dist/file-renderers/src/config/mime.js +1 -1
- package/dist/file-renderers/src/config/toml.d.ts +1 -1
- package/dist/file-renderers/src/config/toml.js +1 -1
- package/dist/file-renderers/src/config/xml.d.ts +1 -1
- package/dist/file-renderers/src/config/xml.js +1 -1
- package/dist/file-renderers/src/config/yaml.d.ts +2 -2
- package/dist/file-renderers/src/config/yaml.js +1 -1
- package/dist/file-renderers/src/contracts.d.ts +2 -0
- package/dist/file-renderers/src/csv/index.d.ts +2 -2
- package/dist/file-renderers/src/csv/index.js +2 -2
- package/dist/file-renderers/src/csv/mime.d.ts +1 -1
- package/dist/file-renderers/src/csv/mime.js +1 -1
- package/dist/file-renderers/src/docx/index.d.ts +2 -2
- package/dist/file-renderers/src/docx/index.js +4 -4
- package/dist/file-renderers/src/docx/mime.d.ts +1 -1
- package/dist/file-renderers/src/docx/mime.js +1 -1
- package/dist/file-renderers/src/drawio/index.d.ts +5 -5
- package/dist/file-renderers/src/drawio/index.js +4 -4
- package/dist/file-renderers/src/drawio/mime.d.ts +1 -1
- package/dist/file-renderers/src/drawio/mime.js +1 -1
- package/dist/file-renderers/src/drawio/parse.d.ts +1 -1
- package/dist/file-renderers/src/excalidraw/index.d.ts +2 -2
- package/dist/file-renderers/src/excalidraw/index.js +3 -3
- package/dist/file-renderers/src/excalidraw/mime.d.ts +1 -1
- package/dist/file-renderers/src/excalidraw/mime.js +1 -1
- package/dist/file-renderers/src/file-format.js +21 -21
- package/dist/file-renderers/src/glb/index.d.ts +3 -3
- package/dist/file-renderers/src/glb/index.js +4 -4
- package/dist/file-renderers/src/glb/mime.d.ts +1 -1
- package/dist/file-renderers/src/glb/mime.js +1 -1
- package/dist/file-renderers/src/glb/parse.js +1 -1
- package/dist/file-renderers/src/html/index.d.ts +2 -2
- package/dist/file-renderers/src/html/index.js +2 -2
- package/dist/file-renderers/src/html/mime.d.ts +1 -1
- package/dist/file-renderers/src/html/mime.js +1 -1
- package/dist/file-renderers/src/html/preview-project.d.ts +2 -3
- package/dist/file-renderers/src/html/preview-project.js +13 -53
- package/dist/file-renderers/src/html/preview.d.ts +3 -3
- package/dist/file-renderers/src/html/preview.js +2 -2
- package/dist/file-renderers/src/image/index.d.ts +2 -2
- package/dist/file-renderers/src/image/index.js +2 -2
- package/dist/file-renderers/src/image/mime.d.ts +1 -1
- package/dist/file-renderers/src/image/mime.js +1 -1
- package/dist/file-renderers/src/index.d.ts +28 -27
- package/dist/file-renderers/src/index.js +28 -27
- package/dist/file-renderers/src/json/index.d.ts +4 -4
- package/dist/file-renderers/src/json/index.js +5 -5
- package/dist/file-renderers/src/json/json.typecheck.js +2 -2
- package/dist/file-renderers/src/json/jsonl.d.ts +4 -4
- package/dist/file-renderers/src/json/jsonl.js +5 -5
- package/dist/file-renderers/src/json/mime.d.ts +1 -1
- package/dist/file-renderers/src/json/mime.js +2 -2
- package/dist/file-renderers/src/json/parse.d.ts +1 -1
- package/dist/file-renderers/src/json/parse.js +1 -1
- package/dist/file-renderers/src/markdown/index.d.ts +2 -2
- package/dist/file-renderers/src/markdown/index.js +2 -2
- package/dist/file-renderers/src/markdown/mime.d.ts +1 -1
- package/dist/file-renderers/src/markdown/mime.js +1 -1
- package/dist/file-renderers/src/media/index.d.ts +5 -5
- package/dist/file-renderers/src/media/index.js +3 -3
- package/dist/file-renderers/src/media/mime.d.ts +1 -1
- package/dist/file-renderers/src/media/mime.js +1 -1
- package/dist/file-renderers/src/mermaid/frame.d.ts +1 -1
- package/dist/file-renderers/src/mermaid/frame.js +1 -1
- package/dist/file-renderers/src/mermaid/index.d.ts +3 -3
- package/dist/file-renderers/src/mermaid/index.js +4 -4
- package/dist/file-renderers/src/mermaid/mime.d.ts +1 -1
- package/dist/file-renderers/src/mermaid/mime.js +1 -1
- package/dist/file-renderers/src/notebook/index.d.ts +4 -4
- package/dist/file-renderers/src/notebook/index.js +8 -8
- package/dist/file-renderers/src/notebook/mime.d.ts +1 -1
- package/dist/file-renderers/src/notebook/mime.js +1 -1
- package/dist/file-renderers/src/notebook/parse.d.ts +2 -2
- package/dist/file-renderers/src/notebook/parse.js +4 -4
- package/dist/file-renderers/src/pdf/index.d.ts +2 -2
- package/dist/file-renderers/src/pdf/index.js +2 -2
- package/dist/file-renderers/src/pdf/mime.d.ts +1 -1
- package/dist/file-renderers/src/pdf/mime.js +1 -1
- package/dist/file-renderers/src/ppt/index.d.ts +2 -2
- package/dist/file-renderers/src/ppt/index.js +3 -3
- package/dist/file-renderers/src/ppt/mime.d.ts +1 -1
- package/dist/file-renderers/src/ppt/mime.js +1 -1
- package/dist/file-renderers/src/preview-content.d.ts +1 -1
- package/dist/file-renderers/src/preview-content.js +11 -11
- package/dist/file-renderers/src/preview-host.d.ts +23 -23
- package/dist/file-renderers/src/preview-host.js +24 -24
- package/dist/file-renderers/src/preview-surface.d.ts +2 -2
- package/dist/file-renderers/src/preview-surface.js +3 -3
- package/dist/file-renderers/src/registry.d.ts +1 -1
- package/dist/file-renderers/src/resource-path.d.ts +7 -0
- package/dist/file-renderers/src/resource-path.js +37 -0
- package/dist/file-renderers/src/svg/index.d.ts +3 -3
- package/dist/file-renderers/src/svg/index.js +5 -5
- package/dist/file-renderers/src/svg/mime.d.ts +1 -1
- package/dist/file-renderers/src/svg/mime.js +1 -1
- package/dist/file-renderers/src/svg/parse.d.ts +1 -1
- package/dist/file-renderers/src/svg/parse.js +1 -1
- package/dist/file-renderers/src/svg/svg.typecheck.js +1 -1
- package/dist/file-renderers/src/wasm/index.d.ts +4 -4
- package/dist/file-renderers/src/wasm/index.js +4 -4
- package/dist/file-renderers/src/wasm/mime.d.ts +1 -1
- package/dist/file-renderers/src/wasm/mime.js +1 -1
- package/dist/file-renderers/src/wasm/parse.js +1 -1
- package/dist/file-renderers/src/wasm/wasm.typecheck.js +1 -1
- package/dist/file-renderers/src/xlsx/index.d.ts +2 -2
- package/dist/file-renderers/src/xlsx/index.js +4 -4
- package/dist/file-renderers/src/xlsx/mime.d.ts +1 -1
- package/dist/file-renderers/src/xlsx/mime.js +1 -1
- package/dist/file-renderers/src/zip/index.d.ts +4 -4
- package/dist/file-renderers/src/zip/index.js +5 -5
- package/dist/file-renderers/src/zip/mime.d.ts +1 -1
- package/dist/file-renderers/src/zip/mime.js +1 -1
- package/dist/file-renderers/src/zip/parse.js +1 -1
- package/dist/utils/src/index.d.ts +12 -12
- package/dist/utils/src/index.js +12 -12
- package/dist/utils/src/ooxml.d.ts +1 -1
- package/dist/utils/src/ooxml.js +1 -1
- package/dist/utils/src/uuid.js +1 -1
- package/package.json +9 -5
|
@@ -2,11 +2,11 @@ import { generate, parse as parseCss, walk } from "css-tree";
|
|
|
2
2
|
import { init as initModuleLexer, parse as parseModule } from "es-module-lexer";
|
|
3
3
|
import { defaultTreeAdapter, html as parse5Html, parse as parseHtml, serialize, } from "parse5";
|
|
4
4
|
import { parseSrcset, stringifySrcset } from "srcset";
|
|
5
|
-
import { filenameSuffix } from "../file-name";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
5
|
+
import { filenameSuffix } from "../file-name.js";
|
|
6
|
+
import { localResourceUrl, rendererResourcePath, resourceDirectoryUrl } from "../resource-path.js";
|
|
7
|
+
import { imageMimeTypeFor } from "../image/mime.js";
|
|
8
|
+
import { mediaMimeTypeFor } from "../media/mime.js";
|
|
9
|
+
import { svgMimeTypeFor } from "../svg/mime.js";
|
|
10
10
|
const MAX_SOURCE_BYTES = 512 * 1024;
|
|
11
11
|
export const HTML_LINKED_RESOURCE_MAX_BYTES = 5 * 1024 * 1024;
|
|
12
12
|
const MAX_TOTAL_RESOURCE_BYTES = 20 * 1024 * 1024;
|
|
@@ -33,45 +33,6 @@ export class HtmlPreviewLimitError extends Error {
|
|
|
33
33
|
this.name = "HtmlPreviewLimitError";
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
function directoryUrl(basePath) {
|
|
37
|
-
if (!basePath.startsWith("/") || basePath.startsWith("//") || /[\\?#\0]/u.test(basePath)) {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
const path = basePath.endsWith("/") ? basePath : `${basePath}/`;
|
|
41
|
-
const url = new URL(path, WORKSPACE_ORIGIN);
|
|
42
|
-
return url.origin === WORKSPACE_ORIGIN ? url : null;
|
|
43
|
-
}
|
|
44
|
-
function localUrl(reference, base) {
|
|
45
|
-
if (!reference.trim() || reference.startsWith("#") || reference.startsWith("//") ||
|
|
46
|
-
/^[a-z][a-z\d+.-]*:/iu.test(reference) || reference.includes("\\")) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
const url = new URL(reference, base);
|
|
51
|
-
return url.origin === WORKSPACE_ORIGIN && !/%2f|%5c/iu.test(url.pathname)
|
|
52
|
-
? url
|
|
53
|
-
: null;
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
export function htmlWorkspaceResourcePath({ basePath, reference, }) {
|
|
60
|
-
const base = directoryUrl(basePath);
|
|
61
|
-
const url = base && localUrl(reference, base);
|
|
62
|
-
if (!url)
|
|
63
|
-
return null;
|
|
64
|
-
try {
|
|
65
|
-
const path = decodeURIComponent(url.pathname);
|
|
66
|
-
return path.includes("\\") || /[\0-\x1f\x7f]/u.test(path) ||
|
|
67
|
-
path.split("/").some((segment) => segment === "." || segment === "..")
|
|
68
|
-
? null
|
|
69
|
-
: path;
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
36
|
function normalizedMime(value) {
|
|
76
37
|
return value.split(";", 1)[0]?.trim().toLowerCase() ?? "";
|
|
77
38
|
}
|
|
@@ -171,7 +132,7 @@ function inlineDataUrl(reference, purpose) {
|
|
|
171
132
|
return null;
|
|
172
133
|
}
|
|
173
134
|
function cssAssetPurpose(reference, base) {
|
|
174
|
-
const url =
|
|
135
|
+
const url = localResourceUrl(reference, base);
|
|
175
136
|
return url && ["woff", "woff2", "ttf", "otf"].includes(filenameSuffix(url.pathname) ?? "")
|
|
176
137
|
? "font"
|
|
177
138
|
: "image";
|
|
@@ -181,7 +142,7 @@ export async function projectHtmlPreview(frame, context) {
|
|
|
181
142
|
if (new TextEncoder().encode(frame.text).byteLength > MAX_SOURCE_BYTES) {
|
|
182
143
|
throw new HtmlPreviewLimitError("HTML source exceeds the preview limit");
|
|
183
144
|
}
|
|
184
|
-
const directory =
|
|
145
|
+
const directory = resourceDirectoryUrl(context.basePath);
|
|
185
146
|
if (!directory)
|
|
186
147
|
throw new Error("Invalid HTML resource base path");
|
|
187
148
|
const documentUrl = new URL(encodeURIComponent(frame.name), directory);
|
|
@@ -227,13 +188,13 @@ export async function projectHtmlPreview(frame, context) {
|
|
|
227
188
|
if (resources.size >= MAX_RESOURCES)
|
|
228
189
|
throw new HtmlPreviewLimitError("Too many linked HTML resources");
|
|
229
190
|
const pending = (async () => {
|
|
230
|
-
const path =
|
|
191
|
+
const path = rendererResourcePath({ basePath: context.basePath, reference: url.pathname });
|
|
231
192
|
if (!path)
|
|
232
193
|
return null;
|
|
233
194
|
const parent = path.slice(0, path.lastIndexOf("/")) || "/";
|
|
234
195
|
const resolution = await context.resources.resolve({
|
|
235
196
|
basePath: parent,
|
|
236
|
-
reference:
|
|
197
|
+
reference: url.pathname,
|
|
237
198
|
purpose,
|
|
238
199
|
}, { signal: context.signal });
|
|
239
200
|
context.signal.throwIfAborted();
|
|
@@ -262,7 +223,7 @@ export async function projectHtmlPreview(frame, context) {
|
|
|
262
223
|
const embedded = inlineDataUrl(reference, purpose);
|
|
263
224
|
if (embedded)
|
|
264
225
|
return embedded;
|
|
265
|
-
const url =
|
|
226
|
+
const url = localResourceUrl(reference, sourceBase);
|
|
266
227
|
const resource = url && await linkedResource(url, purpose);
|
|
267
228
|
if (!resource) {
|
|
268
229
|
unavailableResources += 1;
|
|
@@ -275,7 +236,7 @@ export async function projectHtmlPreview(frame, context) {
|
|
|
275
236
|
return resolveStylesheet(reference, sourceBase, ancestors);
|
|
276
237
|
}
|
|
277
238
|
async function resolveStylesheet(reference, sourceBase, ancestors) {
|
|
278
|
-
const url =
|
|
239
|
+
const url = localResourceUrl(reference, sourceBase);
|
|
279
240
|
if (!url) {
|
|
280
241
|
unavailableResources += 1;
|
|
281
242
|
return null;
|
|
@@ -333,7 +294,7 @@ export async function projectHtmlPreview(frame, context) {
|
|
|
333
294
|
}
|
|
334
295
|
function moduleUrl(reference, sourceBase) {
|
|
335
296
|
countReference();
|
|
336
|
-
const url =
|
|
297
|
+
const url = localResourceUrl(reference, sourceBase);
|
|
337
298
|
if (!url) {
|
|
338
299
|
unavailableResources += 1;
|
|
339
300
|
return null;
|
|
@@ -484,8 +445,7 @@ export async function projectHtmlPreview(frame, context) {
|
|
|
484
445
|
unavailableResources += 1;
|
|
485
446
|
continue;
|
|
486
447
|
}
|
|
487
|
-
|
|
488
|
-
countReference();
|
|
448
|
+
candidates.forEach(() => countReference());
|
|
489
449
|
queueRewrite(rewrites, Promise.all(candidates.map((candidate) => resolveAsset(candidate.url, base, "image").then((url) => ({
|
|
490
450
|
...candidate,
|
|
491
451
|
url,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { RendererResourceResolver } from "../contracts";
|
|
2
|
-
import type { HtmlFrame } from "./index";
|
|
3
|
-
export {
|
|
1
|
+
import type { RendererResourceResolver } from "../contracts.js";
|
|
2
|
+
import type { HtmlFrame } from "./index.js";
|
|
3
|
+
export { HTML_LINKED_RESOURCE_MAX_BYTES, HtmlPreviewLimitError, projectHtmlPreview, type ProjectedHtmlPreview, } from "./preview-project.js";
|
|
4
4
|
export declare function HtmlPreviewDocument({ frame, basePath, resources, }: {
|
|
5
5
|
readonly frame: HtmlFrame;
|
|
6
6
|
readonly basePath: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
|
-
import { projectHtmlPreview } from "./preview-project";
|
|
4
|
-
export {
|
|
3
|
+
import { projectHtmlPreview } from "./preview-project.js";
|
|
4
|
+
export { HTML_LINKED_RESOURCE_MAX_BYTES, HtmlPreviewLimitError, projectHtmlPreview, } from "./preview-project.js";
|
|
5
5
|
export function HtmlPreviewDocument({ frame, basePath, resources, }) {
|
|
6
6
|
const [state, setState] = useState();
|
|
7
7
|
useEffect(() => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts";
|
|
2
|
-
export { imageMimeTypeFor, isSupportedImageInput, isSupportedImageMimeType, normalizedImageMimeType, } from "./mime";
|
|
1
|
+
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts.js";
|
|
2
|
+
export { imageMimeTypeFor, isSupportedImageInput, isSupportedImageMimeType, normalizedImageMimeType, } from "./mime.js";
|
|
3
3
|
export type ImageFrame = {
|
|
4
4
|
readonly name: string;
|
|
5
5
|
readonly mimeType: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
|
-
import { imageMimeTypeFor } from "./mime";
|
|
4
|
-
export { imageMimeTypeFor, isSupportedImageInput, isSupportedImageMimeType, normalizedImageMimeType, } from "./mime";
|
|
3
|
+
import { imageMimeTypeFor } from "./mime.js";
|
|
4
|
+
export { imageMimeTypeFor, isSupportedImageInput, isSupportedImageMimeType, normalizedImageMimeType, } from "./mime.js";
|
|
5
5
|
export class UnsupportedImageTypeError extends Error {
|
|
6
6
|
fileName;
|
|
7
7
|
mimeType;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RendererInput } from "../contracts";
|
|
1
|
+
import type { RendererInput } from "../contracts.js";
|
|
2
2
|
export declare function normalizedImageMimeType(mimeType: string): string;
|
|
3
3
|
export declare function isSupportedImageMimeType(mimeType: string): boolean;
|
|
4
4
|
export declare function imageMimeTypeFor(input: Pick<RendererInput<"image">, "name" | "mimeType">): string | null;
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
export * from "./contracts";
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
22
|
-
export {
|
|
23
|
-
export {
|
|
24
|
-
export {
|
|
25
|
-
export {
|
|
26
|
-
export {
|
|
27
|
-
export {
|
|
1
|
+
export * from "./contracts.js";
|
|
2
|
+
export { rendererResourcePath } from "./resource-path.js";
|
|
3
|
+
export { ATTACHMENT_MEDIA_TYPES, attachmentFormatFor, attachmentMediaTypeFor, isAttachmentMediaType, isSupportedAttachmentInput, type AttachmentFormat, type AttachmentMediaType, } from "./attachment-format.js";
|
|
4
|
+
export { validateAttachmentBytes, type AttachmentImageMediaTypeReader, type ValidatedAttachment, } from "./attachment.js";
|
|
5
|
+
export { decodePreviewText, FilePreviewHttpError, FilePreviewTooLargeError, inlinePreviewLimit, readBoundedResponse, } from "./preview-content.js";
|
|
6
|
+
export { fileContentKindFor, fileFormatFor, isBinaryFileFormat, isSupportedTextInput, type BinaryFileFormat, type DetectedFileFormat, type FileContentKind, type FileFormatInput, } from "./file-format.js";
|
|
7
|
+
export { CsvDocument, csvMimeTypeFor, csvRenderer, InvalidCsvError, InvalidCsvEncodingError, AmbiguousCsvDelimiterError, UnreliableCsvDelimiterError, isSupportedCsvInput, normalizedCsvMimeType, decodeCsvPayload, detectCsvDelimiter, parseCsvText, UnsupportedCsvTypeError, type CsvFrame, type CsvDelimiter, type CsvEncoding, type CsvModel, type CsvRow, } from "./csv/index.js";
|
|
8
|
+
export { CodeDocument, codeLanguageFor, codeRenderer, UnsupportedCodeLanguageError, type CodeLanguage, type CodeModel, } from "./code/index.js";
|
|
9
|
+
export { CONFIG_PREVIEW_MAX_BYTES, ConfigDocument, ConfigPreviewLimitError, configMimeTypeFor, InvalidConfigError, parseToml, parseXml, parseYaml, tomlRenderer, UnsupportedConfigTypeError, xmlRenderer, yamlRenderer, type ConfigFormat, type ConfigModel, type ConfigTree, type TomlModel, type XmlModel, type YamlModel, } from "./config/index.js";
|
|
10
|
+
export { isSupportedNotebookInput, notebookRenderer, NOTEBOOK_MIME_TYPE, NOTEBOOK_PREVIEW_MAX_BYTES, NotebookDocument, InvalidNotebookError, parseNotebook, UnsupportedNotebookTypeError, type NotebookCell, type NotebookFrame, type NotebookModel, type NotebookOutput, } from "./notebook/index.js";
|
|
11
|
+
export { isSupportedZipInput, zipRenderer, ZIP_MIME_TYPE, ZIP_PREVIEW_MAX_BYTES, ZipDocument, ZipPreviewLimitError, InvalidZipTreeError, parseZipDirectory, UnsupportedZipTypeError, type ZipArchiveEntry, type ZipFrame, type ZipModel, } from "./zip/index.js";
|
|
12
|
+
export { MarkdownDocument, isSupportedMarkdownInput, markdownRenderer, markdownUrlTransform, normalizedMarkdownMimeType, safeMarkdownUrl, UnsupportedMarkdownTypeError, type MarkdownModel, } from "./markdown/index.js";
|
|
13
|
+
export { EmptyImagePayloadError, ImageDocument, imageMimeTypeFor, imageRenderer, isSupportedImageInput, isSupportedImageMimeType, normalizedImageMimeType, UnsupportedImageTypeError, type ImageFrame, type ImageModel, } from "./image/index.js";
|
|
14
|
+
export { htmlRenderer, HtmlDocument, htmlMimeTypeFor, isSupportedHtmlInput, normalizedHtmlMimeType, UnsupportedHtmlTypeError, type HtmlFrame, type HtmlModel, } from "./html/index.js";
|
|
15
|
+
export { InvalidJsonError, isSupportedJsonInput, JsonDocument, jsonLocation, jsonMimeTypeFor, JSON_MIME_TYPE, JSON_PREVIEW_MAX_BYTES, jsonRenderer, JsonPreviewLimitError, normalizedJsonMimeType, parseJsonText, UnsupportedJsonTypeError, type JsonInvalidFrame, type JsonInvalidModel, type JsonModel, type JsonNode, type JsonNodeKind, type JsonStructuredModel, } from "./json/index.js";
|
|
16
|
+
export { isSupportedJsonlInput, JsonlDocument, jsonlMimeTypeFor, JSONL_MIME_TYPE, JSONL_PREVIEW_MAX_BYTES, jsonlRenderer, parseJsonLines, UnsupportedJsonlTypeError, type JsonLineRecord, type JsonLinesPreview, type JsonlFrame, type JsonlModel, } from "./json/jsonl.js";
|
|
17
|
+
export { EmptyMediaPayloadError, MediaDocument, mediaKindFor, mediaMimeTypeFor, mediaRenderer, isValidMediaBytes, isSupportedMediaInput, isSupportedMediaMimeType, normalizedMediaMimeType, UnsupportedMediaTypeError, type MediaFrame, type MediaKind, type MediaModel, } from "./media/index.js";
|
|
18
|
+
export { EmptyPdfPayloadError, InvalidPdfError, isSupportedPdfInput, normalizedPdfMimeType, PdfDocument, pdfMimeTypeFor, pdfRenderer, UnsupportedPdfTypeError, type PdfFrame, type PdfModel, } from "./pdf/index.js";
|
|
19
|
+
export { EmptyGlbPayloadError, GLB_MIME_TYPE, GLB_PREVIEW_MAX_BYTES, GlbDocument, glbMimeTypeFor, glbRenderer, InvalidGlbError, isSupportedGlbInput, normalizedGlbMimeType, UnsupportedGlbTypeError, validateGlb, type GlbFrame, type GlbModel, } from "./glb/index.js";
|
|
20
|
+
export { DocxDocument, docxMimeTypeFor, docxRenderer, EmptyDocxPayloadError, InvalidDocxError, isSupportedDocxInput, normalizedDocxMimeType, UnsupportedDocxTypeError, type DocxFrame, type DocxModel, } from "./docx/index.js";
|
|
21
|
+
export { DrawioDocument, drawioMimeTypeFor, drawioRenderer, DRAWIO_MIME_TYPE, DRAWIO_PREVIEW_MAX_BYTES, InvalidDrawioError, isSupportedDrawioInput, normalizedDrawioMimeType, parseDrawio, UnsupportedDrawioTypeError, type DrawioEdge, type DrawioFrame, type DrawioModel, type DrawioPage, type DrawioPreview, type DrawioVertex, } from "./drawio/index.js";
|
|
22
|
+
export { ExcalidrawDocument, excalidrawMimeTypeFor, excalidrawRenderer, EXCALIDRAW_MIME_TYPE, EXCALIDRAW_PREVIEW_MAX_BYTES, InvalidExcalidrawError, isSupportedExcalidrawInput, normalizedExcalidrawMimeType, UnsupportedExcalidrawTypeError, type ExcalidrawFrame, type ExcalidrawModel, } from "./excalidraw/index.js";
|
|
23
|
+
export { EmptyXlsxPayloadError, InvalidXlsxError, isSupportedXlsxInput, normalizedXlsxMimeType, UnsupportedXlsxTypeError, XlsxDocument, xlsxMimeTypeFor, xlsxRenderer, type XlsxFrame, type XlsxModel, } from "./xlsx/index.js";
|
|
24
|
+
export { EmptyPptPayloadError, InvalidPptxError, isSupportedPptInput, normalizedPptMimeType, PptDocument, pptMimeTypeFor, pptRenderer, UnsupportedPptTypeError, type PptFrame, type PptModel, } from "./ppt/index.js";
|
|
25
|
+
export { InvalidMermaidError, isSupportedMermaidInput, MermaidDocument, mermaidMimeTypeFor, mermaidRenderer, MERMAID_MIME_TYPE, MERMAID_PREVIEW_MAX_BYTES, normalizedMermaidMimeType, UnsupportedMermaidTypeError, type MermaidFrame, type MermaidModel, } from "./mermaid/index.js";
|
|
26
|
+
export { InvalidSvgError, isSupportedSvgInput, normalizedSvgMimeType, sanitizeSvg, svgMimeTypeFor, svgRenderer, SVG_MIME_TYPE, SVG_PREVIEW_MAX_BYTES, SvgDocument, UnsupportedSvgTypeError, type SvgFrame, type SvgModel, type SvgPreview, } from "./svg/index.js";
|
|
27
|
+
export { EmptyWasmPayloadError, InvalidWasmError, isSupportedWasmInput, normalizedWasmMimeType, parseWasmMetadata, wasmMimeTypeFor, wasmRenderer, WASM_MIME_TYPE, WASM_PREVIEW_MAX_BYTES, WasmDocument, UnsupportedWasmTypeError, type WasmFrame, type WasmMetadata, type WasmModel, type WasmSection, } from "./wasm/index.js";
|
|
28
|
+
export { createFileRendererRegistry, DuplicateFileRendererError, type DefaultFileRendererModelMap, type FileRendererModelMap, type FileRendererModelsOf, type FileRendererRegistry, type RegisteredFileRenderer, } from "./registry.js";
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
export * from "./contracts";
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
22
|
-
export {
|
|
23
|
-
export {
|
|
24
|
-
export {
|
|
25
|
-
export {
|
|
26
|
-
export {
|
|
27
|
-
export {
|
|
1
|
+
export * from "./contracts.js";
|
|
2
|
+
export { rendererResourcePath } from "./resource-path.js";
|
|
3
|
+
export { ATTACHMENT_MEDIA_TYPES, attachmentFormatFor, attachmentMediaTypeFor, isAttachmentMediaType, isSupportedAttachmentInput, } from "./attachment-format.js";
|
|
4
|
+
export { validateAttachmentBytes, } from "./attachment.js";
|
|
5
|
+
export { decodePreviewText, FilePreviewHttpError, FilePreviewTooLargeError, inlinePreviewLimit, readBoundedResponse, } from "./preview-content.js";
|
|
6
|
+
export { fileContentKindFor, fileFormatFor, isBinaryFileFormat, isSupportedTextInput, } from "./file-format.js";
|
|
7
|
+
export { CsvDocument, csvMimeTypeFor, csvRenderer, InvalidCsvError, InvalidCsvEncodingError, AmbiguousCsvDelimiterError, UnreliableCsvDelimiterError, isSupportedCsvInput, normalizedCsvMimeType, decodeCsvPayload, detectCsvDelimiter, parseCsvText, UnsupportedCsvTypeError, } from "./csv/index.js";
|
|
8
|
+
export { CodeDocument, codeLanguageFor, codeRenderer, UnsupportedCodeLanguageError, } from "./code/index.js";
|
|
9
|
+
export { CONFIG_PREVIEW_MAX_BYTES, ConfigDocument, ConfigPreviewLimitError, configMimeTypeFor, InvalidConfigError, parseToml, parseXml, parseYaml, tomlRenderer, UnsupportedConfigTypeError, xmlRenderer, yamlRenderer, } from "./config/index.js";
|
|
10
|
+
export { isSupportedNotebookInput, notebookRenderer, NOTEBOOK_MIME_TYPE, NOTEBOOK_PREVIEW_MAX_BYTES, NotebookDocument, InvalidNotebookError, parseNotebook, UnsupportedNotebookTypeError, } from "./notebook/index.js";
|
|
11
|
+
export { isSupportedZipInput, zipRenderer, ZIP_MIME_TYPE, ZIP_PREVIEW_MAX_BYTES, ZipDocument, ZipPreviewLimitError, InvalidZipTreeError, parseZipDirectory, UnsupportedZipTypeError, } from "./zip/index.js";
|
|
12
|
+
export { MarkdownDocument, isSupportedMarkdownInput, markdownRenderer, markdownUrlTransform, normalizedMarkdownMimeType, safeMarkdownUrl, UnsupportedMarkdownTypeError, } from "./markdown/index.js";
|
|
13
|
+
export { EmptyImagePayloadError, ImageDocument, imageMimeTypeFor, imageRenderer, isSupportedImageInput, isSupportedImageMimeType, normalizedImageMimeType, UnsupportedImageTypeError, } from "./image/index.js";
|
|
14
|
+
export { htmlRenderer, HtmlDocument, htmlMimeTypeFor, isSupportedHtmlInput, normalizedHtmlMimeType, UnsupportedHtmlTypeError, } from "./html/index.js";
|
|
15
|
+
export { InvalidJsonError, isSupportedJsonInput, JsonDocument, jsonLocation, jsonMimeTypeFor, JSON_MIME_TYPE, JSON_PREVIEW_MAX_BYTES, jsonRenderer, JsonPreviewLimitError, normalizedJsonMimeType, parseJsonText, UnsupportedJsonTypeError, } from "./json/index.js";
|
|
16
|
+
export { isSupportedJsonlInput, JsonlDocument, jsonlMimeTypeFor, JSONL_MIME_TYPE, JSONL_PREVIEW_MAX_BYTES, jsonlRenderer, parseJsonLines, UnsupportedJsonlTypeError, } from "./json/jsonl.js";
|
|
17
|
+
export { EmptyMediaPayloadError, MediaDocument, mediaKindFor, mediaMimeTypeFor, mediaRenderer, isValidMediaBytes, isSupportedMediaInput, isSupportedMediaMimeType, normalizedMediaMimeType, UnsupportedMediaTypeError, } from "./media/index.js";
|
|
18
|
+
export { EmptyPdfPayloadError, InvalidPdfError, isSupportedPdfInput, normalizedPdfMimeType, PdfDocument, pdfMimeTypeFor, pdfRenderer, UnsupportedPdfTypeError, } from "./pdf/index.js";
|
|
19
|
+
export { EmptyGlbPayloadError, GLB_MIME_TYPE, GLB_PREVIEW_MAX_BYTES, GlbDocument, glbMimeTypeFor, glbRenderer, InvalidGlbError, isSupportedGlbInput, normalizedGlbMimeType, UnsupportedGlbTypeError, validateGlb, } from "./glb/index.js";
|
|
20
|
+
export { DocxDocument, docxMimeTypeFor, docxRenderer, EmptyDocxPayloadError, InvalidDocxError, isSupportedDocxInput, normalizedDocxMimeType, UnsupportedDocxTypeError, } from "./docx/index.js";
|
|
21
|
+
export { DrawioDocument, drawioMimeTypeFor, drawioRenderer, DRAWIO_MIME_TYPE, DRAWIO_PREVIEW_MAX_BYTES, InvalidDrawioError, isSupportedDrawioInput, normalizedDrawioMimeType, parseDrawio, UnsupportedDrawioTypeError, } from "./drawio/index.js";
|
|
22
|
+
export { ExcalidrawDocument, excalidrawMimeTypeFor, excalidrawRenderer, EXCALIDRAW_MIME_TYPE, EXCALIDRAW_PREVIEW_MAX_BYTES, InvalidExcalidrawError, isSupportedExcalidrawInput, normalizedExcalidrawMimeType, UnsupportedExcalidrawTypeError, } from "./excalidraw/index.js";
|
|
23
|
+
export { EmptyXlsxPayloadError, InvalidXlsxError, isSupportedXlsxInput, normalizedXlsxMimeType, UnsupportedXlsxTypeError, XlsxDocument, xlsxMimeTypeFor, xlsxRenderer, } from "./xlsx/index.js";
|
|
24
|
+
export { EmptyPptPayloadError, InvalidPptxError, isSupportedPptInput, normalizedPptMimeType, PptDocument, pptMimeTypeFor, pptRenderer, UnsupportedPptTypeError, } from "./ppt/index.js";
|
|
25
|
+
export { InvalidMermaidError, isSupportedMermaidInput, MermaidDocument, mermaidMimeTypeFor, mermaidRenderer, MERMAID_MIME_TYPE, MERMAID_PREVIEW_MAX_BYTES, normalizedMermaidMimeType, UnsupportedMermaidTypeError, } from "./mermaid/index.js";
|
|
26
|
+
export { InvalidSvgError, isSupportedSvgInput, normalizedSvgMimeType, sanitizeSvg, svgMimeTypeFor, svgRenderer, SVG_MIME_TYPE, SVG_PREVIEW_MAX_BYTES, SvgDocument, UnsupportedSvgTypeError, } from "./svg/index.js";
|
|
27
|
+
export { EmptyWasmPayloadError, InvalidWasmError, isSupportedWasmInput, normalizedWasmMimeType, parseWasmMetadata, wasmMimeTypeFor, wasmRenderer, WASM_MIME_TYPE, WASM_PREVIEW_MAX_BYTES, WasmDocument, UnsupportedWasmTypeError, } from "./wasm/index.js";
|
|
28
|
+
export { createFileRendererRegistry, DuplicateFileRendererError, } from "./registry.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { FileRenderer, FrameDocumentModel, RendererInput, StructuredDocumentModel } from "../contracts";
|
|
2
|
-
import { type JsonNode } from "./parse";
|
|
3
|
-
export { isSupportedJsonInput, jsonMimeTypeFor, JSON_MIME_TYPE, JSON_PREVIEW_MAX_BYTES, normalizedJsonMimeType, } from "./mime";
|
|
4
|
-
export { InvalidJsonError, JsonPreviewLimitError, jsonLocation, parseJsonText, type JsonNode, type JsonNodeKind, } from "./parse";
|
|
1
|
+
import type { FileRenderer, FrameDocumentModel, RendererInput, StructuredDocumentModel } from "../contracts.js";
|
|
2
|
+
import { type JsonNode } from "./parse.js";
|
|
3
|
+
export { isSupportedJsonInput, jsonMimeTypeFor, JSON_MIME_TYPE, JSON_PREVIEW_MAX_BYTES, normalizedJsonMimeType, } from "./mime.js";
|
|
4
|
+
export { InvalidJsonError, JsonPreviewLimitError, jsonLocation, parseJsonText, type JsonNode, type JsonNodeKind, } from "./parse.js";
|
|
5
5
|
export type JsonStructuredModel = StructuredDocumentModel<"json", JsonNode> & {
|
|
6
6
|
readonly name: string;
|
|
7
7
|
readonly source: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { jsonMimeTypeFor } from "./mime";
|
|
3
|
-
import { InvalidJsonError, jsonLocation, parseJsonText } from "./parse";
|
|
4
|
-
import { StructuredTree } from "../structured-tree/tree";
|
|
2
|
+
import { jsonMimeTypeFor } from "./mime.js";
|
|
3
|
+
import { InvalidJsonError, jsonLocation, parseJsonText } from "./parse.js";
|
|
4
|
+
import { StructuredTree } from "../structured-tree/tree.js";
|
|
5
5
|
import styles from "../structured-tree/tree.module.css";
|
|
6
|
-
export { isSupportedJsonInput, jsonMimeTypeFor, JSON_MIME_TYPE, JSON_PREVIEW_MAX_BYTES, normalizedJsonMimeType, } from "./mime";
|
|
7
|
-
export { InvalidJsonError, JsonPreviewLimitError, jsonLocation, parseJsonText, } from "./parse";
|
|
6
|
+
export { isSupportedJsonInput, jsonMimeTypeFor, JSON_MIME_TYPE, JSON_PREVIEW_MAX_BYTES, normalizedJsonMimeType, } from "./mime.js";
|
|
7
|
+
export { InvalidJsonError, JsonPreviewLimitError, jsonLocation, parseJsonText, } from "./parse.js";
|
|
8
8
|
export class UnsupportedJsonTypeError extends Error {
|
|
9
9
|
constructor(input) {
|
|
10
10
|
super(`No JSON renderer is registered for ${input.name || input.mimeType || "this file"}`);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsonRenderer } from "./index";
|
|
2
|
-
import { jsonlRenderer } from "./jsonl";
|
|
1
|
+
import { jsonRenderer } from "./index.js";
|
|
2
|
+
import { jsonlRenderer } from "./jsonl.js";
|
|
3
3
|
void jsonRenderer.parse(jsonInput, parseContext);
|
|
4
4
|
void jsonlRenderer.parse(jsonlInput, parseContext);
|
|
5
5
|
void jsonRenderer.render(jsonDocument, renderContext);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts";
|
|
2
|
-
import { type JsonLineRecord } from "./parse";
|
|
3
|
-
export { isSupportedJsonlInput, jsonlMimeTypeFor, JSONL_MIME_TYPE, JSONL_PREVIEW_MAX_BYTES, } from "./mime";
|
|
4
|
-
export { parseJsonLines, type JsonLineRecord, type JsonLinesPreview } from "./parse";
|
|
1
|
+
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts.js";
|
|
2
|
+
import { type JsonLineRecord } from "./parse.js";
|
|
3
|
+
export { isSupportedJsonlInput, jsonlMimeTypeFor, JSONL_MIME_TYPE, JSONL_PREVIEW_MAX_BYTES, } from "./mime.js";
|
|
4
|
+
export { parseJsonLines, type JsonLineRecord, type JsonLinesPreview } from "./parse.js";
|
|
5
5
|
export type JsonlFrame = {
|
|
6
6
|
readonly name: string;
|
|
7
7
|
readonly source: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from "react";
|
|
3
|
-
import { jsonlMimeTypeFor } from "./mime";
|
|
4
|
-
import { parseJsonLines } from "./parse";
|
|
5
|
-
import { STRUCTURED_TREE_PAGE_SIZE, StructuredTree } from "../structured-tree/tree";
|
|
3
|
+
import { jsonlMimeTypeFor } from "./mime.js";
|
|
4
|
+
import { parseJsonLines } from "./parse.js";
|
|
5
|
+
import { STRUCTURED_TREE_PAGE_SIZE, StructuredTree } from "../structured-tree/tree.js";
|
|
6
6
|
import styles from "../structured-tree/tree.module.css";
|
|
7
|
-
export { isSupportedJsonlInput, jsonlMimeTypeFor, JSONL_MIME_TYPE, JSONL_PREVIEW_MAX_BYTES, } from "./mime";
|
|
8
|
-
export { parseJsonLines } from "./parse";
|
|
7
|
+
export { isSupportedJsonlInput, jsonlMimeTypeFor, JSONL_MIME_TYPE, JSONL_PREVIEW_MAX_BYTES, } from "./mime.js";
|
|
8
|
+
export { parseJsonLines } from "./parse.js";
|
|
9
9
|
export class UnsupportedJsonlTypeError extends Error {
|
|
10
10
|
constructor(input) {
|
|
11
11
|
super(`No JSON Lines renderer is registered for ${input.name || input.mimeType || "this file"}`);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RendererInput } from "../contracts";
|
|
1
|
+
import type { RendererInput } from "../contracts.js";
|
|
2
2
|
export declare const JSON_MIME_TYPE = "application/json";
|
|
3
3
|
export declare const JSONL_MIME_TYPE = "application/x-ndjson";
|
|
4
4
|
export declare const JSON_PREVIEW_MAX_BYTES: number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { excalidrawMimeTypeFor } from "../excalidraw/mime";
|
|
2
|
-
import { filenameSuffix } from "../file-name";
|
|
1
|
+
import { excalidrawMimeTypeFor } from "../excalidraw/mime.js";
|
|
2
|
+
import { filenameSuffix } from "../file-name.js";
|
|
3
3
|
export const JSON_MIME_TYPE = "application/json";
|
|
4
4
|
export const JSONL_MIME_TYPE = "application/x-ndjson";
|
|
5
5
|
export const JSON_PREVIEW_MAX_BYTES = 512 * 1024;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ComponentNode, RendererDiagnostic } from "../contracts";
|
|
1
|
+
import type { ComponentNode, RendererDiagnostic } from "../contracts.js";
|
|
2
2
|
export type JsonNodeKind = "object" | "array" | "string" | "number" | "boolean" | "null";
|
|
3
3
|
export type JsonNode = Omit<ComponentNode, "type" | "children" | "sourceRef"> & {
|
|
4
4
|
readonly type: JsonNodeKind;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { printParseErrorCode, visit } from "jsonc-parser";
|
|
2
|
-
import { JSON_PREVIEW_MAX_BYTES, JSONL_PREVIEW_MAX_BYTES } from "./mime";
|
|
2
|
+
import { JSON_PREVIEW_MAX_BYTES, JSONL_PREVIEW_MAX_BYTES } from "./mime.js";
|
|
3
3
|
const MAX_DEPTH = 64;
|
|
4
4
|
const MAX_NODES = 20_000;
|
|
5
5
|
const MAX_RECORDS = 10_000;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type UrlTransform } from "streamdown";
|
|
2
|
-
import type { FileRenderer, FrameDocumentModel, RendererHostContext, RendererInput } from "../contracts";
|
|
3
|
-
export { isSupportedMarkdownInput, normalizedMarkdownMimeType } from "./mime";
|
|
2
|
+
import type { FileRenderer, FrameDocumentModel, RendererHostContext, RendererInput } from "../contracts.js";
|
|
3
|
+
export { isSupportedMarkdownInput, normalizedMarkdownMimeType } from "./mime.js";
|
|
4
4
|
export declare function safeMarkdownUrl(url: string, key: string): string | undefined;
|
|
5
5
|
export declare function isRelativeMarkdownReference(url: string): boolean;
|
|
6
6
|
export declare const markdownUrlTransform: UrlTransform;
|
|
@@ -2,8 +2,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Fragment, useEffect, useMemo, useState, } from "react";
|
|
3
3
|
import { code } from "@streamdown/code";
|
|
4
4
|
import { defaultRehypePlugins, Streamdown, } from "streamdown";
|
|
5
|
-
import { isSupportedMarkdownInput
|
|
6
|
-
export { isSupportedMarkdownInput, normalizedMarkdownMimeType } from "./mime";
|
|
5
|
+
import { isSupportedMarkdownInput } from "./mime.js";
|
|
6
|
+
export { isSupportedMarkdownInput, normalizedMarkdownMimeType } from "./mime.js";
|
|
7
7
|
const ALLOWED_LINK_PROTOCOLS = new Set(["http:", "https:", "mailto:"]);
|
|
8
8
|
const ALLOWED_IMAGE_PROTOCOLS = new Set(["http:", "https:"]);
|
|
9
9
|
const MARKDOWN_RESOURCE_ORIGIN = "https://markdown-resource.invalid";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { RendererInput } from "../contracts";
|
|
1
|
+
import type { RendererInput } from "../contracts.js";
|
|
2
2
|
export declare function normalizedMarkdownMimeType(mimeType: string): string;
|
|
3
3
|
export declare function isSupportedMarkdownInput(input: Pick<RendererInput<"markdown">, "name" | "mimeType">): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { filenameSuffix } from "../file-name";
|
|
1
|
+
import { filenameSuffix } from "../file-name.js";
|
|
2
2
|
const MARKDOWN_MIME_TYPES = new Set(["text/markdown", "text/x-markdown"]);
|
|
3
3
|
const MARKDOWN_SUFFIXES = new Set(["md", "markdown"]);
|
|
4
4
|
export function normalizedMarkdownMimeType(mimeType) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts";
|
|
2
|
-
import { type MediaKind } from "./mime";
|
|
3
|
-
export { canonicalMediaMimeType, isSupportedMediaInput, isSupportedMediaMimeType, mediaKindFor, mediaMimeTypeFor, normalizedMediaMimeType, } from "./mime";
|
|
4
|
-
export type { MediaKind } from "./mime";
|
|
5
|
-
export { isValidMediaBytes } from "./validate";
|
|
1
|
+
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts.js";
|
|
2
|
+
import { type MediaKind } from "./mime.js";
|
|
3
|
+
export { canonicalMediaMimeType, isSupportedMediaInput, isSupportedMediaMimeType, mediaKindFor, mediaMimeTypeFor, normalizedMediaMimeType, } from "./mime.js";
|
|
4
|
+
export type { MediaKind } from "./mime.js";
|
|
5
|
+
export { isValidMediaBytes } from "./validate.js";
|
|
6
6
|
export type MediaFrame = {
|
|
7
7
|
readonly name: string;
|
|
8
8
|
readonly mimeType: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
|
-
import { mediaKindFor, mediaMimeTypeFor } from "./mime";
|
|
4
|
-
export { canonicalMediaMimeType, isSupportedMediaInput, isSupportedMediaMimeType, mediaKindFor, mediaMimeTypeFor, normalizedMediaMimeType, } from "./mime";
|
|
5
|
-
export { isValidMediaBytes } from "./validate";
|
|
3
|
+
import { mediaKindFor, mediaMimeTypeFor } from "./mime.js";
|
|
4
|
+
export { canonicalMediaMimeType, isSupportedMediaInput, isSupportedMediaMimeType, mediaKindFor, mediaMimeTypeFor, normalizedMediaMimeType, } from "./mime.js";
|
|
5
|
+
export { isValidMediaBytes } from "./validate.js";
|
|
6
6
|
export class UnsupportedMediaTypeError extends Error {
|
|
7
7
|
fileName;
|
|
8
8
|
mimeType;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RendererInput } from "../contracts";
|
|
1
|
+
import type { RendererInput } from "../contracts.js";
|
|
2
2
|
export type MediaKind = "audio" | "video";
|
|
3
3
|
export declare function normalizedMediaMimeType(mimeType: string): string;
|
|
4
4
|
export declare function canonicalMediaMimeType(mimeType: string): string | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { MermaidFrame } from "./index";
|
|
1
|
+
import type { MermaidFrame } from "./index.js";
|
|
2
2
|
export declare function MermaidDocument({ name, source }: MermaidFrame): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
3
|
import mermaidBundleUrl from "mermaid/dist/mermaid.min.js?url";
|
|
4
|
-
import { MERMAID_PREVIEW_MAX_BYTES } from "./mime";
|
|
4
|
+
import { MERMAID_PREVIEW_MAX_BYTES } from "./mime.js";
|
|
5
5
|
const MERMAID_CONFIG = {
|
|
6
6
|
startOnLoad: false,
|
|
7
7
|
securityLevel: "strict",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts";
|
|
2
|
-
export { MermaidDocument } from "./frame";
|
|
3
|
-
export { isSupportedMermaidInput, mermaidMimeTypeFor, MERMAID_MIME_TYPE, MERMAID_PREVIEW_MAX_BYTES, normalizedMermaidMimeType, } from "./mime";
|
|
1
|
+
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts.js";
|
|
2
|
+
export { MermaidDocument } from "./frame.js";
|
|
3
|
+
export { isSupportedMermaidInput, mermaidMimeTypeFor, MERMAID_MIME_TYPE, MERMAID_PREVIEW_MAX_BYTES, normalizedMermaidMimeType, } from "./mime.js";
|
|
4
4
|
export type MermaidFrame = {
|
|
5
5
|
readonly name: string;
|
|
6
6
|
readonly mimeType: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { MermaidDocument } from "./frame";
|
|
3
|
-
import { mermaidMimeTypeFor, MERMAID_PREVIEW_MAX_BYTES } from "./mime";
|
|
4
|
-
export { MermaidDocument } from "./frame";
|
|
5
|
-
export { isSupportedMermaidInput, mermaidMimeTypeFor, MERMAID_MIME_TYPE, MERMAID_PREVIEW_MAX_BYTES, normalizedMermaidMimeType, } from "./mime";
|
|
2
|
+
import { MermaidDocument } from "./frame.js";
|
|
3
|
+
import { mermaidMimeTypeFor, MERMAID_PREVIEW_MAX_BYTES } from "./mime.js";
|
|
4
|
+
export { MermaidDocument } from "./frame.js";
|
|
5
|
+
export { isSupportedMermaidInput, mermaidMimeTypeFor, MERMAID_MIME_TYPE, MERMAID_PREVIEW_MAX_BYTES, normalizedMermaidMimeType, } from "./mime.js";
|
|
6
6
|
export class UnsupportedMermaidTypeError extends Error {
|
|
7
7
|
constructor(input) {
|
|
8
8
|
super(`No Mermaid renderer is registered for ${input.name || input.mimeType || "this file"}`);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RendererInput } from "../contracts";
|
|
1
|
+
import type { RendererInput } from "../contracts.js";
|
|
2
2
|
export declare const MERMAID_MIME_TYPE = "text/vnd.mermaid";
|
|
3
3
|
export declare const MERMAID_PREVIEW_MAX_BYTES: number;
|
|
4
4
|
export declare function normalizedMermaidMimeType(mimeType: string): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { filenameSuffix } from "../file-name";
|
|
1
|
+
import { filenameSuffix } from "../file-name.js";
|
|
2
2
|
export const MERMAID_MIME_TYPE = "text/vnd.mermaid";
|
|
3
3
|
export const MERMAID_PREVIEW_MAX_BYTES = 512 * 1024;
|
|
4
4
|
const MERMAID_MIME_TYPES = new Set([MERMAID_MIME_TYPE, "text/x-mermaid"]);
|