@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
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { FileRenderer, FrameDocumentModel, RendererHostContext, RendererInput } from "../contracts";
|
|
2
|
-
import { type NotebookPreview } from "./parse";
|
|
3
|
-
export { isSupportedNotebookInput, NOTEBOOK_MIME_TYPE, NOTEBOOK_PREVIEW_MAX_BYTES } from "./mime";
|
|
4
|
-
export { InvalidNotebookError, parseNotebook, type NotebookCell, type NotebookOutput, type NotebookPreview } from "./parse";
|
|
1
|
+
import type { FileRenderer, FrameDocumentModel, RendererHostContext, RendererInput } from "../contracts.js";
|
|
2
|
+
import { type NotebookPreview } from "./parse.js";
|
|
3
|
+
export { isSupportedNotebookInput, NOTEBOOK_MIME_TYPE, NOTEBOOK_PREVIEW_MAX_BYTES } from "./mime.js";
|
|
4
|
+
export { InvalidNotebookError, parseNotebook, type NotebookCell, type NotebookOutput, type NotebookPreview } from "./parse.js";
|
|
5
5
|
export type NotebookFrame = NotebookPreview & {
|
|
6
6
|
readonly status: "valid";
|
|
7
7
|
readonly name: string;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from "react";
|
|
3
|
-
import { CodeDocument } from "../code";
|
|
4
|
-
import { ImageDocument } from "../image";
|
|
5
|
-
import { InvalidJsonError, JsonPreviewLimitError } from "../json/parse";
|
|
6
|
-
import { MarkdownDocument } from "../markdown";
|
|
7
|
-
import { parseNotebook, InvalidNotebookError } from "./parse";
|
|
8
|
-
import { isSupportedNotebookInput } from "./mime";
|
|
3
|
+
import { CodeDocument } from "../code/index.js";
|
|
4
|
+
import { ImageDocument } from "../image/index.js";
|
|
5
|
+
import { InvalidJsonError, JsonPreviewLimitError } from "../json/parse.js";
|
|
6
|
+
import { MarkdownDocument } from "../markdown/index.js";
|
|
7
|
+
import { parseNotebook, InvalidNotebookError } from "./parse.js";
|
|
8
|
+
import { isSupportedNotebookInput } from "./mime.js";
|
|
9
9
|
import styles from "./notebook.module.css";
|
|
10
|
-
export { isSupportedNotebookInput, NOTEBOOK_MIME_TYPE, NOTEBOOK_PREVIEW_MAX_BYTES } from "./mime";
|
|
11
|
-
export { InvalidNotebookError, parseNotebook } from "./parse";
|
|
10
|
+
export { isSupportedNotebookInput, NOTEBOOK_MIME_TYPE, NOTEBOOK_PREVIEW_MAX_BYTES } from "./mime.js";
|
|
11
|
+
export { InvalidNotebookError, parseNotebook } from "./parse.js";
|
|
12
12
|
const CELL_PAGE_SIZE = 25;
|
|
13
13
|
export class UnsupportedNotebookTypeError extends Error {
|
|
14
14
|
constructor(input) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RendererInput } from "../contracts";
|
|
1
|
+
import type { RendererInput } from "../contracts.js";
|
|
2
2
|
export declare const NOTEBOOK_MIME_TYPE = "application/x-ipynb+json";
|
|
3
3
|
export declare const NOTEBOOK_PREVIEW_MAX_BYTES: number;
|
|
4
4
|
export declare function isSupportedNotebookInput(input: Pick<RendererInput<"notebook">, "name" | "mimeType">): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { filenameSuffix } from "../file-name";
|
|
1
|
+
import { filenameSuffix } from "../file-name.js";
|
|
2
2
|
export const NOTEBOOK_MIME_TYPE = "application/x-ipynb+json";
|
|
3
3
|
export const NOTEBOOK_PREVIEW_MAX_BYTES = 2 * 1024 * 1024;
|
|
4
4
|
export function isSupportedNotebookInput(input) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { RendererDiagnostic, RendererHostContext } from "../contracts";
|
|
2
|
-
import { type ImageFrame } from "../image";
|
|
1
|
+
import type { RendererDiagnostic, RendererHostContext } from "../contracts.js";
|
|
2
|
+
import { type ImageFrame } from "../image/index.js";
|
|
3
3
|
export type NotebookOutput = {
|
|
4
4
|
readonly kind: "text";
|
|
5
5
|
readonly text: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { decodeBase64 } from "../../../utils/src/index.js";
|
|
2
|
-
import { imageRenderer } from "../image";
|
|
3
|
-
import { isSupportedImageMimeType } from "../image/mime";
|
|
4
|
-
import { parseJsonText } from "../json/parse";
|
|
5
|
-
import { NOTEBOOK_PREVIEW_MAX_BYTES } from "./mime";
|
|
2
|
+
import { imageRenderer } from "../image/index.js";
|
|
3
|
+
import { isSupportedImageMimeType } from "../image/mime.js";
|
|
4
|
+
import { parseJsonText } from "../json/parse.js";
|
|
5
|
+
import { NOTEBOOK_PREVIEW_MAX_BYTES } from "./mime.js";
|
|
6
6
|
const MAX_CELLS = 200;
|
|
7
7
|
const MAX_OUTPUTS_PER_CELL = 20;
|
|
8
8
|
const MAX_CELL_CHARACTERS = 128 * 1024;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts";
|
|
2
|
-
export { isSupportedPdfInput, normalizedPdfMimeType, pdfMimeTypeFor } from "./mime";
|
|
1
|
+
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts.js";
|
|
2
|
+
export { isSupportedPdfInput, normalizedPdfMimeType, pdfMimeTypeFor } from "./mime.js";
|
|
3
3
|
export type PdfFrame = {
|
|
4
4
|
readonly name: string;
|
|
5
5
|
readonly mimeType: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { pdfMimeTypeFor } from "./mime.js";
|
|
4
4
|
import styles from "./pdf.module.css";
|
|
5
|
-
export { isSupportedPdfInput, normalizedPdfMimeType, pdfMimeTypeFor } from "./mime";
|
|
5
|
+
export { isSupportedPdfInput, normalizedPdfMimeType, pdfMimeTypeFor } from "./mime.js";
|
|
6
6
|
export class UnsupportedPdfTypeError 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 declare function normalizedPdfMimeType(mimeType: string): string;
|
|
3
3
|
export declare function pdfMimeTypeFor(input: Pick<RendererInput<"pdf">, "name" | "mimeType">): string | null;
|
|
4
4
|
export declare function isSupportedPdfInput(input: Pick<RendererInput<"pdf">, "name" | "mimeType">): boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts";
|
|
2
|
-
export { isSupportedPptInput, normalizedPptMimeType, pptMimeTypeFor } from "./mime";
|
|
1
|
+
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts.js";
|
|
2
|
+
export { isSupportedPptInput, normalizedPptMimeType, pptMimeTypeFor } from "./mime.js";
|
|
3
3
|
export type PptFrame = {
|
|
4
4
|
readonly name: string;
|
|
5
5
|
readonly mimeType: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { inspectSafeOoxml } from "../../../utils/src/index.js";
|
|
3
|
-
import { OfficePreview, OOXML_VIEWER_RESOURCE_LIMITS, } from "../office/preview";
|
|
4
|
-
import { pptMimeTypeFor } from "./mime";
|
|
5
|
-
export { isSupportedPptInput, normalizedPptMimeType, pptMimeTypeFor } from "./mime";
|
|
3
|
+
import { OfficePreview, OOXML_VIEWER_RESOURCE_LIMITS, } from "../office/preview.js";
|
|
4
|
+
import { pptMimeTypeFor } from "./mime.js";
|
|
5
|
+
export { isSupportedPptInput, normalizedPptMimeType, pptMimeTypeFor } from "./mime.js";
|
|
6
6
|
export class UnsupportedPptTypeError extends Error {
|
|
7
7
|
constructor(input) {
|
|
8
8
|
super(`No PPTX 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 function normalizedPptMimeType(mimeType: string): string;
|
|
3
3
|
export declare function pptMimeTypeFor(input: Pick<RendererInput<"ppt">, "name" | "mimeType">): string | null;
|
|
4
4
|
export declare function isSupportedPptInput(input: Pick<RendererInput<"ppt">, "name" | "mimeType">): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { filenameSuffix } from "../file-name";
|
|
1
|
+
import { filenameSuffix } from "../file-name.js";
|
|
2
2
|
const PPTX_MIME_TYPE = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
|
|
3
3
|
export function normalizedPptMimeType(mimeType) {
|
|
4
4
|
return mimeType.split(";", 1)[0]?.trim().toLowerCase() ?? "";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DetectedFileFormat } from './file-format';
|
|
1
|
+
import type { DetectedFileFormat } from './file-format.js';
|
|
2
2
|
export declare const FILE_TEXT_PREVIEW_MAX_BYTES: number;
|
|
3
3
|
export declare const FILE_IMAGE_PREVIEW_MAX_BYTES: number;
|
|
4
4
|
export declare const FILE_MEDIA_PREVIEW_MAX_BYTES: number;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { GLB_PREVIEW_MAX_BYTES } from './glb/mime';
|
|
2
|
-
import { CONFIG_PREVIEW_MAX_BYTES } from './config/mime';
|
|
3
|
-
import { DRAWIO_PREVIEW_MAX_BYTES } from './drawio/mime';
|
|
4
|
-
import { EXCALIDRAW_PREVIEW_MAX_BYTES } from './excalidraw/mime';
|
|
5
|
-
import { JSON_PREVIEW_MAX_BYTES } from './json/mime';
|
|
6
|
-
import { JSONL_PREVIEW_MAX_BYTES } from './json/mime';
|
|
7
|
-
import { MERMAID_PREVIEW_MAX_BYTES } from './mermaid/mime';
|
|
8
|
-
import { NOTEBOOK_PREVIEW_MAX_BYTES } from './notebook/mime';
|
|
9
|
-
import { SVG_PREVIEW_MAX_BYTES } from './svg/mime';
|
|
10
|
-
import { WASM_PREVIEW_MAX_BYTES } from './wasm/mime';
|
|
11
|
-
import { ZIP_PREVIEW_MAX_BYTES } from './zip/mime';
|
|
1
|
+
import { GLB_PREVIEW_MAX_BYTES } from './glb/mime.js';
|
|
2
|
+
import { CONFIG_PREVIEW_MAX_BYTES } from './config/mime.js';
|
|
3
|
+
import { DRAWIO_PREVIEW_MAX_BYTES } from './drawio/mime.js';
|
|
4
|
+
import { EXCALIDRAW_PREVIEW_MAX_BYTES } from './excalidraw/mime.js';
|
|
5
|
+
import { JSON_PREVIEW_MAX_BYTES } from './json/mime.js';
|
|
6
|
+
import { JSONL_PREVIEW_MAX_BYTES } from './json/mime.js';
|
|
7
|
+
import { MERMAID_PREVIEW_MAX_BYTES } from './mermaid/mime.js';
|
|
8
|
+
import { NOTEBOOK_PREVIEW_MAX_BYTES } from './notebook/mime.js';
|
|
9
|
+
import { SVG_PREVIEW_MAX_BYTES } from './svg/mime.js';
|
|
10
|
+
import { WASM_PREVIEW_MAX_BYTES } from './wasm/mime.js';
|
|
11
|
+
import { ZIP_PREVIEW_MAX_BYTES } from './zip/mime.js';
|
|
12
12
|
export const FILE_TEXT_PREVIEW_MAX_BYTES = 512 * 1024;
|
|
13
13
|
export const FILE_IMAGE_PREVIEW_MAX_BYTES = 10 * 1024 * 1024;
|
|
14
14
|
export const FILE_MEDIA_PREVIEW_MAX_BYTES = 50 * 1024 * 1024;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import type { CodeModel } from './code';
|
|
2
|
-
import type { TomlModel, XmlModel, YamlModel } from './config';
|
|
3
|
-
import type { CsvModel } from './csv';
|
|
4
|
-
import type { DocxModel } from './docx';
|
|
5
|
-
import type { DrawioModel } from './drawio';
|
|
6
|
-
import type { ExcalidrawModel } from './excalidraw';
|
|
7
|
-
import type { GlbModel } from './glb';
|
|
8
|
-
import type { HtmlModel } from './html';
|
|
9
|
-
import type { ImageModel } from './image';
|
|
10
|
-
import type { JsonModel } from './json';
|
|
11
|
-
import type { JsonlModel } from './json/jsonl';
|
|
12
|
-
import type { MediaModel } from './media';
|
|
13
|
-
import type { MermaidModel } from './mermaid';
|
|
14
|
-
import type { NotebookModel } from './notebook';
|
|
15
|
-
import type { PdfModel } from './pdf';
|
|
16
|
-
import type { PptModel } from './ppt';
|
|
17
|
-
import type { SvgModel } from './svg';
|
|
18
|
-
import type { WasmModel } from './wasm';
|
|
19
|
-
import type { XlsxModel } from './xlsx';
|
|
20
|
-
import type { ZipModel } from './zip';
|
|
21
|
-
import type { FileRenderer, FileRendererFormat, ParsedDocument, RendererModel, RendererResourceResolver } from './contracts';
|
|
22
|
-
import type { MarkdownModel } from './markdown';
|
|
23
|
-
import type { DefaultFileRendererModelMap } from './registry';
|
|
1
|
+
import type { CodeModel } from './code/index.js';
|
|
2
|
+
import type { TomlModel, XmlModel, YamlModel } from './config/index.js';
|
|
3
|
+
import type { CsvModel } from './csv/index.js';
|
|
4
|
+
import type { DocxModel } from './docx/index.js';
|
|
5
|
+
import type { DrawioModel } from './drawio/index.js';
|
|
6
|
+
import type { ExcalidrawModel } from './excalidraw/index.js';
|
|
7
|
+
import type { GlbModel } from './glb/index.js';
|
|
8
|
+
import type { HtmlModel } from './html/index.js';
|
|
9
|
+
import type { ImageModel } from './image/index.js';
|
|
10
|
+
import type { JsonModel } from './json/index.js';
|
|
11
|
+
import type { JsonlModel } from './json/jsonl.js';
|
|
12
|
+
import type { MediaModel } from './media/index.js';
|
|
13
|
+
import type { MermaidModel } from './mermaid/index.js';
|
|
14
|
+
import type { NotebookModel } from './notebook/index.js';
|
|
15
|
+
import type { PdfModel } from './pdf/index.js';
|
|
16
|
+
import type { PptModel } from './ppt/index.js';
|
|
17
|
+
import type { SvgModel } from './svg/index.js';
|
|
18
|
+
import type { WasmModel } from './wasm/index.js';
|
|
19
|
+
import type { XlsxModel } from './xlsx/index.js';
|
|
20
|
+
import type { ZipModel } from './zip/index.js';
|
|
21
|
+
import type { FileRenderer, FileRendererFormat, ParsedDocument, RendererModel, RendererResourceResolver } from './contracts.js';
|
|
22
|
+
import type { MarkdownModel } from './markdown/index.js';
|
|
23
|
+
import type { DefaultFileRendererModelMap } from './registry.js';
|
|
24
24
|
export declare const blockedFileResources: RendererResourceResolver;
|
|
25
25
|
type CompleteRendererModels<Models extends DefaultFileRendererModelMap> = Models;
|
|
26
26
|
type FileRendererModels = CompleteRendererModels<{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useMemo, useState } from 'react';
|
|
3
|
-
import { fileFormatFor, isBinaryFileFormat } from './file-format';
|
|
3
|
+
import { fileFormatFor, isBinaryFileFormat } from './file-format.js';
|
|
4
4
|
export const blockedFileResources = {
|
|
5
5
|
async resolve(_request, { signal }) {
|
|
6
6
|
signal.throwIfAborted();
|
|
@@ -17,7 +17,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
17
17
|
if (payload.encoding === 'bytes') {
|
|
18
18
|
if (format === 'image') {
|
|
19
19
|
signal.throwIfAborted();
|
|
20
|
-
const { imageRenderer: renderer } = await import('./image');
|
|
20
|
+
const { imageRenderer: renderer } = await import('./image/index.js');
|
|
21
21
|
signal.throwIfAborted();
|
|
22
22
|
const document = await renderer.parse({
|
|
23
23
|
format: 'image',
|
|
@@ -30,7 +30,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
30
30
|
}
|
|
31
31
|
if (format === 'media') {
|
|
32
32
|
signal.throwIfAborted();
|
|
33
|
-
const { mediaRenderer: renderer } = await import('./media');
|
|
33
|
+
const { mediaRenderer: renderer } = await import('./media/index.js');
|
|
34
34
|
signal.throwIfAborted();
|
|
35
35
|
const document = await renderer.parse({
|
|
36
36
|
format: 'media',
|
|
@@ -43,7 +43,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
43
43
|
}
|
|
44
44
|
if (format === 'pdf') {
|
|
45
45
|
signal.throwIfAborted();
|
|
46
|
-
const { pdfRenderer: renderer } = await import('./pdf');
|
|
46
|
+
const { pdfRenderer: renderer } = await import('./pdf/index.js');
|
|
47
47
|
signal.throwIfAborted();
|
|
48
48
|
const document = await renderer.parse({
|
|
49
49
|
format: 'pdf',
|
|
@@ -56,7 +56,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
56
56
|
}
|
|
57
57
|
if (format === 'glb') {
|
|
58
58
|
signal.throwIfAborted();
|
|
59
|
-
const { glbRenderer: renderer } = await import('./glb');
|
|
59
|
+
const { glbRenderer: renderer } = await import('./glb/index.js');
|
|
60
60
|
signal.throwIfAborted();
|
|
61
61
|
const document = await renderer.parse({
|
|
62
62
|
format: 'glb',
|
|
@@ -69,7 +69,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
69
69
|
}
|
|
70
70
|
if (format === 'wasm') {
|
|
71
71
|
signal.throwIfAborted();
|
|
72
|
-
const { wasmRenderer: renderer } = await import('./wasm');
|
|
72
|
+
const { wasmRenderer: renderer } = await import('./wasm/index.js');
|
|
73
73
|
signal.throwIfAborted();
|
|
74
74
|
const document = await renderer.parse({ format: 'wasm', name, mimeType, payload }, context);
|
|
75
75
|
signal.throwIfAborted();
|
|
@@ -77,7 +77,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
77
77
|
}
|
|
78
78
|
if (format === 'zip') {
|
|
79
79
|
signal.throwIfAborted();
|
|
80
|
-
const { zipRenderer: renderer } = await import('./zip');
|
|
80
|
+
const { zipRenderer: renderer } = await import('./zip/index.js');
|
|
81
81
|
signal.throwIfAborted();
|
|
82
82
|
const document = await renderer.parse({ format: 'zip', name, mimeType, payload }, context);
|
|
83
83
|
signal.throwIfAborted();
|
|
@@ -85,7 +85,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
85
85
|
}
|
|
86
86
|
if (format === 'docx') {
|
|
87
87
|
signal.throwIfAborted();
|
|
88
|
-
const { docxRenderer: renderer } = await import('./docx');
|
|
88
|
+
const { docxRenderer: renderer } = await import('./docx/index.js');
|
|
89
89
|
signal.throwIfAborted();
|
|
90
90
|
const document = await renderer.parse({
|
|
91
91
|
format: 'docx',
|
|
@@ -98,7 +98,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
98
98
|
}
|
|
99
99
|
if (format === 'xlsx') {
|
|
100
100
|
signal.throwIfAborted();
|
|
101
|
-
const { xlsxRenderer: renderer } = await import('./xlsx');
|
|
101
|
+
const { xlsxRenderer: renderer } = await import('./xlsx/index.js');
|
|
102
102
|
signal.throwIfAborted();
|
|
103
103
|
const document = await renderer.parse({
|
|
104
104
|
format: 'xlsx',
|
|
@@ -111,7 +111,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
111
111
|
}
|
|
112
112
|
if (format === 'ppt') {
|
|
113
113
|
signal.throwIfAborted();
|
|
114
|
-
const { pptRenderer: renderer } = await import('./ppt');
|
|
114
|
+
const { pptRenderer: renderer } = await import('./ppt/index.js');
|
|
115
115
|
signal.throwIfAborted();
|
|
116
116
|
const document = await renderer.parse({
|
|
117
117
|
format: 'ppt',
|
|
@@ -127,7 +127,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
127
127
|
return unhandledRendererFormat(format);
|
|
128
128
|
}
|
|
129
129
|
if (format === 'html') {
|
|
130
|
-
const { htmlRenderer: renderer } = await import('./html');
|
|
130
|
+
const { htmlRenderer: renderer } = await import('./html/index.js');
|
|
131
131
|
signal.throwIfAborted();
|
|
132
132
|
const document = await renderer.parse({
|
|
133
133
|
format: 'html',
|
|
@@ -139,77 +139,77 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
139
139
|
return { format: 'html', basePath, document, renderer };
|
|
140
140
|
}
|
|
141
141
|
if (format === 'json') {
|
|
142
|
-
const { jsonRenderer: renderer } = await import('./json');
|
|
142
|
+
const { jsonRenderer: renderer } = await import('./json/index.js');
|
|
143
143
|
signal.throwIfAborted();
|
|
144
144
|
const document = await renderer.parse({ format: 'json', name, mimeType, payload }, context);
|
|
145
145
|
signal.throwIfAborted();
|
|
146
146
|
return { format: 'json', basePath, document, renderer };
|
|
147
147
|
}
|
|
148
148
|
if (format === 'jsonl') {
|
|
149
|
-
const { jsonlRenderer: renderer } = await import('./json/jsonl');
|
|
149
|
+
const { jsonlRenderer: renderer } = await import('./json/jsonl.js');
|
|
150
150
|
signal.throwIfAborted();
|
|
151
151
|
const document = await renderer.parse({ format: 'jsonl', name, mimeType, payload }, context);
|
|
152
152
|
signal.throwIfAborted();
|
|
153
153
|
return { format: 'jsonl', basePath, document, renderer };
|
|
154
154
|
}
|
|
155
155
|
if (format === 'yaml') {
|
|
156
|
-
const { yamlRenderer: renderer } = await import('./config');
|
|
156
|
+
const { yamlRenderer: renderer } = await import('./config/index.js');
|
|
157
157
|
signal.throwIfAborted();
|
|
158
158
|
const document = await renderer.parse({ format: 'yaml', name, mimeType, payload }, context);
|
|
159
159
|
signal.throwIfAborted();
|
|
160
160
|
return { format: 'yaml', basePath, document, renderer };
|
|
161
161
|
}
|
|
162
162
|
if (format === 'toml') {
|
|
163
|
-
const { tomlRenderer: renderer } = await import('./config');
|
|
163
|
+
const { tomlRenderer: renderer } = await import('./config/index.js');
|
|
164
164
|
signal.throwIfAborted();
|
|
165
165
|
const document = await renderer.parse({ format: 'toml', name, mimeType, payload }, context);
|
|
166
166
|
signal.throwIfAborted();
|
|
167
167
|
return { format: 'toml', basePath, document, renderer };
|
|
168
168
|
}
|
|
169
169
|
if (format === 'xml') {
|
|
170
|
-
const { xmlRenderer: renderer } = await import('./config');
|
|
170
|
+
const { xmlRenderer: renderer } = await import('./config/index.js');
|
|
171
171
|
signal.throwIfAborted();
|
|
172
172
|
const document = await renderer.parse({ format: 'xml', name, mimeType, payload }, context);
|
|
173
173
|
signal.throwIfAborted();
|
|
174
174
|
return { format: 'xml', basePath, document, renderer };
|
|
175
175
|
}
|
|
176
176
|
if (format === 'notebook') {
|
|
177
|
-
const { notebookRenderer: renderer } = await import('./notebook');
|
|
177
|
+
const { notebookRenderer: renderer } = await import('./notebook/index.js');
|
|
178
178
|
signal.throwIfAborted();
|
|
179
179
|
const document = await renderer.parse({ format: 'notebook', name, mimeType, payload }, context);
|
|
180
180
|
signal.throwIfAborted();
|
|
181
181
|
return { format: 'notebook', basePath, document, renderer };
|
|
182
182
|
}
|
|
183
183
|
if (format === 'svg') {
|
|
184
|
-
const { svgRenderer: renderer } = await import('./svg');
|
|
184
|
+
const { svgRenderer: renderer } = await import('./svg/index.js');
|
|
185
185
|
signal.throwIfAborted();
|
|
186
186
|
const document = await renderer.parse({ format: 'svg', name, mimeType, payload }, context);
|
|
187
187
|
signal.throwIfAborted();
|
|
188
188
|
return { format: 'svg', basePath, document, renderer };
|
|
189
189
|
}
|
|
190
190
|
if (format === 'drawio') {
|
|
191
|
-
const { drawioRenderer: renderer } = await import('./drawio');
|
|
191
|
+
const { drawioRenderer: renderer } = await import('./drawio/index.js');
|
|
192
192
|
signal.throwIfAborted();
|
|
193
193
|
const document = await renderer.parse({ format: 'drawio', name, mimeType, payload }, context);
|
|
194
194
|
signal.throwIfAborted();
|
|
195
195
|
return { format: 'drawio', basePath, document, renderer };
|
|
196
196
|
}
|
|
197
197
|
if (format === 'excalidraw') {
|
|
198
|
-
const { excalidrawRenderer: renderer } = await import('./excalidraw');
|
|
198
|
+
const { excalidrawRenderer: renderer } = await import('./excalidraw/index.js');
|
|
199
199
|
signal.throwIfAborted();
|
|
200
200
|
const document = await renderer.parse({ format: 'excalidraw', name, mimeType, payload }, context);
|
|
201
201
|
signal.throwIfAborted();
|
|
202
202
|
return { format: 'excalidraw', basePath, document, renderer };
|
|
203
203
|
}
|
|
204
204
|
if (format === 'mermaid') {
|
|
205
|
-
const { mermaidRenderer: renderer } = await import('./mermaid');
|
|
205
|
+
const { mermaidRenderer: renderer } = await import('./mermaid/index.js');
|
|
206
206
|
signal.throwIfAborted();
|
|
207
207
|
const document = await renderer.parse({ format: 'mermaid', name, mimeType, payload }, context);
|
|
208
208
|
signal.throwIfAborted();
|
|
209
209
|
return { format: 'mermaid', basePath, document, renderer };
|
|
210
210
|
}
|
|
211
211
|
if (format === 'markdown') {
|
|
212
|
-
const { markdownRenderer: renderer } = await import('./markdown');
|
|
212
|
+
const { markdownRenderer: renderer } = await import('./markdown/index.js');
|
|
213
213
|
signal.throwIfAborted();
|
|
214
214
|
const document = await renderer.parse({
|
|
215
215
|
format: 'markdown',
|
|
@@ -221,7 +221,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
221
221
|
return { format: 'markdown', basePath, document, renderer };
|
|
222
222
|
}
|
|
223
223
|
if (format === 'csv') {
|
|
224
|
-
const { csvRenderer: renderer } = await import('./csv');
|
|
224
|
+
const { csvRenderer: renderer } = await import('./csv/index.js');
|
|
225
225
|
signal.throwIfAborted();
|
|
226
226
|
const document = await renderer.parse({
|
|
227
227
|
format: 'csv',
|
|
@@ -237,7 +237,7 @@ export async function parseFile({ path, name, mimeType, payload, resources = blo
|
|
|
237
237
|
return null;
|
|
238
238
|
return unhandledRendererFormat(format);
|
|
239
239
|
}
|
|
240
|
-
const { codeRenderer: renderer } = await import('./code');
|
|
240
|
+
const { codeRenderer: renderer } = await import('./code/index.js');
|
|
241
241
|
signal.throwIfAborted();
|
|
242
242
|
const document = await renderer.parse({
|
|
243
243
|
format: 'code',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import { type FileRendererProjection } from './preview-host';
|
|
3
|
-
import type { RendererResourceResolver } from './contracts';
|
|
2
|
+
import { type FileRendererProjection } from './preview-host.js';
|
|
3
|
+
import type { RendererResourceResolver } from './contracts.js';
|
|
4
4
|
export type FileViewMode = 'preview' | 'source';
|
|
5
5
|
export declare function FileViewSwitch({ mode, onModeChange, }: {
|
|
6
6
|
mode: FileViewMode;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { lazy, Suspense, useState } from 'react';
|
|
3
|
-
import { blockedFileResources, FileDiagramPreview, FileRendererSurface, FileGlbPreview, FileWasmPreview, } from './preview-host';
|
|
4
|
-
import { mediaKindFor } from './media/mime';
|
|
5
|
-
const HtmlPreviewDocument = lazy(() => import('./html/preview').then(({ HtmlPreviewDocument }) => ({
|
|
3
|
+
import { blockedFileResources, FileDiagramPreview, FileRendererSurface, FileGlbPreview, FileWasmPreview, } from './preview-host.js';
|
|
4
|
+
import { mediaKindFor } from './media/mime.js';
|
|
5
|
+
const HtmlPreviewDocument = lazy(() => import('./html/preview.js').then(({ HtmlPreviewDocument }) => ({
|
|
6
6
|
default: HtmlPreviewDocument,
|
|
7
7
|
})));
|
|
8
8
|
export function FileViewSwitch({ mode, onModeChange, }) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileRenderer, FileRendererFormat, RendererModel } from "./contracts";
|
|
1
|
+
import type { FileRenderer, FileRendererFormat, RendererModel } from "./contracts.js";
|
|
2
2
|
export type FileRendererModelMap = {
|
|
3
3
|
readonly [Format in FileRendererFormat]?: RendererModel<Format>;
|
|
4
4
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RendererResourceRequest } from "./contracts.js";
|
|
2
|
+
/** The host supplies an exact, decoded directory, not a URL pathname. */
|
|
3
|
+
export declare function resourceDirectoryUrl(basePath: string): URL | null;
|
|
4
|
+
/** Resolve a raw local URL reference without giving it the host page's origin. */
|
|
5
|
+
export declare function localResourceUrl(reference: string, base: URL): URL | null;
|
|
6
|
+
/** Decode a renderer URL reference exactly once to the host's inventory path. */
|
|
7
|
+
export declare function rendererResourcePath({ basePath, reference }: Pick<RendererResourceRequest, "basePath" | "reference">): string | null;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const RESOURCE_ORIGIN = "https://workspace.invalid";
|
|
2
|
+
/** The host supplies an exact, decoded directory, not a URL pathname. */
|
|
3
|
+
export function resourceDirectoryUrl(basePath) {
|
|
4
|
+
if (!basePath.startsWith("/") || basePath.startsWith("//") || /[\\\0-\x1f\x7f]/u.test(basePath) ||
|
|
5
|
+
basePath.split("/").some((segment) => segment === "." || segment === ".."))
|
|
6
|
+
return null;
|
|
7
|
+
const path = basePath.split("/").map(encodeURIComponent).join("/");
|
|
8
|
+
return new URL(path.endsWith("/") ? path : `${path}/`, RESOURCE_ORIGIN);
|
|
9
|
+
}
|
|
10
|
+
/** Resolve a raw local URL reference without giving it the host page's origin. */
|
|
11
|
+
export function localResourceUrl(reference, base) {
|
|
12
|
+
const value = reference.trim();
|
|
13
|
+
if (!value || value.startsWith("#") || value.startsWith("//") ||
|
|
14
|
+
/^[a-z][a-z\d+.-]*:/iu.test(value) || /[\\\0-\x1f\x7f]/u.test(reference))
|
|
15
|
+
return null;
|
|
16
|
+
try {
|
|
17
|
+
const url = new URL(value, base);
|
|
18
|
+
return url.origin === RESOURCE_ORIGIN && !/%2f|%5c/iu.test(url.pathname) ? url : null;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** Decode a renderer URL reference exactly once to the host's inventory path. */
|
|
25
|
+
export function rendererResourcePath({ basePath, reference }) {
|
|
26
|
+
const base = resourceDirectoryUrl(basePath);
|
|
27
|
+
const url = base && localResourceUrl(reference, base);
|
|
28
|
+
if (!url)
|
|
29
|
+
return null;
|
|
30
|
+
try {
|
|
31
|
+
const path = decodeURIComponent(url.pathname);
|
|
32
|
+
return /[\\\0-\x1f\x7f]/u.test(path) || path.split("/").some((segment) => segment === "." || segment === "..") ? null : path;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { FileRenderer, FrameDocumentModel, RendererInput, RendererDiagnostic } from "../contracts";
|
|
2
|
-
export { SVG_MIME_TYPE, SVG_PREVIEW_MAX_BYTES, isSupportedSvgInput, normalizedSvgMimeType, svgMimeTypeFor, } from "./mime";
|
|
3
|
-
export { InvalidSvgError, sanitizeSvg, type SvgPreview } from "./parse";
|
|
1
|
+
import type { FileRenderer, FrameDocumentModel, RendererInput, RendererDiagnostic } from "../contracts.js";
|
|
2
|
+
export { SVG_MIME_TYPE, SVG_PREVIEW_MAX_BYTES, isSupportedSvgInput, normalizedSvgMimeType, svgMimeTypeFor, } from "./mime.js";
|
|
3
|
+
export { InvalidSvgError, sanitizeSvg, type SvgPreview } from "./parse.js";
|
|
4
4
|
export type SvgFrame = {
|
|
5
5
|
readonly name: string;
|
|
6
6
|
readonly mimeType: string;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { ImageDocument } from "../image";
|
|
3
|
-
import { svgMimeTypeFor } from "./mime";
|
|
4
|
-
import { sanitizeSvg } from "./parse";
|
|
5
|
-
export { SVG_MIME_TYPE, SVG_PREVIEW_MAX_BYTES, isSupportedSvgInput, normalizedSvgMimeType, svgMimeTypeFor, } from "./mime";
|
|
6
|
-
export { InvalidSvgError, sanitizeSvg } from "./parse";
|
|
2
|
+
import { ImageDocument } from "../image/index.js";
|
|
3
|
+
import { svgMimeTypeFor } from "./mime.js";
|
|
4
|
+
import { sanitizeSvg } from "./parse.js";
|
|
5
|
+
export { SVG_MIME_TYPE, SVG_PREVIEW_MAX_BYTES, isSupportedSvgInput, normalizedSvgMimeType, svgMimeTypeFor, } from "./mime.js";
|
|
6
|
+
export { InvalidSvgError, sanitizeSvg } from "./parse.js";
|
|
7
7
|
export class UnsupportedSvgTypeError extends Error {
|
|
8
8
|
constructor(input) {
|
|
9
9
|
super(`No SVG 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 SVG_MIME_TYPE = "image/svg+xml";
|
|
3
3
|
export declare const SVG_PREVIEW_MAX_BYTES: number;
|
|
4
4
|
export declare function normalizedSvgMimeType(mimeType: string): string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SaxesParser } from "saxes";
|
|
2
|
-
import { SVG_PREVIEW_MAX_BYTES } from "./mime";
|
|
2
|
+
import { SVG_PREVIEW_MAX_BYTES } from "./mime.js";
|
|
3
3
|
const SVG_NAMESPACE = "http://www.w3.org/2000/svg";
|
|
4
4
|
const XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace";
|
|
5
5
|
const XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts";
|
|
2
|
-
import { type WasmMetadata } from "./parse";
|
|
3
|
-
export { WASM_MIME_TYPE, WASM_PREVIEW_MAX_BYTES, isSupportedWasmInput, normalizedWasmMimeType, wasmMimeTypeFor, } from "./mime";
|
|
4
|
-
export { InvalidWasmError, parseWasmMetadata, type WasmMetadata, type WasmSection } from "./parse";
|
|
1
|
+
import type { FileRenderer, FrameDocumentModel, RendererInput } from "../contracts.js";
|
|
2
|
+
import { type WasmMetadata } from "./parse.js";
|
|
3
|
+
export { WASM_MIME_TYPE, WASM_PREVIEW_MAX_BYTES, isSupportedWasmInput, normalizedWasmMimeType, wasmMimeTypeFor, } from "./mime.js";
|
|
4
|
+
export { InvalidWasmError, parseWasmMetadata, type WasmMetadata, type WasmSection } from "./parse.js";
|
|
5
5
|
export type WasmFrame = {
|
|
6
6
|
readonly name: string;
|
|
7
7
|
readonly metadata: WasmMetadata;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { wasmMimeTypeFor } from "./mime";
|
|
3
|
-
import { parseWasmMetadata } from "./parse";
|
|
4
|
-
export { WASM_MIME_TYPE, WASM_PREVIEW_MAX_BYTES, isSupportedWasmInput, normalizedWasmMimeType, wasmMimeTypeFor, } from "./mime";
|
|
5
|
-
export { InvalidWasmError, parseWasmMetadata } from "./parse";
|
|
2
|
+
import { wasmMimeTypeFor } from "./mime.js";
|
|
3
|
+
import { parseWasmMetadata } from "./parse.js";
|
|
4
|
+
export { WASM_MIME_TYPE, WASM_PREVIEW_MAX_BYTES, isSupportedWasmInput, normalizedWasmMimeType, wasmMimeTypeFor, } from "./mime.js";
|
|
5
|
+
export { InvalidWasmError, parseWasmMetadata } from "./parse.js";
|
|
6
6
|
export class UnsupportedWasmTypeError extends Error {
|
|
7
7
|
constructor(input) {
|
|
8
8
|
super(`No WASM 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 WASM_MIME_TYPE = "application/wasm";
|
|
3
3
|
export declare const WASM_PREVIEW_MAX_BYTES: number;
|
|
4
4
|
export declare function normalizedWasmMimeType(mimeType: string): string;
|