{"_id":"@orbat-mapper/tactical-map-sheet","_rev":"31-944396d6bc550651d22cd33ce7b8b51a","name":"@orbat-mapper/tactical-map-sheet","dist-tags":{"latest":"0.4.11"},"versions":{"0.1.0":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.1.0","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.1.0","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"d44586bc2a1083a1bddbfb46863d446b4f8f80e0","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.1.0.tgz","fileCount":10,"integrity":"sha512-/ZK+1q634OROcOpfKi0TRqRrVzvwdLFkU6OGbMc4sN8DRdFg7+UobCuyCkWmViQCY7Zo8vbZfBuJyydt3PkEtA==","signatures":[{"sig":"MEYCIQDMF1YE3lONORFtUKkTHqJiyYGbbOoChnvBOhGEc/6F9wIhANsYqYLQU5h8xoXdjMuDxFCW7O9B0msFtoh3qdASDM6e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":924521},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.1.0.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/884e4fbb3649c8991a5529e973677e0b/orbat-mapper-tactical-map-sheet-0.1.0.tgz","_integrity":"sha512-/ZK+1q634OROcOpfKi0TRqRrVzvwdLFkU6OGbMc4sN8DRdFg7+UobCuyCkWmViQCY7Zo8vbZfBuJyydt3PkEtA==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.6"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.1.0_1787395458229_0.14323697915505385","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.1.1","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.1.1","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"cfb0b9194dfb458638af525595826ff6ac740fc7","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.1.1.tgz","fileCount":10,"integrity":"sha512-lvfVQyyQH0Rqw3Bwj0tg9RMU13/3pkl4pVina9dhtvHwyFSgMFhXvsrNDhiHuEPSMWCLztpwrd/b48Oh+CyuMQ==","signatures":[{"sig":"MEYCIQCi/r0flnXLl2B8SP6oos0KPcRJgP1m1Xprkg36VlIfLAIhAN+/Itmm237I1xfJjfuU8XdvVTCt1NtLLJiVv5ypKDOV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":926305},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.1.1.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/2d39e54056a4bf58fb8ad5d5a8c64696/orbat-mapper-tactical-map-sheet-0.1.1.tgz","_integrity":"sha512-lvfVQyyQH0Rqw3Bwj0tg9RMU13/3pkl4pVina9dhtvHwyFSgMFhXvsrNDhiHuEPSMWCLztpwrd/b48Oh+CyuMQ==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.7"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.1.1_1787416741115_0.10526354882215538","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.1.2","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.1.2","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"e0bc206a5dfbbbb693358eb682cc72dba590d279","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.1.2.tgz","fileCount":10,"integrity":"sha512-LR5L/Y+gAW/Y3FDQYvpBWVY1U0AFOhP6PZ8GqiKkxHJ7NwF+4HHwh7sx+af9fMAFAKcbGX2Uksie+X6i0grp+Q==","signatures":[{"sig":"MEUCIAlyE5cJqIoK+R4sE/Wn3UUOrMbgxO9Hx3Jqc3RWM3jtAiEAr8zeGnpdJgBu7yWSQtxJSRmJ5t6OIBBMZXs6ZtcnmoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":926305},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.1.2.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/fcfafdf8fa237d7af78453df6179250e/orbat-mapper-tactical-map-sheet-0.1.2.tgz","_integrity":"sha512-LR5L/Y+gAW/Y3FDQYvpBWVY1U0AFOhP6PZ8GqiKkxHJ7NwF+4HHwh7sx+af9fMAFAKcbGX2Uksie+X6i0grp+Q==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.8"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.1.2_1787467674542_0.25719974891808617","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.2.0","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.2.0","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"544dd08ac1553ebe8ff4bfbc3cdb01331efcf224","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.2.0.tgz","fileCount":10,"integrity":"sha512-ouOClyVuPucmVSNbgt9/gTTr7qa8vSADMAM7/Akd5+LdPbRb+W+nYT88e6gzqnJ/YKHOo1yBHMfvO7H5jju7kg==","signatures":[{"sig":"MEUCIQC0Sj/p53H2Zszvacopr1jA2mppIAOQRWaRAvbwsFkdJwIgasajwO9Xdb+b03MfZBIFzadv5yJgAt7gpRVwg8i5jC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":952835},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.2.0.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/731df8bd90f653df04f1b4576c335540/orbat-mapper-tactical-map-sheet-0.2.0.tgz","_integrity":"sha512-ouOClyVuPucmVSNbgt9/gTTr7qa8vSADMAM7/Akd5+LdPbRb+W+nYT88e6gzqnJ/YKHOo1yBHMfvO7H5jju7kg==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.8"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.2.0_1787497535384_0.9024052567579746","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.2.1","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.2.1","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"6658556e36dfd439139116936881160fb8ee5b98","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.2.1.tgz","fileCount":10,"integrity":"sha512-BSzuaHQc9qcNpPfD66LzkRmD8D3dQOjf2n7s2sZOfkDDGT7u0HKdv1wpoRFPZjk0Zpa6YiFuy0MNPeZXeNZwVQ==","signatures":[{"sig":"MEUCIQCC6PbbMsnbjLRz3FPXkHDJyo79EgYV8ecqcwEzUUXWUQIgX3IYw7CMd7bClSyaKBPve6fDO9wB5tbmUlZkyNjp2AI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":952488},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.2.1.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/7ad19e53a4026eb254b6e1d869c12a97/orbat-mapper-tactical-map-sheet-0.2.1.tgz","_integrity":"sha512-BSzuaHQc9qcNpPfD66LzkRmD8D3dQOjf2n7s2sZOfkDDGT7u0HKdv1wpoRFPZjk0Zpa6YiFuy0MNPeZXeNZwVQ==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.8"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.2.1_1787508395124_0.2589679870076982","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.2.2","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.2.2","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"0dff2f9e9aa4328843283d77e6467362f0aad74c","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.2.2.tgz","fileCount":10,"integrity":"sha512-DEzaOogTebyhcbI3S+QYW9FJlhJ28eaA1zPbTfEVva33+tPGaQgExGfxJ229JeIC38xU68eo5YzTqMlZHjk9kw==","signatures":[{"sig":"MEYCIQDCh16hls0HoSWmTxTD88v4iKBr1sGlL/03359QXJNzoQIhANyJH6Ms0/maeCuraCrRi+JUIbDqMzir4JnzmcrUcHjc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":952489},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.2.2.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/89e7d565b83a402f07eb107ec02bd701/orbat-mapper-tactical-map-sheet-0.2.2.tgz","_integrity":"sha512-DEzaOogTebyhcbI3S+QYW9FJlhJ28eaA1zPbTfEVva33+tPGaQgExGfxJ229JeIC38xU68eo5YzTqMlZHjk9kw==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.9"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.2.2_1787631456982_0.5009400209437256","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.0","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.0","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"44bd87bf5e426d393664f249af406058f64c892b","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.0.tgz","fileCount":10,"integrity":"sha512-lC7AMP4ExGp5As/4KMWCiHepc0bH2as50dqgCVNFcN6cLq+EoNO3H7rhynBB7We/BPPlowKIoxMKg1R4oGzY/g==","signatures":[{"sig":"MEYCIQC0s00ZvO8AZjJA5YW5pTzvK0zwFTqOxCw+WqExjuYP7wIhAJp5fxaqlX9QSPYyFKB35tyfBHBOxRtZRqNO/Tzlqr3W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983372},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.0.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/0943ebcbe2ac8297ea9d9637500dcb00/orbat-mapper-tactical-map-sheet-0.3.0.tgz","_integrity":"sha512-lC7AMP4ExGp5As/4KMWCiHepc0bH2as50dqgCVNFcN6cLq+EoNO3H7rhynBB7We/BPPlowKIoxMKg1R4oGzY/g==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.10"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.0_1787683859809_0.9710766054621156","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.1","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.1","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"a8f27eb710d02114ca6f8ab61a1bad4618f64f2e","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.1.tgz","fileCount":10,"integrity":"sha512-JyNvpn4Og0yeFj0IZCAm1g3x2LKjmOlOKHytW4uHBDx/pHD5t4j/dkwc2ckFG4r9lzmzoYp5LMbcpalrACQ1lw==","signatures":[{"sig":"MEQCIB/L58kQZImvAAZhZ8k9eGQvmuDSarIjlo9BnLwA0YqvAiAUfRthKUVCLgrqteFRBECzGLDrkRBg0duCh4i1yVoSzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983372},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.1.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/c44eb02c7f26b073616bd3c8fba74b43/orbat-mapper-tactical-map-sheet-0.3.1.tgz","_integrity":"sha512-JyNvpn4Og0yeFj0IZCAm1g3x2LKjmOlOKHytW4uHBDx/pHD5t4j/dkwc2ckFG4r9lzmzoYp5LMbcpalrACQ1lw==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.11"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.1_1787760239695_0.06295153758474847","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.2","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.2","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"c6ebd98dc88ce0bd5fb26ea223b88f6db7e9a856","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.2.tgz","fileCount":10,"integrity":"sha512-BjG0fWQwxeS+u/VZN7fuyKioIc3K18V7RRGqIZ1YwGBnkZTW2D1cmOu6jf/DK8aDuLtebXJynHODZlQZ01ze8w==","signatures":[{"sig":"MEYCIQCXiWeuR0gCtqxbGrQlECbmBZsNeMaTkZ7rRiCN2hlXWwIhAOi6u/b2FdPmwfJ1AEeGeVZ99X9h5Tmr7ZDN/7JqBW98","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983372},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.2.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/bfd7374f79b919a21bdac1ea74586ef5/orbat-mapper-tactical-map-sheet-0.3.2.tgz","_integrity":"sha512-BjG0fWQwxeS+u/VZN7fuyKioIc3K18V7RRGqIZ1YwGBnkZTW2D1cmOu6jf/DK8aDuLtebXJynHODZlQZ01ze8w==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.12"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.2_1787996397920_0.7983557505207868","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.3","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.3","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"cae17e497b77a540f8056d4213c7d242934464db","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.3.tgz","fileCount":10,"integrity":"sha512-nx9r3w4trwI4llWaov5N7heD7cUOl1a9jZot6/nVEGiIDd2RgXHl4rR7SjqrPL+LBv422xu0SXF66B7kXRqepg==","signatures":[{"sig":"MEUCIQDDF6eKBxJSlAU7vE9RXIs5tG26NvnGnZdQNnTTqgTEPgIgXRFZWD2MT7WmUXzbWf+/hfa5PucYouxHyoLhXcF5dUE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983372},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.3.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/dc95dbf82d02bd3c6981243eef846955/orbat-mapper-tactical-map-sheet-0.3.3.tgz","_integrity":"sha512-nx9r3w4trwI4llWaov5N7heD7cUOl1a9jZot6/nVEGiIDd2RgXHl4rR7SjqrPL+LBv422xu0SXF66B7kXRqepg==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.13"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.3_1788236444610_0.5397983049571391","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.4","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.4","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"2fd44967fc24d4b297cc4626394ded1cb92677ff","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.4.tgz","fileCount":10,"integrity":"sha512-nwrpfNrm2bFgBwV8I5Zvfb/2WAUbdFBod/tXuA1x1dR0ZXjhGnhIrgf9hKd77Yd55UPLksmuUz9KPkXNw4DwgQ==","signatures":[{"sig":"MEQCIEwugBEInjXtuHDx+LdEOIIc2VhBcUcuMqIM8Ks3tBPfAiAhO8rkQL9QiwXtTHPhRD654stwOiodCoNtaDGDnYduWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983372},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.4.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/57be1048a871e48457081a36e673e91b/orbat-mapper-tactical-map-sheet-0.3.4.tgz","_integrity":"sha512-nwrpfNrm2bFgBwV8I5Zvfb/2WAUbdFBod/tXuA1x1dR0ZXjhGnhIrgf9hKd77Yd55UPLksmuUz9KPkXNw4DwgQ==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.14"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.4_1788239510037_0.4076489405200223","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.5","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.5","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"88368d6674ea9a0604ee07ed5377328c5c5aa8c4","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.5.tgz","fileCount":10,"integrity":"sha512-SH0aolP3KHYjmRWEdnLg2gmVR74fbQYZmTHnw/F7Hg73FQ6zsnxLx0gFJnVLQ/it5vBUDbke84vno8hoqYvlAg==","signatures":[{"sig":"MEQCIFC6ZELM7adJwdLiKaP5YJKsHSz0ogkuv5zVH66qTyzrAiAPJExVU9roMp3kBxMkFh/cUMnJMQHAkxt0fjZInZpxrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983372},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.5.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/c8320a4b83c70f9dca5033c8dfed9dfb/orbat-mapper-tactical-map-sheet-0.3.5.tgz","_integrity":"sha512-SH0aolP3KHYjmRWEdnLg2gmVR74fbQYZmTHnw/F7Hg73FQ6zsnxLx0gFJnVLQ/it5vBUDbke84vno8hoqYvlAg==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.15"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.5_1788351005977_0.04286990210511665","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.6","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.6","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"9fcef295368e53985ba699fbb8d2d889cba279eb","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.6.tgz","fileCount":10,"integrity":"sha512-gf528e0lRH7gucecv1uv0RnSCcUCEsEZ3VeHmqeaPlLguCVAimDMz42wpSMQyoh+pwL+k0PJOVsmRvjEakeqew==","signatures":[{"sig":"MEQCIGYPpcO+nKOgY9bm4sQH3Q3xWIKiv8s+u2up7zuffVCIAiA1/fNlA0xcd7tdyFIVRjVhULCIzaXhBbTyiVX0U/1tcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983372},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.6.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/659d56b479873871284590f8ea3d92ac/orbat-mapper-tactical-map-sheet-0.3.6.tgz","_integrity":"sha512-gf528e0lRH7gucecv1uv0RnSCcUCEsEZ3VeHmqeaPlLguCVAimDMz42wpSMQyoh+pwL+k0PJOVsmRvjEakeqew==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.16"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.6_1788447779005_0.753152024490265","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.7","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.7","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"f956f6c46a864d4cb32bcc77997f22aac1c370fe","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.7.tgz","fileCount":10,"integrity":"sha512-pdNy1nhhmGlUCaLG7TP/xuThmenuKyuEV1nGWahNmOgdR7+oGqfHJ3AuRLE4dZtV2YaG0YQ6HXrTLk82VGSeMw==","signatures":[{"sig":"MEQCIGJ/aJxoNojRI31rt0z/8w5dCZ5fuOg/OkpnjP3lfUkzAiBTnJswAy81cqtnkl/m3i/YvF4k6iCKcTKUovh00zcxMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDZQyXPEXXv4y3gzJSxkfLedyrPwUtlu913xeqk5SGBQwIhAO7cwAfsUxBvL8OkpPIVgRB8Qkr6Z2ClCVifBY3N5A5s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983372},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.7.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/a5cf8774122ab050a3b09742a7949196/orbat-mapper-tactical-map-sheet-0.3.7.tgz","_integrity":"sha512-pdNy1nhhmGlUCaLG7TP/xuThmenuKyuEV1nGWahNmOgdR7+oGqfHJ3AuRLE4dZtV2YaG0YQ6HXrTLk82VGSeMw==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.17"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.7_1788540821568_0.30002393649261894","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.8","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.8","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"cf20c0d79751cb0da7b479aa4f185e1ff2ddcb3b","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.8.tgz","fileCount":10,"integrity":"sha512-JXygvMnBgqvFk03PZLCIolzJGn1dbX4Bl3R6gb399chSgvvD/l166ZSJZ0OwR0cEBRl4A+2Y4tt9j+s8DSsSRg==","signatures":[{"sig":"MEUCIDAA6Uz6ClcwvtxPZzkVROo0rG8Ult8Ng4dsUm+9cJRsAiEA6RPkme209BMK8FbFFO0UZLmX6Egk16LXBMptKYRHlvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBmih5qK0y30djBHrwWitzst8hTRBzJ4Z1CHLqCSY/IrAiEA0GyYLrFCpdb/0Eo9rRjIHZOPMlPZmUhZBUZB7mMalGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983372},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.8.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/5756bd7e61a4864c7823f54ada870141/orbat-mapper-tactical-map-sheet-0.3.8.tgz","_integrity":"sha512-JXygvMnBgqvFk03PZLCIolzJGn1dbX4Bl3R6gb399chSgvvD/l166ZSJZ0OwR0cEBRl4A+2Y4tt9j+s8DSsSRg==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.18"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.8_1788616071063_0.30563145428967786","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.9","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.9","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"945cf2ec2d293b64cb24de0794ab8a6d1a0e0eb6","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.9.tgz","fileCount":10,"integrity":"sha512-Qn+ZXtaGIFi/wh3GhDZbp4p1kUbdTLXSxeuqm/I9squ7f5Qbm2W5PqERPMaV96G0Kbdhb/JOFYaaNbg6LXn8CQ==","signatures":[{"sig":"MEUCIQDG0no0eCwJ7Nv/CUF7rxcSMz/sV5VrtM7TJ+9barfXMwIgVmI9ZIWj2HJjnlcnFu0JJT5QIacS7vBnJfbC01NGSm8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEa++RqT2s7YJSHDeVzIcGAXGkkkd7WcSQv4l8HdtIgPAiEA3iztMhtElk58Ulo5RdYtuTLQD5aKNbD87C+wEnBakpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983372},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.9.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/3ad8160ba58a9f6d6b2ad885a236b413/orbat-mapper-tactical-map-sheet-0.3.9.tgz","_integrity":"sha512-Qn+ZXtaGIFi/wh3GhDZbp4p1kUbdTLXSxeuqm/I9squ7f5Qbm2W5PqERPMaV96G0Kbdhb/JOFYaaNbg6LXn8CQ==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.19"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.9_1788679201417_0.37238349006513904","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.10","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.10","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"7143be9bf670f7d3521dad42f0352ed484b41327","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.10.tgz","fileCount":10,"integrity":"sha512-YpXCLew9RBui8XQx0IdMiZah6itn3FPLtzbxKMmvoxUZBtBTRjLrO5IO59qjMVfGjW5wBDJSKvrcm0CrTsvGNQ==","signatures":[{"sig":"MEUCIQDzOeBcLo+kQr/ZEhOrbMBJfxf+oCs9rPiOnqy0MI/zHQIgNjaCB2mOT4z6wkmJq7wU0urxBXLjdAqzc/ei26ZcR1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDr6ay0ph5s7eU/r/2VDYkbca3BhlkAaiAVuhEx0UKU/AIhAP0n/u/puqlb7Tqts4KL8l58IKIUp4+RwYdCiNjyub5N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983373},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.10.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/cce024ec00865b116278249d9ff036f4/orbat-mapper-tactical-map-sheet-0.3.10.tgz","_integrity":"sha512-YpXCLew9RBui8XQx0IdMiZah6itn3FPLtzbxKMmvoxUZBtBTRjLrO5IO59qjMVfGjW5wBDJSKvrcm0CrTsvGNQ==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.20"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.10_1788692702045_0.4440607446600877","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.11","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.11","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"aa8eafe466debe60c21421be83986ef8290eeba8","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.11.tgz","fileCount":10,"integrity":"sha512-GrrxDFLEE57wVEun+YRUCONOTCWVfYXoOA1jKFbmrdlhIOGa/O4ijTgIdzuK+lB8QHU2Ks5mZ+s78+sHHpXUBw==","signatures":[{"sig":"MEQCIGXocg4or1V5wn7hUQ6jrUaWPjgGJj2GubNufQg5Q2wkAiA6Lau4zgRqWLmhfyk7uyDLGBhxlllGTUN4joLZQ6svjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCpOzAbNW75IEfTGQ2PFxFk3OYioUpXXSqVNZc4GvoSxgIhAP+6YSy6d+ByhMeP8axhvcf7d1XM9G69N8w76kaHglxk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983373},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.11.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/bc2b06ffb85006259810b1c83be67cfd/orbat-mapper-tactical-map-sheet-0.3.11.tgz","_integrity":"sha512-GrrxDFLEE57wVEun+YRUCONOTCWVfYXoOA1jKFbmrdlhIOGa/O4ijTgIdzuK+lB8QHU2Ks5mZ+s78+sHHpXUBw==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.21"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.11_1788800482936_0.27511698266961093","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.3.12","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.3.12","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"b7e7d2c364f365e425a68ab8baa7ff09d4705a38","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.3.12.tgz","fileCount":10,"integrity":"sha512-/TAvxr5t6o+uFErTbvUKc30JGzVQ311jb5Kr6JwOtrl3QEsO2UwsoB8c6UnzKroH/9jwjYVjk7+xrjxHm57ljw==","signatures":[{"sig":"MEYCIQDYEgDJR4WuDsDoWkzsS6njEojG2s2wp6veyUrr4cTn1gIhAKPLUFcSLW0xb2Rk/uOC9FZjSPizTRrkmC4ymVojVgic","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGS89Z7Q7ZbdXJZOylNV9Q92rwvyaHIJjpp/kU7XbNhOAiEAp8p1kYLUzgNjQuDxjK+UllhKMeI41rfW4xuAUG28wO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983373},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.3.12.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/a4be308b6a48ee9b648eebc837e6bb4f/orbat-mapper-tactical-map-sheet-0.3.12.tgz","_integrity":"sha512-/TAvxr5t6o+uFErTbvUKc30JGzVQ311jb5Kr6JwOtrl3QEsO2UwsoB8c6UnzKroH/9jwjYVjk7+xrjxHm57ljw==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/control-measures":"^0.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.1.22"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.3.12_1788886259497_0.31356624083749685","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.0","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.0","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"5a62b29b4b4211f960a6501cb697ac0f97068fb1","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.0.tgz","fileCount":10,"integrity":"sha512-cAgx8ZtIXiyGG3VVFWLnDOcB8K3XgT3eUIJ/tWwlI6flLeZI+aeaTMtQIK5oVbO7XKAE/qpt75SKLKO8Hixz5w==","signatures":[{"sig":"MEYCIQC4AQMWD1hngb83Kq2n+QdMuOJBX0hTpq9e1Z5NmE3EBQIhAOo7W+yXANdOAHojzlyNw58u+ez2gAbCnMRilsJTRurj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCezkzclmUvwahSjh/Sic3rmjpC/hhZIdOlREVv/iuviwIhAI3LydgN5oBYxtizniI40Nhcm1wzZ9GPhkwIL8tDhs4C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":986833},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.0.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/ec0fb4faba99afc05a8b100b811413a2/orbat-mapper-tactical-map-sheet-0.4.0.tgz","_integrity":"sha512-cAgx8ZtIXiyGG3VVFWLnDOcB8K3XgT3eUIJ/tWwlI6flLeZI+aeaTMtQIK5oVbO7XKAE/qpt75SKLKO8Hixz5w==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.8.0","@orbat-mapper/control-measures":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.0"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.0_1789328751895_0.16437129488567592","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.1","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.1","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"f9fc1e02cf84e349537dea9282eb25080e3f0a94","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.1.tgz","fileCount":10,"integrity":"sha512-aFTvqCD6mOYfjwgNyxrpkuuAhB4iq53I+iyxDGgXyTBDb5HAWBBztwLhbbKn0wMnI+FjvvV1ihIBYl+tfe0jdw==","signatures":[{"sig":"MEQCIBPexKgrgbaolhNHQsHbJuFLzqxdiMrnOpPdHqWuafWIAiBpsDKH6v0SqKXjAx0T7QuHNZQvwV18ectbnonfdoQ4lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDUu7xJl+XLFM3O+OehHThSAjQk1MZ1y8X+a1pgknODPwIhAL3S2EnJLFpdN4iLvFAdG8g1wqpblNlVRXciOV3qhExw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":986833},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.1.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/b70ed10853c6fc438433c5186841b822/orbat-mapper-tactical-map-sheet-0.4.1.tgz","_integrity":"sha512-aFTvqCD6mOYfjwgNyxrpkuuAhB4iq53I+iyxDGgXyTBDb5HAWBBztwLhbbKn0wMnI+FjvvV1ihIBYl+tfe0jdw==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.8.1","@orbat-mapper/control-measures":"^0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.1"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.1_1789664483129_0.11425753933024674","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.2","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.2","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"ef29d3e9a2a016a72bfb53e79e3517d0f44d9e0f","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.2.tgz","fileCount":10,"integrity":"sha512-DcIR/6qM3GP3bpoJpBjiKkDNkChxaHzKj3BF2TgDM/YHbqWv4xyBHt8eGapgDbjf9Ik/1HZ+KUDhjLcmms75hw==","signatures":[{"sig":"MEQCIFmSFcaybKz8XwMwYWE4bDKSIv4Dk7axFSvSU8/CUzAKAiB4qSnWp/+cmGt4y1KO8/99I0wXd75we6bCKXiI6zjNqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD0EcZWB0H66bqv1SEIzIdj8ZkKFbN4H+izcLQpqZuebAIgZARsXyyv8Kx/0n2qqDt3ZgGLra0tMICFiDhBfdcKW7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":987588},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.2.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/cf2d3cc6496448ae184ae5badb955c46/orbat-mapper-tactical-map-sheet-0.4.2.tgz","_integrity":"sha512-DcIR/6qM3GP3bpoJpBjiKkDNkChxaHzKj3BF2TgDM/YHbqWv4xyBHt8eGapgDbjf9Ik/1HZ+KUDhjLcmms75hw==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.8.2","@orbat-mapper/control-measures":"^0.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.2"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.2_1789808956410_0.031429112812228155","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.3","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.3","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"7581994c8d9d34543d827443641299a08d5612ae","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.3.tgz","fileCount":10,"integrity":"sha512-i3IsyDSaV+KaIaJxTqQdYxx2PcI+3s9aq5gUwcM+ugBPlQdBzYJewj/sIJDNs9gBUTSRRxzubWG0QM3risQ/Tg==","signatures":[{"sig":"MEYCIQCETZLMKi48Iji0WNPDG0sU+mFitQ7Y1SYenIKcpPqLtQIhANwlO34xmz57qEEsZcF1d3ITurPjQlPXVHLpj/Islt20","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGanmws8umzs9Poon1IdoftwjqyKxVBD6u5WL0oQF0SfAiEAkDaoZAoSrxEU5rnrGmf/kMXVRyj1GXAdtmnix6RjskE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":987588},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.3.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/68ad45f3bd1c6d410c6096f46a67ddad/orbat-mapper-tactical-map-sheet-0.4.3.tgz","_integrity":"sha512-i3IsyDSaV+KaIaJxTqQdYxx2PcI+3s9aq5gUwcM+ugBPlQdBzYJewj/sIJDNs9gBUTSRRxzubWG0QM3risQ/Tg==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.9.0","@orbat-mapper/control-measures":"^0.27.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.3"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.3_1789921768294_0.7486923253509654","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.4","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.4","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"8734e35d64e9243623d6dd9053fd7e144fff4d2b","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.4.tgz","fileCount":10,"integrity":"sha512-Hq51hxjlgRg5wwSMIXZi9E8IugWRb3+XAdHqkfC6mOzKEQs8PfGomS0ObW6tjF0vpUdew2Lq4DtRwLo21iZOgQ==","signatures":[{"sig":"MEYCIQC9rw1I+dzjIqcrrPgPF34W9gtqHD/wQswE0jjjcdgmbwIhAKWKNuSrHqcdvLW4AM0Cuy456f+T0HdvXAt6k5Z06tXz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDx83MghZlNHqg5mB0umHM3DFoYoaXBduIxmbOBD5XXLQIgSvrsZZVAMFOIW77CXxB1H1lzRDPwQcQH5E3nuBBpVGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":987589},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.4.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/cf0ea8582e07228885507bc928c48e36/orbat-mapper-tactical-map-sheet-0.4.4.tgz","_integrity":"sha512-Hq51hxjlgRg5wwSMIXZi9E8IugWRb3+XAdHqkfC6mOzKEQs8PfGomS0ObW6tjF0vpUdew2Lq4DtRwLo21iZOgQ==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.10.0","@orbat-mapper/control-measures":"^0.27.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.4"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.4_1790052510592_0.7265817012818334","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.5","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.5","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"cdb094fa4543d65781005de100f2d34d1afef86e","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.5.tgz","fileCount":10,"integrity":"sha512-Kr3QHqn4IHFrhwyroSpwjpbqBVjA11QrLSFVOjMPywy3KWWkqLnd3IugpDINspYhYT1OaR8niSUapgBHQmz8gA==","signatures":[{"sig":"MEQCIGkz+TqD/0T5RGXyx83t6DPgTQLQ7ylzLSaAB4tQq75FAiAWjZ8ZVmy6HBcG2FO0u16kbHpY86oCeNhVIKd4U7YyKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCIxFGA61yawABgaf7IWQLkWwlJzzw2+NgsrKkIlcj47wIhANzS7l11wKCwMi50EMRAjIKthnSlixXNYqRyuzpXGdy9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":987589},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.5.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/9c5a95d59016d2008372a278f3af0dd2/orbat-mapper-tactical-map-sheet-0.4.5.tgz","_integrity":"sha512-Kr3QHqn4IHFrhwyroSpwjpbqBVjA11QrLSFVOjMPywy3KWWkqLnd3IugpDINspYhYT1OaR8niSUapgBHQmz8gA==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.10.2","@orbat-mapper/control-measures":"^0.28.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.5"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.5_1790398625978_0.4520725135453436","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.6","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.6","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"23099329ec329dd8d4442979332d6ccdaa8950aa","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.6.tgz","fileCount":10,"integrity":"sha512-uW86Tg/Sv0jO9yVG6kamDNbOIfYDfJuQJHy4bSz9+pse+vln8Estdvto8uNaT54oatxq4wVXaJ2fdVkSa8RMpg==","signatures":[{"sig":"MEUCIQCdes96NZqrU6WtCAfQPdWx1uRArt+6wDDlZWiZzjaHWwIgGa4jJiQJQ98f6xgedGtg7t7uVaUkJgeVHMBbjmpgFZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCtsAPoc/AnprQ/FM3gvdO5/AFoc06fLpRYUCap2iSTrwIgWj0m0SB2YISEoN7ng8IDRIqHwv8iwOYK4nFnTEJJzBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":987589},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.6.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/ff14fd8b5c7c97d0f1f9069561489638/orbat-mapper-tactical-map-sheet-0.4.6.tgz","_integrity":"sha512-uW86Tg/Sv0jO9yVG6kamDNbOIfYDfJuQJHy4bSz9+pse+vln8Estdvto8uNaT54oatxq4wVXaJ2fdVkSa8RMpg==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.11.0","@orbat-mapper/control-measures":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.6"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.6_1790419839310_0.39817939825965865","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.7","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.7","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"00a330bf279cdf9ddb6b861f98fbfcf5c41fca44","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.7.tgz","fileCount":10,"integrity":"sha512-ADfrk+smjdjMel1XMB0K6C3+NWzbpYfELZnfzOOJZKtjayS2fz9Y7Rqgulry/lZH06aZMnUXKCuGnhYNw//IwA==","signatures":[{"sig":"MEQCIFteEC/tul6w9n0aVrIRab/BGdrPi6c75Vaslccm1nhZAiAPvTN76DsOX7+ktdUQeHiGswytU9lu3yTRUnJArpowcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGImPAVReemZWN1CRpiSdMU8flBsZX7RhPiG4kc1yWTyAiEAmder3L1zG0+dXrzASwenII1yZive382iMhR3zx30tFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":987589},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.7.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/944cababbed4789325d11decf821c976/orbat-mapper-tactical-map-sheet-0.4.7.tgz","_integrity":"sha512-ADfrk+smjdjMel1XMB0K6C3+NWzbpYfELZnfzOOJZKtjayS2fz9Y7Rqgulry/lZH06aZMnUXKCuGnhYNw//IwA==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.11.1","@orbat-mapper/control-measures":"^0.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.7"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.7_1790516420455_0.37152848332046773","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.8","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.8","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"00d3e9a0eaee5c72f897f50d9e18404cdac1b53d","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.8.tgz","fileCount":10,"integrity":"sha512-zYy5KYJKk13aliK6DjAmFRCVsVkcVk0RxvlpU2wleEjzaDQkM7Ztdj7mYJsqF5dd8FmwZzdfuWMHJ5nx/UPLXA==","signatures":[{"sig":"MEUCIQD4j10CptjVMEl4RTPq81IV1MdtYEh1zzBeKYQTqeJXqQIgA1A99bt1kVw5HNlFnP0cqKmTrOiDVpaCRmdwoWfrMQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICr3D41m2525sMOJFJNNmlvj505hCNB6IsmMj7H5Yod9AiBB3VpV11/rUc7jZ6xJsjBI12iKu+7BZ6ivIvkYR4WRDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":987589},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.8.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/0089037eeda2a00d9366c7f022b16fc4/orbat-mapper-tactical-map-sheet-0.4.8.tgz","_integrity":"sha512-zYy5KYJKk13aliK6DjAmFRCVsVkcVk0RxvlpU2wleEjzaDQkM7Ztdj7mYJsqF5dd8FmwZzdfuWMHJ5nx/UPLXA==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.8","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.12.0","@orbat-mapper/control-measures":"^0.30.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.8"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.8_1790782847892_0.17041084755758362","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.9","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.9","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"2293c93db369b87b1126bb46352e033c4230c2f4","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.9.tgz","fileCount":10,"integrity":"sha512-xVB/IqwEb2rBoD8MKAJ+G5muNW1NVucoOanTSKfFRQSGyR2mDOjPcFN/GYgH/u/hZA7VKixZv1B1i64eVUs2mg==","signatures":[{"sig":"MEUCIBijF/eIFogvsrhpFLZHyuHcq6NIe4ln0smOEIula0TdAiEA84KG3K2lfoftgL15CKxHGNzvBKtOCwa9hmf7EqUMZ9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCdPLcRJ51AmZ20+L7RqgHup+kGbvW+Rwp0RJLrIGJRaAIhAL7+BYn/7WvARqktP276iuciMQmivf+Psoy7DfceswVQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":987589},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.9.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/e0784c7d23fa35f594845b10c4a5adde/orbat-mapper-tactical-map-sheet-0.4.9.tgz","_integrity":"sha512-xVB/IqwEb2rBoD8MKAJ+G5muNW1NVucoOanTSKfFRQSGyR2mDOjPcFN/GYgH/u/hZA7VKixZv1B1i64eVUs2mg==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.9","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.13.0","@orbat-mapper/control-measures":"^0.31.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.9"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.9_1790966916250_0.5488779708875835","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"@orbat-mapper/tactical-map-sheet","version":"0.4.10","author":{"name":"Orbat Mapper"},"license":"MIT","_id":"@orbat-mapper/tactical-map-sheet@0.4.10","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"f1d6a4dd0c92c771bfbb76d493a0f286761b1573","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.10.tgz","fileCount":10,"integrity":"sha512-NYx+OvrvuLiCu89K7LI69ZBhS1DsKrlt1O2mgVYdwGjbuDwZTYvwFWhxDvgPYy/T15a2TNWq3jvZdTg/rdwXWw==","signatures":[{"sig":"MEUCIQCLH0QPGP8UqYJMDI1bNlVm08ucxxdY2vGf3vm0Kc2M9gIgNfq48BPFOOMSSf0L/a+9F3w38yqOgpG66LhIFjdeZIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGvAzDUsV6cMGaIjAV3fjxRq006ktHnk22ob/z/k3taAAiBfy1xkjwfVO4XRdxwxsxx1fy+GhnjV3dgfFapPekZezw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":987591},"type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.10.tgz","exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"_resolved":"/tmp/713b39d999961a34efc6fddfa34c8577/orbat-mapper-tactical-map-sheet-0.4.10.tgz","_integrity":"sha512-NYx+OvrvuLiCu89K7LI69ZBhS1DsKrlt1O2mgVYdwGjbuDwZTYvwFWhxDvgPYy/T15a2TNWq3jvZdTg/rdwXWw==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.9","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.13.2","@orbat-mapper/control-measures":"^0.32.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.10"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"tmp":"tmp/tactical-map-sheet_0.4.10_1791005329315_0.13521394870599335","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"_id":"@orbat-mapper/tactical-map-sheet@0.4.11","bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"dist":{"shasum":"fd4ff793aa455c2d0d3c1841f849ce1fc4366595","tarball":"https://registry.npmjs.org/@orbat-mapper/tactical-map-sheet/-/tactical-map-sheet-0.4.11.tgz","fileCount":10,"integrity":"sha512-tLGnYlWMASR83pQ9hjITJSVHiiRy8DutMT5lbQhkKaw4W8LJx5xYAcQc9+38HMA9k9inRKGlZp2n1zgMbZMdNA==","signatures":[{"sig":"MEUCIQCgpDiWbPc1/UkdDL7yAovKVCYOwjpHEWpCHwFdffR3EQIgVzHi+QpLfm9QFhnV9/2GlvfEIqnRlUJyfAMd4AM7PdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD5zFy1C6H3DBOcaFXs6gV/uUMzfp97GPAmOqxVSTB3NwIgAu4uzvgy/1pZr770MvtPYpx5v5EAfBX94QJ8Fp/m3Dw="}],"unpackedSize":987591},"name":"@orbat-mapper/tactical-map-sheet","type":"module","_from":"file:orbat-mapper-tactical-map-sheet-0.4.11.tgz","author":{"name":"Orbat Mapper"},"exports":{".":"./dist/index.mjs","./pdf":"./dist/pdf.mjs","./package.json":"./package.json"},"license":"MIT","scripts":{"lint":"eslint . --fix","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","fixtures:update":"UPDATE_NORMANDY_FIXTURES=1 vitest run src/__tests__/normandy-conformance.spec.ts","fixtures:update:pdf":"UPDATE_PDF_FIXTURES=1 vitest run src/__tests__/pdf.spec.ts"},"version":"0.4.11","_npmUser":{"name":"kjellmf","email":"kjellmf@gmail.com"},"homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","_resolved":"/tmp/306ead193115c902d9c2032ba5280ec7/orbat-mapper-tactical-map-sheet-0.4.11.tgz","_integrity":"sha512-tLGnYlWMASR83pQ9hjITJSVHiiRy8DutMT5lbQhkKaw4W8LJx5xYAcQc9+38HMA9k9inRKGlZp2n1zgMbZMdNA==","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"_npmVersion":"10.9.9","description":"Scale-accurate projected vector tactical map-sheet renderer.","directories":{},"maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"jspdf":"4.2.1","saxes":"6.0.0","opentype.js":"2.0.0","geographiclib-mgrs":"^1.0.5","@orbat-mapper/tactical-draw":"^0.14.0","@orbat-mapper/control-measures":"^0.32.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","pngjs":"7.0.0","tsdown":"^0.22.2","vitest":"^4.1.8","pdfjs-dist":"6.2.108","typescript":"~5.9.3","@types/pngjs":"6.0.5","@types/geojson":"^7946.0.16","@napi-rs/canvas":"1.0.7","@resvg/resvg-js":"2.6.2","@types/opentype.js":"1.3.10","@orbat-mapper/point-symbols":"0.2.11"},"inlinedDependencies":{"@types/geojson":"7946.0.16"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tactical-map-sheet_0.4.11_1791030941403_0.26565971547577627"}}},"time":{"created":"2026-08-22T10:44:18.104Z","modified":"2026-10-03T12:35:41.648Z","0.1.0":"2026-08-22T10:44:18.381Z","0.1.1":"2026-08-22T16:39:01.263Z","0.1.2":"2026-08-23T06:47:54.716Z","0.2.0":"2026-08-23T15:05:35.543Z","0.2.1":"2026-08-23T18:06:35.278Z","0.2.2":"2026-08-25T04:17:37.210Z","0.3.0":"2026-08-25T18:51:00.060Z","0.3.1":"2026-08-26T16:03:59.867Z","0.3.2":"2026-08-29T09:39:58.084Z","0.3.3":"2026-09-01T04:20:44.748Z","0.3.4":"2026-09-01T05:11:50.290Z","0.3.5":"2026-09-02T12:10:06.167Z","0.3.6":"2026-09-03T15:02:59.132Z","0.3.7":"2026-09-04T16:53:41.727Z","0.3.8":"2026-09-05T13:47:51.182Z","0.3.9":"2026-09-06T07:20:01.520Z","0.3.10":"2026-09-06T11:05:02.146Z","0.3.11":"2026-09-07T17:01:23.030Z","0.3.12":"2026-09-08T16:50:59.641Z","0.4.0":"2026-09-13T19:45:52.005Z","0.4.1":"2026-09-17T17:01:23.238Z","0.4.2":"2026-09-19T09:09:16.518Z","0.4.3":"2026-09-20T16:29:28.398Z","0.4.4":"2026-09-22T04:48:30.689Z","0.4.5":"2026-09-26T04:57:06.102Z","0.4.6":"2026-09-26T10:50:39.425Z","0.4.7":"2026-09-27T13:40:20.561Z","0.4.8":"2026-09-30T15:40:48.034Z","0.4.9":"2026-10-02T18:48:36.380Z","0.4.10":"2026-10-03T05:28:49.434Z","0.4.11":"2026-10-03T12:35:41.484Z"},"bugs":{"url":"https://github.com/orbat-mapper/tactical-graphics/issues"},"author":{"name":"Orbat Mapper"},"license":"MIT","homepage":"https://github.com/orbat-mapper/tactical-graphics#readme","repository":{"url":"git+https://github.com/orbat-mapper/tactical-graphics.git","type":"git","directory":"packages/tactical-map-sheet"},"description":"Scale-accurate projected vector tactical map-sheet renderer.","maintainers":[{"name":"kjellmf","email":"kjellmf@gmail.com"}],"readme":"# Tactical map sheet\n\nPublic package for deterministic, scale-accurate tactical map sheets.\n\nThe package creates transparent or explicitly backed, grid-north-up UTM/UPS SVG and PDF\nsheets from physical page data, a geographic center, nominal true-ground scale, and normalized authored layers.\nIt supports automatic or explicit projection selection, deterministic UTM/UPS MGRS grids, control\nmeasures, renderer-neutral point symbols, custom vector symbols, host-prepared raster basemaps,\nphysically registered overlays, and complete configurable marginalia. One center-selected CRS is retained across zone and polar\ntransitions and any usable distortion or fallback is reported through structured warnings.\n\n## Install and entry points\n\n```bash\npnpm add @orbat-mapper/tactical-map-sheet\n```\n\nThe root entry point exports `createTacticalMapSheet` and all request, result, warning, metadata,\nlayer, MGRS, marginalia, and vector-symbol capability types. The optional PDF implementation is\nonly exported from `@orbat-mapper/tactical-map-sheet/pdf`, keeping PDF code and dependencies out of\nthe main SVG module graph.\n\n```ts\nimport {\n  createTacticalMapSheet,\n  type TacticalMapSheetRequest,\n} from \"@orbat-mapper/tactical-map-sheet\";\n\nconst request: TacticalMapSheetRequest = {\n  page: { widthMm: 297, heightMm: 210, marginMm: 10, orientation: \"landscape\" },\n  center: [-2.5, 49.2],\n  scaleDenominator: 25_000,\n  grid: { intervalMeters: 1_000 },\n  layers: [],\n  marginalia: {},\n};\n\nconst { svg, footprint, warnings, metadata, resources } = createTacticalMapSheet(request);\n```\n\n`TacticalMapSheetResult` contains deterministic SVG bytes, the densified geographic printable\nfootprint, structured warnings, resolved projection/page/grid metadata, and the font and pattern\nresources used by the document. Identical requests produce identical results independently of a\nbrowser viewport or device-pixel ratio.\n\n## Contract and failure behavior\n\nThe page and map frame use millimetres. The package derives one printable footprint from the page,\ncenter, and scale; it does not accept a competing extent. `projection: \"auto\"` selects one UTM or\nUPS CRS from the center and retains it for the whole sheet. Layers render bottom-to-top in request\norder, and each layer preserves authored graphic order. Requested control measures and symbols stay\nvector in both output formats.\n\nInvalid coordinates, contradictory page geometry, unavailable point-symbol capabilities,\nprojection failures, and SVG content outside the controlled vector subset throw. A usable but lossy\nresult is returned only with an identifying warning; requested content is never silently omitted or\nrasterized.\n\n## Host-prepared raster basemaps\n\nAn ordinary map sheet may include one `rasterBasemap` beneath its MGRS grid and every authored\nvector layer. The basemap is an ordered source-over stack. Each layer has a stable ID, one shared\nopacity, structured attribution, and ordered PNG/JPEG tiles. Each tile has a stable ID, original\nbytes, declared intrinsic pixel dimensions, and a page-relative millimetre destination. Every layer\nmust independently tessellate the complete map frame with axis-aligned rectangles; a regular tile\ngrid is not required.\n\nResolve the target before a host renders or warps source map pixels:\n\n```ts\nimport {\n  mapSheetRasterPointToGeographic,\n  resolveMapSheetRasterPlan,\n} from \"@orbat-mapper/tactical-map-sheet\";\n\nconst plan = resolveMapSheetRasterPlan({\n  page: { widthMm: 297, heightMm: 210, marginMm: 10 },\n  center: [-2.5, 49.2],\n  scaleDenominator: 25_000,\n});\n\nconst topLeft = mapSheetRasterPointToGeographic(plan, 0, 0);\n```\n\n`plan` reports the resolved grid CRS and EPSG code, physical frame, projected bounds, and projected\nmetres per millimetre from the same resolver used by document generation. Normalized coordinates\nare finite values from 0 through 1, use a top-left origin, and convert through the package's\nGeographicLib UTM/UPS backend.\n\n```ts\nrequest.rasterBasemap = {\n  layers: [\n    {\n      id: \"terrain\",\n      opacity: 0.85,\n      attribution: [{ text: \"National mapping authority\", required: true }],\n      tiles: [\n        {\n          id: \"terrain-full\",\n          mediaType: \"image/png\",\n          data: pngBytes,\n          pixelWidth: 3272,\n          pixelHeight: 2244,\n          frame: plan.frame,\n        },\n      ],\n    },\n  ],\n};\nrequest.marginalia = {};\n```\n\nValidation runs before serialization. IDs and attribution text must be non-blank; layer and tile IDs\nmust be unique; opacity must be in `[0, 1]`; pixel dimensions must be positive integers; and tiles\nmust cover the frame without gaps or overlaps within `1e-6` mm. PNG signature, dimensions, and APNG\nmarkers are inspected. JPEG signature, baseline/progressive dimensions, and EXIF orientation are\ninspected; only absent orientation or orientation 1 is accepted. Empty, malformed, mismatched, or\nunsupported images reject the complete request. Inspection reads image containers only — compressed\npixel data is never decoded, and tile bytes are embedded exactly as supplied.\n\nResolved raster metadata preserves canonical layer/tile order, opacity, de-duplicated attribution,\nphysical placement, media type, intrinsic dimensions, and effective horizontal/vertical DPI without\nechoing image bytes. `low-raster-dpi` identifies a tile below 150 DPI on either axis;\n`raster-dpi-anisotropy` identifies a horizontal/vertical difference above 1%. Required attribution\nis de-duplicated in stable first-occurrence order and wrapped into a reserved marginalia band. The\nrequest fails if marginalia is disabled or the required text cannot fit without overlap.\n\nSVG embeds self-contained data URLs; PDF consumes the same PNG/JPEG payload and physical\nrectangles. Both preserve PNG transparency, layer opacity, clipping, and ordinary source-over layer\norder. MGRS, authored graphics, symbols, text, and marginalia remain vector above the basemap.\nIdentical request values and image bytes produce deterministic output. Registered transparent\noverlays cannot include a raster basemap.\n\nThe host remains responsible for basemap selection and licensing, network acquisition, engine/style\nrendering, reprojection into `plan.projectedBounds`, warp quality, DPI choice, image encoding, and\ntile sizing. The package accepts no MapLibre/OpenLayers/Leaflet object, style, URL, canvas, or Web\nMercator tile coordinate and performs no I/O. For a MapLibre reference host, render a flat Mercator\nmap at pitch/bearing zero with no globe or terrain, wait for `idle`, keep style layout at 96 CSS\npx/in, use drawing-buffer pixel ratio for export DPI, and warp the captured texture into the\nUTM/UPS target before encoding tiles. The preview reference host qualifies one coherent MapLibre\nsource canvas per layer with 256 logical CSS pixels of padding on every side, a 0.5-source-pixel\nadaptive warp tolerance, and sequential destination tiles no larger than 4096 pixels per edge. It\nnever automatically reduces output DPI, padding, tolerance, dimensions, or layer count.\n\nMapLibre's Web Mercator latitude domain and the browser/GPU single-source-canvas and memory limits\nqualify that preview-host implementation only. They do not narrow this package's raster plan:\n`resolveMapSheetRasterPlan` and `mapSheetRasterPointToGeographic` remain UTM/UPS-capable, including\npolar vector-only exports. A host using another renderer or a different source strategy may support\nother source domains while supplying the same projection-aligned package input.\n\nWarnings are deterministic records with these public codes and payloads:\n\n- `cross-zone-footprint` reports the center-selected UTM `selectedZone` and all\n  `intersectedZones` when the printable footprint enters another UTM zone.\n- `cross-projection-footprint` reports the `selectedProjection` and the ordered\n  `intersectedProjections` (`ups`, `utm`) when the footprint crosses the UTM/UPS boundary. A UTM\n  footprint crossing that boundary and another UTM zone reports both warnings.\n- `scale-deviation` reports `maximumRelativeDeviation` when frame scale differs from center scale\n  by at least `0.001` (0.1%). Smaller usable distortion remains available in result metadata.\n- `graphic-clipped`, `graphic-outside-frame`, and `graphic-hidden` identify the affected `layerId`\n  and `graphicId`.\n- `point-symbol-fallback` identifies a `layerId` and `graphicId` whose point-symbol capability\n  returned visible fallback vector content.\n- `low-raster-dpi` identifies `layerId`/`tileId`, both effective DPI values, and the 150 DPI\n  threshold.\n- `raster-dpi-anisotropy` identifies `layerId`/`tileId` and the relative axis difference above 1%.\n\nRegular/Caps, Italic, and Light semantic text use complete package-owned Open Sans static TTFs and\none final-size metrics service. Their license, immutable provenance, and SHA-256 identities live\nunder `src/assets/`.\n\nThe package owns public MGRS utilities for parsing, normalization, conversion, formatting, and\nsnapping. MGRS text accepts case and whitespace variations and normalizes to compact uppercase.\nFinite-precision references identify the southwest intersection of their grid cell, never its\ncenter. Geographic positions use GeoJSON order (`[longitude, latitude]`); projected results carry an\nexplicit UTM or UPS `crs` alongside metre `easting` and `northing` values. The\n`geographiclib-mgrs` backend is qualified against GeographicLib/GEOTRANS vectors, Norway/Svalbard\nzone rules, explicit-zone and round-trip behavior, UTM/UPS transitions, poles, MGRS precision\nboundaries, TypeScript/ESM, Node, and browser bundling.\n\n## Registered physical overlays\n\nAdd `registration` to turn a normal sheet into a registered overlay. The page, map frame,\ngeographic center, projection, and nominal scale remain authoritative: registration validates the\nchosen sheet and never fits, rotates, resizes, or relocates it.\n\n```ts\nconst registered = createTacticalMapSheet({\n  page: { widthMm: 297, heightMm: 210, marginMm: 10 },\n  center: [-2.5, 49.2],\n  scaleDenominator: 25_000,\n  registration: {\n    marks: [\n      { id: \"southwest\", mgrs: \"30u wv 33924 48309\", label: \"SW\" },\n      { id: \"northeast\", mgrs: \"30UWV3892451309\" },\n    ],\n    snapIntervalMeters: 1_000,\n  },\n  marginalia: { showFrameCornerMarks: false, showCalibrationMarks: false },\n  printerCalibration: {},\n});\n```\n\nRegistration requires at least two marks with unique non-empty IDs. Every MGRS reference is\nnormalized and resolves to its southwest grid intersection, then optionally snaps at 100 m, 1 km,\n10 km, or 100 km. A mark must use the sheet's UTM zone and hemisphere, or the same UPS hemisphere.\nIts complete fixed 8 mm black crosshair and labels must fit inside the printable frame. A non-empty\nauthored label is placed inward from the crosshair. Otherwise, the MGRS easting is placed to its left\nand the northing below it in the conventional abbreviated arrangement. At 100 km precision, the\ngrid-square column and row letters take those positions. At least two marks must resolve to distinct\npositions. Any invalid mark rejects the complete request; marks are never omitted or moved.\n\nRegistered overlays are transparent. An explicit non-transparent `page.background` is rejected.\nSVG and PDF results expose the same ordered `registrationMarks`, each containing the authored ID,\nnormalized `mgrs`, GeoJSON-order `position`, and derived `sheetPositionMm`. The optional full MGRS\ngrid, tactical layers, and marginalia remain independent.\n\n`printerCalibration: {}` adds a 100 mm diagnostic line, endpoint ticks, and length label centered\nin the bottom page margin. Set a positive `lengthMm` to choose another length. The request fails if\nthe complete calibration artwork does not fit; calibration never changes sheet geometry, coverage,\nscale, or mark positions.\n\nPrint registered SVG or PDF output at **100% / Actual Size** with **Fit to page disabled**. If the\ncalibration line measures incorrectly, correct the printer settings and reprint; do not compensate\nby resizing the overlay.\n\nPoint-symbol renderers enter through a capability that returns complete SVG, bounds, doctrinal and\noctagon anchors. Point and custom symbols then use the same conservative vector subset. Raster,\nlinked, scripted, malformed, or otherwise unsupported SVG throws instead of being omitted or\nrasterized.\n\nThe checked conformance assets live beside `normandy-conformance.spec.ts`. Update both the canonical\nSVG bytes and the 1188-pixel-wide PNG rendered by the exactly pinned `@resvg/resvg-js` dependency\nwith:\n\n```bash\npnpm --filter @orbat-mapper/tactical-map-sheet fixtures:update\n```\n\nReview the SVG and PNG visually before committing an update. The visual comparison permits at most\n0.01% of pixels to differ by more than 8 in any RGBA channel; semantic assertions remain exact.\n\nThe optional direct PDF backend is a separate entry point, so SVG consumers never load jsPDF or its\ndependencies:\n\n```ts\nimport { renderMapSheetPdf } from \"@orbat-mapper/tactical-map-sheet/pdf\";\n\nconst result = renderMapSheetPdf(request);\nconst pdfBytes = result.pdf;\n```\n\nPDF is serialized directly from the same private millimetre scene as SVG. It retains vector paths,\ntiling patterns, map-frame clipping, opacity, symbol transforms, embedded searchable Open Sans text,\ncanonical ordering, warnings, resources, footprint, and resolved metadata. The serializer fixes the\ndocument timestamp and identifier, disables variable compression, and normalizes geometry through\nthe shared six-decimal formatter so identical requests produce identical bytes. Update the ordinary,\npatterned, cross-zone, and polar canonical PDF and rendered PNG fixtures with:\n\n```bash\npnpm --filter @orbat-mapper/tactical-map-sheet fixtures:update:pdf\n```\n\nThe PDF fixtures are rendered by pinned PDF.js and `@napi-rs/canvas`, then compared both byte-for-byte\nwith their checked PNGs and visually with the sibling SVG render. The cross-renderer comparison allows\nat most 2% of pixels to differ by more than 24 in one RGBA channel, or 10% for one-pixel repeating\nhatching where the two vector rasterizers cover opposite edge pixels.\n\nApplication code remains responsible for content selection, authorization, export preferences,\nfootprint preview, displaying warnings and validation failures, and saving the returned bytes.\nApplication stores and map-engine output are not part of the public request contract.\n\n## API reference\n\n### Request\n\n`TacticalMapSheetRequest` has these fields:\n\n- `page`: required physical `widthMm` and `heightMm`, with optional non-negative `marginMm`,\n  `orientation`, and CSS `background` (or `\"transparent\"`).\n- `center`: required GeoJSON longitude/latitude position; `scaleDenominator`: required positive\n  nominal true-ground scale at that center.\n- `mapFrame`: optional `{ xMm, yMm, widthMm, heightMm }` inside the page. It is mutually exclusive\n  with `page.marginMm`.\n- `projection`: `\"auto\"` (default), `{ kind: \"utm\", zone, hemisphere }`, or\n  `{ kind: \"ups\", hemisphere }`.\n- `grid`: `false` or `MgrsGridOptions` (`intervalMeters` of 100, 1,000, 10,000, or 100,000;\n  matching precision 3, 2, 1, or 0; plus color, line width, and label size).\n- `layers`: ordered `TacticalMapSheetLayer[]`; `pointSymbols`: the optional renderer capability;\n  `marginalia`: `false` or display options; `metadata`: optional document text.\n- `registration`: optional grouped MGRS marks and `snapIntervalMeters`; its presence activates\n  strict transparent registered-overlay validation.\n- `printerCalibration`: optional bottom-margin diagnostic line; `lengthMm` defaults to 100.\n- `rasterBasemap`: optional ordered raster layer stack described above. It is incompatible with\n  `registration`.\n\nEach layer has a stable `id`, ordered `{ graphic }[]`, and optional shared portrayal defaults for\ncolor, line/dash/cap/join, and label size/clamp. A graphic is a control-measure `ControlMeasure`, a\n`MapSheetPointSymbol`, or a `MapSheetCustomSymbol`.\n\nControl-measure label sizes and Text sizes authored in metres retain their existing Web Mercator\nconstruction-unit meaning. The renderer converts the sheet's true-ground scale at each graphic's\ncontrol-point bounding-box midpoint latitude for both label layout and final SVG/PDF text sizing.\nFor example, a `labelSize` of 280 at 60° latitude prints at 14 CSS pixels when the sheet represents\n10 true-ground metres per CSS pixel. Ordinary ground labels use the layer's clamp band; ground Text\ngraphics instead scale freely and hide above their `maxSizePixels` threshold. Screen sizes remain\nfixed CSS reference pixels. Authored graphics are never rewritten by export.\n\nPoint symbols carry `id`, `sidc`, position, rotation in radians, pixel- or metre-based size, optional\namplifiers/modifiers, and renderer style/options. `MapSheetPointSymbolCapability.render(symbol)`\nmust return a `ControlledVectorSymbol`: stable resource ID, controlled-subset SVG, complete width and\nheight, octagon size, placement anchor, octagon anchor, and optional validation state. Custom symbols\ncarry that same vector record directly. Metre sizes may specify pixel clamps.\n\n### Paper presets\n\n`PAPER_SIZES` contains exact portrait millimetre dimensions for `a0` through `a4`, `letter`, `legal`,\n`tabloid`, `ansi-c`, `ansi-d`, `ansi-e`, and `arch-d`. `ledger` aliases `tabloid`; `ansi-a` aliases\n`letter`; and `ansi-b` aliases `tabloid`, so aliases share one physical definition. ANSI D is\n558.8 × 863.6 mm and remains distinct from 609.6 × 914.4 mm ARCH D.\n\n`resolvePaperSize(name, orientation)` returns `{ widthMm, heightMm }` for direct use as a page input.\nPortrait is the default and landscape swaps the axes. Presets are optional conveniences: callers can\ncontinue supplying arbitrary positive `widthMm` and `heightMm`, which remain authoritative during\nrendering.\n\n### MGRS utilities\n\n- `parseMgrsReference` validates a complete UTM or UPS reference and returns its compact-uppercase\n  form, precision, explicit grid CRS, projected metre coordinates, and GeoJSON-order position.\n- `normalizeMgrsReference`, `mgrsToProjected`, and `mgrsToGeographic` expose focused forms of that\n  parsed result. Geographic conversion always returns the southwest grid-cell intersection.\n- `geographicToMgrs` and `projectedToMgrs` format coordinates at precision 0 through 5 (100 km\n  through 1 m). Projected input includes its explicit UTM zone/hemisphere or UPS hemisphere.\n- `snapGeographicToMgrs` and `snapProjectedToMgrs` accept 100 m, 1 km, 10 km, or 100 km. Already\n  aligned intersections stay fixed; exact halfway ties move toward increasing easting and northing.\n\n`MapSheetMarginaliaOptions` controls color and visibility of declared scale, scale bar, grid/north,\nframe-corner marks, legacy calibration marks, and footprint. Grid/north marginalia includes the\nMGRS grid-zone designation for the sheet center. Use `showFrameCornerMarks` for the\ncanonical ungeoreferenced corner crosses. Deprecated `showRegistrationMarks` remains an alias; when\nboth are supplied, `showFrameCornerMarks` takes precedence. Deprecated `showCalibrationMarks`\ncontinues to control the existing pair of 10 mm legacy marks and is independent of\n`printerCalibration`. `MapSheetMetadata` supplies optional title, subtitle, classification, and\npreparer text.\n\n### Results and resolved metadata\n\n`createTacticalMapSheet(request)` returns `TacticalMapSheetResult`:\n\n- `svg`: complete deterministic SVG; `footprint`: densified GeoJSON polygon.\n- `warnings`: ordered structured warnings described below.\n- `metadata`: resolved center, scale denominator, physical page and map frame, optional source\n  document metadata, optional resolved MGRS interval/precision, and resolved CRS (`kind`, zone or\n  hemisphere, EPSG, center point scale, center convergence in degrees, and maximum frame scale\n  deviation).\n- `metadata.rasterBasemap`: canonical layer, attribution, tile placement, media type, dimensions,\n  and effective DPI metadata; image bytes are intentionally omitted.\n- `resources`: identities for embedded Open Sans fonts and deterministic pattern resources.\n- `registrationMarks`: when registered, the ordered resolved IDs, normalized MGRS references,\n  longitude/latitude positions, and physical sheet positions in millimetres.\n\n`renderMapSheetPdf(request)` accepts the identical request and returns `TacticalMapSheetPdfResult`:\n`pdf: Uint8Array` plus the same footprint, warnings, metadata, resources, and resolved registration\nmarks as the SVG result.\n\n### Warning union\n\n`TacticalMapSheetWarning` is a discriminated union on `code`. Zone, projection, and scale warnings\ncarry the payloads documented earlier. `graphic-clipped`, `graphic-outside-frame`, `graphic-hidden`,\nand `point-symbol-fallback` carry both `layerId` and `graphicId`. Warning order is deterministic.\n","readmeFilename":"README.md"}