@toaq-oss/omni-mdx 0.1.14 → 0.1.16

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.
Binary file
package/dist/server.js CHANGED
@@ -399,8 +399,9 @@ function renderNode(node, index, components) {
399
399
  return /* @__PURE__ */ jsx(React.Fragment, { children: renderChildren(node, components) }, key);
400
400
  }
401
401
  if (node.node_type === "InlineMath") {
402
+ const formula = extractText(node);
402
403
  try {
403
- const html = katex.renderToString(node.content ?? "", {
404
+ const html = katex.renderToString(formula, {
404
405
  displayMode: false,
405
406
  throwOnError: false,
406
407
  output: "html"
@@ -414,12 +415,13 @@ function renderNode(node, index, components) {
414
415
  key
415
416
  );
416
417
  } catch {
417
- return /* @__PURE__ */ jsx("span", { className: "math math-inline", children: node.content }, key);
418
+ return /* @__PURE__ */ jsx("span", { className: "math math-inline", children: formula }, key);
418
419
  }
419
420
  }
420
421
  if (node.node_type === "BlockMath") {
422
+ const formula = extractText(node);
421
423
  try {
422
- const html = katex.renderToString(node.content ?? "", {
424
+ const html = katex.renderToString(formula, {
423
425
  displayMode: true,
424
426
  throwOnError: false,
425
427
  output: "html"
@@ -433,7 +435,7 @@ function renderNode(node, index, components) {
433
435
  key
434
436
  );
435
437
  } catch {
436
- return /* @__PURE__ */ jsx("div", { className: "math math-display", children: node.content }, key);
438
+ return /* @__PURE__ */ jsx("div", { className: "math math-display", children: formula }, key);
437
439
  }
438
440
  }
439
441
  const resolvedProps = {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/parse.server.ts","../src/utils/binaryDecoder.ts","../src/MDXServerRenderer.tsx"],"sourcesContent":["import type { AstNode } from \"./MDXServerRenderer\";\nimport { createRequire } from \"module\";\nimport { fileURLToPath } from \"url\";\nimport { dirname, resolve } from \"path\";\nimport { MdxBinaryDecoder } from \"./utils/binaryDecoder\";\n\ndeclare const __non_webpack_require__: NodeRequire | undefined;\n\nconst _require = createRequire(import.meta.url);\nconst nativeRequire: NodeRequire =\n typeof __non_webpack_require__ !== \"undefined\"\n ? __non_webpack_require__\n : _require;\n\nlet _nativeModule: any = null;\n\nfunction getNativeModuleSync():any {\n if (_nativeModule) return _nativeModule;\n\n const platformPackages = [\n \"@toaq-oss/omni-mdx-darwin-arm64\",\n \"@toaq-oss/omni-mdx-darwin-x64\",\n \"@toaq-oss/omni-mdx-linux-x64-gnu\",\n \"@toaq-oss/omni-mdx-win32-x64-msvc\",\n ];\n\n for (const pkg of platformPackages) {\n try {\n const native = nativeRequire(pkg);\n if (\n typeof native.parseToBinary === \"function\" ||\n typeof native.parse_to_binary === \"function\" ||\n typeof native.parseToJson === \"function\" ||\n typeof native.parse_to_json === \"function\"\n ) {\n _nativeModule = native;\n return _nativeModule;\n }\n } catch { /* not installed on this platform */ }\n }\n\n // Fallback local\n try {\n const __dir = dirname(fileURLToPath(import.meta.url));\n const nativeDir = resolve(__dir, \"../native\");\n const fs = nativeRequire(\"fs\") as typeof import(\"fs\");\n\n if (fs.existsSync(nativeDir)) {\n const files = fs.readdirSync(nativeDir).filter((f: string) => f.endsWith(\".node\"));\n const platform = process.platform ?? \"\";\n const arch = process.arch ?? \"\";\n const match = files.find((f: string) => f.includes(platform) && f.includes(arch))\n ?? files[0];\n\n if (match) {\n const native = nativeRequire(resolve(nativeDir, match));\n _nativeModule = native;\n if (typeof native.parseToJson === \"function\") {\n return _nativeModule;\n } else if (typeof native.parse_to_json === \"function\") {\n return _nativeModule;\n }\n }\n }\n } catch { /* native/ missing */ }\n\n throw new Error(\n `[toaq-oss/omni-mdx] Native parser not found for this platform.\\n` +\n ` Tried npm packages: ${platformPackages.join(\", \")}\\n` +\n ` ➜ Install the prebuilt package (once published):\\n` +\n ` npm install @toaq-oss/omni-mdx-darwin-arm64 # Mac M1/M2\\n` +\n ` npm install @toaq-oss/omni-mdx-linux-x64-gnu # Linux/Vercel\\n` +\n ` npm install @toaq-oss/omni-mdx-win32-x64-msvc # Windows\\n`\n );\n}\n\nfunction getParseFn(native: any): (mdx: string | Buffer | Uint8Array) => any {\n if (typeof native.parseToBinary === \"function\") return native.parseToBinary;\n if (typeof native.parse_to_binary === \"function\") return native.parse_to_binary;\n if (typeof native.parse === \"function\") return native.parse;\n if (typeof native.parseToJson === \"function\") return native.parseToJson;\n if (typeof native.parse_to_json === \"function\") return native.parse_to_json;\n\n throw new Error(\"[toaq-oss/omni-mdx] Native parser lacks a valid parse function.\");\n}\n\nexport async function parseMdx(mdx: string | Buffer | Uint8Array): Promise<AstNode[]> {\n const native = getNativeModuleSync();\n const parse = getParseFn(native);\n let result: any;\n \n try {\n result = parse(mdx);\n } catch (err: any) {\n const sourceSnippet = typeof mdx === 'string' ? mdx.slice(0, 50) : \"Binary Data\";\n throw new MDXParseError(err?.message ?? String(err), sourceSnippet);\n }\n \n\n if (result instanceof Uint8Array || Buffer.isBuffer(result)) {\n const decoder = new MdxBinaryDecoder(result);\n return decoder.decode();\n }\n\n if (typeof result === \"string\") {\n try { return JSON.parse(result) as AstNode[]; } catch { throw new Error(\"Invalid JSON string.\"); }\n }\n\n if (typeof result === \"object\" && result !== null) {\n if (typeof result.toJson === \"function\") {\n try {\n const jsonString = result.toJson();\n return JSON.parse(jsonString) as AstNode[];\n } catch (e) {\n throw new Error(\"[toaq-oss/omni-mdx] Failed to serialize MdxAst to JSON.\");\n }\n }\n \n if (typeof result.to_json === \"function\") {\n try { return JSON.parse(result.to_json()) as AstNode[]; } catch (e) {}\n }\n \n if (Array.isArray(result)) return result as AstNode[];\n }\n\n throw new Error(\"[toaq-oss/omni-mdx] Unrecognized return format from Rust parser. Available properties: \" + Object.keys(result.__proto__ || result).join(\", \"));\n}\n\nexport function parseMdxSync(mdx: string | Buffer | Uint8Array): AstNode[] {\n const native = getNativeModuleSync();\n const parse = getParseFn(native);\n\n let result: any;\n try {\n result = parse(mdx);\n } catch (err: any) {\n const sourceSnippet = typeof mdx === 'string' ? mdx.slice(0, 50) : \"Binary Data\";\n throw new MDXParseError(err?.message ?? String(err), sourceSnippet);\n }\n\n if (result instanceof Uint8Array || Buffer.isBuffer(result)) {\n const decoder = new MdxBinaryDecoder(result);\n return decoder.decode();\n }\n \n if (typeof result === \"string\") {\n try { return JSON.parse(result) as AstNode[]; } catch { throw new Error(\"Invalid JSON\"); }\n }\n\n if (typeof result === \"object\" && result !== null && typeof result.toJson === \"function\") {\n try { return JSON.parse(result.toJson()) as AstNode[]; } catch { throw new Error(\"Invalid JSON\"); }\n }\n\n if (typeof result === \"object\" && result !== null && typeof result.to_json === \"function\") {\n try { return JSON.parse(result.to_json()) as AstNode[]; } catch { throw new Error(\"Invalid JSON\"); }\n }\n\n throw new Error(\"[toaq-oss/omni-mdx] Unrecognized return format from Rust parser.\");\n}\n\nexport async function compileToJsx(mdx: string): Promise<string> {\n const native = getNativeModuleSync();\n \n const compileFn = native.compileToJsx || native.compile_to_jsx;\n \n if (typeof compileFn !== \"function\") {\n throw new Error(\"[toaq-oss/omni-mdx] compileToJsx is not supported by this native module version.\");\n }\n \n try {\n return compileFn(mdx);\n } catch (err: any) {\n throw new MDXParseError(err?.message ?? String(err), mdx);\n }\n}\n\nexport function compileToJsxSync(mdx: string): string {\n const native = getNativeModuleSync();\n \n const compileFn = native.compileToJsx || native.compile_to_jsx;\n if (typeof compileFn !== \"function\") {\n throw new Error(\"[toaq-oss/omni-mdx] compileToJsx is not supported by this native module version.\");\n }\n \n try {\n return compileFn(mdx);\n } catch (err: any) {\n throw new MDXParseError(err?.message ?? String(err), mdx);\n }\n}\n\nexport class MDXParseError extends Error {\n readonly source: string;\n constructor(message: string, source: string) {\n super(`MDX parse error: ${message}`);\n this.name = \"MDXParseError\";\n this.source = source;\n }\n}","import type { AstNode, AttrValueKind } from \"../MDXServerRenderer\";\n\nconst NODE_TEXT = 0x01;\nconst NODE_ELEMENT = 0x02;\n\nconst ATTR_TEXT = 0x10;\nconst ATTR_EXPRESSION = 0x11;\nconst ATTR_BOOLEAN = 0x12;\nconst ATTR_AST = 0x13;\n\nexport class MdxBinaryDecoder {\n private view: DataView;\n private buffer: Uint8Array;\n private offset: number = 0;\n private decoder = new TextDecoder(\"utf-8\");\n private stringCache = new Map<string, string>();\n\n constructor(buffer: Uint8Array) {\n this.buffer = buffer;\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n public decode(): AstNode[] {\n const rootCount = this.readU32();\n const nodes: AstNode[] = [];\n for (let i = 0; i < rootCount; i++) {\n nodes.push(this.decodeNode());\n }\n return nodes;\n }\n\n private decodeNode(): AstNode {\n const type = this.readU8();\n\n if (type === NODE_TEXT) {\n return {\n node_type: \"text\",\n content: this.readStringU32(),\n };\n }\n\n if (type === NODE_ELEMENT) {\n const node_type = this.readStringU16();\n const self_closing = this.readU8() === 1;\n const attrCount = this.readU16();\n \n let attributes: Record<string, AttrValueKind> | undefined = undefined;\n \n if (attrCount > 0) {\n attributes = {};\n for (let i = 0; i < attrCount; i++) {\n const key = this.readStringU16();\n const attrKind = this.readU8();\n \n if (attrKind === ATTR_TEXT) {\n attributes[key] = { kind: \"text\", value: this.readStringU32() };\n } else if (attrKind === ATTR_EXPRESSION) {\n attributes[key] = { kind: \"expression\", value: this.readStringU32() };\n } else if (attrKind === ATTR_BOOLEAN) {\n attributes[key] = { kind: \"boolean\" };\n } else if (attrKind === ATTR_AST) {\n const subNodeCount = this.readU32();\n const subNodes: AstNode[] = [];\n for (let j = 0; j < subNodeCount; j++) {\n subNodes.push(this.decodeNode());\n }\n attributes[key] = { kind: \"ast\", value: subNodes };\n }\n }\n }\n\n const childCount = this.readU32();\n const children: AstNode[] = [];\n if (childCount > 0) {\n for (let i = 0; i < childCount; i++) {\n children.push(this.decodeNode());\n }\n }\n\n return {\n node_type,\n self_closing,\n attributes,\n children,\n };\n }\n\n throw new Error(`[Omni-Core] Unknown binary opcode: ${type} at offset ${this.offset}`);\n }\n\n private readU8(): number {\n const val = this.view.getUint8(this.offset);\n this.offset += 1;\n return val;\n }\n\n private readU16(): number {\n const val = this.view.getUint16(this.offset, true);\n this.offset += 2;\n return val;\n }\n\n private readU32(): number {\n const val = this.view.getUint32(this.offset, true);\n this.offset += 4;\n return val;\n }\n\n private readStringU16(): string {\n const len = this.readU16();\n const str = this.decoder.decode(this.buffer.subarray(this.offset, this.offset + len));\n this.offset += len;\n\n let cached = this.stringCache.get(str);\n if (cached) return cached;\n this.stringCache.set(str, str);\n return str;\n }\n\n private readStringU32(): string {\n const len = this.readU32();\n const str = this.decoder.decode(this.buffer.subarray(this.offset, this.offset + len));\n this.offset += len;\n return str;\n }\n}","/**\n * MDXServerRenderer.tsx\n *\n * React Server Component — renders an MDX AST on the server.\n * No \"use client\" — safe for Next.js SSR, SSG, and ISR.\n *\n * Drop-in replacement for <MDXRemote source={...} components={MDX_COMPONENTS} />\n *\n * Usage in a Server Component (page.tsx):\n *\n * import { MDXServerRenderer, parseMdx } from '@toaq/omni-mdx/server';\n * import { MDX_COMPONENTS } from './MDXComponents';\n *\n * export default async function Page() {\n * const ast = await parseMdx(mdxString);\n * return <MDXServerRenderer ast={ast} components={MDX_COMPONENTS} />;\n * }\n */\n\nimport React, { ReactNode, JSX } from \"react\";\nimport katex from \"katex\";\n\n// AST types (mirror Rust output exactly)\n\nexport type AttrValueKind =\n | { kind: \"text\"; value: string }\n | { kind: \"expression\"; value: string }\n | { kind: \"boolean\" }\n | { kind: \"ast\"; value: AstNode[] };\n\nexport interface AstNode {\n node_type: string;\n content?: string;\n self_closing?: boolean;\n child_count?: number; // Rendu optionnel\n attributes?: Record<string, AttrValueKind> | string; // Accepte l'objet binaire ou la string\n children?: AstNode[];\n}\n\nexport type MDXComponents = Record<string, React.ComponentType<any>>;\n\n/**\n * Converts a raw AttrValueKind from the Rust AST into a React-usable prop value.\n * text → string\n * expression → attempt JSON/JS parse, fallback to string\n * boolean → true\n * ast → <MDXServerRenderer ast={...} components={...} />\n */\nfunction resolveAttr(\n attr: AttrValueKind,\n components: MDXComponents,\n): React.ReactNode | string | boolean {\n switch (attr.kind) {\n case \"text\":\n return attr.value;\n\n case \"boolean\":\n return true;\n\n case \"expression\": {\n const raw = attr.value.trim();\n // Try JSON first (safe), then JS expression as last resort\n try { return JSON.parse(raw); } catch {}\n try { return new Function(`return (${raw})`)(); } catch {}\n return raw;\n }\n\n case \"ast\":\n return (\n <MDXServerRenderer\n ast={attr.value}\n components={components}\n />\n );\n\n default:\n return undefined;\n }\n}\n\nconst HTML_TAGS = new Set([\n \"a\",\"abbr\",\"address\",\"article\",\"aside\",\"b\",\"bdi\",\"bdo\",\"blockquote\",\"br\",\n \"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"dd\",\"del\",\"details\",\"dfn\",\n \"div\",\"dl\",\"dt\",\"em\",\"figcaption\",\"figure\",\"footer\",\"h1\",\"h2\",\"h3\",\"h4\",\n \"h5\",\"h6\",\"header\",\"hr\",\"i\",\"img\",\"ins\",\"kbd\",\"li\",\"main\",\"mark\",\"nav\",\"ol\",\n \"p\",\"pre\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"section\",\"small\",\"span\",\"strong\",\n \"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\n \"u\",\"ul\",\"var\",\"wbr\",\n]);\n\nfunction extractText(node: AstNode): string {\n if (node.node_type === \"text\") return node.content ?? \"\";\n if (node.content) return node.content;\n return (node.children ?? []).map(extractText).join(\"\");\n}\n\nfunction renderNode(\n node: AstNode,\n index: number,\n components: MDXComponents,\n): ReactNode {\n const key = `${node.node_type}-${index}`;\n\n if (node.node_type === \"text\") {\n return node.content ?? null;\n }\n\n if (node.node_type === \"fragment\") {\n return (\n <React.Fragment key={key}>\n {renderChildren(node, components)}\n </React.Fragment>\n );\n }\n\n // Math — server-side rendering via KaTeX (static HTML, no client-side JavaScript)\n if (node.node_type === \"InlineMath\") {\n try {\n const html = katex.renderToString(node.content ?? \"\", {\n displayMode: false,\n throwOnError: false,\n output: \"html\",\n });\n return (\n <span\n key={key}\n className=\"math math-inline\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n } catch {\n return <span key={key} className=\"math math-inline\">{node.content}</span>;\n }\n }\n\n if (node.node_type === \"BlockMath\") {\n try {\n const html = katex.renderToString(node.content ?? \"\", {\n displayMode: true,\n throwOnError: false,\n output: \"html\",\n });\n return (\n <div\n key={key}\n className=\"math math-display\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n } catch {\n return <div key={key} className=\"math math-display\">{node.content}</div>;\n }\n }\n\n // Resolve props from AST attributes\n const resolvedProps: Record<string, any> = {};\n if (node.attributes) {\n const attrs = typeof node.attributes === \"string\" \n ? JSON.parse(node.attributes) \n : node.attributes;\n\n for (const [k, v] of Object.entries(attrs)) {\n resolvedProps[k] = resolveAttr(v as AttrValueKind, components);\n }\n }\n\n const renderedChildren = node.children && node.children.length > 0\n ? renderChildren(node, components)\n : (node.content ?? undefined);\n\n // Custom registered component\n const Custom = components[node.node_type];\n if (Custom) {\n try {\n return (\n <Custom key={key} {...resolvedProps}>\n {renderedChildren}\n </Custom>\n );\n } catch (err) {\n if (process.env.NODE_ENV === \"development\") {\n console.error(`[toaq-oss/omni-mdx] Server render failed for <${node.node_type}>:`, err);\n }\n return (\n <div\n key={key}\n className=\"mdx-component-error\"\n data-component={node.node_type}\n style={{ padding: \"1rem\", border: \"2px solid #ef4444\", borderRadius: \"0.5rem\", margin: \"1rem 0\", background: \"#fef2f2\" }}\n >\n <strong style={{ color: \"#b91c1c\" }}>Render error: &lt;{node.node_type}&gt;</strong>\n {process.env.NODE_ENV === \"development\" && (\n <pre style={{ color: \"#dc2626\", fontSize: \"0.875rem\", marginTop: \"0.5rem\" }}>\n {String(err)}\n </pre>\n )}\n </div>\n );\n }\n }\n\n if (node.node_type === \"table\") {\n const firstChild = node.children?.[0];\n const hasThead = firstChild?.node_type === \"thead\";\n const theadNode = hasThead ? firstChild : null;\n const bodyRows = hasThead ? node.children!.slice(1) : node.children ?? [];\n\n const theadEl = theadNode ? (\n <thead key=\"thead\">\n <tr>\n {theadNode.children?.map((cell, i) =>\n renderNode({ ...cell, node_type: \"th\" }, i, components)\n )}\n </tr>\n </thead>\n ) : null;\n\n const tbodyEl = bodyRows.length > 0 ? (\n <tbody key=\"tbody\">\n {bodyRows.map((row, i) => renderNode(row, i, components))}\n </tbody>\n ) : null;\n\n return <table key={key} {...resolvedProps}>{theadEl}{tbodyEl}</table>;\n }\n\n if (node.node_type === \"pre\") {\n const rawText = extractText(node);\n return <pre key={key} {...resolvedProps}><code>{rawText}</code></pre>;\n }\n\n if (HTML_TAGS.has(node.node_type)) {\n const Tag = node.node_type as keyof JSX.IntrinsicElements;\n return (\n <Tag key={key} {...resolvedProps}>\n {renderedChildren}\n </Tag>\n );\n }\n\n if (process.env.NODE_ENV === \"development\") {\n console.warn(\n `[toaq-oss/omni-mdx] Unknown component: <${node.node_type}>. ` +\n `Register it via MDX_COMPONENTS or add it to your components prop.`\n );\n }\n return (\n <div key={key} data-missing-component={node.node_type} className=\"mdx-missing-component\">\n {renderedChildren}\n </div>\n );\n}\n\nfunction renderChildren(node: AstNode, components: MDXComponents): ReactNode[] {\n if (!node.children?.length) return [];\n return node.children.map((child, i) => renderNode(child, i, components));\n}\n\ninterface MDXServerRendererProps {\n /** AST produced by parseMdx() — JSON-serialisable. */\n ast: AstNode[];\n /**\n * Component registry. Keys are JSX tag names (e.g. \"Note\", \"Details\").\n * Values are React components (Server or Client).\n *\n * Server Components render on the server (recommended for static content).\n * Client Components receive \"use client\" and hydrate in the browser.\n */\n components?: MDXComponents;\n}\n\nexport function MDXServerRenderer({\n ast,\n components = {},\n}: MDXServerRendererProps): JSX.Element {\n if (!ast || !Array.isArray(ast)) {\n return <></>;\n }\n\n return (\n <div className=\"omni-mdx-root\">\n {ast.map((node, i) => renderNode(node, i, components))}\n </div>\n );\n}"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/parse.server.ts","../src/utils/binaryDecoder.ts","../src/MDXServerRenderer.tsx"],"sourcesContent":["import type { AstNode } from \"./MDXServerRenderer\";\nimport { createRequire } from \"module\";\nimport { fileURLToPath } from \"url\";\nimport { dirname, resolve } from \"path\";\nimport { MdxBinaryDecoder } from \"./utils/binaryDecoder\";\n\ndeclare const __non_webpack_require__: NodeRequire | undefined;\n\nconst _require = createRequire(import.meta.url);\nconst nativeRequire: NodeRequire =\n typeof __non_webpack_require__ !== \"undefined\"\n ? __non_webpack_require__\n : _require;\n\nlet _nativeModule: any = null;\n\nfunction getNativeModuleSync():any {\n if (_nativeModule) return _nativeModule;\n\n const platformPackages = [\n \"@toaq-oss/omni-mdx-darwin-arm64\",\n \"@toaq-oss/omni-mdx-darwin-x64\",\n \"@toaq-oss/omni-mdx-linux-x64-gnu\",\n \"@toaq-oss/omni-mdx-win32-x64-msvc\",\n ];\n\n for (const pkg of platformPackages) {\n try {\n const native = nativeRequire(pkg);\n if (\n typeof native.parseToBinary === \"function\" ||\n typeof native.parse_to_binary === \"function\" ||\n typeof native.parseToJson === \"function\" ||\n typeof native.parse_to_json === \"function\"\n ) {\n _nativeModule = native;\n return _nativeModule;\n }\n } catch { /* not installed on this platform */ }\n }\n\n // Fallback local\n try {\n const __dir = dirname(fileURLToPath(import.meta.url));\n const nativeDir = resolve(__dir, \"../native\");\n const fs = nativeRequire(\"fs\") as typeof import(\"fs\");\n\n if (fs.existsSync(nativeDir)) {\n const files = fs.readdirSync(nativeDir).filter((f: string) => f.endsWith(\".node\"));\n const platform = process.platform ?? \"\";\n const arch = process.arch ?? \"\";\n const match = files.find((f: string) => f.includes(platform) && f.includes(arch))\n ?? files[0];\n\n if (match) {\n const native = nativeRequire(resolve(nativeDir, match));\n _nativeModule = native;\n if (typeof native.parseToJson === \"function\") {\n return _nativeModule;\n } else if (typeof native.parse_to_json === \"function\") {\n return _nativeModule;\n }\n }\n }\n } catch { /* native/ missing */ }\n\n throw new Error(\n `[toaq-oss/omni-mdx] Native parser not found for this platform.\\n` +\n ` Tried npm packages: ${platformPackages.join(\", \")}\\n` +\n ` ➜ Install the prebuilt package (once published):\\n` +\n ` npm install @toaq-oss/omni-mdx-darwin-arm64 # Mac M1/M2\\n` +\n ` npm install @toaq-oss/omni-mdx-linux-x64-gnu # Linux/Vercel\\n` +\n ` npm install @toaq-oss/omni-mdx-win32-x64-msvc # Windows\\n`\n );\n}\n\nfunction getParseFn(native: any): (mdx: string | Buffer | Uint8Array) => any {\n if (typeof native.parseToBinary === \"function\") return native.parseToBinary;\n if (typeof native.parse_to_binary === \"function\") return native.parse_to_binary;\n if (typeof native.parse === \"function\") return native.parse;\n if (typeof native.parseToJson === \"function\") return native.parseToJson;\n if (typeof native.parse_to_json === \"function\") return native.parse_to_json;\n\n throw new Error(\"[toaq-oss/omni-mdx] Native parser lacks a valid parse function.\");\n}\n\nexport async function parseMdx(mdx: string | Buffer | Uint8Array): Promise<AstNode[]> {\n const native = getNativeModuleSync();\n const parse = getParseFn(native);\n let result: any;\n \n try {\n result = parse(mdx);\n } catch (err: any) {\n const sourceSnippet = typeof mdx === 'string' ? mdx.slice(0, 50) : \"Binary Data\";\n throw new MDXParseError(err?.message ?? String(err), sourceSnippet);\n }\n \n\n if (result instanceof Uint8Array || Buffer.isBuffer(result)) {\n const decoder = new MdxBinaryDecoder(result);\n return decoder.decode();\n }\n\n if (typeof result === \"string\") {\n try { return JSON.parse(result) as AstNode[]; } catch { throw new Error(\"Invalid JSON string.\"); }\n }\n\n if (typeof result === \"object\" && result !== null) {\n if (typeof result.toJson === \"function\") {\n try {\n const jsonString = result.toJson();\n return JSON.parse(jsonString) as AstNode[];\n } catch (e) {\n throw new Error(\"[toaq-oss/omni-mdx] Failed to serialize MdxAst to JSON.\");\n }\n }\n \n if (typeof result.to_json === \"function\") {\n try { return JSON.parse(result.to_json()) as AstNode[]; } catch (e) {}\n }\n \n if (Array.isArray(result)) return result as AstNode[];\n }\n\n throw new Error(\"[toaq-oss/omni-mdx] Unrecognized return format from Rust parser. Available properties: \" + Object.keys(result.__proto__ || result).join(\", \"));\n}\n\nexport function parseMdxSync(mdx: string | Buffer | Uint8Array): AstNode[] {\n const native = getNativeModuleSync();\n const parse = getParseFn(native);\n\n let result: any;\n try {\n result = parse(mdx);\n } catch (err: any) {\n const sourceSnippet = typeof mdx === 'string' ? mdx.slice(0, 50) : \"Binary Data\";\n throw new MDXParseError(err?.message ?? String(err), sourceSnippet);\n }\n\n if (result instanceof Uint8Array || Buffer.isBuffer(result)) {\n const decoder = new MdxBinaryDecoder(result);\n return decoder.decode();\n }\n \n if (typeof result === \"string\") {\n try { return JSON.parse(result) as AstNode[]; } catch { throw new Error(\"Invalid JSON\"); }\n }\n\n if (typeof result === \"object\" && result !== null && typeof result.toJson === \"function\") {\n try { return JSON.parse(result.toJson()) as AstNode[]; } catch { throw new Error(\"Invalid JSON\"); }\n }\n\n if (typeof result === \"object\" && result !== null && typeof result.to_json === \"function\") {\n try { return JSON.parse(result.to_json()) as AstNode[]; } catch { throw new Error(\"Invalid JSON\"); }\n }\n\n throw new Error(\"[toaq-oss/omni-mdx] Unrecognized return format from Rust parser.\");\n}\n\nexport async function compileToJsx(mdx: string): Promise<string> {\n const native = getNativeModuleSync();\n \n const compileFn = native.compileToJsx || native.compile_to_jsx;\n \n if (typeof compileFn !== \"function\") {\n throw new Error(\"[toaq-oss/omni-mdx] compileToJsx is not supported by this native module version.\");\n }\n \n try {\n return compileFn(mdx);\n } catch (err: any) {\n throw new MDXParseError(err?.message ?? String(err), mdx);\n }\n}\n\nexport function compileToJsxSync(mdx: string): string {\n const native = getNativeModuleSync();\n \n const compileFn = native.compileToJsx || native.compile_to_jsx;\n if (typeof compileFn !== \"function\") {\n throw new Error(\"[toaq-oss/omni-mdx] compileToJsx is not supported by this native module version.\");\n }\n \n try {\n return compileFn(mdx);\n } catch (err: any) {\n throw new MDXParseError(err?.message ?? String(err), mdx);\n }\n}\n\nexport class MDXParseError extends Error {\n readonly source: string;\n constructor(message: string, source: string) {\n super(`MDX parse error: ${message}`);\n this.name = \"MDXParseError\";\n this.source = source;\n }\n}","import type { AstNode, AttrValueKind } from \"../MDXServerRenderer\";\n\nconst NODE_TEXT = 0x01;\nconst NODE_ELEMENT = 0x02;\n\nconst ATTR_TEXT = 0x10;\nconst ATTR_EXPRESSION = 0x11;\nconst ATTR_BOOLEAN = 0x12;\nconst ATTR_AST = 0x13;\n\nexport class MdxBinaryDecoder {\n private view: DataView;\n private buffer: Uint8Array;\n private offset: number = 0;\n private decoder = new TextDecoder(\"utf-8\");\n private stringCache = new Map<string, string>();\n\n constructor(buffer: Uint8Array) {\n this.buffer = buffer;\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n\n public decode(): AstNode[] {\n const rootCount = this.readU32();\n const nodes: AstNode[] = [];\n for (let i = 0; i < rootCount; i++) {\n nodes.push(this.decodeNode());\n }\n return nodes;\n }\n\n private decodeNode(): AstNode {\n const type = this.readU8();\n\n if (type === NODE_TEXT) {\n return {\n node_type: \"text\",\n content: this.readStringU32(),\n };\n }\n\n if (type === NODE_ELEMENT) {\n const node_type = this.readStringU16();\n const self_closing = this.readU8() === 1;\n const attrCount = this.readU16();\n \n let attributes: Record<string, AttrValueKind> | undefined = undefined;\n \n if (attrCount > 0) {\n attributes = {};\n for (let i = 0; i < attrCount; i++) {\n const key = this.readStringU16();\n const attrKind = this.readU8();\n \n if (attrKind === ATTR_TEXT) {\n attributes[key] = { kind: \"text\", value: this.readStringU32() };\n } else if (attrKind === ATTR_EXPRESSION) {\n attributes[key] = { kind: \"expression\", value: this.readStringU32() };\n } else if (attrKind === ATTR_BOOLEAN) {\n attributes[key] = { kind: \"boolean\" };\n } else if (attrKind === ATTR_AST) {\n const subNodeCount = this.readU32();\n const subNodes: AstNode[] = [];\n for (let j = 0; j < subNodeCount; j++) {\n subNodes.push(this.decodeNode());\n }\n attributes[key] = { kind: \"ast\", value: subNodes };\n }\n }\n }\n\n const childCount = this.readU32();\n const children: AstNode[] = [];\n if (childCount > 0) {\n for (let i = 0; i < childCount; i++) {\n children.push(this.decodeNode());\n }\n }\n\n return {\n node_type,\n self_closing,\n attributes,\n children,\n };\n }\n\n throw new Error(`[Omni-Core] Unknown binary opcode: ${type} at offset ${this.offset}`);\n }\n\n private readU8(): number {\n const val = this.view.getUint8(this.offset);\n this.offset += 1;\n return val;\n }\n\n private readU16(): number {\n const val = this.view.getUint16(this.offset, true);\n this.offset += 2;\n return val;\n }\n\n private readU32(): number {\n const val = this.view.getUint32(this.offset, true);\n this.offset += 4;\n return val;\n }\n\n private readStringU16(): string {\n const len = this.readU16();\n const str = this.decoder.decode(this.buffer.subarray(this.offset, this.offset + len));\n this.offset += len;\n\n let cached = this.stringCache.get(str);\n if (cached) return cached;\n this.stringCache.set(str, str);\n return str;\n }\n\n private readStringU32(): string {\n const len = this.readU32();\n const str = this.decoder.decode(this.buffer.subarray(this.offset, this.offset + len));\n this.offset += len;\n return str;\n }\n}","/**\n * MDXServerRenderer.tsx\n *\n * React Server Component — renders an MDX AST on the server.\n * No \"use client\" — safe for Next.js SSR, SSG, and ISR.\n *\n * Drop-in replacement for <MDXRemote source={...} components={MDX_COMPONENTS} />\n *\n * Usage in a Server Component (page.tsx):\n *\n * import { MDXServerRenderer, parseMdx } from '@toaq/omni-mdx/server';\n * import { MDX_COMPONENTS } from './MDXComponents';\n *\n * export default async function Page() {\n * const ast = await parseMdx(mdxString);\n * return <MDXServerRenderer ast={ast} components={MDX_COMPONENTS} />;\n * }\n */\n\nimport React, { ReactNode, JSX } from \"react\";\nimport katex from \"katex\";\n\n// AST types (mirror Rust output exactly)\n\nexport type AttrValueKind =\n | { kind: \"text\"; value: string }\n | { kind: \"expression\"; value: string }\n | { kind: \"boolean\" }\n | { kind: \"ast\"; value: AstNode[] };\n\nexport interface AstNode {\n node_type: string;\n content?: string;\n self_closing?: boolean;\n child_count?: number; // Rendu optionnel\n attributes?: Record<string, AttrValueKind> | string; // Accepte l'objet binaire ou la string\n children?: AstNode[];\n}\n\nexport type MDXComponents = Record<string, React.ComponentType<any>>;\n\n/**\n * Converts a raw AttrValueKind from the Rust AST into a React-usable prop value.\n * text → string\n * expression → attempt JSON/JS parse, fallback to string\n * boolean → true\n * ast → <MDXServerRenderer ast={...} components={...} />\n */\nfunction resolveAttr(\n attr: AttrValueKind,\n components: MDXComponents,\n): React.ReactNode | string | boolean {\n switch (attr.kind) {\n case \"text\":\n return attr.value;\n\n case \"boolean\":\n return true;\n\n case \"expression\": {\n const raw = attr.value.trim();\n // Try JSON first (safe), then JS expression as last resort\n try { return JSON.parse(raw); } catch {}\n try { return new Function(`return (${raw})`)(); } catch {}\n return raw;\n }\n\n case \"ast\":\n return (\n <MDXServerRenderer\n ast={attr.value}\n components={components}\n />\n );\n\n default:\n return undefined;\n }\n}\n\nconst HTML_TAGS = new Set([\n \"a\",\"abbr\",\"address\",\"article\",\"aside\",\"b\",\"bdi\",\"bdo\",\"blockquote\",\"br\",\n \"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"dd\",\"del\",\"details\",\"dfn\",\n \"div\",\"dl\",\"dt\",\"em\",\"figcaption\",\"figure\",\"footer\",\"h1\",\"h2\",\"h3\",\"h4\",\n \"h5\",\"h6\",\"header\",\"hr\",\"i\",\"img\",\"ins\",\"kbd\",\"li\",\"main\",\"mark\",\"nav\",\"ol\",\n \"p\",\"pre\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"section\",\"small\",\"span\",\"strong\",\n \"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\n \"u\",\"ul\",\"var\",\"wbr\",\n]);\n\nfunction extractText(node: AstNode): string {\n if (node.node_type === \"text\") return node.content ?? \"\";\n if (node.content) return node.content;\n return (node.children ?? []).map(extractText).join(\"\");\n}\n\nfunction renderNode(\n node: AstNode,\n index: number,\n components: MDXComponents,\n): ReactNode {\n const key = `${node.node_type}-${index}`;\n\n if (node.node_type === \"text\") {\n return node.content ?? null;\n }\n\n if (node.node_type === \"fragment\") {\n return (\n <React.Fragment key={key}>\n {renderChildren(node, components)}\n </React.Fragment>\n );\n }\n\n // Math — server-side rendering via KaTeX (static HTML, no client-side JavaScript)\n if (node.node_type === \"InlineMath\") {\n const formula = extractText(node);\n\n try {\n const html = katex.renderToString(formula, {\n displayMode: false,\n throwOnError: false,\n output: \"html\",\n });\n return (\n <span\n key={key}\n className=\"math math-inline\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n } catch {\n return <span key={key} className=\"math math-inline\">{formula}</span>;\n }\n }\n\n if (node.node_type === \"BlockMath\") {\n const formula = extractText(node);\n\n try {\n const html = katex.renderToString(formula, {\n displayMode: true,\n throwOnError: false,\n output: \"html\",\n });\n return (\n <div\n key={key}\n className=\"math math-display\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n } catch {\n return <div key={key} className=\"math math-display\">{formula}</div>;\n }\n }\n\n // Resolve props from AST attributes\n const resolvedProps: Record<string, any> = {};\n if (node.attributes) {\n const attrs = typeof node.attributes === \"string\" \n ? JSON.parse(node.attributes) \n : node.attributes;\n\n for (const [k, v] of Object.entries(attrs)) {\n resolvedProps[k] = resolveAttr(v as AttrValueKind, components);\n }\n }\n\n const renderedChildren = node.children && node.children.length > 0\n ? renderChildren(node, components)\n : (node.content ?? undefined);\n\n // Custom registered component\n const Custom = components[node.node_type];\n if (Custom) {\n try {\n return (\n <Custom key={key} {...resolvedProps}>\n {renderedChildren}\n </Custom>\n );\n } catch (err) {\n if (process.env.NODE_ENV === \"development\") {\n console.error(`[toaq-oss/omni-mdx] Server render failed for <${node.node_type}>:`, err);\n }\n return (\n <div\n key={key}\n className=\"mdx-component-error\"\n data-component={node.node_type}\n style={{ padding: \"1rem\", border: \"2px solid #ef4444\", borderRadius: \"0.5rem\", margin: \"1rem 0\", background: \"#fef2f2\" }}\n >\n <strong style={{ color: \"#b91c1c\" }}>Render error: &lt;{node.node_type}&gt;</strong>\n {process.env.NODE_ENV === \"development\" && (\n <pre style={{ color: \"#dc2626\", fontSize: \"0.875rem\", marginTop: \"0.5rem\" }}>\n {String(err)}\n </pre>\n )}\n </div>\n );\n }\n }\n\n if (node.node_type === \"table\") {\n const firstChild = node.children?.[0];\n const hasThead = firstChild?.node_type === \"thead\";\n const theadNode = hasThead ? firstChild : null;\n const bodyRows = hasThead ? node.children!.slice(1) : node.children ?? [];\n\n const theadEl = theadNode ? (\n <thead key=\"thead\">\n <tr>\n {theadNode.children?.map((cell, i) =>\n renderNode({ ...cell, node_type: \"th\" }, i, components)\n )}\n </tr>\n </thead>\n ) : null;\n\n const tbodyEl = bodyRows.length > 0 ? (\n <tbody key=\"tbody\">\n {bodyRows.map((row, i) => renderNode(row, i, components))}\n </tbody>\n ) : null;\n\n return <table key={key} {...resolvedProps}>{theadEl}{tbodyEl}</table>;\n }\n\n if (node.node_type === \"pre\") {\n const rawText = extractText(node);\n return <pre key={key} {...resolvedProps}><code>{rawText}</code></pre>;\n }\n\n if (HTML_TAGS.has(node.node_type)) {\n const Tag = node.node_type as keyof JSX.IntrinsicElements;\n return (\n <Tag key={key} {...resolvedProps}>\n {renderedChildren}\n </Tag>\n );\n }\n\n if (process.env.NODE_ENV === \"development\") {\n console.warn(\n `[toaq-oss/omni-mdx] Unknown component: <${node.node_type}>. ` +\n `Register it via MDX_COMPONENTS or add it to your components prop.`\n );\n }\n return (\n <div key={key} data-missing-component={node.node_type} className=\"mdx-missing-component\">\n {renderedChildren}\n </div>\n );\n}\n\nfunction renderChildren(node: AstNode, components: MDXComponents): ReactNode[] {\n if (!node.children?.length) return [];\n return node.children.map((child, i) => renderNode(child, i, components));\n}\n\ninterface MDXServerRendererProps {\n /** AST produced by parseMdx() — JSON-serialisable. */\n ast: AstNode[];\n /**\n * Component registry. Keys are JSX tag names (e.g. \"Note\", \"Details\").\n * Values are React components (Server or Client).\n *\n * Server Components render on the server (recommended for static content).\n * Client Components receive \"use client\" and hydrate in the browser.\n */\n components?: MDXComponents;\n}\n\nexport function MDXServerRenderer({\n ast,\n components = {},\n}: MDXServerRendererProps): JSX.Element {\n if (!ast || !Array.isArray(ast)) {\n return <></>;\n }\n\n return (\n <div className=\"omni-mdx-root\">\n {ast.map((node, i) => renderNode(node, i, components))}\n </div>\n );\n}"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toaq-oss/omni-mdx",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "MDX parser + renderer for Next.js \u2014 Rust core, RSC-compatible",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -36,10 +36,10 @@
36
36
  "typecheck": "tsc --noEmit"
37
37
  },
38
38
  "optionalDependencies": {
39
- "@toaq-oss/omni-mdx-darwin-arm64": "0.2.6",
40
- "@toaq-oss/omni-mdx-darwin-x64": "0.2.6",
41
- "@toaq-oss/omni-mdx-linux-x64-gnu": "0.2.6",
42
- "@toaq-oss/omni-mdx-win32-x64-msvc": "0.2.6"
39
+ "@toaq-oss/omni-mdx-darwin-arm64": "0.2.7",
40
+ "@toaq-oss/omni-mdx-darwin-x64": "0.2.7",
41
+ "@toaq-oss/omni-mdx-linux-x64-gnu": "0.2.7",
42
+ "@toaq-oss/omni-mdx-win32-x64-msvc": "0.2.7"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "react": ">=18.0.0"