[{"data":1,"prerenderedAt":3082},["ShallowReactive",2],{"navigation_docs_en":3,"-en-advanced-contributing-providers":160,"-en-advanced-contributing-providers-surround":3077},[4,21,47,93,119],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":20},"Getting Started","i-lucide-rocket","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,15],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F2.installation","i-lucide-download",false,{"title":22,"icon":23,"path":24,"stem":25,"children":26,"page":20},"Components","i-lucide-component","\u002Fen\u002Fcomponents","en\u002F2.components",[27,32,37,42],{"title":28,"path":29,"stem":30,"icon":31},"NuxtPdfKit","\u002Fen\u002Fcomponents\u002Fnuxt-pdf-kit","en\u002F2.components\u002F1.nuxt-pdf-kit","i-lucide-file-text",{"title":33,"path":34,"stem":35,"icon":36},"Props","\u002Fen\u002Fcomponents\u002Fprops","en\u002F2.components\u002F2.props","i-lucide-list",{"title":38,"path":39,"stem":40,"icon":41},"Slots","\u002Fen\u002Fcomponents\u002Fslots","en\u002F2.components\u002F3.slots","i-lucide-layout",{"title":43,"path":44,"stem":45,"icon":46},"Methods","\u002Fen\u002Fcomponents\u002Fmethods","en\u002F2.components\u002F4.methods","i-lucide-play",{"title":48,"icon":49,"path":50,"stem":51,"children":52,"page":20},"Composables","i-lucide-code","\u002Fen\u002Fcomposables","en\u002F3.composables",[53,58,63,68,73,78,83,88],{"title":54,"path":55,"stem":56,"icon":57},"Overview","\u002Fen\u002Fcomposables\u002Foverview","en\u002F3.composables\u002F1.overview","i-lucide-info",{"title":59,"path":60,"stem":61,"icon":62},"usePdfKitDocument","\u002Fen\u002Fcomposables\u002Fuse-pdf-kit-document","en\u002F3.composables\u002F2.use-pdf-kit-document","i-lucide-file",{"title":64,"path":65,"stem":66,"icon":67},"usePdfKitZoom","\u002Fen\u002Fcomposables\u002Fuse-pdf-kit-zoom","en\u002F3.composables\u002F3.use-pdf-kit-zoom","i-lucide-zoom-in",{"title":69,"path":70,"stem":71,"icon":72},"usePdfKitSearch","\u002Fen\u002Fcomposables\u002Fuse-pdf-kit-search","en\u002F3.composables\u002F4.use-pdf-kit-search","i-lucide-search",{"title":74,"path":75,"stem":76,"icon":77},"usePdfKitPageNavigation","\u002Fen\u002Fcomposables\u002Fuse-pdf-kit-page-navigation","en\u002F3.composables\u002F5.use-pdf-kit-page-navigation","i-lucide-navigation",{"title":79,"path":80,"stem":81,"icon":82},"usePdfKitViewMode","\u002Fen\u002Fcomposables\u002Fuse-pdf-kit-view-mode","en\u002F3.composables\u002F6.use-pdf-kit-view-mode","i-lucide-layout-grid",{"title":84,"path":85,"stem":86,"icon":87},"usePdfKitRotation","\u002Fen\u002Fcomposables\u002Fuse-pdf-kit-rotation","en\u002F3.composables\u002F7.use-pdf-kit-rotation","i-lucide-rotate-cw",{"title":89,"path":90,"stem":91,"icon":92},"usePdfKitVirtualScroll","\u002Fen\u002Fcomposables\u002Fuse-pdf-kit-virtual-scroll","en\u002F3.composables\u002F8.use-pdf-kit-virtual-scroll","i-lucide-layers",{"title":94,"icon":95,"path":96,"stem":97,"children":98,"page":20},"Configuration","i-lucide-settings","\u002Fen\u002Fconfiguration","en\u002F4.configuration",[99,104,109,114],{"title":100,"path":101,"stem":102,"icon":103},"Module Options","\u002Fen\u002Fconfiguration\u002Fmodule-options","en\u002F4.configuration\u002F1.module-options","i-lucide-sliders",{"title":105,"path":106,"stem":107,"icon":108},"Toolbar Options","\u002Fen\u002Fconfiguration\u002Ftoolbar-options","en\u002F4.configuration\u002F2.toolbar-options","i-lucide-panel-top",{"title":110,"path":111,"stem":112,"icon":113},"Per-Instance Config","\u002Fen\u002Fconfiguration\u002Fper-instance-config","en\u002F4.configuration\u002F3.per-instance-config","i-lucide-copy",{"title":115,"path":116,"stem":117,"icon":118},"TypeScript","\u002Fen\u002Fconfiguration\u002Ftypescript","en\u002F4.configuration\u002F4.typescript","i-simple-icons-typescript",{"title":120,"icon":121,"path":122,"stem":123,"children":124,"page":20},"Advanced","i-lucide-sparkles","\u002Fen\u002Fadvanced","en\u002F5.advanced",[125,130,135,140,145,150,155],{"title":126,"path":127,"stem":128,"icon":129},"Examples","\u002Fen\u002Fadvanced\u002Fexamples","en\u002F5.advanced\u002F1.examples","i-lucide-book-open",{"title":131,"path":132,"stem":133,"icon":134},"Providers","\u002Fen\u002Fadvanced\u002Fproviders","en\u002F5.advanced\u002F2.providers","i-heroicons-cloud",{"title":136,"path":137,"stem":138,"icon":139},"Contributing","\u002Fen\u002Fadvanced\u002Fcontributing-providers","en\u002F5.advanced\u002F3.contributing-providers","i-heroicons-code-bracket",{"title":141,"path":142,"stem":143,"icon":144},"Custom Styling","\u002Fen\u002Fadvanced\u002Fcustom-styling","en\u002F5.advanced\u002F4.custom-styling","i-lucide-palette",{"title":146,"path":147,"stem":148,"icon":149},"Keyboard Shortcuts","\u002Fen\u002Fadvanced\u002Fkeyboard-shortcuts","en\u002F5.advanced\u002F5.keyboard-shortcuts","i-lucide-keyboard",{"title":151,"path":152,"stem":153,"icon":154},"Troubleshooting","\u002Fen\u002Fadvanced\u002Ftroubleshooting","en\u002F5.advanced\u002F6.troubleshooting","i-lucide-wrench",{"title":156,"path":157,"stem":158,"icon":159},"Demo","\u002Fen\u002Fadvanced\u002Fdemo","en\u002F5.advanced\u002F7.demo","i-lucide-square-dashed-bottom-code",{"id":161,"title":162,"body":163,"description":3070,"extension":3071,"links":3072,"meta":3073,"navigation":3074,"path":137,"seo":3075,"stem":138,"__hash__":3076},"docs_en\u002Fen\u002F5.advanced\u002F3.contributing-providers.md","Contributing Providers",{"type":164,"value":165,"toc":3050},"minimark",[166,171,175,179,182,205,208,212,220,346,348,352,358,842,844,848,851,856,861,1926,1930,1936,2171,2173,2177,2183,2507,2509,2513,2519,2617,2619,2623,2674,2676,2680,2683,2753,2755,2759,2763,2766,2835,2839,2842,2900,2904,2907,2995,2999,3013,3015,3019,3043,3046],[167,168,170],"h1",{"id":169},"contributing-new-providers","Contributing New Providers",[172,173,174],"p",{},"Want to add support for OneDrive, Dropbox, S3, or another file storage service? This guide will walk you through the process!",[176,177,54],"h2",{"id":178},"overview",[172,180,181],{},"Adding a new provider involves three main steps:",[183,184,185,193,199],"ol",{},[186,187,188,192],"li",{},[189,190,191],"strong",{},"Add the provider type"," to the TypeScript definitions",[186,194,195,198],{},[189,196,197],{},"Create the transformation logic"," in the composable",[186,200,201,204],{},[189,202,203],{},"Add a server route"," (if needed for CORS\u002Fauthentication)",[206,207],"hr",{},[176,209,211],{"id":210},"step-1-add-provider-type","Step 1: Add Provider Type",[172,213,214,215,219],{},"Edit ",[216,217,218],"code",{},"src\u002Fruntime\u002Ftypes.ts"," to add your new provider:",[221,222,227],"pre",{"className":223,"code":224,"language":225,"meta":226,"style":226},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Before\nexport type PdfProvider = \"url\" | \"gdrive\" | \"custom\";\n\n\u002F\u002F After\nexport type PdfProvider = \"url\" | \"gdrive\" | \"onedrive\" | \"custom\";\n","typescript","",[216,228,229,238,289,296,302],{"__ignoreMap":226},[230,231,234],"span",{"class":232,"line":233},"line",1,[230,235,237],{"class":236},"sHwdD","\u002F\u002F Before\n",[230,239,241,245,249,253,257,260,264,267,270,272,275,277,279,281,284,286],{"class":232,"line":240},2,[230,242,244],{"class":243},"s7zQu","export",[230,246,248],{"class":247},"spNyl"," type",[230,250,252],{"class":251},"sBMFI"," PdfProvider",[230,254,256],{"class":255},"sMK4o"," =",[230,258,259],{"class":255}," \"",[230,261,263],{"class":262},"sfazB","url",[230,265,266],{"class":255},"\"",[230,268,269],{"class":255}," |",[230,271,259],{"class":255},[230,273,274],{"class":262},"gdrive",[230,276,266],{"class":255},[230,278,269],{"class":255},[230,280,259],{"class":255},[230,282,283],{"class":262},"custom",[230,285,266],{"class":255},[230,287,288],{"class":255},";\n",[230,290,292],{"class":232,"line":291},3,[230,293,295],{"emptyLinePlaceholder":294},true,"\n",[230,297,299],{"class":232,"line":298},4,[230,300,301],{"class":236},"\u002F\u002F After\n",[230,303,305,307,309,311,313,315,317,319,321,323,325,327,329,331,334,336,338,340,342,344],{"class":232,"line":304},5,[230,306,244],{"class":243},[230,308,248],{"class":247},[230,310,252],{"class":251},[230,312,256],{"class":255},[230,314,259],{"class":255},[230,316,263],{"class":262},[230,318,266],{"class":255},[230,320,269],{"class":255},[230,322,259],{"class":255},[230,324,274],{"class":262},[230,326,266],{"class":255},[230,328,269],{"class":255},[230,330,259],{"class":255},[230,332,333],{"class":262},"onedrive",[230,335,266],{"class":255},[230,337,269],{"class":255},[230,339,259],{"class":255},[230,341,283],{"class":262},[230,343,266],{"class":255},[230,345,288],{"class":255},[206,347],{},[176,349,351],{"id":350},"step-2-add-transformation-logic","Step 2: Add Transformation Logic",[172,353,214,354,357],{},[216,355,356],{},"src\u002Fruntime\u002Fcomposables\u002FusePdfKitProvider.ts",":",[221,359,361],{"className":223,"code":360,"language":225,"meta":226,"style":226},"\u002F**\n * Transform OneDrive share link to direct download URL\n *\u002F\nfunction transformOneDrive(src: string, config?: ProviderConfig): string {\n  \u002F\u002F Clean the share ID\n  const shareId = src.trim();\n\n  \u002F\u002F Get proxy route from config or use default\n  const proxyRoute = config?.baseUrl || \"\u002Fpdf-proxy\u002Fonedrive\";\n\n  return `${proxyRoute}\u002F${shareId}.pdf`;\n}\n\n\u002F\u002F Add to the main function\nexport function usePdfKitProvider(\n  provider: PdfProvider = \"url\",\n  src: string,\n  config?: ProviderConfig,\n): string {\n  if (!src) {\n    console.warn(\"[nuxt-pdf-kit] Empty src provided to usePdfKitProvider\");\n    return \"\";\n  }\n\n  switch (provider) {\n    case \"gdrive\":\n      return transformGoogleDrive(src, config);\n    case \"onedrive\": \u002F\u002F Add this\n      return transformOneDrive(src, config);\n    case \"custom\":\n      return transformCustom(src, config);\n    case \"url\":\n    default:\n      return src;\n  }\n}\n",[216,362,363,368,373,378,419,424,451,456,462,492,497,531,537,542,548,562,583,595,607,616,636,661,672,678,683,698,713,734,750,769,782,802,815,823,832,837],{"__ignoreMap":226},[230,364,365],{"class":232,"line":233},[230,366,367],{"class":236},"\u002F**\n",[230,369,370],{"class":232,"line":240},[230,371,372],{"class":236}," * Transform OneDrive share link to direct download URL\n",[230,374,375],{"class":232,"line":291},[230,376,377],{"class":236}," *\u002F\n",[230,379,380,383,387,390,394,396,399,402,405,408,411,414,416],{"class":232,"line":298},[230,381,382],{"class":247},"function",[230,384,386],{"class":385},"s2Zo4"," transformOneDrive",[230,388,389],{"class":255},"(",[230,391,393],{"class":392},"sHdIc","src",[230,395,357],{"class":255},[230,397,398],{"class":251}," string",[230,400,401],{"class":255},",",[230,403,404],{"class":392}," config",[230,406,407],{"class":255},"?:",[230,409,410],{"class":251}," ProviderConfig",[230,412,413],{"class":255},"):",[230,415,398],{"class":251},[230,417,418],{"class":255}," {\n",[230,420,421],{"class":232,"line":304},[230,422,423],{"class":236},"  \u002F\u002F Clean the share ID\n",[230,425,427,430,434,436,439,442,445,449],{"class":232,"line":426},6,[230,428,429],{"class":247},"  const",[230,431,433],{"class":432},"sTEyZ"," shareId",[230,435,256],{"class":255},[230,437,438],{"class":432}," src",[230,440,441],{"class":255},".",[230,443,444],{"class":385},"trim",[230,446,448],{"class":447},"swJcz","()",[230,450,288],{"class":255},[230,452,454],{"class":232,"line":453},7,[230,455,295],{"emptyLinePlaceholder":294},[230,457,459],{"class":232,"line":458},8,[230,460,461],{"class":236},"  \u002F\u002F Get proxy route from config or use default\n",[230,463,465,467,470,472,474,477,480,483,485,488,490],{"class":232,"line":464},9,[230,466,429],{"class":247},[230,468,469],{"class":432}," proxyRoute",[230,471,256],{"class":255},[230,473,404],{"class":432},[230,475,476],{"class":255},"?.",[230,478,479],{"class":432},"baseUrl",[230,481,482],{"class":255}," ||",[230,484,259],{"class":255},[230,486,487],{"class":262},"\u002Fpdf-proxy\u002Fonedrive",[230,489,266],{"class":255},[230,491,288],{"class":255},[230,493,495],{"class":232,"line":494},10,[230,496,295],{"emptyLinePlaceholder":294},[230,498,500,503,506,509,512,515,518,521,523,526,529],{"class":232,"line":499},11,[230,501,502],{"class":243},"  return",[230,504,505],{"class":255}," `${",[230,507,508],{"class":432},"proxyRoute",[230,510,511],{"class":255},"}",[230,513,514],{"class":262},"\u002F",[230,516,517],{"class":255},"${",[230,519,520],{"class":432},"shareId",[230,522,511],{"class":255},[230,524,525],{"class":262},".pdf",[230,527,528],{"class":255},"`",[230,530,288],{"class":255},[230,532,534],{"class":232,"line":533},12,[230,535,536],{"class":255},"}\n",[230,538,540],{"class":232,"line":539},13,[230,541,295],{"emptyLinePlaceholder":294},[230,543,545],{"class":232,"line":544},14,[230,546,547],{"class":236},"\u002F\u002F Add to the main function\n",[230,549,551,553,556,559],{"class":232,"line":550},15,[230,552,244],{"class":243},[230,554,555],{"class":247}," function",[230,557,558],{"class":385}," usePdfKitProvider",[230,560,561],{"class":255},"(\n",[230,563,565,568,570,572,574,576,578,580],{"class":232,"line":564},16,[230,566,567],{"class":392},"  provider",[230,569,357],{"class":255},[230,571,252],{"class":251},[230,573,256],{"class":255},[230,575,259],{"class":255},[230,577,263],{"class":262},[230,579,266],{"class":255},[230,581,582],{"class":255},",\n",[230,584,586,589,591,593],{"class":232,"line":585},17,[230,587,588],{"class":392},"  src",[230,590,357],{"class":255},[230,592,398],{"class":251},[230,594,582],{"class":255},[230,596,598,601,603,605],{"class":232,"line":597},18,[230,599,600],{"class":392},"  config",[230,602,407],{"class":255},[230,604,410],{"class":251},[230,606,582],{"class":255},[230,608,610,612,614],{"class":232,"line":609},19,[230,611,413],{"class":255},[230,613,398],{"class":251},[230,615,418],{"class":255},[230,617,619,622,625,628,630,633],{"class":232,"line":618},20,[230,620,621],{"class":243},"  if",[230,623,624],{"class":447}," (",[230,626,627],{"class":255},"!",[230,629,393],{"class":432},[230,631,632],{"class":447},") ",[230,634,635],{"class":255},"{\n",[230,637,639,642,644,647,649,651,654,656,659],{"class":232,"line":638},21,[230,640,641],{"class":432},"    console",[230,643,441],{"class":255},[230,645,646],{"class":385},"warn",[230,648,389],{"class":447},[230,650,266],{"class":255},[230,652,653],{"class":262},"[nuxt-pdf-kit] Empty src provided to usePdfKitProvider",[230,655,266],{"class":255},[230,657,658],{"class":447},")",[230,660,288],{"class":255},[230,662,664,667,670],{"class":232,"line":663},22,[230,665,666],{"class":243},"    return",[230,668,669],{"class":255}," \"\"",[230,671,288],{"class":255},[230,673,675],{"class":232,"line":674},23,[230,676,677],{"class":255},"  }\n",[230,679,681],{"class":232,"line":680},24,[230,682,295],{"emptyLinePlaceholder":294},[230,684,686,689,691,694,696],{"class":232,"line":685},25,[230,687,688],{"class":243},"  switch",[230,690,624],{"class":447},[230,692,693],{"class":432},"provider",[230,695,632],{"class":447},[230,697,635],{"class":255},[230,699,701,704,706,708,710],{"class":232,"line":700},26,[230,702,703],{"class":243},"    case",[230,705,259],{"class":255},[230,707,274],{"class":262},[230,709,266],{"class":255},[230,711,712],{"class":255},":\n",[230,714,716,719,722,724,726,728,730,732],{"class":232,"line":715},27,[230,717,718],{"class":243},"      return",[230,720,721],{"class":385}," transformGoogleDrive",[230,723,389],{"class":447},[230,725,393],{"class":432},[230,727,401],{"class":255},[230,729,404],{"class":432},[230,731,658],{"class":447},[230,733,288],{"class":255},[230,735,737,739,741,743,745,747],{"class":232,"line":736},28,[230,738,703],{"class":243},[230,740,259],{"class":255},[230,742,333],{"class":262},[230,744,266],{"class":255},[230,746,357],{"class":255},[230,748,749],{"class":236}," \u002F\u002F Add this\n",[230,751,753,755,757,759,761,763,765,767],{"class":232,"line":752},29,[230,754,718],{"class":243},[230,756,386],{"class":385},[230,758,389],{"class":447},[230,760,393],{"class":432},[230,762,401],{"class":255},[230,764,404],{"class":432},[230,766,658],{"class":447},[230,768,288],{"class":255},[230,770,772,774,776,778,780],{"class":232,"line":771},30,[230,773,703],{"class":243},[230,775,259],{"class":255},[230,777,283],{"class":262},[230,779,266],{"class":255},[230,781,712],{"class":255},[230,783,785,787,790,792,794,796,798,800],{"class":232,"line":784},31,[230,786,718],{"class":243},[230,788,789],{"class":385}," transformCustom",[230,791,389],{"class":447},[230,793,393],{"class":432},[230,795,401],{"class":255},[230,797,404],{"class":432},[230,799,658],{"class":447},[230,801,288],{"class":255},[230,803,805,807,809,811,813],{"class":232,"line":804},32,[230,806,703],{"class":243},[230,808,259],{"class":255},[230,810,263],{"class":262},[230,812,266],{"class":255},[230,814,712],{"class":255},[230,816,818,821],{"class":232,"line":817},33,[230,819,820],{"class":243},"    default",[230,822,712],{"class":255},[230,824,826,828,830],{"class":232,"line":825},34,[230,827,718],{"class":243},[230,829,438],{"class":432},[230,831,288],{"class":255},[230,833,835],{"class":232,"line":834},35,[230,836,677],{"class":255},[230,838,840],{"class":232,"line":839},36,[230,841,536],{"class":255},[206,843],{},[176,845,847],{"id":846},"step-3-create-server-route-optional","Step 3: Create Server Route (Optional)",[172,849,850],{},"If your provider needs CORS handling or authentication, create a server route:",[852,853,855],"h3",{"id":854},"create-the-route-file","Create the route file",[172,857,858,357],{},[216,859,860],{},"src\u002Fruntime\u002Fserver\u002Froutes\u002Fpdf-proxy\u002Fonedrive\u002F[id].ts",[221,862,864],{"className":223,"code":863,"language":225,"meta":226,"style":226},"import {\n  createError,\n  defineEventHandler,\n  sendStream,\n  setResponseHeader,\n} from \"h3\";\n\nexport default defineEventHandler(async (event) => {\n  \u002F\u002F 1. Extract file ID from URL\n  const path = event.path || event.node.req.url || \"\";\n  const match = path.match(\u002F\\\u002Fpdf-proxy\\\u002Fonedrive\\\u002F([^\u002F]+?)(?:\\.pdf)?$\u002F);\n  const shareId = match ? match[1] : \"\";\n\n  if (!shareId) {\n    throw createError({\n      statusCode: 400,\n      statusMessage: \"OneDrive share ID is missing\",\n    });\n  }\n\n  \u002F\u002F 2. Construct OneDrive download URL\n  \u002F\u002F Example: Convert share link to direct download\n  const oneDriveUrl = `https:\u002F\u002Fapi.onedrive.com\u002Fv1.0\u002Fshares\u002F${shareId}\u002Froot\u002Fcontent`;\n\n  try {\n    \u002F\u002F 3. Fetch from OneDrive\n    const response = await fetch(oneDriveUrl, {\n      headers: {\n        \"User-Agent\": \"Mozilla\u002F5.0...\",\n        Accept: \"*\u002F*\",\n      },\n      redirect: \"follow\",\n    });\n\n    if (!response.ok) {\n      throw createError({\n        statusCode: response.status,\n        statusMessage: `OneDrive Error: ${response.statusText}`,\n      });\n    }\n\n    \u002F\u002F 4. Check Content-Type\n    const contentType = response.headers.get(\"content-type\");\n    if (contentType && !contentType.includes(\"application\u002Fpdf\")) {\n      throw createError({\n        statusCode: 502,\n        statusMessage: \"OneDrive did not return a PDF file\",\n      });\n    }\n\n    \u002F\u002F 5. Set response headers\n    setResponseHeader(event, \"Content-Type\", \"application\u002Fpdf\");\n    setResponseHeader(event, \"Cache-Control\", \"public, max-age=86400\");\n    setResponseHeader(event, \"Access-Control-Allow-Origin\", \"*\");\n\n    \u002F\u002F 6. Stream the response\n    if (!response.body) {\n      throw createError({\n        statusCode: 500,\n        statusMessage: \"Empty response from OneDrive\",\n      });\n    }\n\n    return sendStream(event, response.body);\n  } catch (error: any) {\n    console.error(\"[nuxt-pdf-kit] OneDrive error:\", error.message);\n\n    if (error.statusCode) {\n      throw error;\n    }\n\n    throw createError({\n      statusCode: 500,\n      statusMessage: error.message || \"Internal Server Error\",\n    });\n  }\n});\n",[216,865,866,873,880,887,894,901,916,920,947,952,993,1051,1082,1086,1100,1112,1124,1140,1149,1153,1157,1162,1167,1195,1199,1206,1211,1236,1245,1266,1282,1287,1303,1311,1315,1336,1347,1364,1391,1401,1407,1412,1418,1453,1490,1501,1513,1529,1538,1543,1548,1554,1585,1616,1647,1652,1658,1678,1689,1701,1717,1726,1731,1736,1760,1783,1815,1820,1838,1847,1852,1857,1868,1879,1903,1912,1917],{"__ignoreMap":226},[230,867,868,871],{"class":232,"line":233},[230,869,870],{"class":243},"import",[230,872,418],{"class":255},[230,874,875,878],{"class":232,"line":240},[230,876,877],{"class":432},"  createError",[230,879,582],{"class":255},[230,881,882,885],{"class":232,"line":291},[230,883,884],{"class":432},"  defineEventHandler",[230,886,582],{"class":255},[230,888,889,892],{"class":232,"line":298},[230,890,891],{"class":432},"  sendStream",[230,893,582],{"class":255},[230,895,896,899],{"class":232,"line":304},[230,897,898],{"class":432},"  setResponseHeader",[230,900,582],{"class":255},[230,902,903,905,908,910,912,914],{"class":232,"line":426},[230,904,511],{"class":255},[230,906,907],{"class":243}," from",[230,909,259],{"class":255},[230,911,852],{"class":262},[230,913,266],{"class":255},[230,915,288],{"class":255},[230,917,918],{"class":232,"line":453},[230,919,295],{"emptyLinePlaceholder":294},[230,921,922,924,927,930,932,935,937,940,942,945],{"class":232,"line":458},[230,923,244],{"class":243},[230,925,926],{"class":243}," default",[230,928,929],{"class":385}," defineEventHandler",[230,931,389],{"class":432},[230,933,934],{"class":247},"async",[230,936,624],{"class":255},[230,938,939],{"class":392},"event",[230,941,658],{"class":255},[230,943,944],{"class":247}," =>",[230,946,418],{"class":255},[230,948,949],{"class":232,"line":464},[230,950,951],{"class":236},"  \u002F\u002F 1. Extract file ID from URL\n",[230,953,954,956,959,961,964,966,969,971,973,975,978,980,983,985,987,989,991],{"class":232,"line":494},[230,955,429],{"class":247},[230,957,958],{"class":432}," path",[230,960,256],{"class":255},[230,962,963],{"class":432}," event",[230,965,441],{"class":255},[230,967,968],{"class":432},"path",[230,970,482],{"class":255},[230,972,963],{"class":432},[230,974,441],{"class":255},[230,976,977],{"class":432},"node",[230,979,441],{"class":255},[230,981,982],{"class":432},"req",[230,984,441],{"class":255},[230,986,263],{"class":432},[230,988,482],{"class":255},[230,990,669],{"class":255},[230,992,288],{"class":255},[230,994,995,997,1000,1002,1004,1006,1009,1011,1013,1016,1019,1021,1023,1025,1028,1030,1033,1036,1039,1042,1045,1047,1049],{"class":232,"line":499},[230,996,429],{"class":247},[230,998,999],{"class":432}," match",[230,1001,256],{"class":255},[230,1003,958],{"class":432},[230,1005,441],{"class":255},[230,1007,1008],{"class":385},"match",[230,1010,389],{"class":447},[230,1012,514],{"class":255},[230,1014,1015],{"class":432},"\\\u002F",[230,1017,1018],{"class":262},"pdf-proxy",[230,1020,1015],{"class":432},[230,1022,333],{"class":262},[230,1024,1015],{"class":432},[230,1026,1027],{"class":255},"([^",[230,1029,514],{"class":262},[230,1031,1032],{"class":255},"]+?)(?:",[230,1034,1035],{"class":432},"\\.",[230,1037,1038],{"class":262},"pdf",[230,1040,1041],{"class":255},")?",[230,1043,1044],{"class":243},"$",[230,1046,514],{"class":255},[230,1048,658],{"class":447},[230,1050,288],{"class":255},[230,1052,1053,1055,1057,1059,1061,1064,1066,1069,1073,1076,1078,1080],{"class":232,"line":533},[230,1054,429],{"class":247},[230,1056,433],{"class":432},[230,1058,256],{"class":255},[230,1060,999],{"class":432},[230,1062,1063],{"class":255}," ?",[230,1065,999],{"class":432},[230,1067,1068],{"class":447},"[",[230,1070,1072],{"class":1071},"sbssI","1",[230,1074,1075],{"class":447},"] ",[230,1077,357],{"class":255},[230,1079,669],{"class":255},[230,1081,288],{"class":255},[230,1083,1084],{"class":232,"line":539},[230,1085,295],{"emptyLinePlaceholder":294},[230,1087,1088,1090,1092,1094,1096,1098],{"class":232,"line":544},[230,1089,621],{"class":243},[230,1091,624],{"class":447},[230,1093,627],{"class":255},[230,1095,520],{"class":432},[230,1097,632],{"class":447},[230,1099,635],{"class":255},[230,1101,1102,1105,1108,1110],{"class":232,"line":550},[230,1103,1104],{"class":243},"    throw",[230,1106,1107],{"class":385}," createError",[230,1109,389],{"class":447},[230,1111,635],{"class":255},[230,1113,1114,1117,1119,1122],{"class":232,"line":564},[230,1115,1116],{"class":447},"      statusCode",[230,1118,357],{"class":255},[230,1120,1121],{"class":1071}," 400",[230,1123,582],{"class":255},[230,1125,1126,1129,1131,1133,1136,1138],{"class":232,"line":585},[230,1127,1128],{"class":447},"      statusMessage",[230,1130,357],{"class":255},[230,1132,259],{"class":255},[230,1134,1135],{"class":262},"OneDrive share ID is missing",[230,1137,266],{"class":255},[230,1139,582],{"class":255},[230,1141,1142,1145,1147],{"class":232,"line":597},[230,1143,1144],{"class":255},"    }",[230,1146,658],{"class":447},[230,1148,288],{"class":255},[230,1150,1151],{"class":232,"line":609},[230,1152,677],{"class":255},[230,1154,1155],{"class":232,"line":618},[230,1156,295],{"emptyLinePlaceholder":294},[230,1158,1159],{"class":232,"line":638},[230,1160,1161],{"class":236},"  \u002F\u002F 2. Construct OneDrive download URL\n",[230,1163,1164],{"class":232,"line":663},[230,1165,1166],{"class":236},"  \u002F\u002F Example: Convert share link to direct download\n",[230,1168,1169,1171,1174,1176,1179,1182,1184,1186,1188,1191,1193],{"class":232,"line":674},[230,1170,429],{"class":247},[230,1172,1173],{"class":432}," oneDriveUrl",[230,1175,256],{"class":255},[230,1177,1178],{"class":255}," `",[230,1180,1181],{"class":262},"https:\u002F\u002Fapi.onedrive.com\u002Fv1.0\u002Fshares\u002F",[230,1183,517],{"class":255},[230,1185,520],{"class":432},[230,1187,511],{"class":255},[230,1189,1190],{"class":262},"\u002Froot\u002Fcontent",[230,1192,528],{"class":255},[230,1194,288],{"class":255},[230,1196,1197],{"class":232,"line":680},[230,1198,295],{"emptyLinePlaceholder":294},[230,1200,1201,1204],{"class":232,"line":685},[230,1202,1203],{"class":243},"  try",[230,1205,418],{"class":255},[230,1207,1208],{"class":232,"line":700},[230,1209,1210],{"class":236},"    \u002F\u002F 3. Fetch from OneDrive\n",[230,1212,1213,1216,1219,1221,1224,1227,1229,1232,1234],{"class":232,"line":715},[230,1214,1215],{"class":247},"    const",[230,1217,1218],{"class":432}," response",[230,1220,256],{"class":255},[230,1222,1223],{"class":243}," await",[230,1225,1226],{"class":385}," fetch",[230,1228,389],{"class":447},[230,1230,1231],{"class":432},"oneDriveUrl",[230,1233,401],{"class":255},[230,1235,418],{"class":255},[230,1237,1238,1241,1243],{"class":232,"line":736},[230,1239,1240],{"class":447},"      headers",[230,1242,357],{"class":255},[230,1244,418],{"class":255},[230,1246,1247,1250,1253,1255,1257,1259,1262,1264],{"class":232,"line":752},[230,1248,1249],{"class":255},"        \"",[230,1251,1252],{"class":447},"User-Agent",[230,1254,266],{"class":255},[230,1256,357],{"class":255},[230,1258,259],{"class":255},[230,1260,1261],{"class":262},"Mozilla\u002F5.0...",[230,1263,266],{"class":255},[230,1265,582],{"class":255},[230,1267,1268,1271,1273,1275,1278,1280],{"class":232,"line":771},[230,1269,1270],{"class":447},"        Accept",[230,1272,357],{"class":255},[230,1274,259],{"class":255},[230,1276,1277],{"class":262},"*\u002F*",[230,1279,266],{"class":255},[230,1281,582],{"class":255},[230,1283,1284],{"class":232,"line":784},[230,1285,1286],{"class":255},"      },\n",[230,1288,1289,1292,1294,1296,1299,1301],{"class":232,"line":804},[230,1290,1291],{"class":447},"      redirect",[230,1293,357],{"class":255},[230,1295,259],{"class":255},[230,1297,1298],{"class":262},"follow",[230,1300,266],{"class":255},[230,1302,582],{"class":255},[230,1304,1305,1307,1309],{"class":232,"line":817},[230,1306,1144],{"class":255},[230,1308,658],{"class":447},[230,1310,288],{"class":255},[230,1312,1313],{"class":232,"line":825},[230,1314,295],{"emptyLinePlaceholder":294},[230,1316,1317,1320,1322,1324,1327,1329,1332,1334],{"class":232,"line":834},[230,1318,1319],{"class":243},"    if",[230,1321,624],{"class":447},[230,1323,627],{"class":255},[230,1325,1326],{"class":432},"response",[230,1328,441],{"class":255},[230,1330,1331],{"class":432},"ok",[230,1333,632],{"class":447},[230,1335,635],{"class":255},[230,1337,1338,1341,1343,1345],{"class":232,"line":839},[230,1339,1340],{"class":243},"      throw",[230,1342,1107],{"class":385},[230,1344,389],{"class":447},[230,1346,635],{"class":255},[230,1348,1350,1353,1355,1357,1359,1362],{"class":232,"line":1349},37,[230,1351,1352],{"class":447},"        statusCode",[230,1354,357],{"class":255},[230,1356,1218],{"class":432},[230,1358,441],{"class":255},[230,1360,1361],{"class":432},"status",[230,1363,582],{"class":255},[230,1365,1367,1370,1372,1374,1377,1379,1381,1383,1386,1389],{"class":232,"line":1366},38,[230,1368,1369],{"class":447},"        statusMessage",[230,1371,357],{"class":255},[230,1373,1178],{"class":255},[230,1375,1376],{"class":262},"OneDrive Error: ",[230,1378,517],{"class":255},[230,1380,1326],{"class":432},[230,1382,441],{"class":255},[230,1384,1385],{"class":432},"statusText",[230,1387,1388],{"class":255},"}`",[230,1390,582],{"class":255},[230,1392,1394,1397,1399],{"class":232,"line":1393},39,[230,1395,1396],{"class":255},"      }",[230,1398,658],{"class":447},[230,1400,288],{"class":255},[230,1402,1404],{"class":232,"line":1403},40,[230,1405,1406],{"class":255},"    }\n",[230,1408,1410],{"class":232,"line":1409},41,[230,1411,295],{"emptyLinePlaceholder":294},[230,1413,1415],{"class":232,"line":1414},42,[230,1416,1417],{"class":236},"    \u002F\u002F 4. Check Content-Type\n",[230,1419,1421,1423,1426,1428,1430,1432,1435,1437,1440,1442,1444,1447,1449,1451],{"class":232,"line":1420},43,[230,1422,1215],{"class":247},[230,1424,1425],{"class":432}," contentType",[230,1427,256],{"class":255},[230,1429,1218],{"class":432},[230,1431,441],{"class":255},[230,1433,1434],{"class":432},"headers",[230,1436,441],{"class":255},[230,1438,1439],{"class":385},"get",[230,1441,389],{"class":447},[230,1443,266],{"class":255},[230,1445,1446],{"class":262},"content-type",[230,1448,266],{"class":255},[230,1450,658],{"class":447},[230,1452,288],{"class":255},[230,1454,1456,1458,1460,1463,1466,1469,1471,1473,1476,1478,1480,1483,1485,1488],{"class":232,"line":1455},44,[230,1457,1319],{"class":243},[230,1459,624],{"class":447},[230,1461,1462],{"class":432},"contentType",[230,1464,1465],{"class":255}," &&",[230,1467,1468],{"class":255}," !",[230,1470,1462],{"class":432},[230,1472,441],{"class":255},[230,1474,1475],{"class":385},"includes",[230,1477,389],{"class":447},[230,1479,266],{"class":255},[230,1481,1482],{"class":262},"application\u002Fpdf",[230,1484,266],{"class":255},[230,1486,1487],{"class":447},")) ",[230,1489,635],{"class":255},[230,1491,1493,1495,1497,1499],{"class":232,"line":1492},45,[230,1494,1340],{"class":243},[230,1496,1107],{"class":385},[230,1498,389],{"class":447},[230,1500,635],{"class":255},[230,1502,1504,1506,1508,1511],{"class":232,"line":1503},46,[230,1505,1352],{"class":447},[230,1507,357],{"class":255},[230,1509,1510],{"class":1071}," 502",[230,1512,582],{"class":255},[230,1514,1516,1518,1520,1522,1525,1527],{"class":232,"line":1515},47,[230,1517,1369],{"class":447},[230,1519,357],{"class":255},[230,1521,259],{"class":255},[230,1523,1524],{"class":262},"OneDrive did not return a PDF file",[230,1526,266],{"class":255},[230,1528,582],{"class":255},[230,1530,1532,1534,1536],{"class":232,"line":1531},48,[230,1533,1396],{"class":255},[230,1535,658],{"class":447},[230,1537,288],{"class":255},[230,1539,1541],{"class":232,"line":1540},49,[230,1542,1406],{"class":255},[230,1544,1546],{"class":232,"line":1545},50,[230,1547,295],{"emptyLinePlaceholder":294},[230,1549,1551],{"class":232,"line":1550},51,[230,1552,1553],{"class":236},"    \u002F\u002F 5. Set response headers\n",[230,1555,1557,1560,1562,1564,1566,1568,1571,1573,1575,1577,1579,1581,1583],{"class":232,"line":1556},52,[230,1558,1559],{"class":385},"    setResponseHeader",[230,1561,389],{"class":447},[230,1563,939],{"class":432},[230,1565,401],{"class":255},[230,1567,259],{"class":255},[230,1569,1570],{"class":262},"Content-Type",[230,1572,266],{"class":255},[230,1574,401],{"class":255},[230,1576,259],{"class":255},[230,1578,1482],{"class":262},[230,1580,266],{"class":255},[230,1582,658],{"class":447},[230,1584,288],{"class":255},[230,1586,1588,1590,1592,1594,1596,1598,1601,1603,1605,1607,1610,1612,1614],{"class":232,"line":1587},53,[230,1589,1559],{"class":385},[230,1591,389],{"class":447},[230,1593,939],{"class":432},[230,1595,401],{"class":255},[230,1597,259],{"class":255},[230,1599,1600],{"class":262},"Cache-Control",[230,1602,266],{"class":255},[230,1604,401],{"class":255},[230,1606,259],{"class":255},[230,1608,1609],{"class":262},"public, max-age=86400",[230,1611,266],{"class":255},[230,1613,658],{"class":447},[230,1615,288],{"class":255},[230,1617,1619,1621,1623,1625,1627,1629,1632,1634,1636,1638,1641,1643,1645],{"class":232,"line":1618},54,[230,1620,1559],{"class":385},[230,1622,389],{"class":447},[230,1624,939],{"class":432},[230,1626,401],{"class":255},[230,1628,259],{"class":255},[230,1630,1631],{"class":262},"Access-Control-Allow-Origin",[230,1633,266],{"class":255},[230,1635,401],{"class":255},[230,1637,259],{"class":255},[230,1639,1640],{"class":262},"*",[230,1642,266],{"class":255},[230,1644,658],{"class":447},[230,1646,288],{"class":255},[230,1648,1650],{"class":232,"line":1649},55,[230,1651,295],{"emptyLinePlaceholder":294},[230,1653,1655],{"class":232,"line":1654},56,[230,1656,1657],{"class":236},"    \u002F\u002F 6. Stream the response\n",[230,1659,1661,1663,1665,1667,1669,1671,1674,1676],{"class":232,"line":1660},57,[230,1662,1319],{"class":243},[230,1664,624],{"class":447},[230,1666,627],{"class":255},[230,1668,1326],{"class":432},[230,1670,441],{"class":255},[230,1672,1673],{"class":432},"body",[230,1675,632],{"class":447},[230,1677,635],{"class":255},[230,1679,1681,1683,1685,1687],{"class":232,"line":1680},58,[230,1682,1340],{"class":243},[230,1684,1107],{"class":385},[230,1686,389],{"class":447},[230,1688,635],{"class":255},[230,1690,1692,1694,1696,1699],{"class":232,"line":1691},59,[230,1693,1352],{"class":447},[230,1695,357],{"class":255},[230,1697,1698],{"class":1071}," 500",[230,1700,582],{"class":255},[230,1702,1704,1706,1708,1710,1713,1715],{"class":232,"line":1703},60,[230,1705,1369],{"class":447},[230,1707,357],{"class":255},[230,1709,259],{"class":255},[230,1711,1712],{"class":262},"Empty response from OneDrive",[230,1714,266],{"class":255},[230,1716,582],{"class":255},[230,1718,1720,1722,1724],{"class":232,"line":1719},61,[230,1721,1396],{"class":255},[230,1723,658],{"class":447},[230,1725,288],{"class":255},[230,1727,1729],{"class":232,"line":1728},62,[230,1730,1406],{"class":255},[230,1732,1734],{"class":232,"line":1733},63,[230,1735,295],{"emptyLinePlaceholder":294},[230,1737,1739,1741,1744,1746,1748,1750,1752,1754,1756,1758],{"class":232,"line":1738},64,[230,1740,666],{"class":243},[230,1742,1743],{"class":385}," sendStream",[230,1745,389],{"class":447},[230,1747,939],{"class":432},[230,1749,401],{"class":255},[230,1751,1218],{"class":432},[230,1753,441],{"class":255},[230,1755,1673],{"class":432},[230,1757,658],{"class":447},[230,1759,288],{"class":255},[230,1761,1763,1766,1769,1771,1774,1776,1779,1781],{"class":232,"line":1762},65,[230,1764,1765],{"class":255},"  }",[230,1767,1768],{"class":243}," catch",[230,1770,624],{"class":255},[230,1772,1773],{"class":392},"error",[230,1775,357],{"class":255},[230,1777,1778],{"class":251}," any",[230,1780,658],{"class":255},[230,1782,418],{"class":255},[230,1784,1786,1788,1790,1792,1794,1796,1799,1801,1803,1806,1808,1811,1813],{"class":232,"line":1785},66,[230,1787,641],{"class":432},[230,1789,441],{"class":255},[230,1791,1773],{"class":385},[230,1793,389],{"class":447},[230,1795,266],{"class":255},[230,1797,1798],{"class":262},"[nuxt-pdf-kit] OneDrive error:",[230,1800,266],{"class":255},[230,1802,401],{"class":255},[230,1804,1805],{"class":432}," error",[230,1807,441],{"class":255},[230,1809,1810],{"class":432},"message",[230,1812,658],{"class":447},[230,1814,288],{"class":255},[230,1816,1818],{"class":232,"line":1817},67,[230,1819,295],{"emptyLinePlaceholder":294},[230,1821,1823,1825,1827,1829,1831,1834,1836],{"class":232,"line":1822},68,[230,1824,1319],{"class":243},[230,1826,624],{"class":447},[230,1828,1773],{"class":432},[230,1830,441],{"class":255},[230,1832,1833],{"class":432},"statusCode",[230,1835,632],{"class":447},[230,1837,635],{"class":255},[230,1839,1841,1843,1845],{"class":232,"line":1840},69,[230,1842,1340],{"class":243},[230,1844,1805],{"class":432},[230,1846,288],{"class":255},[230,1848,1850],{"class":232,"line":1849},70,[230,1851,1406],{"class":255},[230,1853,1855],{"class":232,"line":1854},71,[230,1856,295],{"emptyLinePlaceholder":294},[230,1858,1860,1862,1864,1866],{"class":232,"line":1859},72,[230,1861,1104],{"class":243},[230,1863,1107],{"class":385},[230,1865,389],{"class":447},[230,1867,635],{"class":255},[230,1869,1871,1873,1875,1877],{"class":232,"line":1870},73,[230,1872,1116],{"class":447},[230,1874,357],{"class":255},[230,1876,1698],{"class":1071},[230,1878,582],{"class":255},[230,1880,1882,1884,1886,1888,1890,1892,1894,1896,1899,1901],{"class":232,"line":1881},74,[230,1883,1128],{"class":447},[230,1885,357],{"class":255},[230,1887,1805],{"class":432},[230,1889,441],{"class":255},[230,1891,1810],{"class":432},[230,1893,482],{"class":255},[230,1895,259],{"class":255},[230,1897,1898],{"class":262},"Internal Server Error",[230,1900,266],{"class":255},[230,1902,582],{"class":255},[230,1904,1906,1908,1910],{"class":232,"line":1905},75,[230,1907,1144],{"class":255},[230,1909,658],{"class":447},[230,1911,288],{"class":255},[230,1913,1915],{"class":232,"line":1914},76,[230,1916,677],{"class":255},[230,1918,1920,1922,1924],{"class":232,"line":1919},77,[230,1921,511],{"class":255},[230,1923,658],{"class":432},[230,1925,288],{"class":255},[852,1927,1929],{"id":1928},"register-the-route","Register the route",[172,1931,214,1932,1935],{},[216,1933,1934],{},"src\u002Fmodule.ts"," to register your server route:",[221,1937,1939],{"className":223,"code":1938,"language":225,"meta":226,"style":226},"\u002F\u002F Add server routes for providers\nnuxt.hook(\"nitro:config\", (nitroConfig) => {\n  nitroConfig.handlers = nitroConfig.handlers || [];\n\n  \u002F\u002F Google Drive proxy route\n  nitroConfig.handlers.push({\n    route: \"\u002Fpdf-proxy\u002Fgdrive\u002F**\",\n    handler: resolver.resolve(\".\u002Fruntime\u002Fserver\u002Froutes\u002Fpdf-proxy\u002Fgdrive\u002F[id]\"),\n  });\n\n  \u002F\u002F OneDrive proxy route (ADD THIS)\n  nitroConfig.handlers.push({\n    route: \"\u002Fpdf-proxy\u002Fonedrive\u002F**\",\n    handler: resolver.resolve(\n      \".\u002Fruntime\u002Fserver\u002Froutes\u002Fpdf-proxy\u002Fonedrive\u002F[id]\",\n    ),\n  });\n});\n",[216,1940,1941,1946,1978,2004,2008,2013,2030,2046,2074,2082,2086,2091,2107,2122,2136,2148,2155,2163],{"__ignoreMap":226},[230,1942,1943],{"class":232,"line":233},[230,1944,1945],{"class":236},"\u002F\u002F Add server routes for providers\n",[230,1947,1948,1951,1953,1956,1958,1960,1963,1965,1967,1969,1972,1974,1976],{"class":232,"line":240},[230,1949,1950],{"class":432},"nuxt",[230,1952,441],{"class":255},[230,1954,1955],{"class":385},"hook",[230,1957,389],{"class":432},[230,1959,266],{"class":255},[230,1961,1962],{"class":262},"nitro:config",[230,1964,266],{"class":255},[230,1966,401],{"class":255},[230,1968,624],{"class":255},[230,1970,1971],{"class":392},"nitroConfig",[230,1973,658],{"class":255},[230,1975,944],{"class":247},[230,1977,418],{"class":255},[230,1979,1980,1983,1985,1988,1990,1993,1995,1997,1999,2002],{"class":232,"line":291},[230,1981,1982],{"class":432},"  nitroConfig",[230,1984,441],{"class":255},[230,1986,1987],{"class":432},"handlers",[230,1989,256],{"class":255},[230,1991,1992],{"class":432}," nitroConfig",[230,1994,441],{"class":255},[230,1996,1987],{"class":432},[230,1998,482],{"class":255},[230,2000,2001],{"class":447}," []",[230,2003,288],{"class":255},[230,2005,2006],{"class":232,"line":298},[230,2007,295],{"emptyLinePlaceholder":294},[230,2009,2010],{"class":232,"line":304},[230,2011,2012],{"class":236},"  \u002F\u002F Google Drive proxy route\n",[230,2014,2015,2017,2019,2021,2023,2026,2028],{"class":232,"line":426},[230,2016,1982],{"class":432},[230,2018,441],{"class":255},[230,2020,1987],{"class":432},[230,2022,441],{"class":255},[230,2024,2025],{"class":385},"push",[230,2027,389],{"class":447},[230,2029,635],{"class":255},[230,2031,2032,2035,2037,2039,2042,2044],{"class":232,"line":453},[230,2033,2034],{"class":447},"    route",[230,2036,357],{"class":255},[230,2038,259],{"class":255},[230,2040,2041],{"class":262},"\u002Fpdf-proxy\u002Fgdrive\u002F**",[230,2043,266],{"class":255},[230,2045,582],{"class":255},[230,2047,2048,2051,2053,2056,2058,2061,2063,2065,2068,2070,2072],{"class":232,"line":458},[230,2049,2050],{"class":447},"    handler",[230,2052,357],{"class":255},[230,2054,2055],{"class":432}," resolver",[230,2057,441],{"class":255},[230,2059,2060],{"class":385},"resolve",[230,2062,389],{"class":447},[230,2064,266],{"class":255},[230,2066,2067],{"class":262},".\u002Fruntime\u002Fserver\u002Froutes\u002Fpdf-proxy\u002Fgdrive\u002F[id]",[230,2069,266],{"class":255},[230,2071,658],{"class":447},[230,2073,582],{"class":255},[230,2075,2076,2078,2080],{"class":232,"line":464},[230,2077,1765],{"class":255},[230,2079,658],{"class":447},[230,2081,288],{"class":255},[230,2083,2084],{"class":232,"line":494},[230,2085,295],{"emptyLinePlaceholder":294},[230,2087,2088],{"class":232,"line":499},[230,2089,2090],{"class":236},"  \u002F\u002F OneDrive proxy route (ADD THIS)\n",[230,2092,2093,2095,2097,2099,2101,2103,2105],{"class":232,"line":533},[230,2094,1982],{"class":432},[230,2096,441],{"class":255},[230,2098,1987],{"class":432},[230,2100,441],{"class":255},[230,2102,2025],{"class":385},[230,2104,389],{"class":447},[230,2106,635],{"class":255},[230,2108,2109,2111,2113,2115,2118,2120],{"class":232,"line":539},[230,2110,2034],{"class":447},[230,2112,357],{"class":255},[230,2114,259],{"class":255},[230,2116,2117],{"class":262},"\u002Fpdf-proxy\u002Fonedrive\u002F**",[230,2119,266],{"class":255},[230,2121,582],{"class":255},[230,2123,2124,2126,2128,2130,2132,2134],{"class":232,"line":544},[230,2125,2050],{"class":447},[230,2127,357],{"class":255},[230,2129,2055],{"class":432},[230,2131,441],{"class":255},[230,2133,2060],{"class":385},[230,2135,561],{"class":447},[230,2137,2138,2141,2144,2146],{"class":232,"line":550},[230,2139,2140],{"class":255},"      \"",[230,2142,2143],{"class":262},".\u002Fruntime\u002Fserver\u002Froutes\u002Fpdf-proxy\u002Fonedrive\u002F[id]",[230,2145,266],{"class":255},[230,2147,582],{"class":255},[230,2149,2150,2153],{"class":232,"line":564},[230,2151,2152],{"class":447},"    )",[230,2154,582],{"class":255},[230,2156,2157,2159,2161],{"class":232,"line":585},[230,2158,1765],{"class":255},[230,2160,658],{"class":447},[230,2162,288],{"class":255},[230,2164,2165,2167,2169],{"class":232,"line":597},[230,2166,511],{"class":255},[230,2168,658],{"class":432},[230,2170,288],{"class":255},[206,2172],{},[176,2174,2176],{"id":2175},"step-4-add-tests","Step 4: Add Tests",[172,2178,2179,2180,357],{},"Create a test file ",[216,2181,2182],{},"test\u002Fproviders.test.ts",[221,2184,2186],{"className":223,"code":2185,"language":225,"meta":226,"style":226},"import { describe, it, expect } from \"vitest\";\nimport { usePdfKitProvider } from \"..\u002Fsrc\u002Fruntime\u002Fcomposables\u002FusePdfKitProvider\";\n\ndescribe(\"usePdfKitProvider\", () => {\n  it(\"transforms OneDrive share ID correctly\", () => {\n    const result = usePdfKitProvider(\n      \"onedrive\",\n      \"u!aHR0cHM6Ly8xZHJ2Lm1zL2IvcyFBcXRhYmNkZWY\",\n    );\n\n    expect(result).toBe(\n      \"\u002Fpdf-proxy\u002Fonedrive\u002Fu!aHR0cHM6Ly8xZHJ2Lm1zL2IvcyFBcXRhYmNkZWY.pdf\",\n    );\n  });\n\n  it(\"uses custom baseUrl for OneDrive\", () => {\n    const result = usePdfKitProvider(\"onedrive\", \"share-123\", {\n      baseUrl: \"\u002Fcustom-proxy\",\n    });\n\n    expect(result).toBe(\"\u002Fcustom-proxy\u002Fshare-123.pdf\");\n  });\n});\n",[216,2187,2188,2222,2243,2247,2270,2292,2305,2315,2326,2332,2336,2355,2366,2372,2380,2384,2405,2436,2452,2460,2464,2491,2499],{"__ignoreMap":226},[230,2189,2190,2192,2195,2198,2200,2203,2205,2208,2211,2213,2215,2218,2220],{"class":232,"line":233},[230,2191,870],{"class":243},[230,2193,2194],{"class":255}," {",[230,2196,2197],{"class":432}," describe",[230,2199,401],{"class":255},[230,2201,2202],{"class":432}," it",[230,2204,401],{"class":255},[230,2206,2207],{"class":432}," expect",[230,2209,2210],{"class":255}," }",[230,2212,907],{"class":243},[230,2214,259],{"class":255},[230,2216,2217],{"class":262},"vitest",[230,2219,266],{"class":255},[230,2221,288],{"class":255},[230,2223,2224,2226,2228,2230,2232,2234,2236,2239,2241],{"class":232,"line":240},[230,2225,870],{"class":243},[230,2227,2194],{"class":255},[230,2229,558],{"class":432},[230,2231,2210],{"class":255},[230,2233,907],{"class":243},[230,2235,259],{"class":255},[230,2237,2238],{"class":262},"..\u002Fsrc\u002Fruntime\u002Fcomposables\u002FusePdfKitProvider",[230,2240,266],{"class":255},[230,2242,288],{"class":255},[230,2244,2245],{"class":232,"line":291},[230,2246,295],{"emptyLinePlaceholder":294},[230,2248,2249,2252,2254,2256,2259,2261,2263,2266,2268],{"class":232,"line":298},[230,2250,2251],{"class":385},"describe",[230,2253,389],{"class":432},[230,2255,266],{"class":255},[230,2257,2258],{"class":262},"usePdfKitProvider",[230,2260,266],{"class":255},[230,2262,401],{"class":255},[230,2264,2265],{"class":255}," ()",[230,2267,944],{"class":247},[230,2269,418],{"class":255},[230,2271,2272,2275,2277,2279,2282,2284,2286,2288,2290],{"class":232,"line":304},[230,2273,2274],{"class":385},"  it",[230,2276,389],{"class":447},[230,2278,266],{"class":255},[230,2280,2281],{"class":262},"transforms OneDrive share ID correctly",[230,2283,266],{"class":255},[230,2285,401],{"class":255},[230,2287,2265],{"class":255},[230,2289,944],{"class":247},[230,2291,418],{"class":255},[230,2293,2294,2296,2299,2301,2303],{"class":232,"line":426},[230,2295,1215],{"class":247},[230,2297,2298],{"class":432}," result",[230,2300,256],{"class":255},[230,2302,558],{"class":385},[230,2304,561],{"class":447},[230,2306,2307,2309,2311,2313],{"class":232,"line":453},[230,2308,2140],{"class":255},[230,2310,333],{"class":262},[230,2312,266],{"class":255},[230,2314,582],{"class":255},[230,2316,2317,2319,2322,2324],{"class":232,"line":458},[230,2318,2140],{"class":255},[230,2320,2321],{"class":262},"u!aHR0cHM6Ly8xZHJ2Lm1zL2IvcyFBcXRhYmNkZWY",[230,2323,266],{"class":255},[230,2325,582],{"class":255},[230,2327,2328,2330],{"class":232,"line":464},[230,2329,2152],{"class":447},[230,2331,288],{"class":255},[230,2333,2334],{"class":232,"line":494},[230,2335,295],{"emptyLinePlaceholder":294},[230,2337,2338,2341,2343,2346,2348,2350,2353],{"class":232,"line":499},[230,2339,2340],{"class":385},"    expect",[230,2342,389],{"class":447},[230,2344,2345],{"class":432},"result",[230,2347,658],{"class":447},[230,2349,441],{"class":255},[230,2351,2352],{"class":385},"toBe",[230,2354,561],{"class":447},[230,2356,2357,2359,2362,2364],{"class":232,"line":533},[230,2358,2140],{"class":255},[230,2360,2361],{"class":262},"\u002Fpdf-proxy\u002Fonedrive\u002Fu!aHR0cHM6Ly8xZHJ2Lm1zL2IvcyFBcXRhYmNkZWY.pdf",[230,2363,266],{"class":255},[230,2365,582],{"class":255},[230,2367,2368,2370],{"class":232,"line":539},[230,2369,2152],{"class":447},[230,2371,288],{"class":255},[230,2373,2374,2376,2378],{"class":232,"line":544},[230,2375,1765],{"class":255},[230,2377,658],{"class":447},[230,2379,288],{"class":255},[230,2381,2382],{"class":232,"line":550},[230,2383,295],{"emptyLinePlaceholder":294},[230,2385,2386,2388,2390,2392,2395,2397,2399,2401,2403],{"class":232,"line":564},[230,2387,2274],{"class":385},[230,2389,389],{"class":447},[230,2391,266],{"class":255},[230,2393,2394],{"class":262},"uses custom baseUrl for OneDrive",[230,2396,266],{"class":255},[230,2398,401],{"class":255},[230,2400,2265],{"class":255},[230,2402,944],{"class":247},[230,2404,418],{"class":255},[230,2406,2407,2409,2411,2413,2415,2417,2419,2421,2423,2425,2427,2430,2432,2434],{"class":232,"line":585},[230,2408,1215],{"class":247},[230,2410,2298],{"class":432},[230,2412,256],{"class":255},[230,2414,558],{"class":385},[230,2416,389],{"class":447},[230,2418,266],{"class":255},[230,2420,333],{"class":262},[230,2422,266],{"class":255},[230,2424,401],{"class":255},[230,2426,259],{"class":255},[230,2428,2429],{"class":262},"share-123",[230,2431,266],{"class":255},[230,2433,401],{"class":255},[230,2435,418],{"class":255},[230,2437,2438,2441,2443,2445,2448,2450],{"class":232,"line":597},[230,2439,2440],{"class":447},"      baseUrl",[230,2442,357],{"class":255},[230,2444,259],{"class":255},[230,2446,2447],{"class":262},"\u002Fcustom-proxy",[230,2449,266],{"class":255},[230,2451,582],{"class":255},[230,2453,2454,2456,2458],{"class":232,"line":609},[230,2455,1144],{"class":255},[230,2457,658],{"class":447},[230,2459,288],{"class":255},[230,2461,2462],{"class":232,"line":618},[230,2463,295],{"emptyLinePlaceholder":294},[230,2465,2466,2468,2470,2472,2474,2476,2478,2480,2482,2485,2487,2489],{"class":232,"line":638},[230,2467,2340],{"class":385},[230,2469,389],{"class":447},[230,2471,2345],{"class":432},[230,2473,658],{"class":447},[230,2475,441],{"class":255},[230,2477,2352],{"class":385},[230,2479,389],{"class":447},[230,2481,266],{"class":255},[230,2483,2484],{"class":262},"\u002Fcustom-proxy\u002Fshare-123.pdf",[230,2486,266],{"class":255},[230,2488,658],{"class":447},[230,2490,288],{"class":255},[230,2492,2493,2495,2497],{"class":232,"line":663},[230,2494,1765],{"class":255},[230,2496,658],{"class":447},[230,2498,288],{"class":255},[230,2500,2501,2503,2505],{"class":232,"line":674},[230,2502,511],{"class":255},[230,2504,658],{"class":432},[230,2506,288],{"class":255},[206,2508],{},[176,2510,2512],{"id":2511},"step-5-add-documentation","Step 5: Add Documentation",[172,2514,2515,2516,357],{},"Create documentation for your provider in ",[216,2517,2518],{},"docs\u002Fcontent\u002Fen\u002F5.advanced\u002F2.providers.md",[221,2520,2524],{"className":2521,"code":2522,"language":2523,"meta":226,"style":226},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","### OneDrive Provider\n\nLoad PDFs from OneDrive share links.\n\n\\`\\`\\`vue\n\u003Ctemplate>\n\u003CNuxtPdfKit\n    provider=\"onedrive\"\n    src=\"u!aHR0cHM6Ly8xZHJ2Lm1zL2IvcyFBcXRhYmNkZWY\"\n  \u002F>\n\u003C\u002Ftemplate>\n\\`\\`\\`\n\n**How to get OneDrive Share ID:**\n\n1. Right-click your file in OneDrive\n2. Click \"Share\" → \"Copy link\"\n3. Extract the share ID from the URL\n4. Use that ID as the `src` prop\n","markdown",[216,2525,2526,2531,2535,2540,2544,2549,2554,2559,2564,2569,2574,2579,2584,2588,2593,2597,2602,2607,2612],{"__ignoreMap":226},[230,2527,2528],{"class":232,"line":233},[230,2529,2530],{},"### OneDrive Provider\n",[230,2532,2533],{"class":232,"line":240},[230,2534,295],{"emptyLinePlaceholder":294},[230,2536,2537],{"class":232,"line":291},[230,2538,2539],{},"Load PDFs from OneDrive share links.\n",[230,2541,2542],{"class":232,"line":298},[230,2543,295],{"emptyLinePlaceholder":294},[230,2545,2546],{"class":232,"line":304},[230,2547,2548],{},"\\`\\`\\`vue\n",[230,2550,2551],{"class":232,"line":426},[230,2552,2553],{},"\u003Ctemplate>\n",[230,2555,2556],{"class":232,"line":453},[230,2557,2558],{},"\u003CNuxtPdfKit\n",[230,2560,2561],{"class":232,"line":458},[230,2562,2563],{},"    provider=\"onedrive\"\n",[230,2565,2566],{"class":232,"line":464},[230,2567,2568],{},"    src=\"u!aHR0cHM6Ly8xZHJ2Lm1zL2IvcyFBcXRhYmNkZWY\"\n",[230,2570,2571],{"class":232,"line":494},[230,2572,2573],{},"  \u002F>\n",[230,2575,2576],{"class":232,"line":499},[230,2577,2578],{},"\u003C\u002Ftemplate>\n",[230,2580,2581],{"class":232,"line":533},[230,2582,2583],{},"\\`\\`\\`\n",[230,2585,2586],{"class":232,"line":539},[230,2587,295],{"emptyLinePlaceholder":294},[230,2589,2590],{"class":232,"line":544},[230,2591,2592],{},"**How to get OneDrive Share ID:**\n",[230,2594,2595],{"class":232,"line":550},[230,2596,295],{"emptyLinePlaceholder":294},[230,2598,2599],{"class":232,"line":564},[230,2600,2601],{},"1. Right-click your file in OneDrive\n",[230,2603,2604],{"class":232,"line":585},[230,2605,2606],{},"2. Click \"Share\" → \"Copy link\"\n",[230,2608,2609],{"class":232,"line":597},[230,2610,2611],{},"3. Extract the share ID from the URL\n",[230,2613,2614],{"class":232,"line":609},[230,2615,2616],{},"4. Use that ID as the `src` prop\n",[206,2618],{},[176,2620,2622],{"id":2621},"step-6-submit-pull-request","Step 6: Submit Pull Request",[183,2624,2625,2631,2640,2648,2656],{},[186,2626,2627,2630],{},[189,2628,2629],{},"Fork the repository"," on GitHub",[186,2632,2633,2636,2637],{},[189,2634,2635],{},"Create a feature branch",": ",[216,2638,2639],{},"git checkout -b feat\u002Fonedrive-provider",[186,2641,2642,2636,2645],{},[189,2643,2644],{},"Commit your changes",[216,2646,2647],{},"git commit -m \"feat: add OneDrive provider support\"",[186,2649,2650,2636,2653],{},[189,2651,2652],{},"Push to your fork",[216,2654,2655],{},"git push origin feat\u002Fonedrive-provider",[186,2657,2658,2661,2662],{},[189,2659,2660],{},"Open a Pull Request"," with:\n",[2663,2664,2665,2668,2671],"ul",{},[186,2666,2667],{},"Clear description of the provider",[186,2669,2670],{},"Usage examples",[186,2672,2673],{},"Any limitations or known issues",[206,2675],{},[176,2677,2679],{"id":2678},"provider-checklist","Provider Checklist",[172,2681,2682],{},"Before submitting your PR, make sure:",[2663,2684,2687,2699,2708,2714,2723,2729,2735,2741,2747],{"className":2685},[2686],"contains-task-list",[186,2688,2691,2695,2696],{"className":2689},[2690],"task-list-item",[2692,2693],"input",{"disabled":294,"type":2694},"checkbox"," Provider type added to ",[216,2697,2698],{},"types.ts",[186,2700,2702,2704,2705],{"className":2701},[2690],[2692,2703],{"disabled":294,"type":2694}," Transformation logic added to ",[216,2706,2707],{},"usePdfKitProvider.ts",[186,2709,2711,2713],{"className":2710},[2690],[2692,2712],{"disabled":294,"type":2694}," Server route created (if needed)",[186,2715,2717,2719,2720],{"className":2716},[2690],[2692,2718],{"disabled":294,"type":2694}," Server route registered in ",[216,2721,2722],{},"module.ts",[186,2724,2726,2728],{"className":2725},[2690],[2692,2727],{"disabled":294,"type":2694}," Tests added and passing",[186,2730,2732,2734],{"className":2731},[2690],[2692,2733],{"disabled":294,"type":2694}," Documentation added",[186,2736,2738,2740],{"className":2737},[2690],[2692,2739],{"disabled":294,"type":2694}," Example usage in playground",[186,2742,2744,2746],{"className":2743},[2690],[2692,2745],{"disabled":294,"type":2694}," TypeScript types are correct",[186,2748,2750,2752],{"className":2749},[2690],[2692,2751],{"disabled":294,"type":2694}," No lint errors",[206,2754],{},[176,2756,2758],{"id":2757},"best-practices","Best Practices",[852,2760,2762],{"id":2761},"error-handling","Error Handling",[172,2764,2765],{},"Always provide clear error messages:",[221,2767,2769],{"className":223,"code":2768,"language":225,"meta":226,"style":226},"if (!fileId) {\n  throw createError({\n    statusCode: 400,\n    statusMessage: \"File ID is missing. Please provide a valid share link.\",\n  });\n}\n",[216,2770,2771,2785,2796,2807,2823,2831],{"__ignoreMap":226},[230,2772,2773,2776,2778,2780,2783],{"class":232,"line":233},[230,2774,2775],{"class":243},"if",[230,2777,624],{"class":432},[230,2779,627],{"class":255},[230,2781,2782],{"class":432},"fileId) ",[230,2784,635],{"class":255},[230,2786,2787,2790,2792,2794],{"class":232,"line":240},[230,2788,2789],{"class":243},"  throw",[230,2791,1107],{"class":385},[230,2793,389],{"class":447},[230,2795,635],{"class":255},[230,2797,2798,2801,2803,2805],{"class":232,"line":291},[230,2799,2800],{"class":447},"    statusCode",[230,2802,357],{"class":255},[230,2804,1121],{"class":1071},[230,2806,582],{"class":255},[230,2808,2809,2812,2814,2816,2819,2821],{"class":232,"line":298},[230,2810,2811],{"class":447},"    statusMessage",[230,2813,357],{"class":255},[230,2815,259],{"class":255},[230,2817,2818],{"class":262},"File ID is missing. Please provide a valid share link.",[230,2820,266],{"class":255},[230,2822,582],{"class":255},[230,2824,2825,2827,2829],{"class":232,"line":304},[230,2826,1765],{"class":255},[230,2828,658],{"class":447},[230,2830,288],{"class":255},[230,2832,2833],{"class":232,"line":426},[230,2834,536],{"class":255},[852,2836,2838],{"id":2837},"logging","Logging",[172,2840,2841],{},"Use consistent logging format:",[221,2843,2845],{"className":223,"code":2844,"language":225,"meta":226,"style":226},"console.log(\"[nuxt-pdf-kit] OneDrive - Processing file:\", fileId);\nconsole.error(\"[nuxt-pdf-kit] OneDrive error:\", error.message);\n",[216,2846,2847,2873],{"__ignoreMap":226},[230,2848,2849,2852,2854,2857,2859,2861,2864,2866,2868,2871],{"class":232,"line":233},[230,2850,2851],{"class":432},"console",[230,2853,441],{"class":255},[230,2855,2856],{"class":385},"log",[230,2858,389],{"class":432},[230,2860,266],{"class":255},[230,2862,2863],{"class":262},"[nuxt-pdf-kit] OneDrive - Processing file:",[230,2865,266],{"class":255},[230,2867,401],{"class":255},[230,2869,2870],{"class":432}," fileId)",[230,2872,288],{"class":255},[230,2874,2875,2877,2879,2881,2883,2885,2887,2889,2891,2893,2895,2898],{"class":232,"line":240},[230,2876,2851],{"class":432},[230,2878,441],{"class":255},[230,2880,1773],{"class":385},[230,2882,389],{"class":432},[230,2884,266],{"class":255},[230,2886,1798],{"class":262},[230,2888,266],{"class":255},[230,2890,401],{"class":255},[230,2892,1805],{"class":432},[230,2894,441],{"class":255},[230,2896,2897],{"class":432},"message)",[230,2899,288],{"class":255},[852,2901,2903],{"id":2902},"caching","Caching",[172,2905,2906],{},"Set appropriate cache headers:",[221,2908,2910],{"className":223,"code":2909,"language":225,"meta":226,"style":226},"\u002F\u002F Cache for 24 hours\nsetResponseHeader(event, \"Cache-Control\", \"public, max-age=86400\");\n\n\u002F\u002F Or disable caching for sensitive files\nsetResponseHeader(\n  event,\n  \"Cache-Control\",\n  \"no-cache, no-store, must-revalidate\",\n);\n",[216,2911,2912,2917,2945,2949,2954,2960,2967,2978,2989],{"__ignoreMap":226},[230,2913,2914],{"class":232,"line":233},[230,2915,2916],{"class":236},"\u002F\u002F Cache for 24 hours\n",[230,2918,2919,2922,2925,2927,2929,2931,2933,2935,2937,2939,2941,2943],{"class":232,"line":240},[230,2920,2921],{"class":385},"setResponseHeader",[230,2923,2924],{"class":432},"(event",[230,2926,401],{"class":255},[230,2928,259],{"class":255},[230,2930,1600],{"class":262},[230,2932,266],{"class":255},[230,2934,401],{"class":255},[230,2936,259],{"class":255},[230,2938,1609],{"class":262},[230,2940,266],{"class":255},[230,2942,658],{"class":432},[230,2944,288],{"class":255},[230,2946,2947],{"class":232,"line":291},[230,2948,295],{"emptyLinePlaceholder":294},[230,2950,2951],{"class":232,"line":298},[230,2952,2953],{"class":236},"\u002F\u002F Or disable caching for sensitive files\n",[230,2955,2956,2958],{"class":232,"line":304},[230,2957,2921],{"class":385},[230,2959,561],{"class":432},[230,2961,2962,2965],{"class":232,"line":426},[230,2963,2964],{"class":432},"  event",[230,2966,582],{"class":255},[230,2968,2969,2972,2974,2976],{"class":232,"line":453},[230,2970,2971],{"class":255},"  \"",[230,2973,1600],{"class":262},[230,2975,266],{"class":255},[230,2977,582],{"class":255},[230,2979,2980,2982,2985,2987],{"class":232,"line":458},[230,2981,2971],{"class":255},[230,2983,2984],{"class":262},"no-cache, no-store, must-revalidate",[230,2986,266],{"class":255},[230,2988,582],{"class":255},[230,2990,2991,2993],{"class":232,"line":464},[230,2992,658],{"class":432},[230,2994,288],{"class":255},[852,2996,2998],{"id":2997},"security","Security",[2663,3000,3001,3004,3007,3010],{},[186,3002,3003],{},"Never expose API keys or secrets in client-side code",[186,3005,3006],{},"Validate all user inputs",[186,3008,3009],{},"Use HTTPS for all external requests",[186,3011,3012],{},"Set appropriate CORS headers",[206,3014],{},[176,3016,3018],{"id":3017},"need-help","Need Help?",[2663,3020,3021,3027,3033],{},[186,3022,3023,3026],{},[189,3024,3025],{},"Discord",": Join our community server",[186,3028,3029,3032],{},[189,3030,3031],{},"GitHub Issues",": Open an issue for questions",[186,3034,3035,2636,3038],{},[189,3036,3037],{},"Email",[3039,3040,3042],"a",{"href":3041},"mailto:contact@nuxt-pdf-kit.com","contact@nuxt-pdf-kit.com",[172,3044,3045],{},"We're excited to see what providers you'll add! 🚀",[3047,3048,3049],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":226,"searchDepth":240,"depth":240,"links":3051},[3052,3053,3054,3055,3059,3060,3061,3062,3063,3069],{"id":178,"depth":240,"text":54},{"id":210,"depth":240,"text":211},{"id":350,"depth":240,"text":351},{"id":846,"depth":240,"text":847,"children":3056},[3057,3058],{"id":854,"depth":291,"text":855},{"id":1928,"depth":291,"text":1929},{"id":2175,"depth":240,"text":2176},{"id":2511,"depth":240,"text":2512},{"id":2621,"depth":240,"text":2622},{"id":2678,"depth":240,"text":2679},{"id":2757,"depth":240,"text":2758,"children":3064},[3065,3066,3067,3068],{"id":2761,"depth":291,"text":2762},{"id":2837,"depth":291,"text":2838},{"id":2902,"depth":291,"text":2903},{"id":2997,"depth":291,"text":2998},{"id":3017,"depth":240,"text":3018},"Learn how to contribute new file providers to Nuxt PDF Kit","md",null,{},{"title":136,"icon":139},{"title":162,"description":3070},"ri_Scjk5vBEvMwHTl-W68JJYU143cYFKnvZvhpuN9pE",[3078,3080],{"title":131,"path":132,"stem":133,"description":3079,"icon":134,"children":-1},"Learn how to use different file sources with Nuxt PDF Kit",{"title":141,"path":142,"stem":143,"description":3081,"icon":144,"children":-1},"Customize the appearance of Nuxt PDF Kit.",1785862384646]