@notion-md-converter/core
Version:
Notion to Markdown Converter
2 lines (1 loc) • 23 kB
JavaScript
;var e=require("@notionhq/client");const t=e=>Object.entries(e).map((([e,t])=>null==t?null:"boolean"==typeof t?t?e:null:`${e}="${t}"`)).filter((e=>!!e)).join(" "),r={objectToPropertiesStr:t,objectTag:e=>`<object ${t({data:e.data,type:e.type,width:e.width??"100%",height:e.height??"250"})}></object>`,videoTag:e=>`<video ${t({src:e.src,controls:e.controls??!0,width:e.width,height:e.height})}></video>`},o={default:void 0,default_background:void 0,red:"#A83232",red_background:"#E8CCCC",orange:"#C17F46",orange_background:"#E8D5C2",yellow:"#9B8D27",yellow_background:"#E6E6C8",brown:"#8B6C55",brown_background:"#E0D5CC",green:"#4E7548",green_background:"#D5E0D1",blue:"#3A6B9F",blue_background:"#D0DEF0",purple:"#6B5B95",purple_background:"#D8D3E6",pink:"#B5787D",pink_background:"#E8D5D8",gray:"#777777",gray_background:"#D0D0D0"},n=["red_background","orange_background","yellow_background","green_background","blue_background","purple_background","pink_background","gray_background","brown_background"],c=["red","orange","yellow","green","blue","purple","pink","gray","brown"],a=(e,t)=>{if(!e||!e.trim())return e;const r=e.match(/^(\s*)(.+?)(\s*)$/);if(!r)return e;const[,o,n,c]=r,{decoration:a}=t;return`${o}${a}${n}${a}${c}`},i={heading:(e,t)=>`${"#".repeat(t)} ${e}`,bold:e=>a(e,{decoration:"**"}),italic:e=>a(e,{decoration:"*"}),strikethrough:e=>a(e,{decoration:"~~"}),inlineCode:e=>`\`${e}\``,underline:e=>`_${e}_`,color:(e,t,a=o)=>{if(!e||!e.trim())return e;const i={},s=a[t];if(!s)return e;if(n.includes(t)?i.style=`background-color: ${s};`:c.includes(t)&&(i.style=`color: ${s};`),Object.keys(i).length>0){return`<span ${r.objectToPropertiesStr(i)}>${e}</span>`}return e},bulletList:(e,t="-")=>`${t} ${e}`,numberedList:(e,t)=>`${t}. ${e}`,checkList:(e,t)=>`- [${t?"x":" "}] ${e}`,link:(e,t)=>`[${e}](${t})`,image:(e,t,r={})=>{const{width:o}=r;let n=t;return o&&(n+=` =${o}x`),``},codeBlock:(e,t)=>`\`\`\`${t||""}\n${e}\n\`\`\``,blockEquation:e=>`$$\n${e}\n$$`,inlineEquation:e=>`$${e}$`,blockquote:e=>e.split("\n").map((e=>`> ${e}`)).join("\n"),table:(e,t)=>{const r=e.map(((e,r)=>{const o=[e.content,...t.map((e=>e[r].content))],n=Math.max(...o.map((e=>e.length)));return n<3?3:n})),o=`| ${e.map(((e,t)=>e.content.padEnd(r[t]))).join(" | ")} |`,n=`| ${e.map(((e,t)=>{const o=r[t];switch(e.alignment){case"left":return`:${"-".repeat(o-1)}`;case"center":return`:${"-".repeat(o-2)}:`;case"right":return`${"-".repeat(o-1)}:`;default:return"-".repeat(o)}})).join(" | ")} |`;if(0===t.length)return`${o}\n${n}`;return`${o}\n${n}\n${t.map((e=>`| ${e.map(((e,t)=>e.content.padEnd(r[t]))).join(" | ")} |`)).join("\n")}`},horizontalRule:(e="hyphen")=>{switch(e){case"hyphen":return"---";case"asterisk":return"***";case"underscore":return"___"}},wrapWithNewLines:e=>`\n${e}\n`,indent:(e,t=2)=>e.split("\n").map((e=>""===e?e:`${" ".repeat(t)}${e}`)).join("\n"),details:(e,t)=>["<details>","<summary>",e,"</summary>","",t,"</details>"].join("\n"),comment:e=>`\x3c!-- ${e} --\x3e`,decoration:a,COLOR_MAP:o},s=["bookmark","breadcrumb","bulleted_list_item","callout","code","column_list","column","divider","equation","file","heading_1","heading_2","heading_3","image","link_preview","pdf","quote","synced_block","numbered_list_item","table","table_of_contents","to_do","toggle","video","paragraph","embed","child_database","child_page"],l=e=>"file"===e.type,u=e=>"bookmark"===e.type,d=e=>"breadcrumb"===e.type,p=e=>"bulleted_list_item"===e.type&&Array.isArray(e.children),m=e=>"callout"===e.type&&Array.isArray(e.children),h=e=>"code"===e.type,k=e=>"column_list"===e.type&&Array.isArray(e.children),x=e=>"divider"===e.type,f=e=>"equation"===e.type,b=e=>"heading_1"===e.type,g=e=>"heading_2"===e.type,y=e=>"heading_3"===e.type,w=e=>"image"===e.type,B=e=>"link_preview"===e.type,_=e=>"numbered_list_item"===e.type&&Array.isArray(e.children),T=e=>"paragraph"===e.type&&Array.isArray(e.children),$=e=>"pdf"===e.type,F=e=>"quote"===e.type,M=e=>"synced_block"===e.type&&Array.isArray(e.children),v=e=>"table"===e.type&&Array.isArray(e.children),L=e=>"table_of_contents"===e.type,C=e=>"to_do"===e.type&&Array.isArray(e.children),E=e=>"toggle"===e.type&&Array.isArray(e.children),j=e=>"video"===e.type,A=e=>"embed"===e.type,P=e=>new Promise((t=>setTimeout(t,e))),q=async(e,t=3,r=1e3)=>{for(let o=0;o<t;o++)try{return await e()}catch(e){if(o===t-1||!e||"object"!=typeof e||!("code"in e)||"rate_limited"!==e.code)throw e;const n=r*2**o;await P(n)}throw new Error("Max retries reached")};class R{constructor(e){this.waiting=[],this.permits=e}async acquire(){if(!(this.permits>0))return new Promise((e=>{this.waiting.push(e)}));this.permits--}release(){this.permits++;const e=this.waiting.shift();e&&(this.permits--,e())}async withLock(e){await this.acquire();try{return await e()}finally{this.release()}}}const D=async(t,r,o)=>{const n=o||new R(3),c=[];let a;for(;;){const e=await n.withLock((()=>q((()=>t.blocks.children.list({block_id:r,start_cursor:a})))));if(c.push(...e.results),!e.has_more)break;a=e.next_cursor??void 0}for(const t of c)if(!e.isFullBlock(t))throw new Error("Block is not full");const i=c.map((async(e,r)=>{if(e.has_children){return{index:r,children:await D(t,e.id,n)}}return{index:r,children:[]}})),s=await Promise.all(i);for(const e of s)c[e.index].children=e.children;return c};const I=e=>{try{return new URL(e),!0}catch(e){return!1}};class U{constructor(e,t){this.metadata=e,this.text=t}static fromRichText(e){const t=e.map((e=>e.plain_text)).join(""),r=t.split(":");if(1===r.length)return new U({},e);const o=r[0].split("&").reduce(((e,t)=>{const[r,o]=t.split("=");return e[r]=o||void 0,e}),{}),n=r.slice(1).join(":"),c=t.indexOf(n);if(""===n)return new U(o,[]);let a=0;const i=e.reduce(((e,t)=>{const r=t.plain_text,o=a;if(a+=r.length,o>=c)e.push(t);else if(o+r.length>c){const n=c-o;"text"===t.type&&e.push({...t,plain_text:r.slice(n),text:{...t.text,content:t.text.content.slice(n)}})}return e}),[]);return new U(o,i)}getMetadata(){return{...this.metadata}}getText(){return[...this.text]}getMetadataValue(e){return this.metadata[e]}hasMetadata(e){return e in this.metadata}}const N=e=>{const t=new URL(e),r=t.hostname,o=t.pathname;return["x.com","twitter.com"].includes(r)?"x":["codesandbox.io"].includes(r)?"codesandbox":["codepen.io"].includes(r)?"codepen":["github.com"].includes(r)?"github":["gist.github.com"].includes(r)?"github-gist":["asciinema.org"].includes(r)?"asciinema":["www.figma.com","figma.com"].includes(r)?"figma":["speakerdeck.com"].includes(r)?"speaker-deck":["www.slideshare.net","slideshare.net"].includes(r)?"slideshare":["docs.google.com"].includes(r)&&o.startsWith("/presentation/d/")?"google-slide":["www.docswell.com","docswell.com"].includes(r)?"docswell":["www.youtube.com","youtube.com"].includes(r)?"youtube":["jsfiddle.net"].includes(r)?"jsfiddle":["codesandbox.io"].includes(r)?"codesandbox":["stackblitz.com"].includes(r)?"stackblitz":["blueprintue.com"].includes(r)?"blueprintue":null},W=e=>{const t=new URL(e);return new URLSearchParams(t.search).get("v")},O={getVideoIdFromUrl:W,embed:(e,t={})=>{const o=W(e);if(!o)return null;const n={width:t.width||"560",height:t.height||"315",src:`https://www.youtube.com/embed/${o}`,frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",loading:"lazy",allowfullscreen:!0};return`<iframe ${r.objectToPropertiesStr(n)}></iframe>`}},S={embed:(e,t={})=>{const o=new URL(e).pathname.split("/"),n=o[3],c=o[1],a={"data-height":t.height||"250","data-theme-id":"0","data-slug-hash":n,"data-default-tab":t.defaultTab||"result","data-user":c,"data-embed-version":"2","data-pen-title":n,class:"codepen"};return`${`<p ${r.objectToPropertiesStr(a)}></p>`}\n<script async src="https://production-assets.codepen.io/assets/embed/ei.js"><\/script>`}},z={embed:e=>{if(!e.endsWith(".js"))return null;const t=new URL(e).pathname.split("/")[1].replace(".js","");return`<script ${r.objectToPropertiesStr({id:`asciicast-${t}`,src:e,async:!0})}><\/script>`}},H={getType:N,embedByUrl:(e,t=U.fromRichText([]),r={})=>{const o=r.supportedEmbedProviders||{youtube:!0,codepen:!0,asciinema:!0},n=N(e);if(!n||!["youtube","codepen","asciinema"].includes(n))return null;if(!o[n])return null;switch(n){case"youtube":return O.embed(e,t.getMetadata());case"codepen":return S.embed(e,t.getMetadata());case"asciinema":return z.embed(e);default:return null}}},V=e=>t=>l(t)?e({type:t.type,url:t.file.url,expiryTime:t.file.expiry_time}):e({type:t.type,url:t.external.url}),Q=()=>V((({url:e})=>({url:e})));class Y{constructor(e={}){this.colorMap=e.colorMap||i.COLOR_MAP,this.enableAnnotations=e.enableAnnotations||{bold:!0,italic:!0,strikethrough:!0,underline:!0,code:!0,equation:!0,color:!1,link:!0}}format(e,t){const r=(e,t)=>{let r=e.plain_text;return e.annotations.code&&t.code&&(r=i.inlineCode(r)),"equation"===e.type&&t.equation&&(r=i.inlineEquation(r)),e.annotations.bold&&t.bold&&(r=i.bold(r)),e.annotations.italic&&t.italic&&(r=i.italic(r)),e.annotations.strikethrough&&t.strikethrough&&(r=i.strikethrough(r)),e.annotations.underline&&t.underline&&(r=i.underline(r)),e.annotations.color&&t.color&&(r=i.color(r,e.annotations.color,this.colorMap)),e.href&&I(e.href)&&t.link&&(r=i.link(r,e.href)),r},o={...this.enableAnnotations,...t};return e.map((e=>r(e,o))).join("").trim()}plainText(e){return e.map((e=>e.plain_text)).join("")}}class G extends Error{constructor(e){super(`Unsupported block type: ${e.type}`)}}const J=e=>t=>{if(""===t.currentBlock.bookmark.url)return null;const r=U.fromRichText(t.currentBlock.bookmark.caption);return e({block:t.currentBlock,captionMetadata:r,context:t})},K=e=>t=>e({block:t.currentBlock,context:t}),X=e=>t=>{const r=t.execute(t.currentBlock.children);return e({block:t.currentBlock,children:r,context:t})},Z=e=>t=>{const r=U.fromRichText(t.currentBlock.code.caption);return e({block:t.currentBlock,captionMetadata:r,context:t})},ee=e=>t=>{const r=t.currentBlock.children.map((e=>t.execute(e.children)));return e({block:t.currentBlock,columns:r,context:t})},te=e=>t=>e({block:t.currentBlock,context:t}),re=e=>t=>e({block:t.currentBlock,context:t}),oe=e=>t=>{const r=U.fromRichText(t.currentBlock.file.caption);return e({block:t.currentBlock,captionMetadata:r,context:t})},ne=e=>t=>{switch(t.currentBlock.type){case"heading_1":return e({block:t.currentBlock,level:1,richText:t.currentBlock.heading_1.rich_text,isToggleable:!1,color:t.currentBlock.heading_1.color,context:t});case"heading_2":return e({block:t.currentBlock,level:2,richText:t.currentBlock.heading_2.rich_text,isToggleable:!1,color:t.currentBlock.heading_2.color,context:t});case"heading_3":return e({block:t.currentBlock,level:3,richText:t.currentBlock.heading_3.rich_text,isToggleable:!1,color:t.currentBlock.heading_3.color,context:t});default:throw new G(t.currentBlock)}},ce=e=>t=>{const r=t.currentBlock.image;if(!("external"===r.type?r.external.url:r.file.url))return null;const o=U.fromRichText(t.currentBlock.image.caption);return e({block:t.currentBlock,captionMetadata:o,context:t})},ae=e=>t=>e({block:t.currentBlock,context:t}),ie=e=>t=>{const r=t.execute(t.currentBlock.children);return e({block:t.currentBlock,children:r,context:t})},se=e=>t=>{const r=t.blocks.slice(0,t.currentBlockIndex);let o=1;for(let e=r.length-1;e>=0&&_(r[e]);e--)o++;const n=t.execute(t.currentBlock.children);return e({block:t.currentBlock,children:n,index:o,context:t})},le=e=>t=>{const r=t.execute(t.currentBlock.children);return e({block:t.currentBlock,children:r,context:t})},ue=e=>t=>{const r=t.execute(t.currentBlock.children);return e({block:t.currentBlock,children:r,context:t})},de=e=>t=>{const r=U.fromRichText(t.currentBlock.pdf.caption);return e({block:t.currentBlock,captionMetadata:r,context:t})},pe=e=>t=>{const r=t.execute(t.currentBlock.children);return e({block:t.currentBlock,children:r,context:t})},me=e=>t=>{const r=t.execute(t.currentBlock.children),o=null===t.currentBlock.synced_block.synced_from;return e({block:t.currentBlock,isSynchronizationSource:o,children:r,context:t})},he=e=>t=>e({block:t.currentBlock,context:t}),ke=e=>t=>{const r=t.currentBlock,o=r.children[0],n=r.children.slice(1);return e({block:t.currentBlock,header:o,rows:n,context:t})},xe=e=>t=>{const r=t.execute(t.currentBlock.children);return e({block:t.currentBlock,children:r,context:t})},fe=e=>t=>{const r=t.currentBlock.video;if(!("external"===r.type?r.external.url:r.file.url))return null;const o=U.fromRichText(t.currentBlock.video.caption);return e({block:t.currentBlock,captionMetadata:o,context:t})},be=e=>t=>{const r=U.fromRichText(t.currentBlock.embed.caption);return e({block:t.currentBlock,captionMetadata:r,context:t})},ge=()=>J((({block:e,captionMetadata:t,context:r})=>{const o=t.getText(),n=r.tools.richTextFormatter.format(o);return i.link(n||e.bookmark.url,e.bookmark.url)})),ye=()=>K((()=>null)),we=()=>ie((({block:e,children:t,context:r})=>{const o=r.tools.richTextFormatter.format(e.bulleted_list_item.rich_text),n=i.indent(t),c=i.bulletList(o);return""===t?c:`${c}\n${n}`})),Be=()=>X((({block:e,children:t,context:r})=>{let o=r.tools.richTextFormatter.format(e.callout.rich_text);return""!==t&&(o+=`\n${t}`),i.wrapWithNewLines(i.blockquote(o))})),_e=(e={})=>{const{languageMapping:t}=e;return Z((({block:e,context:r})=>{const o=r.tools.richTextFormatter.plainText(e.code.rich_text),n=t?t[e.code.language]:e.code.language;return i.wrapWithNewLines(i.codeBlock(o,n?.replace(" ","_")))}))},Te=()=>ee((({columns:e})=>e.join("\n"))),$e=()=>te((()=>i.wrapWithNewLines(i.horizontalRule()))),Fe=({type:e="equation"}={})=>re((({block:t})=>{const r=t.equation.expression;return i.wrapWithNewLines("code"===e?i.codeBlock(r,"txt"):i.blockEquation(r))})),Me=(e={})=>oe((({block:t,context:r})=>{const o=e.fileAdapter??Q(),{url:n}=o(t.file),c=t.file.caption.length>0?r.tools.richTextFormatter.format(t.file.caption):t.file.name;return i.link(c,n)})),ve=()=>ne((({level:e,richText:t,context:r})=>{const o=r.tools.richTextFormatter.format(t);return i.wrapWithNewLines(i.heading(o,e))})),Le=(e={})=>ce((({block:t,context:r})=>{const o=e.fileAdapter??Q(),{url:n}=o(t.image),c=t.image.caption.length>0?r.tools.richTextFormatter.format(t.image.caption):n;return i.image(c??n,n)})),Ce=()=>ae((({block:e})=>{const t=e.link_preview.url;return i.link(t,t)})),Ee=()=>se((({block:e,children:t,index:r,context:o})=>{const n=o.tools.richTextFormatter.format(e.numbered_list_item.rich_text),c=i.indent(t,3),a=i.numberedList(n,r);return""===t?a:`${a}\n${c}`})),je=(e={})=>{const{br:t=!1}=e;return ue((({block:e,children:r,context:o})=>{const n=o.tools.richTextFormatter.format(e.paragraph.rich_text),c=""!==r?`${n}\n${r}`:n;return t?`${c}<br />`:c}))},Ae=(e={outputType:"markdown-link"})=>de((({block:t,captionMetadata:o,context:n})=>{const c=e.fileAdapter??Q(),{url:a}=c(t.pdf);if("markdown-link"===e.outputType){return`[${t.pdf.caption.length>0?n.tools.richTextFormatter.format(t.pdf.caption):a}](${a})`}if("html-object"===e.outputType)return r.objectTag({data:a,type:"application/pdf",...o.getMetadata()});throw new Error(`Invalid output type: ${e.outputType}`)})),Pe=()=>pe((({block:e,children:t,context:r})=>{let o=r.tools.richTextFormatter.format(e.quote.rich_text);return""!==t&&(o+=`\n${t}`),i.wrapWithNewLines(i.blockquote(o))})),qe=()=>me((({children:e})=>e)),Re=()=>he((()=>null)),De=()=>ke((({header:e,rows:t,context:r})=>{const o=e.table_row.cells.map((e=>({content:r.tools.richTextFormatter.format(e)}))),n=t.map((e=>e.table_row.cells.map((e=>({content:r.tools.richTextFormatter.format(e)})))));return i.wrapWithNewLines(i.table(o,n))})),Ie=()=>le((({block:e,children:t,context:r})=>{const o=r.tools.richTextFormatter.format(e.to_do.rich_text),n=i.indent(t),c=i.checkList(o,e.to_do.checked);return""===t?c:`${c}\n${n}`})),Ue=()=>xe((({block:e,children:t,context:r})=>{const o=r.tools.richTextFormatter.format(e.toggle.rich_text);return i.wrapWithNewLines(i.details(o,t))})),Ne=(e={})=>fe((({block:t,captionMetadata:o})=>{const n=e.fileAdapter??Q(),{url:c}=n(t.video);return i.wrapWithNewLines(r.videoTag({src:c,...o.getMetadata()}))})),We=(e={})=>{const{enableEmbed:t=!0,supportedEmbedProviders:r}=e;return be((({block:e,captionMetadata:o,context:n})=>{if(t&&r){const t=H.embedByUrl(e.embed.url,o,{supportedEmbedProviders:r});if(t)return t}const c=n.tools.richTextFormatter.format(o.getText()),a=e.embed.url;return i.link(c||a,a)}))};class Oe extends Error{constructor(e){super(`Block is not a root block: ${e.type}`)}}exports.$getDatabasePages=async(e,t)=>{const r=[];let o;for(;;){const n=await q((()=>e.databases.query({database_id:t,start_cursor:o})));if(r.push(...n.results),o=n.next_cursor??void 0,!o)break}return r},exports.$getPageFullContent=D,exports.BasicRichTextFormatter=Y,exports.CaptionMetadata=U,exports.HTMLUtils=r,exports.MarkdownUtils=i,exports.NotRootBlockError=Oe,exports.NotionMarkdownConverter=class{constructor(e={}){this.tools={richTextFormatter:new Y,...e.tools||{}},this.transformers=this.initializeTransformers(e.transformers||{})}initializeTransformers(e){return{bookmark:ge(),breadcrumb:ye(),bulleted_list_item:we(),callout:Be(),code:_e(),column_list:Te(),divider:$e(),equation:Fe(),heading:ve(),link_preview:Ce(),numbered_list_item:Ee(),paragraph:je(),quote:Pe(),synced_block:qe(),table_of_contents:Re(),table:De(),to_do:Ie(),toggle:Ue(),file:Me(),image:Le(),pdf:Ae(),video:Ne(),embed:We(),...e}}execute(e){const t=this.transformBlocks(e);return this.onComplete(t)}transformBlocks(e){const t={execute:e=>this.transformBlocks(e),blocks:e,currentBlock:e[0],currentBlockIndex:0,tools:this.tools};return e.map(((e,r)=>{if(t.currentBlock=e,t.currentBlockIndex=r,u(e)){const e=t;return this.transformers.bookmark?.(e)??""}if(d(e)){const e=t;return this.transformers.breadcrumb?.(e)??""}if(m(e)){const e=t;return this.transformers.callout?.(e)??""}if(h(e)){const e=t;return this.transformers.code?.(e)??""}if(k(e)){const e=t;return this.transformers.column_list?.(e)??""}if(x(e)){const e=t;return this.transformers.divider?.(e)??""}if(f(e)){const e=t;return this.transformers.equation?.(e)??""}if(b(e)){const e=t;return this.transformers.heading?.(e)??""}if(g(e)){const e=t;return this.transformers.heading?.(e)??""}if(y(e)){const e=t;return this.transformers.heading?.(e)??""}if(B(e)){const e=t;return this.transformers.link_preview?.(e)??""}if(p(e)){const e=t;return this.transformers.bulleted_list_item?.(e)??""}if(_(e)){const e=t;return this.transformers.numbered_list_item?.(e)??""}if(C(e)){const e=t;return this.transformers.to_do?.(e)??""}if(T(e)){const e=t;return this.transformers.paragraph?.(e)??""}if(F(e)){const e=t;return this.transformers.quote?.(e)??""}if(M(e)){const e=t;return this.transformers.synced_block?.(e)??""}if(L(e)){const e=t;return this.transformers.table_of_contents?.(e)??""}if(v(e)){const e=t;return this.transformers.table?.(e)??""}if(E(e)){const e=t;return this.transformers.toggle?.(e)??""}if(A(e)){const e=t;return this.transformers.embed?.(e)??""}if(w(e)){const e=t;return this.transformers.image?.(e)??""}if(j(e)){const e=t;return this.transformers.video?.(e)??""}if($(e)){const e=t;return this.transformers.pdf?.(e)??""}})).filter((e=>null!=e)).join("\n")}onComplete(e){return e}},exports.ProviderAsciinemaUtils=z,exports.ProviderCodePenUtils=S,exports.ProviderUtils=H,exports.ProviderYoutubeUtils=O,exports.UnsupportedBlockError=G,exports.createBookmarkTransformerFactory=J,exports.createBreadcrumbTransformerFactory=K,exports.createBulletedListItemTransformerFactory=ie,exports.createCalloutTransformerFactory=X,exports.createChildDatabaseTransformerFactory=e=>t=>e({block:t.currentBlock,context:t}),exports.createChildPageTransformerFactory=e=>t=>e({block:t.currentBlock,context:t}),exports.createCodeTransformerFactory=Z,exports.createColumnListTransformerFactory=ee,exports.createDividerTransformerFactory=te,exports.createEmbedTransformerFactory=be,exports.createEquationTransformerFactory=re,exports.createFileAdapter=V,exports.createFileTransformerFactory=oe,exports.createHeadingTransformerFactory=ne,exports.createImageTransformerFactory=ce,exports.createLinkPreviewTransformerFactory=ae,exports.createMarkdownBookmarkTransformer=ge,exports.createMarkdownBreadcrumbTransformer=ye,exports.createMarkdownBulletedListItemTransformer=we,exports.createMarkdownCalloutTransformer=Be,exports.createMarkdownCodeTransformer=_e,exports.createMarkdownColumnListTransformer=Te,exports.createMarkdownDividerTransformer=$e,exports.createMarkdownEmbedTransformer=We,exports.createMarkdownEquationTransformer=Fe,exports.createMarkdownFileTransformer=Me,exports.createMarkdownHeadingTransformer=ve,exports.createMarkdownImageTransformer=Le,exports.createMarkdownLinkPreviewTransformer=Ce,exports.createMarkdownNumberedListItemTransformer=Ee,exports.createMarkdownPDFTransformer=Ae,exports.createMarkdownParagraphTransformer=je,exports.createMarkdownQuoteTransformer=Pe,exports.createMarkdownSyncedBlockTransformer=qe,exports.createMarkdownTableOfContentsTransformer=Re,exports.createMarkdownTableTransformer=De,exports.createMarkdownTodoListItemTransformer=Ie,exports.createMarkdownToggleTransformer=Ue,exports.createMarkdownVideoTransformer=Ne,exports.createNoChangeFileObjectAdapter=Q,exports.createNumberedListItemTransformerFactory=se,exports.createPDFTransformerFactory=de,exports.createParagraphTransformerFactory=ue,exports.createQuoteTransformerFactory=pe,exports.createSyncedBlockTransformerFactory=me,exports.createTableOfContentsTransformerFactory=he,exports.createTableTransformerFactory=ke,exports.createTodoTransformerFactory=le,exports.createToggleTransformerFactory=xe,exports.createUnsupportedBlockTransformer=({log:e}={log:!1})=>e=>null,exports.createVideoTransformerFactory=fe,exports.delay=P,exports.extractPageId=function(e){if(e.includes("notion.so")){const t=e.match(/([a-f0-9]{32}|[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})/);if(!t)throw new Error("Invalid Notion page URL format");return t[1].replace(/-/g,"")}const t=e.replace(/-/g,"");if(!/^[a-f0-9]{32}$/i.test(t))throw new Error("Invalid page ID format");return t},exports.isBookmarkBlock=u,exports.isBreadcrumbBlock=d,exports.isBulletedListItemBlock=p,exports.isCalloutBlock=m,exports.isCodeBlock=h,exports.isColumnBlock=e=>"column"===e.type&&Array.isArray(e.children),exports.isColumnListBlock=k,exports.isDividerBlock=x,exports.isEmbedBlock=A,exports.isEquationBlock=f,exports.isFileBlock=e=>"file"===e.type,exports.isHeading1Block=b,exports.isHeading2Block=g,exports.isHeading3Block=y,exports.isImageBlock=w,exports.isLinkPreviewBlock=B,exports.isNotionExternalFile=e=>"external"===e.type,exports.isNotionInternalFile=l,exports.isNumberedListItemBlock=_,exports.isParagraphBlock=T,exports.isPdfBlock=$,exports.isQuoteBlock=F,exports.isRootBlock=e=>"block"===e.object&&s.includes(e.type),exports.isSyncedBlock=M,exports.isTableBlock=v,exports.isTableOfContentsBlock=L,exports.isTableRowBlock=e=>"table_row"===e.type,exports.isToDoBlock=C,exports.isToggleBlock=E,exports.isURL=I,exports.isVideoBlock=j,exports.retryWithBackoff=q;