mdast2docx 0.0.0-beta.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +203 -170
- package/dist/chunk-3ZZBJC3M.mjs +1 -0
- package/dist/chunk-7LR5HC5O.mjs +4 -0
- package/dist/chunk-7W4N3GRD.mjs +75 -0
- package/dist/chunk-GM6UUFDK.mjs +2 -0
- package/dist/chunk-TASCVLMX.mjs +1 -0
- package/dist/chunk-UXY5TDOP.mjs +1 -0
- package/dist/chunk-XIRSNIMN.mjs +1 -0
- package/dist/chunk-YKZOUIFR.mjs +1 -0
- package/dist/chunk-Z5DPYROV.mjs +31 -0
- package/dist/chunk-ZKNVKZAF.mjs +1 -0
- package/dist/index.d.ts +7 -8
- package/dist/index.js +2 -38
- package/dist/index.mjs +1 -1
- package/dist/multipart-parser-WKN2UV32.mjs +2 -0
- package/dist/plugins/html.d.ts +0 -0
- package/dist/plugins/html.js +1 -0
- package/dist/plugins/image.d.ts +37 -0
- package/dist/plugins/image.js +1 -0
- package/dist/plugins/image.mjs +1 -0
- package/dist/plugins/index.d.ts +4 -0
- package/dist/plugins/index.js +75 -0
- package/dist/plugins/index.mjs +1 -0
- package/dist/plugins/list.d.ts +57 -0
- package/dist/plugins/list.js +1 -0
- package/dist/plugins/list.mjs +1 -0
- package/dist/plugins/math.d.ts +11 -0
- package/dist/plugins/math.js +75 -0
- package/dist/plugins/math.mjs +1 -0
- package/dist/plugins/node-image.d.ts +27 -0
- package/dist/plugins/node-image.js +35 -0
- package/dist/plugins/node-image.mjs +1 -0
- package/dist/plugins/node.d.ts +1 -0
- package/dist/plugins/node.js +35 -0
- package/dist/plugins/node.mjs +1 -0
- package/dist/plugins/table.d.ts +26 -0
- package/dist/plugins/table.js +1 -0
- package/dist/plugins/table.mjs +1 -0
- package/dist/section.d.ts +9 -8
- package/dist/section.js +2 -38
- package/dist/section.mjs +1 -1
- package/dist/utils.d.ts +75 -20
- package/dist/utils.js +1 -37
- package/dist/utils.mjs +1 -1
- package/package.json +6 -20
- package/dist/chunk-KRMGJ4HN.mjs +0 -2
- package/dist/chunk-O6BHSWEF.mjs +0 -37
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as m}from"./chunk-GM6UUFDK.mjs";import{a as D}from"./chunk-YKZOUIFR.mjs";import"./chunk-3ZZBJC3M.mjs";import{Document as w,Packer as T}from"@mayank1513/docx";var S=async(n,i={},e={},P="blob")=>{var I;let s=1,p={};(I=e==null?void 0:e.plugins)==null||I.forEach(t=>{var o;return(o=t.root)==null?void 0:o.call(t,i)});let A=await Promise.all((Array.isArray(n)?n:[{ast:n}]).map(async({ast:t,props:o})=>{var y;let{definitions:a,footnoteDefinitions:c}=D(t.children);return await Promise.all(Object.values(c).map(async r=>{r.id=s,p[s]=await m({type:"root",children:r.children},a,{}),s++})),(y=o==null?void 0:o.plugins)==null||y.forEach(r=>{var h;return(h=r.root)==null?void 0:h.call(r,i)}),{ast:t,props:{...e,...o},definitions:a,footnoteDefinitions:c}})),d=await Promise.all(A.map(({ast:t,props:o,definitions:a,footnoteDefinitions:c})=>m(t,a,c,o))),f=new w({...i,footnotes:p,sections:d});return T.pack(f,P)};export{S as toDocx};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as F,c as U}from"./chunk-Z5DPYROV.mjs";import"./chunk-3ZZBJC3M.mjs";var f=0,t={START_BOUNDARY:f++,HEADER_FIELD_START:f++,HEADER_FIELD:f++,HEADER_VALUE_START:f++,HEADER_VALUE:f++,HEADER_VALUE_ALMOST_DONE:f++,HEADERS_ALMOST_DONE:f++,PART_DATA_START:f++,PART_DATA:f++,END:f++},w=1,_={PART_BOUNDARY:w,LAST_BOUNDARY:w*=2},O=10,g=13,B=32,m=45,V=58,Y=97,x=122,C=u=>u|32,R=()=>{},y=class{constructor(o){this.index=0,this.flags=0,this.onHeaderEnd=R,this.onHeaderField=R,this.onHeadersEnd=R,this.onHeaderValue=R,this.onPartBegin=R,this.onPartData=R,this.onPartEnd=R,this.boundaryChars={},o=`\r
|
|
2
|
+
--`+o;let n=new Uint8Array(o.length);for(let r=0;r<o.length;r++)n[r]=o.charCodeAt(r),this.boundaryChars[n[r]]=!0;this.boundary=n,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=t.START_BOUNDARY}write(o){let n=0,r=o.length,E=this.index,{lookbehind:l,boundary:d,boundaryChars:H,index:e,state:i,flags:A}=this,b=this.boundary.length,p=b-1,N=o.length,a,S,h=c=>{this[c+"Mark"]=n},s=c=>{delete this[c+"Mark"]},D=(c,P,T,k)=>{(P===void 0||P!==T)&&this[c](k&&k.subarray(P,T))},L=(c,P)=>{let T=c+"Mark";T in this&&(P?(D(c,this[T],n,o),delete this[T]):(D(c,this[T],o.length,o),this[T]=0))};for(n=0;n<r;n++)switch(a=o[n],i){case t.START_BOUNDARY:if(e===d.length-2){if(a===m)A|=_.LAST_BOUNDARY;else if(a!==g)return;e++;break}else if(e-1===d.length-2){if(A&_.LAST_BOUNDARY&&a===m)i=t.END,A=0;else if(!(A&_.LAST_BOUNDARY)&&a===O)e=0,D("onPartBegin"),i=t.HEADER_FIELD_START;else return;break}a!==d[e+2]&&(e=-2),a===d[e+2]&&e++;break;case t.HEADER_FIELD_START:i=t.HEADER_FIELD,h("onHeaderField"),e=0;case t.HEADER_FIELD:if(a===g){s("onHeaderField"),i=t.HEADERS_ALMOST_DONE;break}if(e++,a===m)break;if(a===V){if(e===1)return;L("onHeaderField",!0),i=t.HEADER_VALUE_START;break}if(S=C(a),S<Y||S>x)return;break;case t.HEADER_VALUE_START:if(a===B)break;h("onHeaderValue"),i=t.HEADER_VALUE;case t.HEADER_VALUE:a===g&&(L("onHeaderValue",!0),D("onHeaderEnd"),i=t.HEADER_VALUE_ALMOST_DONE);break;case t.HEADER_VALUE_ALMOST_DONE:if(a!==O)return;i=t.HEADER_FIELD_START;break;case t.HEADERS_ALMOST_DONE:if(a!==O)return;D("onHeadersEnd"),i=t.PART_DATA_START;break;case t.PART_DATA_START:i=t.PART_DATA,h("onPartData");case t.PART_DATA:if(E=e,e===0){for(n+=p;n<N&&!(o[n]in H);)n+=b;n-=p,a=o[n]}if(e<d.length)d[e]===a?(e===0&&L("onPartData",!0),e++):e=0;else if(e===d.length)e++,a===g?A|=_.PART_BOUNDARY:a===m?A|=_.LAST_BOUNDARY:e=0;else if(e-1===d.length)if(A&_.PART_BOUNDARY){if(e=0,a===O){A&=~_.PART_BOUNDARY,D("onPartEnd"),D("onPartBegin"),i=t.HEADER_FIELD_START;break}}else A&_.LAST_BOUNDARY&&a===m?(D("onPartEnd"),i=t.END,A=0):e=0;if(e>0)l[e-1]=a;else if(E>0){let c=new Uint8Array(l.buffer,l.byteOffset,l.byteLength);D("onPartData",0,E,c),E=0,h("onPartData"),n--}break;case t.END:break;default:throw new Error(`Unexpected state entered: ${i}`)}L("onHeaderField"),L("onHeaderValue"),L("onPartData"),this.index=e,this.state=i,this.flags=A}end(){if(this.state===t.HEADER_FIELD_START&&this.index===0||this.state===t.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==t.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}};function I(u){let o=u.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!o)return;let n=o[2]||o[3]||"",r=n.slice(n.lastIndexOf("\\")+1);return r=r.replace(/%22/g,'"'),r=r.replace(/&#(\d{4});/g,(E,l)=>String.fromCharCode(l)),r}async function v(u,o){if(!/multipart/i.test(o))throw new TypeError("Failed to fetch");let n=o.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!n)throw new TypeError("no or bad content-type header, no multipart boundary");let r=new y(n[1]||n[2]),E,l,d,H,e,i,A=[],b=new U,p=s=>{d+=h.decode(s,{stream:!0})},N=s=>{A.push(s)},a=()=>{let s=new F(A,i,{type:e});b.append(H,s)},S=()=>{b.append(H,d)},h=new TextDecoder("utf-8");h.decode(),r.onPartBegin=function(){r.onPartData=p,r.onPartEnd=S,E="",l="",d="",H="",e="",i=null,A.length=0},r.onHeaderField=function(s){E+=h.decode(s,{stream:!0})},r.onHeaderValue=function(s){l+=h.decode(s,{stream:!0})},r.onHeaderEnd=function(){if(l+=h.decode(),E=E.toLowerCase(),E==="content-disposition"){let s=l.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);s&&(H=s[2]||s[3]||""),i=I(l),i&&(r.onPartData=N,r.onPartEnd=a)}else E==="content-type"&&(e=l);l="",E=""};for await(let s of u)r.write(s);return r.end(),b}export{v as toFormData};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { IImageOptions } from "@mayank1513/docx";
|
|
2
|
+
import { IPlugin } from "../utils";
|
|
3
|
+
/**
|
|
4
|
+
* List of image types fully supported by docx. SVG requires fallback thus we do not include that here.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SUPPORTED_IMAGE_TYPES: readonly ["jpeg", "jpg", "bmp", "gif", "png"];
|
|
7
|
+
/**
|
|
8
|
+
* Options for the image plugin.
|
|
9
|
+
*/
|
|
10
|
+
export interface IImagePluginOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Scaling factor for base64-encoded images.
|
|
13
|
+
* @default 3
|
|
14
|
+
*/
|
|
15
|
+
scale?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Fallback image type if the image type cannot be determined or is not supported.
|
|
18
|
+
* @default "png"
|
|
19
|
+
*/
|
|
20
|
+
fallbackImageType?: "png" | "jpg" | "bmp" | "gif";
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolves an image source URL into the appropriate image options for DOCX conversion.
|
|
24
|
+
*/
|
|
25
|
+
export type ImageResolver = (src: string, options?: IImagePluginOptions) => Promise<IImageOptions>;
|
|
26
|
+
/**
|
|
27
|
+
* Determines the MIME type of an image based on its binary signature.
|
|
28
|
+
*
|
|
29
|
+
* @param buffer - The image buffer (ArrayBuffer or Buffer).
|
|
30
|
+
* @returns The detected MIME type as a string.
|
|
31
|
+
*/
|
|
32
|
+
export declare const getImageMimeType: (buffer: Buffer | ArrayBuffer) => "jpg" | "bmp" | "gif" | "png" | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Image plugin for processing inline image nodes in Markdown AST.
|
|
35
|
+
* This plugin is designed for client-side (web) environments.
|
|
36
|
+
*/
|
|
37
|
+
export declare const imagePlugin: (options?: IImagePluginOptions) => IPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var P=(t,e)=>{for(var a in e)p(t,a,{get:e[a],enumerable:!0})},x=(t,e,a,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of w(e))!F.call(t,n)&&n!==a&&p(t,n,{get:()=>e[n],enumerable:!(i=y(e,n))||i.enumerable});return t};var v=t=>x(p({},"__esModule",{value:!0}),t);var D={};P(D,{SUPPORTED_IMAGE_TYPES:()=>h,getImageMimeType:()=>f,imagePlugin:()=>T});module.exports=v(D);var h=["jpeg","jpg","bmp","gif","png"],f=t=>{let e=new Uint8Array(t).slice(0,4);if(e[0]===66&&e[1]===77)return"bmp";switch(e.reduce((i,n)=>i+n.toString(16).padStart(2,"0"),"")){case"89504E47":return"png";case"47494638":return"gif";case"FFD8FFE0":case"FFD8FFE1":case"FFD8FFE2":case"FFD8FFE3":case"FFD8FFE8":return"jpg"}},E=3,l=async(t,e)=>{var u,I;let a=(u=e==null?void 0:e.scale)!=null?u:E,i=document.createElement("canvas"),n=i.getContext("2d");if(!n)throw new Error("Canvas context not available");let r=new Image;r.src=t,await new Promise(d=>r.onload=d);let s=r.width*a,g=r.height*a;i.width=s,i.height=g,n.drawImage(r,0,0,s,g);let o=t.split(";")[0].split("/")[1];if(h.includes(o))return{data:t,type:o,transformation:{width:s/a,height:g/a}};let c=(I=e==null?void 0:e.fallbackImageType)!=null?I:"png",m={data:i.toDataURL(`image/${c}`),type:c,transformation:{width:s/a,height:g/a}};return t.includes("svg")?{...m,type:"svg",data:t,fallback:{type:c,data:m.data}}:m},b=async(t,e)=>{var s;let a=await fetch(t.startsWith("http")?t:`${window.location.origin}/${t.replace(/^\/+/,"")}`);if(/(svg|xml)/.test((s=a.headers.get("content-type"))!=null?s:"")||t.endsWith(".svg")){let g=await a.text();return l(`data:image/svg+xml;base64,${btoa(g)}`,e)}let i=await a.arrayBuffer(),n=f(i)||"png",r=await createImageBitmap(new Blob([i],{type:n}));return h.includes(n)?{type:n,data:i,transformation:{width:r.width,height:r.height}}:(console.warn(`${n} not supported by docx. Using one of the supported mime types.`),l(t,e))},O=async(t,e)=>{try{return t.startsWith("data:")?await l(t,e):await b(t,e)}catch(a){return console.error(`Error resolving image: ${t}`,a),{type:"png",data:Buffer.from([]),transformation:{width:100,height:100}}}},T=t=>({inline:async(e,a,i,n)=>{var r,s,g;if(/^image/.test(a.type)){let o=(s=a.url)!=null?s:n[(r=a.identifier)==null?void 0:r.toUpperCase()],c=(g=a.alt)!=null?g:o==null?void 0:o.split("/").pop();return a.type="",[new e.ImageRun({...await O(o,t),altText:{description:c,name:c,title:c}})]}return[]}});0&&(module.exports={SUPPORTED_IMAGE_TYPES,getImageMimeType,imagePlugin});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b,c}from"../chunk-XIRSNIMN.mjs";import"../chunk-3ZZBJC3M.mjs";export{a as SUPPORTED_IMAGE_TYPES,b as getImageMimeType,c as imagePlugin};
|