[{"data":1,"prerenderedAt":1043},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:NOYfljr6j9esfiUnNqB0NRyt_n0APQ9oija3j6Tl28w":197,"content-page-surround:docs:NOYfljr6j9esfiUnNqB0NRyt_n0APQ9oija3j6Tl28w":1028,"i-lucide:terminal":1031,"i-logos:typescript-icon":1035,"i-lucide:clipboard":1038,"i-lucide:file-json":1040},[4,25,55,119,184],{"title":5,"id":6,"canonicalKey":7,"locale":8,"draft":9,"icon":10,"sidebar":11,"path":12,"children":13},"Start","content:docs:1.getting-started:.navigation.yml","1","en",false,"lucide:rocket","group","\u002Fdocs\u002Fgetting-started",[14,20],{"title":15,"id":16,"canonicalKey":17,"locale":8,"draft":9,"icon":18,"path":19},"Install Nuxt PDF","content:docs:1.getting-started:2.installation.md","1\u002F2","lucide:download","\u002Fdocs\u002Fgetting-started\u002Finstallation",{"title":21,"id":22,"canonicalKey":23,"locale":8,"draft":9,"icon":10,"path":24},"Render your first PDF","content:docs:1.getting-started:3.quickstart.md","1\u002F3","\u002Fdocs\u002Fgetting-started\u002Fquickstart",{"title":26,"page":9,"canonicalKey":27,"locale":8,"id":28,"draft":9,"icon":29,"sidebar":11,"children":30},"Learn","2","content:docs:2.learn:.navigation.yml","lucide:graduation-cap",[31,37,43,49],{"title":32,"id":33,"canonicalKey":34,"locale":8,"draft":9,"icon":35,"path":36},"Templates and the registry","content:docs:2.learn:1.templates-and-registry.md","2\u002F1","lucide:files","\u002Fdocs\u002Flearn\u002Ftemplates-and-registry",{"title":38,"id":39,"canonicalKey":40,"locale":8,"draft":9,"icon":41,"path":42},"The document tree","content:docs:2.learn:2.document-tree.md","2\u002F2","lucide:component","\u002Fdocs\u002Flearn\u002Fdocument-tree",{"title":44,"id":45,"canonicalKey":46,"locale":8,"draft":9,"icon":47,"path":48},"Styling and layout","content:docs:2.learn:3.styling-and-layout.md","2\u002F3","lucide:ruler","\u002Fdocs\u002Flearn\u002Fstyling-and-layout",{"title":50,"id":51,"canonicalKey":52,"locale":8,"draft":9,"icon":53,"path":54},"Runtime and data loading","content:docs:2.learn:4.runtime-and-data.md","2\u002F4","lucide:server","\u002Fdocs\u002Flearn\u002Fruntime-and-data",{"title":56,"page":9,"canonicalKey":57,"locale":8,"id":58,"draft":9,"icon":59,"sidebar":11,"children":60},"Guides","3","content:docs:3.guides:.navigation.yml","lucide:compass",[61,67,73,79,85,91,97,103,108,114],{"title":62,"id":63,"canonicalKey":64,"locale":8,"draft":9,"icon":65,"path":66},"Build reusable document components","content:docs:3.guides:1.reusable-components.md","3\u002F1","lucide:blocks","\u002Fdocs\u002Fguides\u002Freusable-components",{"title":68,"id":69,"canonicalKey":70,"locale":8,"draft":9,"icon":71,"path":72},"Add images and fonts","content:docs:3.guides:2.images-and-fonts.md","3\u002F2","lucide:image","\u002Fdocs\u002Fguides\u002Fimages-and-fonts",{"title":74,"id":75,"canonicalKey":76,"locale":8,"draft":9,"icon":77,"path":78},"Configure remote images","content:docs:3.guides:3.remote-images.md","3\u002F3","lucide:cloud-download","\u002Fdocs\u002Fguides\u002Fremote-images",{"title":80,"id":81,"canonicalKey":82,"locale":8,"draft":9,"icon":83,"path":84},"Add links, bookmarks, and a table of contents","content:docs:3.guides:4.contents-links-bookmarks.md","3\u002F4","lucide:list-tree","\u002Fdocs\u002Fguides\u002Fcontents-links-bookmarks",{"title":86,"id":87,"canonicalKey":88,"locale":8,"draft":9,"icon":89,"path":90},"Draw SVG graphics","content:docs:3.guides:5.svg-graphics.md","3\u002F5","lucide:shapes","\u002Fdocs\u002Fguides\u002Fsvg-graphics",{"title":92,"id":93,"canonicalKey":94,"locale":8,"draft":9,"icon":95,"path":96},"Test a PDF","content:docs:3.guides:6.testing.md","3\u002F6","lucide:flask-conical","\u002Fdocs\u002Fguides\u002Ftesting",{"title":98,"id":99,"canonicalKey":100,"locale":8,"draft":9,"icon":101,"path":102},"Diagnose render failures","content:docs:3.guides:7.errors-and-debugging.md","3\u002F7","lucide:bug","\u002Fdocs\u002Fguides\u002Ferrors-and-debugging",{"title":104,"id":105,"canonicalKey":106,"locale":8,"draft":9,"icon":53,"path":107},"Deploy and operate","content:docs:3.guides:8.deployment.md","3\u002F8","\u002Fdocs\u002Fguides\u002Fdeployment",{"title":109,"id":110,"canonicalKey":111,"locale":8,"draft":9,"icon":112,"path":113},"Production recipes","content:docs:3.guides:9.recipes.md","3\u002F9","lucide:notebook-tabs","\u002Fdocs\u002Fguides\u002Frecipes",{"title":115,"id":116,"canonicalKey":117,"locale":8,"draft":9,"icon":53,"path":118},"Render outside Nitro","content:docs:3.guides:10.standalone-node.md","3\u002F10","\u002Fdocs\u002Fguides\u002Fstandalone-node",{"title":120,"page":9,"canonicalKey":121,"locale":8,"id":122,"draft":9,"icon":123,"sidebar":11,"children":124},"Reference","4","content:docs:4.reference:.navigation.yml","lucide:book-marked",[125,131,137,143,149,155,161,167,173,179],{"title":126,"id":127,"canonicalKey":128,"locale":8,"draft":9,"icon":129,"path":130},"Module options","content:docs:4.reference:1.module-options.md","4\u002F1","lucide:sliders","\u002Fdocs\u002Freference\u002Fmodule-options",{"title":132,"id":133,"canonicalKey":134,"locale":8,"draft":9,"icon":135,"path":136},"definePdf","content:docs:4.reference:2.define-pdf.md","4\u002F2","lucide:settings-2","\u002Fdocs\u002Freference\u002Fdefine-pdf",{"title":138,"id":139,"canonicalKey":140,"locale":8,"draft":9,"icon":141,"path":142},"Registry and render result","content:docs:4.reference:3.registry.md","4\u002F3","lucide:braces","\u002Fdocs\u002Freference\u002Fregistry",{"title":144,"id":145,"canonicalKey":146,"locale":8,"draft":9,"icon":147,"path":148},"Primitives","content:docs:4.reference:4.primitives.md","4\u002F4","lucide:box","\u002Fdocs\u002Freference\u002Fprimitives",{"title":150,"id":151,"canonicalKey":152,"locale":8,"draft":9,"icon":153,"path":154},"Styles","content:docs:4.reference:5.styles.md","4\u002F5","lucide:palette","\u002Fdocs\u002Freference\u002Fstyles",{"title":156,"id":157,"canonicalKey":158,"locale":8,"draft":9,"icon":159,"path":160},"Page sizes","content:docs:4.reference:6.page-sizes.md","4\u002F6","lucide:file","\u002Fdocs\u002Freference\u002Fpage-sizes",{"title":162,"id":163,"canonicalKey":164,"locale":8,"draft":9,"icon":165,"path":166},"Composables","content:docs:4.reference:7.composables.md","4\u002F7","lucide:function-square","\u002Fdocs\u002Freference\u002Fcomposables",{"title":168,"id":169,"canonicalKey":170,"locale":8,"draft":9,"icon":171,"path":172},"Errors and limits","content:docs:4.reference:8.errors-and-limits.md","4\u002F8","lucide:triangle-alert","\u002Fdocs\u002Freference\u002Ferrors-and-limits",{"title":174,"id":175,"canonicalKey":176,"locale":8,"draft":9,"icon":177,"path":178},"Test utilities","content:docs:4.reference:9.test-utilities.md","4\u002F9","lucide:test-tube","\u002Fdocs\u002Freference\u002Ftest-utilities",{"title":180,"id":181,"canonicalKey":182,"locale":8,"draft":9,"icon":141,"path":183},"Standalone build and runtime","content:docs:4.reference:10.standalone.md","4\u002F10","\u002Fdocs\u002Freference\u002Fstandalone",{"title":185,"id":186,"canonicalKey":187,"locale":8,"draft":9,"icon":188,"sidebar":11,"path":189,"children":190},"Examples and support","content:docs:5.examples:.navigation.yml","5","lucide:layout-grid","\u002Fdocs\u002Fexamples",[191],{"title":192,"id":193,"canonicalKey":194,"locale":8,"draft":9,"icon":195,"path":196},"Supported behavior and limitations","content:docs:5.examples:2.supported-behavior.md","5\u002F2","lucide:scale","\u002Fdocs\u002Fexamples\u002Fsupported-behavior",{"title":115,"description":198,"icon":53,"body":199,"type":1014,"id":116,"canonicalKey":117,"draft":9,"partial":9,"locale":8,"collection":1015,"navigationFile":9,"file":1016,"resolvedRefs":1022,"route":1023,"resolution":1025},"Compile PDF templates once and render the generated registry in a Node worker.",{"type":200,"children":201,"toc":1006},"root",[202,210,217,243,555,581,586,608,634,639,645,691,955,960,972,977,983,988,993],{"type":203,"tag":204,"props":205,"children":206},"element","p",{},[207],{"type":208,"value":209},"text","Use the standalone build when a Node worker owns document rendering outside\nNitro. Keep the Nuxt module for authoring and preview. Both paths use the same\ncompiler, resource admission, registry, and PDF engine.",{"type":203,"tag":211,"props":212,"children":214},"h2",{"id":213},"build-the-registry",[215],{"type":208,"value":216},"Build the registry",{"type":203,"tag":204,"props":218,"children":219},{},[220,222,228,230,234,236,241],{"type":208,"value":221},"Keep trusted templates in ",{"type":203,"tag":223,"props":224,"children":225},"code",{},[226],{"type":208,"value":227},"pdfs\u002F",{"type":208,"value":229}," at the application root. Import application\nhelpers explicitly with relative paths. The standalone build does not read\nNuxt configuration, aliases, auto-imports, or layer configuration. PDF primitives,\n",{"type":203,"tag":223,"props":231,"children":232},{},[233],{"type":208,"value":132},{"type":208,"value":235},", and ",{"type":203,"tag":223,"props":237,"children":238},{},[239],{"type":208,"value":240},"usePdfPageNumbers",{"type":208,"value":242}," remain available in templates.\nPackage imports must provide compiled JavaScript. Do not import source-only\npackages or add runtime filesystem reads to templates or their helpers.",{"type":203,"tag":244,"props":245,"children":249},"pre",{"language":246,"filename":247,"class":248},"ts","scripts\u002Fbuild-pdfs.mjs","shiki shiki-themes material-theme-lighter material-theme-palenight dark:material-theme-palenight",[250],{"type":203,"tag":223,"props":251,"children":253},{"class":252},"language-ts",[254,304,306,309,310,333,334,373,374,403,404,486,487,541,542],{"type":203,"tag":255,"props":256,"children":259},"span",{"class":257,"style":258},"line","display: inline",[260,266,272,278,283,288,293,299],{"type":203,"tag":255,"props":261,"children":263},{"style":262},"color:#39ADB5;--shiki-light-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[264],{"type":208,"value":265},"import",{"type":203,"tag":255,"props":267,"children":269},{"style":268},"color:#39ADB5;--shiki-dark:#89DDFF",[270],{"type":208,"value":271}," {",{"type":203,"tag":255,"props":273,"children":275},{"style":274},"color:#90A4AE;--shiki-dark:#BABED8",[276],{"type":208,"value":277}," buildPdfRegistry",{"type":203,"tag":255,"props":279,"children":280},{"style":268},[281],{"type":208,"value":282}," }",{"type":203,"tag":255,"props":284,"children":285},{"style":262},[286],{"type":208,"value":287}," from",{"type":203,"tag":255,"props":289,"children":290},{"style":268},[291],{"type":208,"value":292}," '",{"type":203,"tag":255,"props":294,"children":296},{"style":295},"color:#91B859;--shiki-dark:#C3E88D",[297],{"type":208,"value":298},"@lupinum\u002Fnuxt-pdf\u002Fbuild",{"type":203,"tag":255,"props":300,"children":301},{"style":268},[302],{"type":208,"value":303},"'",{"type":208,"value":305},"\n",{"type":203,"tag":255,"props":307,"children":308},{"class":257,"style":258},[],{"type":208,"value":305},{"type":203,"tag":255,"props":311,"children":312},{"class":257,"style":258},[313,318,323,328],{"type":203,"tag":255,"props":314,"children":315},{"style":262},[316],{"type":208,"value":317},"await",{"type":203,"tag":255,"props":319,"children":321},{"style":320},"color:#6182B8;--shiki-dark:#82AAFF",[322],{"type":208,"value":277},{"type":203,"tag":255,"props":324,"children":325},{"style":274},[326],{"type":208,"value":327},"(",{"type":203,"tag":255,"props":329,"children":330},{"style":268},[331],{"type":208,"value":332},"{",{"type":208,"value":305},{"type":203,"tag":255,"props":335,"children":336},{"class":257,"style":258},[337,343,348,353,358,363,368],{"type":203,"tag":255,"props":338,"children":340},{"style":339},"color:#E53935;--shiki-dark:#F07178",[341],{"type":208,"value":342},"  rootDir",{"type":203,"tag":255,"props":344,"children":345},{"style":268},[346],{"type":208,"value":347},":",{"type":203,"tag":255,"props":349,"children":350},{"style":274},[351],{"type":208,"value":352}," process",{"type":203,"tag":255,"props":354,"children":355},{"style":268},[356],{"type":208,"value":357},".",{"type":203,"tag":255,"props":359,"children":360},{"style":320},[361],{"type":208,"value":362},"cwd",{"type":203,"tag":255,"props":364,"children":365},{"style":274},[366],{"type":208,"value":367},"()",{"type":203,"tag":255,"props":369,"children":370},{"style":268},[371],{"type":208,"value":372},",",{"type":208,"value":305},{"type":203,"tag":255,"props":375,"children":376},{"class":257,"style":258},[377,382,386,390,395,399],{"type":203,"tag":255,"props":378,"children":379},{"style":339},[380],{"type":208,"value":381},"  outDir",{"type":203,"tag":255,"props":383,"children":384},{"style":268},[385],{"type":208,"value":347},{"type":203,"tag":255,"props":387,"children":388},{"style":268},[389],{"type":208,"value":292},{"type":203,"tag":255,"props":391,"children":392},{"style":295},[393],{"type":208,"value":394},".\u002Fgenerated\u002Fpdfs",{"type":203,"tag":255,"props":396,"children":397},{"style":268},[398],{"type":208,"value":303},{"type":203,"tag":255,"props":400,"children":401},{"style":268},[402],{"type":208,"value":372},{"type":208,"value":305},{"type":203,"tag":255,"props":405,"children":406},{"class":257,"style":258},[407,412,416,421,425,430,434,438,443,447,451,456,460,464,469,473,477,482],{"type":203,"tag":255,"props":408,"children":409},{"style":339},[410],{"type":208,"value":411},"  fonts",{"type":203,"tag":255,"props":413,"children":414},{"style":268},[415],{"type":208,"value":347},{"type":203,"tag":255,"props":417,"children":418},{"style":274},[419],{"type":208,"value":420}," [",{"type":203,"tag":255,"props":422,"children":423},{"style":268},[424],{"type":208,"value":332},{"type":203,"tag":255,"props":426,"children":427},{"style":339},[428],{"type":208,"value":429}," family",{"type":203,"tag":255,"props":431,"children":432},{"style":268},[433],{"type":208,"value":347},{"type":203,"tag":255,"props":435,"children":436},{"style":268},[437],{"type":208,"value":292},{"type":203,"tag":255,"props":439,"children":440},{"style":295},[441],{"type":208,"value":442},"Invoice Sans",{"type":203,"tag":255,"props":444,"children":445},{"style":268},[446],{"type":208,"value":303},{"type":203,"tag":255,"props":448,"children":449},{"style":268},[450],{"type":208,"value":372},{"type":203,"tag":255,"props":452,"children":453},{"style":339},[454],{"type":208,"value":455}," src",{"type":203,"tag":255,"props":457,"children":458},{"style":268},[459],{"type":208,"value":347},{"type":203,"tag":255,"props":461,"children":462},{"style":268},[463],{"type":208,"value":292},{"type":203,"tag":255,"props":465,"children":466},{"style":295},[467],{"type":208,"value":468},"Roboto-Regular.ttf",{"type":203,"tag":255,"props":470,"children":471},{"style":268},[472],{"type":208,"value":303},{"type":203,"tag":255,"props":474,"children":475},{"style":268},[476],{"type":208,"value":282},{"type":203,"tag":255,"props":478,"children":479},{"style":274},[480],{"type":208,"value":481},"]",{"type":203,"tag":255,"props":483,"children":484},{"style":268},[485],{"type":208,"value":372},{"type":208,"value":305},{"type":203,"tag":255,"props":488,"children":489},{"class":257,"style":258},[490,495,499,503,508,512,518,522,527,531,536],{"type":203,"tag":255,"props":491,"children":492},{"style":339},[493],{"type":208,"value":494},"  limits",{"type":203,"tag":255,"props":496,"children":497},{"style":268},[498],{"type":208,"value":347},{"type":203,"tag":255,"props":500,"children":501},{"style":268},[502],{"type":208,"value":271},{"type":203,"tag":255,"props":504,"children":505},{"style":339},[506],{"type":208,"value":507}," maxPages",{"type":203,"tag":255,"props":509,"children":510},{"style":268},[511],{"type":208,"value":347},{"type":203,"tag":255,"props":513,"children":515},{"style":514},"color:#F76D47;--shiki-dark:#F78C6C",[516],{"type":208,"value":517}," 100",{"type":203,"tag":255,"props":519,"children":520},{"style":268},[521],{"type":208,"value":372},{"type":203,"tag":255,"props":523,"children":524},{"style":339},[525],{"type":208,"value":526}," maxOutputBytes",{"type":203,"tag":255,"props":528,"children":529},{"style":268},[530],{"type":208,"value":347},{"type":203,"tag":255,"props":532,"children":533},{"style":514},[534],{"type":208,"value":535}," 8_000_000",{"type":203,"tag":255,"props":537,"children":538},{"style":268},[539],{"type":208,"value":540}," },",{"type":208,"value":305},{"type":203,"tag":255,"props":543,"children":544},{"class":257,"style":258},[545,550],{"type":203,"tag":255,"props":546,"children":547},{"style":268},[548],{"type":208,"value":549},"}",{"type":203,"tag":255,"props":551,"children":552},{"style":274},[553],{"type":208,"value":554},")",{"type":203,"tag":204,"props":556,"children":557},{},[558,560,565,567,572,574,579],{"type":208,"value":559},"Put the configured font in ",{"type":203,"tag":223,"props":561,"children":562},{},[563],{"type":208,"value":564},"pdfs\u002Ffonts\u002F",{"type":208,"value":566},". Put local images in ",{"type":203,"tag":223,"props":568,"children":569},{},[570],{"type":208,"value":571},"pdfs\u002Fassets\u002F",{"type":208,"value":573},".\nRemove the ",{"type":203,"tag":223,"props":575,"children":576},{},[577],{"type":208,"value":578},"fonts",{"type":208,"value":580}," option if the templates use only built-in fonts.",{"type":203,"tag":204,"props":582,"children":583},{},[584],{"type":208,"value":585},"Run this script before the backend build:",{"type":203,"tag":244,"props":587,"children":589},{"language":588,"class":248},"bash",[590],{"type":203,"tag":223,"props":591,"children":593},{"class":592},"language-bash",[594],{"type":203,"tag":255,"props":595,"children":596},{"class":257,"style":258},[597,603],{"type":203,"tag":255,"props":598,"children":600},{"style":599},"color:#E2931D;--shiki-dark:#FFCB6B",[601],{"type":208,"value":602},"node",{"type":203,"tag":255,"props":604,"children":605},{"style":295},[606],{"type":208,"value":607}," scripts\u002Fbuild-pdfs.mjs",{"type":203,"tag":204,"props":609,"children":610},{},[611,613,618,620,625,627,632],{"type":208,"value":612},"The output directory contains ",{"type":203,"tag":223,"props":614,"children":615},{},[616],{"type":208,"value":617},"index.mjs",{"type":208,"value":619},", ",{"type":203,"tag":223,"props":621,"children":622},{},[623],{"type":208,"value":624},"index.d.mts",{"type":208,"value":626},", a ",{"type":203,"tag":223,"props":628,"children":629},{},[630],{"type":208,"value":631},"types\u002F",{"type":208,"value":633}," declaration\ntree, and an ownership marker. Deploy the generated runtime and its package\ndependencies. Keep the declarations for backend type checking. No Vue source,\ntest loader, or build compiler is needed to execute this generated registry.\nThe build tools remain package dependencies but are not imported by the runtime.",{"type":203,"tag":204,"props":635,"children":636},{},[637],{"type":208,"value":638},"Use a dedicated output directory inside the application. Never put hand-written\nfiles in it. Successful rebuilds replace its generated contents. Compilation\nfailures preserve the previous output. An existing nonempty directory without\nthe ownership marker is rejected. Choose another directory after this error.\nDo not run concurrent builds into one output directory.",{"type":203,"tag":211,"props":640,"children":642},{"id":641},"render-validated-data",[643],{"type":208,"value":644},"Render validated data",{"type":203,"tag":204,"props":646,"children":647},{},[648,650,655,656,661,662,667,668,673,675,682,684,689],{"type":208,"value":649},"The generated ",{"type":203,"tag":223,"props":651,"children":652},{},[653],{"type":208,"value":654},"pdf",{"type":208,"value":619},{"type":203,"tag":223,"props":657,"children":658},{},[659],{"type":208,"value":660},"renderPdf",{"type":208,"value":619},{"type":203,"tag":223,"props":663,"children":664},{},[665],{"type":208,"value":666},"getPdfTemplate",{"type":208,"value":235},{"type":203,"tag":223,"props":669,"children":670},{},[671],{"type":208,"value":672},"pdfTemplateKeys",{"type":208,"value":674}," exports\nhave the same behavior as the ",{"type":203,"tag":676,"props":677,"children":679},"a",{"href":678},"$docs\u002Freference\u002Fregistry",[680],{"type":208,"value":681},"Nitro registry",{"type":208,"value":683},".\nImport the ",{"type":203,"tag":223,"props":685,"children":686},{},[687],{"type":208,"value":688},".mjs",{"type":208,"value":690}," path. Ordinary TypeScript resolves its adjacent declarations.",{"type":203,"tag":244,"props":692,"children":694},{"language":246,"filename":693,"class":248},"workers\u002Frender-invoice.ts",[695],{"type":203,"tag":223,"props":696,"children":697},{"class":252},[698,735,736,739,740,772,773,826,827,856,857,886,887,908,909,921,922,947,948],{"type":203,"tag":255,"props":699,"children":700},{"class":257,"style":258},[701,705,709,714,718,722,726,731],{"type":203,"tag":255,"props":702,"children":703},{"style":262},[704],{"type":208,"value":265},{"type":203,"tag":255,"props":706,"children":707},{"style":268},[708],{"type":208,"value":271},{"type":203,"tag":255,"props":710,"children":711},{"style":274},[712],{"type":208,"value":713}," pdf",{"type":203,"tag":255,"props":715,"children":716},{"style":268},[717],{"type":208,"value":282},{"type":203,"tag":255,"props":719,"children":720},{"style":262},[721],{"type":208,"value":287},{"type":203,"tag":255,"props":723,"children":724},{"style":268},[725],{"type":208,"value":292},{"type":203,"tag":255,"props":727,"children":728},{"style":295},[729],{"type":208,"value":730},"..\u002Fgenerated\u002Fpdfs\u002Findex.mjs",{"type":203,"tag":255,"props":732,"children":733},{"style":268},[734],{"type":208,"value":303},{"type":208,"value":305},{"type":203,"tag":255,"props":737,"children":738},{"class":257,"style":258},[],{"type":208,"value":305},{"type":203,"tag":255,"props":741,"children":742},{"class":257,"style":258},[743,748,754,759,764,768],{"type":203,"tag":255,"props":744,"children":745},{"style":262},[746],{"type":208,"value":747},"export",{"type":203,"tag":255,"props":749,"children":751},{"style":750},"color:#9C3EDA;--shiki-dark:#C792EA",[752],{"type":208,"value":753}," async",{"type":203,"tag":255,"props":755,"children":756},{"style":750},[757],{"type":208,"value":758}," function",{"type":203,"tag":255,"props":760,"children":761},{"style":320},[762],{"type":208,"value":763}," renderInvoice",{"type":203,"tag":255,"props":765,"children":766},{"style":268},[767],{"type":208,"value":367},{"type":203,"tag":255,"props":769,"children":770},{"style":268},[771],{"type":208,"value":271},{"type":208,"value":305},{"type":203,"tag":255,"props":774,"children":775},{"class":257,"style":258},[776,781,786,791,796,800,804,809,813,818,822],{"type":203,"tag":255,"props":777,"children":778},{"style":750},[779],{"type":208,"value":780},"  const",{"type":203,"tag":255,"props":782,"children":783},{"style":274},[784],{"type":208,"value":785}," result",{"type":203,"tag":255,"props":787,"children":788},{"style":268},[789],{"type":208,"value":790}," =",{"type":203,"tag":255,"props":792,"children":793},{"style":262},[794],{"type":208,"value":795}," await",{"type":203,"tag":255,"props":797,"children":798},{"style":274},[799],{"type":208,"value":713},{"type":203,"tag":255,"props":801,"children":802},{"style":268},[803],{"type":208,"value":357},{"type":203,"tag":255,"props":805,"children":806},{"style":274},[807],{"type":208,"value":808},"invoice",{"type":203,"tag":255,"props":810,"children":811},{"style":268},[812],{"type":208,"value":357},{"type":203,"tag":255,"props":814,"children":815},{"style":320},[816],{"type":208,"value":817},"render",{"type":203,"tag":255,"props":819,"children":820},{"style":339},[821],{"type":208,"value":327},{"type":203,"tag":255,"props":823,"children":824},{"style":268},[825],{"type":208,"value":332},{"type":208,"value":305},{"type":203,"tag":255,"props":828,"children":829},{"class":257,"style":258},[830,835,839,843,848,852],{"type":203,"tag":255,"props":831,"children":832},{"style":339},[833],{"type":208,"value":834},"    customer",{"type":203,"tag":255,"props":836,"children":837},{"style":268},[838],{"type":208,"value":347},{"type":203,"tag":255,"props":840,"children":841},{"style":268},[842],{"type":208,"value":292},{"type":203,"tag":255,"props":844,"children":845},{"style":295},[846],{"type":208,"value":847},"Example customer",{"type":203,"tag":255,"props":849,"children":850},{"style":268},[851],{"type":208,"value":303},{"type":203,"tag":255,"props":853,"children":854},{"style":268},[855],{"type":208,"value":372},{"type":208,"value":305},{"type":203,"tag":255,"props":858,"children":859},{"class":257,"style":258},[860,865,869,873,878,882],{"type":203,"tag":255,"props":861,"children":862},{"style":339},[863],{"type":208,"value":864},"    number",{"type":203,"tag":255,"props":866,"children":867},{"style":268},[868],{"type":208,"value":347},{"type":203,"tag":255,"props":870,"children":871},{"style":268},[872],{"type":208,"value":292},{"type":203,"tag":255,"props":874,"children":875},{"style":295},[876],{"type":208,"value":877},"2026-001",{"type":203,"tag":255,"props":879,"children":880},{"style":268},[881],{"type":208,"value":303},{"type":203,"tag":255,"props":883,"children":884},{"style":268},[885],{"type":208,"value":372},{"type":208,"value":305},{"type":203,"tag":255,"props":888,"children":889},{"class":257,"style":258},[890,895,899,904],{"type":203,"tag":255,"props":891,"children":892},{"style":339},[893],{"type":208,"value":894},"    lines",{"type":203,"tag":255,"props":896,"children":897},{"style":268},[898],{"type":208,"value":347},{"type":203,"tag":255,"props":900,"children":901},{"style":339},[902],{"type":208,"value":903}," []",{"type":203,"tag":255,"props":905,"children":906},{"style":268},[907],{"type":208,"value":372},{"type":208,"value":305},{"type":203,"tag":255,"props":910,"children":911},{"class":257,"style":258},[912,917],{"type":203,"tag":255,"props":913,"children":914},{"style":268},[915],{"type":208,"value":916},"  }",{"type":203,"tag":255,"props":918,"children":919},{"style":339},[920],{"type":208,"value":554},{"type":208,"value":305},{"type":203,"tag":255,"props":923,"children":924},{"class":257,"style":258},[925,930,934,938,943],{"type":203,"tag":255,"props":926,"children":927},{"style":262},[928],{"type":208,"value":929},"  return",{"type":203,"tag":255,"props":931,"children":932},{"style":274},[933],{"type":208,"value":785},{"type":203,"tag":255,"props":935,"children":936},{"style":268},[937],{"type":208,"value":357},{"type":203,"tag":255,"props":939,"children":940},{"style":320},[941],{"type":208,"value":942},"toUint8Array",{"type":203,"tag":255,"props":944,"children":945},{"style":339},[946],{"type":208,"value":367},{"type":208,"value":305},{"type":203,"tag":255,"props":949,"children":950},{"class":257,"style":258},[951],{"type":203,"tag":255,"props":952,"children":953},{"style":268},[954],{"type":208,"value":549},{"type":203,"tag":204,"props":956,"children":957},{},[958],{"type":208,"value":959},"Match the props to your own invoice template. Validate request data and check\nauthorization before rendering. Props are statically typed, not a runtime\nvalidation schema. Never accept template source, filesystem paths, build\noptions, or unrestricted image URLs from a caller.",{"type":203,"tag":204,"props":961,"children":962},{},[963,965,970],{"type":208,"value":964},"Local assets and configured fonts are validated and embedded during the build.\nRemote images remain denied unless the build supplies an explicit ",{"type":203,"tag":223,"props":966,"children":967},{},[968],{"type":208,"value":969},"remote",{"type":208,"value":971},"\npolicy. Existing resource limits and error codes apply to each render. Fix the\nnamed resource or lower input size after an admission or limit error.",{"type":203,"tag":204,"props":973,"children":974},{},[975],{"type":208,"value":976},"The application owns jobs, snapshots, storage, document issuance, and delivery.\nFor an issued document, store and reuse completed bytes. Two fresh renders are\nnot promised to be byte-identical.",{"type":203,"tag":211,"props":978,"children":980},{"id":979},"verify-the-deployment",[981],{"type":208,"value":982},"Verify the deployment",{"type":203,"tag":204,"props":984,"children":985},{},[986],{"type":208,"value":987},"Standalone Node rendering is tested locally with embedded fonts and images,\nUnicode text, pagination, and concurrent requests. That is not a deployed\nConvex or other serverless-runtime certification. Edge workers remain unsupported.",{"type":203,"tag":204,"props":989,"children":990},{},[991],{"type":208,"value":992},"Before adoption, measure your largest expected document on the target runtime.\nCheck cold and warm duration, memory use, output limits, failed asset requests,\nand concurrent isolation. Keep the previously tested Node route available for\nnew renders until this proof passes. Do not regenerate issued PDFs during a\nruntime migration.",{"type":203,"tag":204,"props":994,"children":995},{},[996,998,1004],{"type":208,"value":997},"See ",{"type":203,"tag":676,"props":999,"children":1001},{"href":1000},"$docs\u002Fguides\u002Fdeployment",[1002],{"type":208,"value":1003},"deployment guidance",{"type":208,"value":1005}," for the runtime matrix and\noperational limits.",{"title":1007,"searchDepth":1008,"depth":1008,"links":1009},"",4,[1010,1012,1013],{"id":213,"depth":1011,"text":216},2,{"id":641,"depth":1011,"text":644},{"id":979,"depth":1011,"text":982},"markdown","docs",{"source":1017,"path":1018,"stem":1019,"dir":1020,"extension":1021},"content","docs\u002F3.guides\u002F10.standalone-node.md","docs\u002F3.guides\u002F10.standalone-node","guides","md",{"$docs\u002Freference\u002Fregistry":142,"$docs\u002Fguides\u002Fdeployment":107},{"requestedPath":118,"resolvedPath":118,"alternates":1024},[],{"requested":1026,"resolved":1027,"usedFallback":9},{},{"locale":8},{"previous":1029,"next":1030},{"title":109,"id":110,"canonicalKey":111,"locale":8,"draft":9,"path":113},{"title":126,"id":127,"canonicalKey":128,"locale":8,"draft":9,"path":130},{"left":1032,"top":1032,"width":1033,"height":1033,"rotate":1032,"vFlip":9,"hFlip":9,"body":1034},0,24,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 19h8M4 17l6-6l-6-6\"\u002F>",{"left":1032,"top":1032,"width":1036,"height":1036,"rotate":1032,"vFlip":9,"hFlip":9,"body":1037},256,"\u003Cpath fill=\"#3178c6\" d=\"M20 0h216c11.046 0 20 8.954 20 20v216c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20V20C0 8.954 8.954 0 20 0\"\u002F>\u003Cpath fill=\"#fff\" d=\"M150.518 200.475v27.62q6.738 3.453 15.938 5.179T185.849 235q9.934 0 18.874-1.899t15.678-6.257q6.738-4.359 10.669-11.394q3.93-7.033 3.93-17.391q0-7.51-2.246-13.163a30.8 30.8 0 0 0-6.479-10.055q-4.232-4.402-10.149-7.898t-13.347-6.602q-5.442-2.245-9.761-4.359t-7.342-4.316q-3.024-2.2-4.665-4.661t-1.641-5.567q0-2.848 1.468-5.135q1.469-2.288 4.147-3.927t6.565-2.547q3.887-.906 8.638-.906q3.456 0 7.299.518q3.844.517 7.732 1.597a54 54 0 0 1 7.558 2.719a41.7 41.7 0 0 1 6.781 3.797v-25.807q-6.306-2.417-13.778-3.582T198.633 107q-9.847 0-18.658 2.115q-8.811 2.114-15.506 6.602q-6.694 4.49-10.582 11.437Q150 134.102 150 143.769q0 12.342 7.127 21.06t21.638 14.759a292 292 0 0 1 10.625 4.575q4.924 2.244 8.509 4.66t5.658 5.265t2.073 6.474a9.9 9.9 0 0 1-1.296 4.963q-1.295 2.287-3.93 3.97t-6.565 2.632t-9.2.95q-8.983 0-17.794-3.151t-16.327-9.451m-46.036-68.733H140V109H41v22.742h35.345V233h28.137z\"\u002F>",{"left":1032,"top":1032,"width":1033,"height":1033,"rotate":1032,"vFlip":9,"hFlip":9,"body":1039},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"\u002F>\u003Cpath d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\u002F>\u003C\u002Fg>",{"left":1032,"top":1032,"width":1033,"height":1033,"rotate":1032,"vFlip":9,"hFlip":9,"body":1041,"hidden":1042},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\"\u002F>\u003Cpath d=\"M14 2v4a2 2 0 0 0 2 2h4m-10 4a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1a1 1 0 0 1 1 1v1a1 1 0 0 0 1 1m4 0a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1a1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1\"\u002F>\u003C\u002Fg>",true,1789319013253]