{"_id":"@sienci/gviewer","_rev":"41-bc5f5f7df8902aa0495b3bb8f1d2ba01","name":"@sienci/gviewer","dist-tags":{"latest":"0.1.40"},"versions":{"0.1.0":{"name":"@sienci/gviewer","version":"0.1.0","license":"MIT","_id":"@sienci/gviewer@0.1.0","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"8fa8937c17980e9e92188212778bbc2461f9b51c","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.0.tgz","fileCount":35,"integrity":"sha512-jslzFX4al1PxTW9s0lZUP47SJ+XVtkmLabFkfY53U9c0GXv6s9/xovo9gG5A+c4CkFEsiv6wwnnJYFXzesG1wA==","signatures":[{"sig":"MEYCIQC0FCNHbESid3aJCZPJhFTbMc4/4mivcH8Pm4t84Ti2aQIhAKh9AeZ0w4pM4Xo69N4mU4UkpSPEjgJiuYjT4Ugv8Eyr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1546100},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"39a20c40a74518a18e30f912106af3ab0c98406c","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.0_1777648055976_0.7695090795051658","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@sienci/gviewer","version":"0.1.1","license":"MIT","_id":"@sienci/gviewer@0.1.1","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"e2417b61cacf0385e965a2d1fca1dc2abd2da8cc","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.1.tgz","fileCount":35,"integrity":"sha512-W+nCDMPA2+hxWCPIivLxyNahaDKOWAy6CGSU8DNx9bTtmVie+SY/YitV0svMGxy/wP0yK6XgjnU7WTH20CzgoA==","signatures":[{"sig":"MEYCIQCYpDR59EerBKUPtpU+WBKh+aWcn/x91066n+N/jlyMMQIhANzTiHcXnyMY8/1bScPYEcxpQ++8FBHbKAIVk4+0dLsK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1559009},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"dde1844c932f447a5c0c0690c0ced68813db2463","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.1_1779379344292_0.3691024545328774","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@sienci/gviewer","version":"0.1.2","license":"MIT","_id":"@sienci/gviewer@0.1.2","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"07034da19ba22e6c109877006574e2910bbb4908","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.2.tgz","fileCount":35,"integrity":"sha512-QVX/8abalQUys6eUdo87Ui8LJyJ793Z6AwiDYyNan4miIv5ioi56CaqkluXcNzjAtixg9JOIt95az/n0BTfgsw==","signatures":[{"sig":"MEYCIQDZrwGavK5EF3W32rhX5r8yksc1DZ7ufPhA+IGNTHClKwIhAOQPeITvPRY6qBGf63V6qEh2HTvSoV7lmGfuapQ4q93r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1561994},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"26da9cca0f2c050f32b951551bb133c6696e00dc","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.2_1779387118091_0.27805708673628193","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@sienci/gviewer","version":"0.1.3","license":"MIT","_id":"@sienci/gviewer@0.1.3","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"ab17cdbccf386cb0068f06fbab82fb9a51b1af5c","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.3.tgz","fileCount":35,"integrity":"sha512-7uF3JIluUM7umHFc3dS5AbYJON6X3SLdNTvTGKZ2zXoHAc2UAimyXSIDzJd0t68av1IZXDdnz2AwKI9YXNicCw==","signatures":[{"sig":"MEUCIDZePwS1IMW26SIaF3bdGSiKkFy8EF/pR2baTL7ibWYHAiEAs2jrSZ/WhYGDUgKef+8V0gaghY63RYHxUiZ44/KC2l0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1565036},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"dc4f4718617ef90209522af9cc50a4f8aa9303c8","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.3_1779387888427_0.21550051209140286","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@sienci/gviewer","version":"0.1.4","license":"MIT","_id":"@sienci/gviewer@0.1.4","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"f4bc7ad791d187f4b540e8aa1ff0aae2a47b1879","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.4.tgz","fileCount":35,"integrity":"sha512-qdphsGmBNDFmRsFRq1hi5TLBBYxdCzS874fEw71M+c7OoJ7KxnkbptqZTTGhruDhptAfIA9u4J5vOb9Ek/htjw==","signatures":[{"sig":"MEUCIQCuh6NbvsGoPSWae8zWIj4KKsjgPC0ufkafb0yOxjUA7QIgQD4oJ66zfMdUC0UIiJ1CrwzlXCh/pQCAFOKQoV6L+NY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1565038},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"5ace774d5f26dee2b547d994ee13f6b94de866d5","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.4_1779897997799_0.3524508630862735","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@sienci/gviewer","version":"0.1.5","license":"MIT","_id":"@sienci/gviewer@0.1.5","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"419bc162d09e20c88fc6bafb8b005c6ace013a46","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.5.tgz","fileCount":35,"integrity":"sha512-oOEYjc78KZqDZkl/5hCZyXrBNzhAM8vV2lYiTzxGTYU3YY4CBOwfz1RbYK3BxECzEghmR9nJ8SVXFHBtJRqAIg==","signatures":[{"sig":"MEQCIA+RdyWP90dA3n73Hb5iIxkhrKFVje0un/ZOamLhUn/9AiBNsL6oonwnmqfIbuBoPzN8yQdBeUpjjx3DqcF8y4kryw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1567099},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"521f9fd51d72f80e340bee5b0373d0e4b7cfb772","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.5_1780493912429_0.20458899256246332","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@sienci/gviewer","version":"0.1.6","license":"MIT","_id":"@sienci/gviewer@0.1.6","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"04962e5517991fd9e42be087274bb53091f0b7ad","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.6.tgz","fileCount":35,"integrity":"sha512-Gz/1gQjE9HmQohoUq2+tizWDnH4OFnalB4CuU7dn9xblrGdAt8LV6AO9ZUGtlbvIu7HO/uNQbJR7SoeTu4501A==","signatures":[{"sig":"MEYCIQC/rmeBU4BdQ8s4n3Sb3oHq06xMvBRRDBymyNuNJT3NmwIhANIJg7mnZZuf3WrKm0XH9DGNWwPBuqlbWaH7tI0Mv3OF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1567105},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"602a99f7e3d3bc26a6aff38d3cef76d59bfce5f0","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.6_1780494878013_0.8434698927849009","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@sienci/gviewer","version":"0.1.7","license":"MIT","_id":"@sienci/gviewer@0.1.7","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"2df8dbe39f50045ca4fa0028fd353a2c7de2c369","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.7.tgz","fileCount":35,"integrity":"sha512-vEVmYzpLf1K/nXOOcl6YsASfGYccDsMPNjw64YyDGsBWMhGyPrahsfDyXaRH3pI+bJFs9bUj3TX0skPyxL8wXQ==","signatures":[{"sig":"MEUCIE2Oa98DkjX3FPnBibE2PpoJRAVAHDslYaPgdyXOlzdFAiEAupl9Yd3R/O/MXqtFhg1dkrE5GXLCK9ecchtIxcU0RMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1571003},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"33a07544da524c494ce3e071c5ce6aa774bdaf11","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.7_1780511751729_0.4264321103169715","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@sienci/gviewer","version":"0.1.8","license":"MIT","_id":"@sienci/gviewer@0.1.8","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"9cca62f7f446be7bab83afd031a8b0fb1124cd35","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.8.tgz","fileCount":35,"integrity":"sha512-6jhnp8cDi2qtecF4DxlHa71YzTYsiDAszVudb8SBcd3JOl+fScckpr+gNIy1ZSmXidrhPUTyeoxmpAq2NIZOnQ==","signatures":[{"sig":"MEYCIQCgffmBDhsSxbNJlzdjBLXtFf+dWV7OnxCKDhgUYdjBGgIhAMUegDlO6SIuo2WtRsPVkEKRDPvq4l2otU+oooKvAnyi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1573220},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"7705358ba34738879dd2c2d734be030843339240","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.8_1782230776578_0.3227692511824878","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@sienci/gviewer","version":"0.1.9","license":"MIT","_id":"@sienci/gviewer@0.1.9","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"80604eeb2949a14caba8ac3a48a391d133e2243e","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.9.tgz","fileCount":35,"integrity":"sha512-Gy+3aY/tm3wNfll6IGm7NoRakkQgmry+F/XbLMRGCKR3KCsUEJ9mf2M5kY9/IYroNIHz8kYaJel5JtPDfzYUsw==","signatures":[{"sig":"MEUCIGAr7ETRb3lA56510kqe5lDXQkUvHlWXDWy/d8myVszCAiEAj8ZQaU+82ASe7WkP1yWHxQjDBCgRKAKYqqWdSslXoXA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1573205},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"ee2c37f950e8ce50a77c0c187502681e5b718079","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.9_1782314231208_0.8519941938111404","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@sienci/gviewer","version":"0.1.10","license":"MIT","_id":"@sienci/gviewer@0.1.10","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"74c94f6e082a82c024eff786b5a3279707ddb01a","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.10.tgz","fileCount":35,"integrity":"sha512-HU85xJRv6+n/spwDEG5pwqvtkH5RqZBd0Ib0IRwoSzxLwHznwijDfByDaa98Jx5h4w0JeQ4Z4edvxqMVByFWpA==","signatures":[{"sig":"MEUCIQDx8P7Wkw0XJC5Tf89L6ZrsUqvPlrAN6nnygXxSuLJDagIgE5XSMByTxP7H9KgNdCTKJbqQRxDixKAjmq8C2VvodiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1746175},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"1372cdf2c5c3febb851af3643199c341ab7432da","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.10_1782321932997_0.5336106766173383","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@sienci/gviewer","version":"0.1.11","license":"MIT","_id":"@sienci/gviewer@0.1.11","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"d0026946a2b43ea137cef109cba3d5f7ea7e3052","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.11.tgz","fileCount":35,"integrity":"sha512-1CpVttrrrsxpExodoeaz0+P1c6xlut+oc1OMuBuHTd+lbt2kfJaeFMzbw29KKWa4WYzld2LS/RKRCLA5EiFLog==","signatures":[{"sig":"MEUCICS04yxJkduFOXEEVExcCYGZBbZszSZco4CEQTAQAme1AiEAmz2KSOtCIkH1RvTXtmEB+7upcUMjJ10C+CSGjdAfz00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1749143},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"68f97b6ed97f5f1ed2e825db0a814076305e1286","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.11_1782322714829_0.03889561215175341","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@sienci/gviewer","version":"0.1.12","license":"MIT","_id":"@sienci/gviewer@0.1.12","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"12e32d58db97d0464fd6fa6cb18009a77a4ce709","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.12.tgz","fileCount":35,"integrity":"sha512-nhUaEJoZ7Nstg/vkWmjSp67+INAegrldwGtkDg/fESktDPopvC5UDdOk2u6t7K6rTsWoTfsIA/a84PeHi8AJSg==","signatures":[{"sig":"MEUCIE86977hU37qgJirb5+FUvMjR2FgCuq/NI+xSkatTL4JAiEAoASB+s45pNsn3FZVcXYYplMvdSOnisNNAe+NUBP/FdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1749186},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"9ba8bb5405e815df600a26004b4d12d3cf97f1c0","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.12_1782323591104_0.5873826889822358","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@sienci/gviewer","version":"0.1.13","license":"MIT","_id":"@sienci/gviewer@0.1.13","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"f418ef85b754e82636193b4098da3bd61757b9f7","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.13.tgz","fileCount":35,"integrity":"sha512-hJgCFDzxxPX3vByyIKLJbe99zaupKvX+JX41vl9TjrhgLtA8O+M1bbSQXlQnJ/BXApdspO1auOwUKrjbXGX2UA==","signatures":[{"sig":"MEYCIQCmhOYFB81yw+N9Ni9HqZb9YqVX21pTlzAM8v+2n/PY8QIhALXXLZ/dm/aVW8YHA3mcz4A44MjVBXWh7ztxt8BxKQgK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1749541},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"cd18f8e776ec7d027c13f356dab34269303ecb9b","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.13_1782827310982_0.37766067801269676","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@sienci/gviewer","version":"0.1.14","license":"MIT","_id":"@sienci/gviewer@0.1.14","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"d4393ec078f65991c2e80a567c44819163f16382","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.14.tgz","fileCount":35,"integrity":"sha512-+ZtpzlzPX9FLKQ1csSvRDtlcHZZ2kELNIJ1pFrpA65DCVTCCm2Ecn5BiHPK8176PbExEcLuGp7pxakumaQ2peQ==","signatures":[{"sig":"MEYCIQCSLF14jBxUyDPAZoo70EM3AFBkmh89FHNW3H5LT1jI2gIhAJMfg3ijZgxvFgqxGlVdrb1qT/UhgHTJGPnME7Hr0cgf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1749904},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"d1984f0674c041452fd8c989936f167721f4c1cf","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.14_1782834363112_0.6595556464859247","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@sienci/gviewer","version":"0.1.15","license":"MIT","_id":"@sienci/gviewer@0.1.15","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"24c67a879f62b169997c1219690c1b0b0a7d79f2","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.15.tgz","fileCount":35,"integrity":"sha512-hTlVuHm8ED0ofVv471gZc8mV3pgreJ71lVvm4zWb7ZKyKLIj+NC+XI/ck41tqEc4Vg6+BpgF1AbaYbFSf35ksA==","signatures":[{"sig":"MEUCIQDI28ohKq+2/yaBlkJDBDZ+l3TfVVMpPgxwshBOB96KCgIgH1Lo9s2hjq3cHsMsSOCrFPjewM0+ngNyYFVqbyjzHGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1749863},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"31248b9b890580e422df8577c586a902acc9f3d1","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.15_1782835057838_0.46325821511299337","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@sienci/gviewer","version":"0.1.16","license":"MIT","_id":"@sienci/gviewer@0.1.16","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"35f6981998d6507509a60984560bad3bcd021195","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.16.tgz","fileCount":35,"integrity":"sha512-rC4uxuL4SM75nLjuCA5CPSrkuY9fY59flrHY5Zcv9iTs6C6TxV4jaxozsbiUNUD2IKfJTAfPJ53K44apiKPcew==","signatures":[{"sig":"MEYCIQD1deVFTvU4yllnKTXtMO1hmtCSeIZUM1ymKFyX3eI46wIhAOCXn8SkJe9RHWtkg5ANBcGiaS7RoIrbanKkc1C47UMH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1749972},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"4d7fec174de1bc7741c434474437dc913fe9348f","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.16_1782838945028_0.5784339375164513","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@sienci/gviewer","version":"0.1.17","license":"MIT","_id":"@sienci/gviewer@0.1.17","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"56d7739e08eb50a297a8d070714e5f5d265d4463","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.17.tgz","fileCount":35,"integrity":"sha512-fesMixzabeyz6NOfeEkdu+jZa9EAnby7oX6L3O3irgohhQhbQqFDwzXyTrbhRhtnmDXd3V70znrxM+MuXl+p9g==","signatures":[{"sig":"MEYCIQDYGE1iL90/vYZedrikDUev8IctvKlP6sHBAjQGu5k+VQIhAI1IbVyvf79IBvi8VeEHnzA3eFaSkf74t6dpSI0/EpuC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1755575},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"6e464db3706dee0138d15a964ab138630c0729bc","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.17_1782848794421_0.06973897990509847","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@sienci/gviewer","version":"0.1.18","license":"MIT","_id":"@sienci/gviewer@0.1.18","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"b4666b01412a6fb49ec948fab6c7257335cdbff3","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.18.tgz","fileCount":36,"integrity":"sha512-v84QvKG1HS3Em3RckwzZxsVdvxGjfyKOGG32AMdfA+wEXtHz3ft11lN3nFFfj2vmIjZ9YS9eurPcanX2lrv71g==","signatures":[{"sig":"MEUCIQC5P+Bmo4smkUui7FcmZ20ZwjyUY2W4Gw2ML/r1bjy3RQIgZ5ERtHJWKeJuL/8FFKLc4hDlZxvqCne6QlYunV0MOnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1761325},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"f7e35edcbede19e63ad7a02d7149b9ce00d638a2","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.18_1783435338642_0.5919387244567353","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@sienci/gviewer","version":"0.1.19","license":"MIT","_id":"@sienci/gviewer@0.1.19","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"0e098e2e8e54faa0a062cfcc957b0a3f3a285419","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.19.tgz","fileCount":36,"integrity":"sha512-pcrYUOX8MnQ8FeXPbs5u8vyPI8D55dpzmFEsljGJ/DYzWpEPSyJpQEPwgSJ4v4VH1Tcr2FVWkeHgpeV3haWD9A==","signatures":[{"sig":"MEQCIA2rLD9/450P9C6Nf8bsCmp7F6p5fMv637/Ic2Li8tKaAiBPMWe/eUj+tSLmwK7hqcDsTc6IdbqKcmkbqsCrukjG2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1765122},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"44deb3e3fc1c33089ba2aec159f61217d626aed1","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.19_1783438446367_0.6198097705306818","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@sienci/gviewer","version":"0.1.20","license":"MIT","_id":"@sienci/gviewer@0.1.20","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"8dac0b36919e4e10cf03dc3802374df9f5f7107a","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.20.tgz","fileCount":36,"integrity":"sha512-blFW4mFREb7lZYY97vPL1aoa8KpMjFGJtJPt9siWL6BLO+QL/aMRff3/Dm+dHwcWeGr0eRNoei7U/XPKqIhPBw==","signatures":[{"sig":"MEQCIAZoBpEWIa+m2InLOoVUlE83H92RwSyMrzHlOUte9ZYyAiBe8qPdHcw+mX+LzFG0eQltLpmoG/HHiTuSlW6oRKWLBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1767609},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"c10086a1cf74831727e34d0c656df48fc5016e8b","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.20_1783441336058_0.9251135896249432","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@sienci/gviewer","version":"0.1.21","license":"MIT","_id":"@sienci/gviewer@0.1.21","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"0c9b732bda6e56e1b96b195897f109695f076d08","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.21.tgz","fileCount":36,"integrity":"sha512-76A5ZK98rGQhm6Oaba4IKdfztA6QemMDAhxjFwDgGpuI0NNBNWhvXYduaxJM14iNhpRm9pGlvYDiSNxsD0JvuA==","signatures":[{"sig":"MEUCIQDBAy3xbXK35hXNq+rg0pHuQfseCrDoFoS1BVB6RkIPFAIgWuVYP7+on1ZDdkCOOOzl5hVsZiZvw+Q0KHCwS9EYqmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1767638},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"db52bd75139102753d98d78024cbbdb9ba2c9ccd","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.21_1783443600714_0.4917083409990015","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@sienci/gviewer","version":"0.1.22","license":"MIT","_id":"@sienci/gviewer@0.1.22","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"ed150bf1dcd0999170b0d2f9415914e3de4fc0bb","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.22.tgz","fileCount":36,"integrity":"sha512-NbKQZbErRxGF7OvEw/7M4Q0Yp9BfC4kGWLVNWRS6foQRF88nQMJj1CFD1JNBDQC2nKe21qRbG1D/48PSBDxliQ==","signatures":[{"sig":"MEQCIEC+E05ooxdlcAmYeUFOHB2N1CD7uJQVps3ETB0enqbVAiAOStherT+aeX03s72b0qdVxj+5CZUbEMxEPhBTC4hOIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1771218},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"fe18349aefbb37e15ec160a7d4b2ef0c0bfadeaf","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.22_1783452974756_0.8469789290081446","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@sienci/gviewer","version":"0.1.23","license":"MIT","_id":"@sienci/gviewer@0.1.23","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"1a6e389dfc6dd64177c79e9ab3384e28c465270d","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.23.tgz","fileCount":36,"integrity":"sha512-I6GRYr2Zw98GzbM263iiqrh8bogGZvjWRtnPUGRC4z736hQw/vXvRoXUg1sDqCBwGX8zHvY5hpQzFn0EeRIUfA==","signatures":[{"sig":"MEUCIQDDVHe32qp8w//JqP+/4ZUS2t5cXx1BJkIpzO82TgrkFAIgZDRCwYfY7apWuZEgDq4pNkvsJp8IFSBHdEVpZVndjhs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1770695},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"273be6b3d7107b2a0661a442adfc9910279b55ab","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.23_1783454331139_0.44089482629490373","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@sienci/gviewer","version":"0.1.24","license":"MIT","_id":"@sienci/gviewer@0.1.24","maintainers":[{"name":"sienci","email":"kevin_glover-netherton@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"3b3a6ea3a2b7997fae1480c89d83cef28c7ffdc3","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.24.tgz","fileCount":36,"integrity":"sha512-ZXU3qBlbol57TrRWKg2aux04KRJPt/t1lNzsBCT6u1gldO6hKaR5rPj1SFbfrCaZhzNPJuiMkzLubHgFMsJJiA==","signatures":[{"sig":"MEQCIC7I0DzpUaJ5TT30A9dz1WzT4mjWQqKAXpWPTvdG0cjkAiBBYAxmkA58myn/LalC29TbuLxWFWRr40YilIvGivY/lA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1772928},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"39fdc3519889cc7856fa6f3fba6652294535dc56","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"sienci","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.24_1783455492768_0.13429855433128313","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"@sienci/gviewer","version":"0.1.25","license":"MIT","_id":"@sienci/gviewer@0.1.25","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"7ceac5cfbbd40794ddb809077ac6180f0c5e1878","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.25.tgz","fileCount":36,"integrity":"sha512-m9ltzg8romNIlzON8wa5ps3QKL1+rIAwZ26KoJ2yPwWooKFOqqQVH+fLS93lj719vNuanJJwQFdcMQMU/ZvudQ==","signatures":[{"sig":"MEQCIDtncJx1yqnDuIOOqX/rsnxEbdhRNY6t1CCQV1SW2ZUuAiAFRyJtkwv4bWYkt/uZPqbr4IPLg9wVhxESZ8EhJMQeeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1777093},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"cb4f3035710f0822edd45fb834e40bb8041c9398","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.25_1783967939290_0.8086730442055066","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"@sienci/gviewer","version":"0.1.26","license":"MIT","_id":"@sienci/gviewer@0.1.26","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"a2a863d5d3d0093c2343141858221a8fdf8028bf","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.26.tgz","fileCount":36,"integrity":"sha512-x+aNu5o7XuCj9nTCkvizU0dFOYKauFXN03AnbMEu2lKsvgHEda5lX16TJekMeeXDXSd0xipdLpuSY7NyWT+ELA==","signatures":[{"sig":"MEUCIC+VfJXdnKQpRfew56tVM4VqbfCrRRc8REyjCxE3DEPJAiEAvChOcy8FhoPAvqJh5wE7lKCFmFULY0N+H9G2cX40Mqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1779971},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"076b20fbd5d2734b71ce7609f8dcf98b60386df0","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.26_1784745912080_0.12572510785305124","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"@sienci/gviewer","version":"0.1.27","license":"MIT","_id":"@sienci/gviewer@0.1.27","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"fef74f33696d10118254572a9b1a6d3cd3b2c0ab","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.27.tgz","fileCount":36,"integrity":"sha512-/tPlUPzmqxhh7PMwtcKCYjtP3jW65Sj6Ac63ZHS+6jU2Nz0baExjuLx+yaIO7sd6XRgp1Oy3bqemtLRiPxxR1A==","signatures":[{"sig":"MEYCIQDamY59/D1YRFLGB+ZRpc7ForJ9Bf8ginoBqxyQAsrjWQIhAJyjTccy7YgoOowNLM02laeONx38CzobOiEq9ZV6FSkp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1783193},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"9eac2f6a8ca96ec7d547089290012913981e4a4e","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.27_1785339237511_0.020134682036166307","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"@sienci/gviewer","version":"0.1.28","license":"MIT","_id":"@sienci/gviewer@0.1.28","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"35e8f4c7274d69c6dabe6952966fd5787e65cbfc","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.28.tgz","fileCount":36,"integrity":"sha512-Hsdrp4l8YMZ2pvV3+3LXMeqBXV7WtFX/jIp74ccK4FJLLpmeSmzXpO73IeFj0yUN8EVbfokGm1vVpMQ9Mh/52A==","signatures":[{"sig":"MEUCIQD0pyN7fJ/kSnxrmxOXm0G5HRNH09eqIJz12ntC2i9eNgIgK8juiNHJfytLScKbLWAx6pgeaXl2aFEcqgRfzdFBsmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1783193},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"a66b36388be52754654ac0f636e66087baaefae2","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.28_1785857269712_0.9117482133677208","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"@sienci/gviewer","version":"0.1.29","license":"MIT","_id":"@sienci/gviewer@0.1.29","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"4725882fc9f7648cab0750e4068be87e27666425","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.29.tgz","fileCount":36,"integrity":"sha512-lK/9FIT6KKjDV11iINwxvEAjLdosiFD8LYSFRpoyiqh4l7FVHJvfWKqkKBpj50furiXh+PwvF3Y7H5tQFHvwyw==","signatures":[{"sig":"MEUCIGfl72D3E2ewGwv6DCL2n7JU7tfHfWk9h5Uty3McLrKTAiEA07h5ex3oGjWVxA97ntJV9yRKHpLUkDXZKVE3carxzZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1784982},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"3047f5473b0c19bc79f80e9c830c79e0c27c9f4f","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.29_1787860409763_0.522137579771009","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"@sienci/gviewer","version":"0.1.31","license":"MIT","_id":"@sienci/gviewer@0.1.31","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"f9dd3a20a30b28e6cae90aa13118115489bc89c3","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.31.tgz","fileCount":36,"integrity":"sha512-nRJzqjDB6hGOA0myIxcnkFSI+wOJL+HwhUnEI876ZZw+DoLLpgwtRBnGP9RBhAYe7/bpQzWThH7tvEP42/6QNg==","signatures":[{"sig":"MEUCIQDVqxrE/6wawmacC6XlhcrevVJMSXRNORvVRCX5xjYcfwIgVoN82Fkn2cbquMbuGbT01eJxkVtqiLrEJ4jsSY/XhS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1791665},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"f19f13c3a6415cf0a64667c9b21353f7a08a993d","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.31_1788207437358_0.059567958009705047","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"@sienci/gviewer","version":"0.1.32","license":"MIT","_id":"@sienci/gviewer@0.1.32","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"12a01f7dcd8cb6c46e444278911078b9ee9e26d1","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.32.tgz","fileCount":36,"integrity":"sha512-YoU0vbs7DPaHWjm0MR0aUJ6O8Y06d5kQGL7mHf3GWdwCW5U9eJsOvewbQ183vKz6N1i4d+STt+O7jvjT2Fadsw==","signatures":[{"sig":"MEUCIQDb/XCk+dsWxvYNFhXP1l/TnZWJ9e7968fd9T85ES3PcwIgG4ThZLhl/wAGdiThwZdD4FrZC17x1fzERn/sXloppIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1817294},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"fe99b2a2ca0a5fd4b5e5d5ca8383472f1acf93a3","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.32_1788465049489_0.34434418207431894","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"@sienci/gviewer","version":"0.1.33","license":"MIT","_id":"@sienci/gviewer@0.1.33","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"dee5b534d1ed5b4b658a5e4b2b25aa1131660e3b","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.33.tgz","fileCount":36,"integrity":"sha512-1nI+kE9pMk6PGyPId6wmIcJoWeiJBiO5WIAkvKhZk1nXPXMXXj+XPAjbwSnzwhGK8znlCTusgOcl0b+92D2d5w==","signatures":[{"sig":"MEUCIFSm08RoRBCmtksmzc9k681VFy5wC8IZjWYsarN2d315AiEAkjfiVXMEKFc4HIZzEqM1b2A5mO8c7eVBtId5cotBtYY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1817318},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"23480fe0a518ad20a6634f5d315f9f6b13764053","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.33_1788529783553_0.42277708493111743","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"@sienci/gviewer","version":"0.1.34","license":"MIT","_id":"@sienci/gviewer@0.1.34","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"dbfe2b9f933e6f55e1727b4ddcad60bc5aeedbfa","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.34.tgz","fileCount":36,"integrity":"sha512-MSSDnEoTumONgbAGTjMlVhbmdOuX0WxfXWe0V1Ebf/p0nJHRieEoQc5iyVPK4J7GoXL/OjYsKWMSeGzvbfDsLg==","signatures":[{"sig":"MEUCICVjOKv8gCECM7Sy4veac987xgfBlCCGxgx55Sf8o0CwAiEArqkMET0FHGBfuYQ8G/LI4lLtfdBZtgT7jytwNsCj1Nk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1807748},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"c4a8d44a827d478f7a0af7a48f36862e81ebe64e","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.34_1788967363083_0.5949636473250424","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"@sienci/gviewer","version":"0.1.36","license":"MIT","_id":"@sienci/gviewer@0.1.36","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"1204f6a71af5c3db79c7c09c762785007eb40d00","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.36.tgz","fileCount":36,"integrity":"sha512-Po/AMkD19SAno7mqN65RWZY2t7e8Y6Cyg+NK9bP7ThtdwTelfcbdQYVDmrD8lYMYxtURzRGgNwsdewVVOaJI1w==","signatures":[{"sig":"MEUCIQDHXyq74a293/RsnMTSrNmvnWUpfWYsWXRMTNJ+zrru0gIgN7jqbvZq3OHTO8LpznpuM0rvRqMQVcKWEr+Hm3AXkBQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1807748},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"c4a8d44a827d478f7a0af7a48f36862e81ebe64e","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.36_1788967458897_0.498299836349259","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"@sienci/gviewer","version":"0.1.37","license":"MIT","_id":"@sienci/gviewer@0.1.37","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"a1314cf3c931a3bb5b04a4f77a01058714d576e4","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.37.tgz","fileCount":36,"integrity":"sha512-SrjH+hvg/gZ83/WhkO1eGmVq95Cj/TXeeMj99CZOjjjKneUtKP0PvSSaw/YQVKV4EuqHdaDR1lDlxTbVlRiICA==","signatures":[{"sig":"MEYCIQDJ2h8OX4rubpAbiPc/ik73740OFtS8oCKrTUb2tIB7UAIhANFSTLeVHBJ/8moT2Ei0iJgrq5kLJyXMo7t54WCB+F7p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1808397},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"1057f076056e0d72581d404659c1f2c56e575226","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.37_1788974942050_0.7796688879772726","host":"s3://npm-registry-packages-npm-production"}},"0.1.38":{"name":"@sienci/gviewer","version":"0.1.38","license":"MIT","_id":"@sienci/gviewer@0.1.38","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"80abdba56a3721e507f958a99bc0df435f277351","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.38.tgz","fileCount":36,"integrity":"sha512-8gcDC0+1/u0Df+jVURil/2A2e5xhhtRmmGd8SFA3rl+/tVKPt+k/IDKhn6X3FSYfLizQram+ssfqXGO8SOpK6g==","signatures":[{"sig":"MEYCIQCsG24VXu3c7d2JwjHaiwMeCpxldxD5ygVEQnlpQBORMAIhAOLgPj/t9hEVL+xh8orzimaqTTLJZIgi2A4rAVSsoz/8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDTMhwzvmGEMGdKYvKWgG1vKu3liHcwjjyUSGfh3fPdjAiAv4V8nfBEMk+F6YUskvAdV7AE+VmGYcs/kDjd5I5pypw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1808607},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"c7b1fdcc5f7983f0d43f5808140e5643deaec30d","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.38_1790270973257_0.2760179494693973","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"@sienci/gviewer","version":"0.1.39","license":"MIT","_id":"@sienci/gviewer@0.1.39","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"homepage":"https://github.com/kglovern/gcode_parser_viewer","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"9595d151d6cd80009b257b149ff028ce229969c9","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.39.tgz","fileCount":37,"integrity":"sha512-E1cvCYEW7MSdbhUsAwDt2F+EJiizLYN22saDB7n6WXJeWtT11Upd5Y/he2K/d6l2geyeRjWbgRw9HAaRZCjyOQ==","signatures":[{"sig":"MEUCIFSsxz894YYulnl8eGSYKPRNhCpBSqJ+Y1RNt/5uQottAiEA0ltNLIWrf/qLCPnFZP8nierx6gmmkfos2ZfhNqhSyXg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFa4PM6k9boBvKVGj0wdWN1wxqQO+/CB4TB4aXRJbNtvAiEAmqbXlDBr6DUktVkpRj910F+mvy1tsJg1w+BpUIq2In0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1836968},"main":"./dist/gviewer.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"9cf3e46285555fce997e98b05c05466880349060","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/gviewer_0.1.39_1790783641318_0.8347506783340413","host":"s3://npm-registry-packages-npm-production"}},"0.1.40":{"_id":"@sienci/gviewer@0.1.40","bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"dist":{"shasum":"1b50bfa913f5700b2235490358411710de98c0fc","tarball":"https://registry.npmjs.org/@sienci/gviewer/-/gviewer-0.1.40.tgz","fileCount":37,"integrity":"sha512-PYQGFY3CFtAddMbja9JtSG3klIXqVI7JgJiZrTL65hwqR3mHzcT2lD5H8h7WpqfnuTffmpGN4FYHNNBMJvsz5A==","signatures":[{"sig":"MEUCIQDtSxZxzqBiijpM5DYWb3T9GctAwCgnTEmFggl0+mWLLgIgCPkbxR3KZSQbOd4YVwN8agi0b0HdYTYQ8fJTg4G/Wdc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDEDrIQSmk5672rbVELsBQYP40gR5Bu/xwDrrPdKvkSeAiA9SdUl6X4syBcFJvbquHJJwhy3c3dtKduzyCIhreBrdA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sienci%2fgviewer@0.1.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1838844},"main":"./dist/gviewer.cjs","name":"@sienci/gviewer","type":"module","types":"./dist/types/index.d.ts","module":"./dist/gviewer.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/gviewer.js","require":"./dist/gviewer.cjs"},"./react":{"types":"./dist/types/react/index.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./viewer":{"types":"./dist/types/viewer/index.d.ts","import":"./dist/viewer.js","require":"./dist/viewer.cjs"},"./viewer/viewcube.css":"./dist/viewcube.css"},"gitHead":"690956a99c5e35b3ab334551ebdd2501485bd453","license":"MIT","scripts":{"dev":"vite build --watch","demo":"vite --config vite.demo.config.ts","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","build:demo":"vite build --config vite.demo.config.ts","test:watch":"vitest"},"version":"0.1.40","_npmUser":{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},"homepage":"https://github.com/kglovern/gcode_parser_viewer","repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"GCode visualization library using Three.js","directories":{},"maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","dependencies":{"gsap":"^3.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","react":"^18.3.0","three":"^0.168.0","vitest":"^2.0.0","react-dom":"^18.3.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/three":"^0.168.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=18","three":"^0.168.0","react-dom":">=18"},"peerDependenciesMeta":{"react":{"optional":true},"three":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gviewer_0.1.40_1790966337078_0.8701364657597255"}}},"time":{"created":"2026-05-01T15:07:35.918Z","modified":"2026-10-02T18:38:57.617Z","0.1.0":"2026-05-01T15:07:36.177Z","0.1.1":"2026-05-21T16:02:24.509Z","0.1.2":"2026-05-21T18:11:58.361Z","0.1.3":"2026-05-21T18:24:48.670Z","0.1.4":"2026-05-27T16:06:38.198Z","0.1.5":"2026-06-03T13:38:32.631Z","0.1.6":"2026-06-03T13:54:38.191Z","0.1.7":"2026-06-03T18:35:51.954Z","0.1.8":"2026-06-23T16:06:16.763Z","0.1.9":"2026-06-24T15:17:11.365Z","0.1.10":"2026-06-24T17:25:33.208Z","0.1.11":"2026-06-24T17:38:35.006Z","0.1.12":"2026-06-24T17:53:11.334Z","0.1.13":"2026-06-30T13:48:31.147Z","0.1.14":"2026-06-30T15:46:03.307Z","0.1.15":"2026-06-30T15:57:38.014Z","0.1.16":"2026-06-30T17:02:25.229Z","0.1.17":"2026-06-30T19:46:34.609Z","0.1.18":"2026-07-07T14:42:18.856Z","0.1.19":"2026-07-07T15:34:06.541Z","0.1.20":"2026-07-07T16:22:16.270Z","0.1.21":"2026-07-07T17:00:00.921Z","0.1.22":"2026-07-07T19:36:14.942Z","0.1.23":"2026-07-07T19:58:51.332Z","0.1.24":"2026-07-07T20:18:12.940Z","0.1.25":"2026-07-13T18:38:59.478Z","0.1.26":"2026-07-22T18:45:12.286Z","0.1.27":"2026-07-29T15:33:57.647Z","0.1.28":"2026-08-04T15:27:49.943Z","0.1.29":"2026-08-27T19:53:29.943Z","0.1.31":"2026-08-31T20:17:17.573Z","0.1.32":"2026-09-03T19:50:49.687Z","0.1.33":"2026-09-04T13:49:43.703Z","0.1.34":"2026-09-09T15:22:43.241Z","0.1.36":"2026-09-09T15:24:19.124Z","0.1.37":"2026-09-09T17:29:02.282Z","0.1.38":"2026-09-24T17:29:33.357Z","0.1.39":"2026-09-30T15:54:01.426Z","0.1.40":"2026-10-02T18:38:57.235Z"},"bugs":{"url":"https://github.com/kglovern/gcode_parser_viewer/issues"},"license":"MIT","homepage":"https://github.com/kglovern/gcode_parser_viewer","repository":{"url":"git+https://github.com/kglovern/gcode_parser_viewer.git","type":"git"},"description":"GCode visualization library using Three.js","maintainers":[{"name":"kglovern","email":"kevin_glover-netherton@sienci.com"},{"name":"walidkayhan","email":"walid.kayhan@outlook.com"},{"name":"sbeluli","email":"sophia_beluli@sienci.com"}],"readme":"# gviewer\n\nTypeScript library for parsing, virtualizing, and visualizing GCode toolpaths. Built on Three.js with an optional React wrapper.\n\n## Installation\n\n```bash\nnpm install @sienci/gviewer\n```\n\nPeer dependencies — install whichever you need:\n\n```bash\nnpm install three             # required for the viewer\nnpm install react react-dom   # required for the React component\n```\n\n---\n\n## Import paths\n\n| Path | Contents |\n|---|---|\n| `@sienci/gviewer` | Parser, virtualizer, geometry builders, `WorkerGeometryData`, shared types |\n| `@sienci/gviewer/viewer` | `GCodeViewer`, `GCodeSVGRenderer`, themes, viewer types, `WorkerGeometryData` |\n| `@sienci/gviewer/react` | `GCodeVisualizer`, `GCodeSVGVisualizer` React components |\n| `@sienci/gviewer/viewer/viewcube.css` | Raw ViewCube stylesheet, kept for advanced overriding/inspection only — the ViewCube self-injects an identical `<style>` tag at runtime, so importing this is optional |\n\nAs of 0.1.27, the ViewCube's styles are injected automatically; you no longer need to import `viewcube.css` yourself.\n\n---\n\n## Quick start\n\n### React\n\n```tsx\nimport { useRef } from \"react\";\nimport { GCodeVisualizer } from \"@sienci/gviewer/react\";\nimport type { GCodeViewerHandle } from \"@sienci/gviewer/viewer\";\n\nexport function App() {\n  const ref = useRef<GCodeViewerHandle>(null);\n\n  return (\n    <>\n      <GCodeVisualizer\n        id=\"main\"\n        ref={ref}\n        style={{ width: \"100%\", height: \"600px\" }}\n      />\n      <button onClick={() => ref.current?.loadFromUrl(\"/part.gcode\")}>\n        Load\n      </button>\n    </>\n  );\n}\n```\n\n### Vanilla JS\n\n```ts\nimport { GCodeViewer } from \"@sienci/gviewer/viewer\";\nimport \"@sienci/gviewer/viewer/viewcube.css\";\n\nconst viewer = new GCodeViewer({\n  id: \"main\",\n  container: document.getElementById(\"viewer\")!,\n});\n\nawait viewer.loadFromUrl(\"/part.gcode\");\nviewer.focusToModel();\n```\n\n---\n\n## API reference\n\n### `@sienci/gviewer` — core\n\n#### `GCodeParser`\n\nStateless line-by-line parser. No state is kept between calls.\n\n```ts\nimport { GCodeParser } from \"@sienci/gviewer\";\n\nconst parser = new GCodeParser();\nconst result = parser.parseLine(\"G1 X10 Y5 F1200 ; move\");\n// result.words    — all letter-value pairs\n// result.gcodes   — G and M words only\n// result.params   — non-G/M words (X, Y, F, …)\n// result.comments — extracted semicolon and paren comments\n```\n\n**`parseLine(line: string): ParsedLine`**\n\nReturns a `ParsedLine`:\n\n```ts\ntype ParsedLine = {\n  raw: string;\n  words: GCodeWord[];    // all tokens\n  gcodes: GCodeWord[];   // G/M codes\n  params: GCodeWord[];   // axis and parameter words\n  comments: Comment[];   // extracted comments with positions\n};\n\ntype GCodeWord = {\n  letter: string;   // uppercase, e.g. \"G\", \"X\"\n  value: number;\n  raw: string;      // original matched text\n  start: number;    // char offset in stripped line\n  end: number;\n};\n\ntype Comment = {\n  type: \"paren\" | \"semicolon\";\n  text: string;\n  start: number;    // char offset in original line\n  end: number;\n};\n```\n\n---\n\n#### `GCodeVirtualizer`\n\nStateful interpreter. Tracks modal state and machine position across calls to `processLine()`.\n\n```ts\nimport { GCodeVirtualizer } from \"@sienci/gviewer\";\n\nconst virt = new GCodeVirtualizer({\n  onLinearMove({ modals, start, end, transformedStart, transformedEnd }) {\n    // called for every G0/G1 segment (subdivided at ≤5° A-axis steps)\n  },\n  onArcMove({ modals, start, end, center, max, plane, motion, ... }) {\n    // called for every G2/G3 move\n  },\n});\n\nfor (const line of gcodeLines) {\n  virt.processLine(line);\n}\n\nvirt.getModals();             // current ModalState\nvirt.getPosition();           // current Position { X, Y, Z, A, B, C }\nvirt.getUniqueFeedRates();    // number[]\nvirt.getUniqueSpindleSpeeds(); // number[]\nvirt.getUniqueTools();        // number[]\nvirt.reset();                 // restore defaults\n```\n\n**Modal state defaults:** `G0`, `G90` (absolute), `G17` (XY plane), `G21` (mm).\n\n**Unit conversion:** When `G20` is active, X/Y/Z values are automatically multiplied by 25.4 before being stored and passed to callbacks. A/B/C axes are not scaled.\n\n**Supported G-codes:**\n\n| Code | Effect |\n|---|---|\n| G0, G1 | Set motion mode (rapid / feed) |\n| G2, G3 | Arc CW / CCW |\n| G17, G18, G19 | Plane selection (XY / ZX / YZ) |\n| G20, G21 | Units (inches / mm) |\n| G90, G91 | Distance mode (absolute / incremental) |\n| G93, G94 | Feed mode |\n| G54–G59 | Coordinate system selection |\n| M3, M4, M5 | Spindle on/off |\n| M7, M8, M9 | Coolant |\n| T | Tool number |\n| F | Feed rate |\n| S | Spindle speed |\n\n---\n\n#### Geometry builders\n\nBuild Three.js-ready `Float32Array` position buffers from arrays of GCode lines. All functions are browser-safe (no Node.js APIs).\n\n##### `buildVerticesFromLines`\n\n```ts\nimport { buildVerticesFromLines } from \"@sienci/gviewer\";\n\nconst positions: Float32Array = buildVerticesFromLines(lines, {\n  arcSegments: 30,   // tessellation quality for arcs\n});\n// Flat [x0,y0,z0, x1,y1,z1, ...] line-segment pairs\n```\n\n##### `buildMovementVerticesFromLines`\n\nSeparates rapid (G0) and cutting (G1/G2/G3) moves.\n\n```ts\nimport { buildMovementVerticesFromLines } from \"@sienci/gviewer\";\n\nconst { rapid, cutting } = buildMovementVerticesFromLines(lines);\n```\n\n##### `buildMovementGeometryFromLinesBatched`\n\nAsync, progress-reporting version that also tracks per-line vertex ranges.\n\n```ts\nimport { buildMovementGeometryFromLinesBatched } from \"@sienci/gviewer\";\n\nconst result = await buildMovementGeometryFromLinesBatched(lines, {\n  arcSegments: 30,\n  batch: {\n    onProgress(processed, total) { /* update UI */ },\n    yieldEveryLines: 50000,   // yield to event loop periodically\n    shouldAbort: () => cancelled,\n  },\n});\n\n// result.positions        — Float32Array of all vertices\n// result.prefixEndVertex  — Int32Array; result.prefixEndVertex[i] is the\n//                           cumulative vertex count after line i\n// result.lineStartVertex  — Int32Array; first vertex for line i (-1 if none)\n// result.lineEndVertex    — Int32Array; last vertex+1 for line i\n// result.lineKind         — Uint8Array; 0=none, 1=rapid, 2=cut, 3=mixed\n```\n\n##### `buildToolpathGeometryFromLinesBatched`\n\nUnified builder for both standard and laser modes. Returns separate rapid and per-power-bucket cut streams, each with per-line prefix arrays for progress visualization.\n\n```ts\nimport { buildToolpathGeometryFromLinesBatched } from \"@sienci/gviewer\";\n\nconst result = await buildToolpathGeometryFromLinesBatched(lines, {\n  laserMode: false,\n  bucketCount: 16,   // power buckets for laser mode\n  arcSegments: 30,\n});\n\n// result.rapid            — { positions, prefixEndVertex }\n// result.cuts             — array of { positions, prefixEndVertex }\n// result.cutBucketCount   — number of cut streams (1 in non-laser mode)\n// result.maxPower         — max spindle speed seen (laser mode)\n```\n\n##### `buildLaserGeometryFromLinesBatched`\n\nLaser-specific variant. Returns rapid positions plus opacity-bucketed cut streams.\n\n```ts\nimport { buildLaserGeometryFromLinesBatched } from \"@sienci/gviewer\";\n\nconst result = await buildLaserGeometryFromLinesBatched(lines, {\n  bucketCount: 16,\n  baseOpacity: 0.9,\n});\n\n// result.rapidPositions         — Float32Array\n// result.rapidPrefixEndVertex   — Int32Array\n// result.buckets[i].positions   — Float32Array\n// result.buckets[i].opacity     — number (0–1, proportional to power)\n// result.buckets[i].prefixEndVertex\n```\n\n##### `buildWorkerSegmentGroups`\n\nConverts the pre-parsed payload from an external worker (e.g. gSender's `Visualize.worker`) into groups of stride-6 line segments, each with a hex color and opacity. Segments with the same color and opacity are merged into a single group. This is the conversion step used internally by `loadFromWorkerData()` on both the 3D viewer and the SVG renderer.\n\n```ts\nimport { buildWorkerSegmentGroups } from \"@sienci/gviewer\";\nimport type { WorkerGeometryData } from \"@sienci/gviewer\";\n\nconst groups = buildWorkerSegmentGroups(workerData);\n// groups[i].hexColor  — e.g. \"#0ef6ae\"\n// groups[i].opacity   — 0.5 for rapid moves, 1.0 for cutting moves\n// groups[i].positions — Float32Array stride-6: [x0,y0,z0, x1,y1,z1, ...]\n// groups[i].rgbColors — Float32Array stride-3 per vertex (2 per segment, same length as positions)\n```\n\n`WorkerGeometryData` matches the relevant fields of the `geometryReady` worker message:\n\n```ts\ntype WorkerGeometryData = {\n  vertices: ArrayBuffer;         // Float32Array stride-3: individual 3D points\n  frames: ArrayBuffer;           // Uint32Array: vertex index at the start of each motion segment\n  colorArrayBuffer: ArrayBuffer; // Float32Array stride-4: r,g,b,opacity per vertex (values 0–1)\n  verticesLen: number;\n  framesLen: number;\n  colorLen: number;\n};\n```\n\n---\n\n### `@sienci/gviewer/viewer` — Three.js viewer\n\n#### `GCodeViewer`\n\nFull 3D viewer with orbit controls, grid, bounding box, bit marker, and ViewCube.\n\n```ts\nimport { GCodeViewer } from \"@sienci/gviewer/viewer\";\n\nconst viewer = new GCodeViewer({\n  id: \"my-viewer\",\n  container: document.getElementById(\"viewer\")!,\n  options: { /* Partial<GCodeViewerOptions> */ },\n  callbacks: {\n    onProgress(event) {\n      // event.state: \"hidden\" | \"indeterminate\" | \"determinate\"\n    },\n    onBoundsChanged(event) {\n      // event.bounds: { min, max } | null\n    },\n  },\n});\n```\n\n##### Loading GCode\n\n```ts\nawait viewer.loadFromUrl(\"/path/to/file.gcode\");\nawait viewer.loadFromFile(fileInputElement.files[0]);\nawait viewer.loadFromText(\"G21\\nG0 X10 Y10\\n...\");\nawait viewer.loadFromLines([\"G21\", \"G0 X10 Y10\"]);\nviewer.unload();\n```\n\n##### Loading from pre-parsed worker data\n\nIf GCode has already been parsed by an external worker (e.g. gSender's `Visualize.worker`), pass the `geometryReady` payload directly to skip re-parsing. Per-vertex colors — including tool-change palette cycling — are preserved.\n\n```ts\nimport type { WorkerGeometryData } from \"@sienci/gviewer/viewer\";\n\n// workerData comes from the worker's geometryReady message\nconst workerData: WorkerGeometryData = {\n  vertices: msg.vertices,               // ArrayBuffer (Float32Array stride-3: x,y,z per point)\n  frames: msg.frames,                   // ArrayBuffer (Uint32Array: vertex index per motion segment)\n  colorArrayBuffer: msg.colorArrayBuffer, // ArrayBuffer (Float32Array stride-4: r,g,b,opacity per vertex)\n  verticesLen: msg.verticesLen,\n  framesLen: msg.framesLen,\n  colorLen: msg.colorLen,\n};\n\nawait viewer.loadFromWorkerData(workerData);\n```\n\n> **Note:** `seekToLine()` and `hideUntilLine()` are no-ops when data is loaded this way, because per-line vertex ranges are not included in the worker response. Pass GCode text to `loadFromLines()` if you need those features.\n\n##### Loading a worker toolpath in its draw layout (`segments-v1`)\n\n`loadFromSegments` takes a toolpath a worker has already laid out for drawing, so nothing is copied or re-packed on the main thread. Each chunk's buffers become a `LineSegments`' attributes as-is; colour, laser power shading, progress greying and line-group hiding happen in the shader. Use it in preference to `loadFromWorkerData` for large files.\n\n```ts\nimport type { WorkerSegmentsData } from \"@sienci/gviewer/viewer\";\nimport { SEGMENT_ATTR_RAPID } from \"@sienci/gviewer/viewer\";\n\nconst data: WorkerSegmentsData = {\n  format: \"segments-v1\",\n  chunks: [\n    {\n      positions, // ArrayBuffer, Float32 x,y,z per vertex as segment pairs (v0,v1)(v2,v3)…\n      attrs,     // ArrayBuffer, Uint8 per vertex: SEGMENT_ATTR_RAPID (0x80) | palette slot\n      power,     // optional ArrayBuffer, Float32 per vertex (laser power, 0 = off)\n      vertexCount,\n    },\n  ],\n  totalVertices,\n  prefixEndVertex, // ArrayBuffer, Uint32 per line: vertices emitted through that line\n  paletteHex: [\"#3e85c7\", \"#4A90E2\", /* … */], // slot k -> colour, used when toolchangeCount > 0\n  toolchangeCount,\n  isLaser,\n  maxPower,\n};\n\nawait viewer.loadFromSegments(data, { lineGroups: [{ start: 0, end: 120 }] });\nviewer.hideUntilLine(lineIndex, \"grey\"); // greys lines 0..lineIndex (inclusive)\n```\n\nLine indices follow `prefixEndVertex`, the same \"vertices after line i\" convention as the text-loading path, so `hideUntilLine` and `lineGroups` work here too. Without toolchanges, cuts use the theme's cutting colour (or laser colour in laser mode) and rapids the theme's rapid colour, so theme changes apply without reloading. In laser files a cut's opacity is its power relative to `maxPower`, and laser-off cuts are not drawn. `GCodeSVGRenderer.loadFromSegments` draws the same data in the SVG view.\n\n##### Camera\n\n```ts\nviewer.focusToModel();          // animate camera to fit the loaded geometry\nviewer.resetCamera();           // return to initial position\nviewer.snapCameraToView(\"front\", { durationMs: 300 });\n// views: \"front\" | \"back\" | \"left\" | \"right\" | \"top\" | \"bottom\"\n//        | \"front-top-left\" | \"front-top-right\" | ... (14 presets)\n```\n\nThe optional `distance` on `snapCameraToView` is the camera standoff, which only\nframes under a perspective camera. An orthographic camera frames by frustum\nheight, so the value moves the camera without changing how much is visible — use\n`focusToModel()` to reframe in either projection.\n\n##### Projection\n\nThe camera is perspective by default. Under perspective, two toolpath segments\nthat share X/Y but sit at different Z do not project to the same pixel — they lie\non the same ray through the camera — so in a top-down view stacked cut passes\nsplay apart, increasingly so away from the centre of the frame. Orthographic\nprojection has no divide-by-z, so those passes land on exactly the same pixel.\n\n```ts\nviewer.setCameraProjection(\"orthographic\");\nviewer.getCameraProjection();  // \"perspective\" | \"orthographic\"\n\n// Equivalent, and how it's set at construction:\nviewer.setOptions({ camera: { ...viewer.getOptions().camera, projection: \"orthographic\" } });\n```\n\nSwapping preserves the view direction and the apparent framing, so the model does\nnot jump. Orbit, pan, zoom, picking and the ViewCube all work in both\nprojections; under ortho, zoom changes the frustum rather than the standoff.\n\n##### Picking & interaction\n\n```ts\n// Lock orbit rotation while keeping pan + zoom (e.g. to pin a top-down view\n// so a click maps predictably onto the XY plane). Picking works from any\n// camera angle, so this is a UX lock, not a correctness requirement.\nviewer.setRotateEnabled(false);\n\n// Convert a viewport pixel (e.g. PointerEvent clientX/clientY) into a point on\n// a horizontal toolpath plane. planeZ defaults to the bit's current Z.\nconst hit = viewer.screenToWorld(event.clientX, event.clientY);\nif (hit) {\n  // hit.x / hit.y are in the GCode's coordinate space (work coords for a\n  // non-rotary file, since the toolpath root sits at the origin).\n  console.log(hit.x, hit.y, hit.z);\n}\n// Pick against an explicit plane height instead of the bit's Z:\nviewer.screenToWorld(event.clientX, event.clientY, { planeZ: 0 });\n```\n\n> Returns `null` when the canvas has no layout yet or the ray is parallel to\n> the plane. For rotary files the toolpath root is rotated about X, so the\n> returned XY is not a meaningful work coordinate — gate on file type if you\n> only support XY moves.\n\n##### Progress / simulation\n\n```ts\n// Show geometry only from lineIndex onward\nviewer.hideUntilLine(lineIndex, \"grey\");  // grey out processed lines\nviewer.hideUntilLine(lineIndex, \"hide\");  // hide processed lines\nviewer.showAll();\nviewer.resetColors();\n```\n\n##### Bit marker\n\n```ts\nviewer.setBitPosition({ x: 10, y: 5, z: 0 });\nviewer.setBitPosition({ x: 10, y: 5, z: 0 }, { immediate: true });\nviewer.setBitVisible(false);\n```\n\nThe bit type is controlled via `options.bit.type`. Five types are available:\n\n| Type | Description |\n|---|---|\n| `\"drill\"` | Real drill-bit mesh (STL) with metallic shading. **Default.** |\n| `\"laser\"` | Tapered beam with additive purple glow. Set automatically when `mode.laser` is enabled. |\n| `\"circle\"` | Simple sphere. |\n| `\"triangle\"` | Cone. |\n| `\"crosshair\"` | 2D crosshair — intended for use with `GCodeSVGRenderer`. See [Crosshair marker](#crosshair-marker). |\n\n**Laser mode auto-switch:** when `mode.laser` is set to `true`, the bit type automatically switches to `\"laser\"`. When `mode.laser` is set back to `false`, the bit reverts to whatever type was active before laser mode was enabled.\n\n```ts\nviewer.setOptions({ mode: { laser: true } });\n// bit type is now automatically \"laser\"\n\nviewer.setOptions({ mode: { laser: false } });\n// bit type is restored to its previous value (e.g. \"drill\")\n```\n\n##### Options\n\n```ts\nviewer.setOptions({\n  units: \"mm\",             // \"mm\" | \"in\"\n  mode: { laser: false },  // setting true auto-switches bit type to \"laser\"\n  render: {\n    theme: gCodeViewerThemePresets[\"tokyo-night\"],\n  },\n  grid: { size: 1000, axisDepth: 200, labels: true },\n  boundingBox: { visible: true, labels: true },\n  camera: { fov: 45, projection: \"perspective\" },\n});\n\nviewer.getOptions();   // returns current options (readonly)\nviewer.getBounds();    // { min, max } | null\nviewer.resize();       // call after container resizes (automatic via ResizeObserver)\nviewer.dispose();      // clean up Three.js resources and DOM elements\n```\n\n##### Themes\n\n```ts\nimport { gCodeViewerThemePresets } from \"@sienci/gviewer/viewer\";\n\n// Available presets:\n// \"dark\" | \"light\" | \"flexoki-dark\" | \"tokyo-night\"\n// \"gruvbox-light\" | \"ayu-dark\" | \"ayu-light\"\n\nviewer.setOptions({ render: { theme: gCodeViewerThemePresets[\"ayu-dark\"] } });\n```\n\n##### `GCodeViewerOptions` — full reference\n\n```ts\ntype GCodeViewerOptions = {\n  units: \"mm\" | \"in\";\n  mode: { laser: boolean };\n  bit: {\n    enabled: boolean;\n    type: \"drill\" | \"laser\" | \"circle\" | \"triangle\" | \"crosshair\";  // default: \"drill\"\n    size: number;        // world units (default: 4.05)\n    opacity: number;     // 0–1\n    tweenMs: number;     // animation duration\n    colorSource: \"cutting\" | \"rapid\" | \"custom\";\n    color: string;\n  };\n  progress: { mode: \"hide\" | \"grey\" };\n  grid: { size: number; axisDepth: number; labels: boolean };  // default size: 1000\n  boundingBox: { visible: boolean; labels: boolean };\n  geometry: {\n    arcSegments: number;\n    batching: { progressEveryLines: number; yieldEveryLines: number };\n  };\n  render: { antialias: boolean; theme: GCodeViewerTheme };\n  camera: {\n    projection: \"perspective\" | \"orthographic\";  // default: \"perspective\"\n    fov: number;                                 // perspective only; also seeds ortho framing on swap\n    focusDurationMs: number;\n    orbit: { enableDamping: boolean };\n    initialPosition: { x: number; y: number; z: number };\n  };\n};\n```\n\n---\n\n### `GCodeSVGRenderer` — SVG viewer\n\nLightweight 2D/isometric SVG renderer. No Three.js dependency — works in any environment that has a DOM. Supports pan (drag) and scroll-to-zoom.\n\n```ts\nimport { GCodeSVGRenderer } from \"@sienci/gviewer/viewer\";\nimport type { GCodeSVGOptions } from \"@sienci/gviewer/viewer\";\n\nconst renderer = new GCodeSVGRenderer(\n  document.getElementById(\"container\")!,\n  { /* Partial<GCodeSVGOptions> */ }\n);\n```\n\n##### Loading GCode\n\n```ts\nrenderer.loadFromText(\"G21\\nG0 X10 Y10\\n...\");\nrenderer.loadFromLines([\"G21\", \"G0 X10 Y10\"]);\nawait renderer.loadFromFile(fileInputElement.files[0]);\nrenderer.clear();\n```\n\n##### Loading from pre-parsed worker data\n\nPass the `geometryReady` payload directly to avoid re-parsing. Tool-change colors from the worker are rendered as separate colored paths.\n\n```ts\nimport type { WorkerGeometryData } from \"@sienci/gviewer/viewer\";\n\nrenderer.loadFromWorkerData(workerData);\n```\n\n##### Controls\n\n```ts\nrenderer.resetView();                         // re-fit view\nrenderer.setProjectionMode(\"isometric\");      // \"isometric\" (default) | \"perspective\"\nrenderer.getSVGElement();                     // returns the <svg> element (for export, etc.)\nrenderer.dispose();                           // remove event listeners and DOM element\n```\n\n##### Crosshair marker\n\nA 2D crosshair can be shown at any world position — useful for indicating the current machine/tool location during job execution. Call `setBitPosition` with the work position (in the same coordinate space as the GCode) and the crosshair will project correctly as the view is panned or zoomed.\n\n```ts\n// Show the crosshair at a work position\nrenderer.setBitPosition({ x: 25, y: 50, z: 0 });\n\n// Hide without losing the stored position\nrenderer.setBitVisible(false);\n\n// Show again at the last set position\nrenderer.setBitVisible(true);\n```\n\nThe crosshair starts hidden and becomes visible on the first `setBitPosition` call. Its color is controlled via `crosshairColor` in `GCodeSVGOptions`.\n\n##### Options\n\n```ts\nrenderer.setOptions({\n  rapidColor: \"#0ef6ae\",        // G0 rapid move color\n  cutColor: \"#3e85c7\",          // G1/G2/G3 cutting move color\n  boundingBoxColor: \"#d0d0d0\",  // wireframe bounding box color\n  strokeWidth: 0.5,             // path stroke width in SVG units\n  arcSegments: 30,              // arc tessellation quality\n  padding: 5,                   // fixed padding around the fit view (SVG units)\n  projectionMode: \"isometric\",  // \"isometric\" | \"perspective\"\n  crosshairColor: \"#ffffff\",    // crosshair marker color (default: \"#ffffff\")\n});\n```\n\n> **Note:** When data is loaded via `loadFromWorkerData()`, `rapidColor` and `cutColor` are ignored — colors come from the worker payload. Other options (stroke width, padding, projection mode) apply in both modes.\n\n---\n\n### `@sienci/gviewer/react` — React component\n\n```tsx\nimport { GCodeVisualizer } from \"@sienci/gviewer/react\";\nimport type { GCodeViewerHandle, GCodeViewerOptions } from \"@sienci/gviewer/viewer\";\n```\n\n#### Props\n\n```ts\ntype GCodeVisualizerProps = {\n  id: string;\n  options?: Partial<GCodeViewerOptions>;\n  callbacks?: GCodeViewerCallbacks;\n  className?: string;\n  style?: React.CSSProperties;\n};\n```\n\nThe component forwards a `GCodeViewerHandle` ref that exposes the full `GCodeViewer` imperative API:\n\n```tsx\nconst ref = useRef<GCodeViewerHandle>(null);\n\n<GCodeVisualizer id=\"viewer\" ref={ref} style={{ height: 500 }} />\n\n// Later:\nref.current?.loadFromText(gcode);\nref.current?.loadFromWorkerData(workerData);\nref.current?.focusToModel();\nref.current?.hideUntilLine(currentLine, \"grey\");\nref.current?.snapCameraToView(\"top\");\nref.current?.setCameraProjection(\"orthographic\");\nref.current?.setBitPosition({ x, y, z });\n```\n\n`options` and `callbacks` props are synced to the viewer whenever they change (via `useEffect`).\n\n#### `GCodeSVGVisualizer`\n\nReact wrapper for `GCodeSVGRenderer`.\n\n```tsx\nimport { GCodeSVGVisualizer } from \"@sienci/gviewer/react\";\nimport type { GCodeSVGRendererHandle } from \"@sienci/gviewer/react\";\nimport type { GCodeSVGOptions } from \"@sienci/gviewer/viewer\";\n\nconst ref = useRef<GCodeSVGRendererHandle>(null);\n\n<GCodeSVGVisualizer\n  id=\"svg-viewer\"\n  ref={ref}\n  options={{ strokeWidth: 0.5, projectionMode: \"isometric\" }}\n  style={{ width: \"100%\", height: \"400px\" }}\n/>\n\n// Load via any method:\nref.current?.loadFromText(gcode);\nref.current?.loadFromWorkerData(workerData);\nref.current?.resetView();\nref.current?.setProjectionMode(\"perspective\");\nref.current?.getSVGElement();                 // access raw <svg> for export\n\n// Crosshair — show current machine position during job execution:\nref.current?.setBitPosition({ x: 25, y: 50, z: 0 });\nref.current?.setBitVisible(false);\n```\n\n`GCodeSVGRendererHandle` exposes: `loadFromLines`, `loadFromFile`, `loadFromText`, `loadFromWorkerData`, `clear`, `resetView`, `setOptions`, `setProjectionMode`, `setBitPosition`, `setBitVisible`, `getSVGElement`, `dispose`.\n\n---\n\n## Development\n\n```bash\nnpm install\nnpm run build        # compile + generate types\nnpm test             # run all test suites\nnpm run test:watch   # watch mode\nnpm run dev          # rebuild on file changes\nnpm run demo         # start the demo dev server\nnpm run build:demo   # build the demo for deployment\n```\n\nThe demo is automatically built and published to GitHub Pages on every push to `master`.\n\n### Output\n\n```\ndist/\n  gviewer.js / gviewer.cjs       — core (parser, virtualizer, geometry)\n  viewer.js  / viewer.cjs        — Three.js viewer\n  react.js   / react.cjs         — React component\n  viewcube.css                   — ViewCube styles\n  types/                         — TypeScript declarations\n```\n\n## License\n\nMIT\n\n### Rotary worker previews\n\n`WorkerSegmentsData.rotary` optionally supplies `{ axis: \"X\" | \"Y\", centerlineZ: number }`.\nVertices must already be inverse-rotated by their programmed A into the stock frame,\nthen expressed in work coordinates at A=0 (including the centerline Z translation).\n`setToolpathRotationA()` applies live A about that centerline without rewriting any\nvertex buffers. The tool marker remains in work coordinates. Omitted metadata keeps\nlegacy X-axis rotation about Z=0; each load/unload resets the previous file's datum.\nThis supports hosts such as RotatoCAM-aware gSender workers that read stock-top Z zero\nfrom posted metadata. It does not parse that metadata or change machine commands.\n","readmeFilename":"README.md"}