{"_id":"wgsl_reflect","_rev":"28-4e6c9dca84aee37c563550b9c4abf436","name":"wgsl_reflect","dist-tags":{"latest":"1.6.0"},"versions":{"0.1.1":{"name":"wgsl_reflect","version":"0.1.1","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@0.1.1","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"928c8475755ac67890cfc909b706045261172484","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-0.1.1.tgz","fileCount":10,"integrity":"sha512-O8wZQJMuJ3O0YNPT6c3f7Rs29PdULIuLkGqBSI121aNs7Oyz/qChfX1RSbMUqCHCM+16Y3WFprXgEffw7ri4tg==","signatures":[{"sig":"MEYCIQCLCmGOMv+9uVUo6QYsdIyRsXXmpmLezoFlOqjok9OJGQIhAPWtykszLcK724lbWxHakylDk9OlMba1peTJTK1DGVof","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":295203},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"713ad944584d3467540e2f4440d4f46489a0b8d3","scripts":{"test":"tsc --project test/tsconfig.json","build":"rollup -c rollup.config.js"},"_npmUser":{"name":"jimblackler","email":"jimblackler@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.0","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.1.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_0.1.1_1702296634252_0.5793128348456353","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"wgsl_reflect","version":"1.0.0","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.0","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"8b7e2ef7f51b49c1071b3b09a5abbcb63367b499","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.0.tgz","fileCount":10,"integrity":"sha512-IzJgq0iH3dZmeIXeLzbeayuI5Kr1ryVvrYNlWPViaRZS74x497z5IfyjWu+PCDk6mQpNDE5S97URymSxLKO4tA==","signatures":[{"sig":"MEQCIBbQXa2Bgy33bfiA3JeOgPvT6BnKVMCzLbcaknxXuZUhAiAtqPwvoQ4tfyUUxb3PTUVvi/Y+LFAtsgSDmywKF2XiHQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":330324},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"a3cdfef0414f7d936cdb89e647f20da30ce025bf","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.0_1710690086380_0.35144859191493216","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"wgsl_reflect","version":"1.0.1","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.1","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"4abac380bb56d1c9bcb31439cac640ca86f44fc4","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.1.tgz","fileCount":10,"integrity":"sha512-P955IzZmesDPmcnzaBJbM/zylGht51SJ5fDD3CsYBNgWVhSW6AsRBX0yRWMDRccqpy9ugHhmcNX5meQ06D3HEw==","signatures":[{"sig":"MEYCIQCOB94PJc4w44hc9YhZuc8ilSFO45hYj0UEFX5dG5eu4AIhAMf7JVIRPeeFmJwb/uiJ+Fsce+YpXZU2PkNTP5ENVDMF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":330276},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"cba3f8894e770cc228a4958867f62dd9a47f00bf","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.1_1710701041512_0.8380939095563922","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"wgsl_reflect","version":"1.0.2","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.2","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"5bf15051cc7851a0dd0c8abcd8cfc777e7177c6f","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.2.tgz","fileCount":10,"integrity":"sha512-tYo+z1n/Ga/yOVYOuDdlg7lZtsbbZfWqZDgMVkIRgE8kHI8PDASJEXHuIgx6ghbzbCBg4OrbWwS6sAz+Lpe+zw==","signatures":[{"sig":"MEUCICN1B9ckuClOfStIFuv6+F7YyRuE7T2bF6e4yVhjOdbXAiEA8FK4UQt6pb+Zj8ycs0FIQt4r+fn03ThVRq4tMqsHzPo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":330367},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"ad246aa2ce4eb1e049de4ebf1953afffdd890f7f","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.2_1713236266165_0.7483958107220952","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"wgsl_reflect","version":"1.0.3","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.3","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"291409e79bc4f08f27d3f848df031d8913deda83","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.3.tgz","fileCount":10,"integrity":"sha512-8nn6l12bOM+wuBmNxZchJrU84wjJ7MaGkGUU8u+WMEIiU5/BsSYgi6VhCHstJGSK7piQ5hIgegSEGzA60BIFMw==","signatures":[{"sig":"MEQCIAYkLCJrQAqmTvf+8scHgVUZvSCU/UpBiMYb7YKb8hE+AiBnc+UyortPbKyCCYo2irbTeXicdXopImxRyHHKzthc7w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":334814},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"c1cd1cf4bc7ab05c30db3f9456eb869c331cc7f4","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.3_1713843763079_0.22515672371748585","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"wgsl_reflect","version":"1.0.4","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.4","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"2dacb726adb68710dcf6a97330a79d9f71faac4b","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.4.tgz","fileCount":10,"integrity":"sha512-rJG01W1eXfQsMS9iRE3CHTxUNd2ts7+//ZptZSD0tWdSXqOC6aAaxqjbEVHR5eQf/iERDQlmoSc9CRTGou6T/w==","signatures":[{"sig":"MEUCIHxOOtG3eFzFIJzlospNQprmZYBZPVTxt/+dxXF5sK+nAiEA5tMZrwLXQpl9PAarmn6kgtFGyF2HTjlMkrhtVvEjHjM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":337220},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"dc9a05399950eff17d500dc0837be611da93aa1a","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.4_1713931442667_0.055815756261762495","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"wgsl_reflect","version":"1.0.5","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.5","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"833337b36fe2e700a70325dd5ebbd4a6d7478282","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.5.tgz","fileCount":10,"integrity":"sha512-cbrrKMe5Hiwj1yZbxe27WcdstWegAaMN31C+Ed4257FtwfEYwmNTl6M/Zn8mgKh8r7bF3qnMQRwZjj+h8RFtMA==","signatures":[{"sig":"MEUCIAmS3DGCo3zUy02wQ5oSoMx6ihWZWq0SeNyn1/HgN4YgAiEAxKCpBNlf0lN4S6Qz8VlyZ7hBVwFfdZifDOExzOYfT4E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":339412},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"205a6d7b333794d509fa6e5d3fef572ffacaa0cf","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.5_1713932903411_0.9239625939971592","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"wgsl_reflect","version":"1.0.6","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.6","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"876265acbc3a26f218f5aa5c363153d736bb81cd","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.6.tgz","fileCount":10,"integrity":"sha512-KKhzoC8FhZPSxu5s9Dy6bdUWuME30jyx+Xge7W4xq4kIu2L9amVmsQmhSm2jKbRL9jMwICb9nr/zk25ELbTnNQ==","signatures":[{"sig":"MEUCIDQmmdYoqwz7KMVDi6h7pKRLW4LdPiE4KNVLSL/9XKCEAiEAsX2u+R+9HV4gUImmBSUAmM58ii1E9L2TcOT21MuryZY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":341701},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"58d8ac3babf77549e07b14a7db18708bffee33a9","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.6_1715398811190_0.8938249534043008","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"wgsl_reflect","version":"1.0.7","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.7","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"c69361604949206c10f3e9c157912e275387d26b","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.7.tgz","fileCount":10,"integrity":"sha512-f0KoWpnIO0GkkrxG8EidPkJ9pZJOcHTkMYq/5TVMIaMi2LEr+dbUcjU/c+2O4ydJzGb3RZyxfl1GnEVAGedvDw==","signatures":[{"sig":"MEUCIGJFCIuVenvwNRHAurXoaoi9H+pWOAKRJVX4pzhSaj5CAiEAq34GDVpsbbDSzTjyHaY74VrmosTw6Nx5YPCGi4TKjiE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":342861},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"ed6b5ed35ef8b49c9556e7381d0d826c7f20b48e","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.7_1715912652084_0.05904380844596302","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"wgsl_reflect","version":"1.0.8","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.8","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"7f6940ae9a49d5a125f3782ce710139357441945","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.8.tgz","fileCount":10,"integrity":"sha512-0kdpA5H3SF2CMeCBijYqQz+ZT+uW310nJORFX8QPFOvrkfSGNPHFDE7aGPCUnsuDi1kzpj+9SEFIhqjf9iHGSQ==","signatures":[{"sig":"MEUCIQDHOeZbyCbfxazamULlprNnJBpULAZJBjNWZ5YZ0Hv9XgIgIuxpVGqoDOik2edwY4fGxOw5/MrHRPalHjS3RespVcg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":339372},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"3df90ac9301613458bc6a0d19e6f7824092a1297","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.8_1721151617921_0.6826883441803402","host":"s3://npm-registry-packages"}},"1.0.9":{"name":"wgsl_reflect","version":"1.0.9","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.9","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"38719f27a3894f039af840e55179de2be988fc4f","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.9.tgz","fileCount":10,"integrity":"sha512-NgO7ApUnFuB3FTsBVYjWizMIM5qOawlkSsi7j5BsYlMAW/e+j5IgB2M9kdKzR5lgUECFDSZZK3zdJ4yDmjfx4Q==","signatures":[{"sig":"MEUCIQD1VQMagmdn8Y2apXGj7Umky6yyXPAf3S7ye+oh+eMCnAIgERWEu+Q0yr/uVad/XVhG8xZEwvC1UNdma6KZQS4SK9o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":339672},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"3efb215eb9a4087594f9bda049442178c6a0454e","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.9_1723693154346_0.23263514817653252","host":"s3://npm-registry-packages"}},"1.0.10":{"name":"wgsl_reflect","version":"1.0.10","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.10","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"51bc9e6dd3735cf41650676c6c32c597b0996400","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.10.tgz","fileCount":10,"integrity":"sha512-70yzTaAhLFvasD+awEdHmgqKk3Qm2y6CVUU4OiS1rokB/TGi8CFEweUzDIfYn5pt6qhRdi9uArNykKaJy+CnwQ==","signatures":[{"sig":"MEUCIQCR31x97k2kycVhcTPeCvFt+hBOe/bvlpciCiR5bGS7RgIgZRfS14Kdc9wzP5+JvkoVjYRkb/F2dtxR+3bFh5+CiJM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":341956},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"c516be374d02a852b4ed21f033634c5ff278821c","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.10_1724904867524_0.9930728511520055","host":"s3://npm-registry-packages"}},"1.0.11":{"name":"wgsl_reflect","version":"1.0.11","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.11","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"5fce6b1f030fb6bdc91a3b07dedd1c113e04fc3d","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.11.tgz","fileCount":10,"integrity":"sha512-r3Jcr0TCNVFNo8B37r+sy/FQ3lJrBhGgR+TgXfvrBQGzhrPXjcl2DEM7v2sBfuqQzQNijXk0gYNW/S0TjgIrbA==","signatures":[{"sig":"MEUCIQDe0fwxT8Rbp6wfljhnsbU45QnMyRbK7Ua1Npbx45YVJAIgI3GEt2+5bcu6d7nzWZwqJRvYtQ8yShb8eo1Dsgo9ymM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":341956},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"c516be374d02a852b4ed21f033634c5ff278821c","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.11_1725561897987_0.8601968571642185","host":"s3://npm-registry-packages"}},"1.0.12":{"name":"wgsl_reflect","version":"1.0.12","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.12","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"b6ee24abb94b67501f1a4e5fff92004a12ebe28d","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.12.tgz","fileCount":10,"integrity":"sha512-hqORu1l+ed+tylMmcP/G78+rulEpq7TMKIxX/ktEgQzyYXcZL3FMkL8/c7xLMziy6+MXfjlOFWXqIal4KHilzg==","signatures":[{"sig":"MEQCIE2vNk5EZMRenS21ZtsRrHJ5t26gRuhWKVzyPnF0at1EAiAtZyfR4yrMEOXRvkhWRbmu6oAhPMsPrey9Ujd5g/nSQQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":342072},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"1f442116336dd653be71459e3e937c3101dd9b19","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.12_1725562101785_0.19000252597711564","host":"s3://npm-registry-packages"}},"1.0.13":{"name":"wgsl_reflect","version":"1.0.13","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.13","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"61911a296d90e7172ab9be1a24597867a1d48604","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.13.tgz","fileCount":10,"integrity":"sha512-hUe9bl4/eWjEHonbliwU81O5NH2mS0IO/AE7UhhmWMlf+uMc6yySXEA12bARvlk9YLWhxt7LupR333MP58S2fw==","signatures":[{"sig":"MEQCIBL8Y1rJRD72XylDYvi6er9VSapQNAUpTGVSMkEjlrLdAiBU2H1LU16FxYwN8v4lqKv32k8Z5FAFWShCLfwhTevfBQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":342851},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"dd6fc26007a41476095c7d83fc50b378bae3a5e0","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.13_1728576452868_0.05847231754849691","host":"s3://npm-registry-packages"}},"1.0.14":{"name":"wgsl_reflect","version":"1.0.14","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.14","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"2f5ddd8fa06167d0592e7b61f956c3bf4c0589dd","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.14.tgz","fileCount":10,"integrity":"sha512-VYY1+5pNm3GE2I4ADNnlNBFTiLOsh3Cq/eeiwfMhjMzUwnlJOqJrzKUd/3owxL69txUfvgcQaB8M6ElVaBaAOA==","signatures":[{"sig":"MEUCIGNXHj8CE1gEL4USrToYi9ZDxyNhVCUbAM7uEwkNmn/KAiEAkIrUnrTzUqIQ/4kYQemVGku5UDL4CS54NpAAwXupCyA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":343007},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"e77eca267d7637f6705f6b625aa8acaf9b1a30ec","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.14_1728965398474_0.024809119212822806","host":"s3://npm-registry-packages"}},"1.0.15":{"name":"wgsl_reflect","version":"1.0.15","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.15","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"c0ba2aa2f1b156f2ef36b4f2290f2a8122f68fde","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.15.tgz","fileCount":10,"integrity":"sha512-ackRKZCCvLwIvlRz6zkzjFhzB5DosMOolmB+soQ5lpq8wLLzytOlX4zHrQMZEK1f3ktujiGjZBWMPZv5r0kWVQ==","signatures":[{"sig":"MEQCIFIoLRmCgMfxNscxiqPKJRGDTAed6RRQJ7UrExIsvJN9AiBR3Dd/AYGKl8EjOYK0Rn/wHCjG927Ugz2LBH2aOr+Dtw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":344332},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.node.js","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"7f98212bee52b89a683ba3777977426846a0053c","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.15_1731041805223_0.5714761650920968","host":"s3://npm-registry-packages"}},"1.0.16":{"name":"wgsl_reflect","version":"1.0.16","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.16","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"3134f9e4de2d5ab2ed9174675c6a05c176951c13","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.16.tgz","fileCount":10,"integrity":"sha512-OE3urfXXbHMD5lhKZwxOxC9SFYynEGEkWXQmvi7B1gzzr5jb9+drh9A8MeBvVqKqznCoBuh8WOzVuSGSZs4CkQ==","signatures":[{"sig":"MEUCIQC/ioaF6djYc4vttOiCDM92UKp8NgGMiovQTbfqkVImAwIgKkj1LlKUIXzt8GtLzFS2FtOdPDen6rbDxFGEcwA0SGQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":344496},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.module.js.map","wgsl_reflect.node.js","wgsl_reflect.node.js.map","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"114137302f7c801daa6df20c8e91e40146ca50af","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.16_1731127873469_0.6435526920939045","host":"s3://npm-registry-packages"}},"1.0.17":{"name":"wgsl_reflect","version":"1.0.17","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.0.17","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"e681365ce53bce45794a407a6d4d7c19d0d820e1","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.17.tgz","fileCount":10,"integrity":"sha512-TzeBJSkFJRb8VEAOiUxZbcHhtcs8w4rJi9zcQTLv4OZYgPOpIGvd74ukV58CNU3FB+sIKTO0CpHeOAFsTjoc1g==","signatures":[{"sig":"MEQCIGOYHt0CSuaxTCAdzVW7IRtSc1t6ZlCagnfDu744rNoHAiBrUYtMV1t3QX6brdI/gCvrGtutKwD159SBG8CmzFnoOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344415},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.module.js.map","wgsl_reflect.node.js","wgsl_reflect.node.js.map","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"c74173e2bc0ea01a5f231fac0b2a7c257ab52dc9","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","typescript":"^5.3.3","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.0.17_1738647514296_0.5530651691209034","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"wgsl_reflect","version":"1.1.0","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.1.0","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"13154af9bb217aea28966b35eed6f1e7a483eb99","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.1.0.tgz","fileCount":24,"integrity":"sha512-Sblr/yHOuLEFys/eRxFJnrsRtkV5k8vJiqlI7dk7+1GW/RFWqiJ6cQezhRGxDlygqhaqFn+KCpsIdsScXENFEA==","signatures":[{"sig":"MEYCIQCugQBpXid7gPOc9q6aOE5HwNVzBOdbY2uJy2t2jcOjTQIhAJBC0nzgk4lkprkU3r+xfJ9DCZUOxtzeN1MYVj7Qg6C6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":920790},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.module.js.map","wgsl_reflect.node.js","wgsl_reflect.node.js.map","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"d74ac8ac4aface7aa667195b2a10b1538f4f8476","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.1.0_1740067553537_0.7747056397327261","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"wgsl_reflect","version":"1.2.0","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.2.0","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"37be44b292f93cbd64f6f994ab9a38214577ba32","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.2.0.tgz","fileCount":36,"integrity":"sha512-bDYcmWfbg4WsrBmPv6lsyjqXx02r8dkNAzR77OCNqIcR8snO4aNSBTjir9zqgR7rLnw6PaisiZxtCitSCIUlnQ==","signatures":[{"sig":"MEQCIHCz19g90OHyYvG5twL/Tc9M/JmJTfkOMle1h10kdjK3AiBnY+FvFfSgPj93XV3M14mrI2M2mxDdVXIhi9hDM59Vfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1086526},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.module.js.map","wgsl_reflect.node.js","wgsl_reflect.node.js.map","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"50a761680c0dbfb695ae558d220e108c497c8077","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.2.0_1741400971046_0.3240715597163042","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"wgsl_reflect","version":"1.2.1","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.2.1","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"9f645249b3f8618a8fc609c0e62482f9916dc04a","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.2.1.tgz","fileCount":36,"integrity":"sha512-PY6MdLqLW1NFj/V6f5/9/Nb4ultwlAF7lCLyjKOAkdnlf7LlrGXNFXzHHEV7Okg1zy4C4TpBIcc/G3PXW4py8g==","signatures":[{"sig":"MEQCIBuqgnc1gnfON9gHF/WdAHrypkyNido9Fj6DNKDew97gAiA3++B68KLSu7UH7CrYPCBoM+kby2LbxWEecZOdZ/CPqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2130064},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.module.js.map","wgsl_reflect.node.js","wgsl_reflect.node.js.map","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"f86d93e6cb4772114da9d7d81f2115ca7df2d14f","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.2.1_1747174129966_0.2772889559890914","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"wgsl_reflect","version":"1.2.3","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.2.3","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"41985a661efdd00047e771ad7aa06ab131926a55","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.2.3.tgz","fileCount":36,"integrity":"sha512-BQWBIsOn411M+ffBxmA6QRLvAOVbuz3Uk4NusxnqC1H7aeQcVLhdA3k2k/EFFFtqVjhz3z7JOOZF1a9hj2tv4Q==","signatures":[{"sig":"MEUCIA+qsT5R0U6hZJgs5JOoDjYYfIQIwnAYsYj0VOrwfc2wAiEApHXnGLKjPeqTP6iR5Motsh1/0rkIcdv1GMJrbB7QRRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2136839},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.module.js.map","wgsl_reflect.node.js","wgsl_reflect.node.js.map","types"]},"main":"wgsl_reflect.node.js","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"0862d6dcac13490dd4cebafceca527f54e8df456","scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"10.2.5","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"21.4.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.1","rollup":"^2.60.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.2.3_1753331302751_0.6770804948075986","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"wgsl_reflect","version":"1.3.0","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.3.0","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"c9716a669eeb4b65420a31635603bccb36231be1","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.3.0.tgz","fileCount":28,"integrity":"sha512-liK+dXfDMQUrr8QcZhZi75EFD4us4VhsIT218YMkKZr8aDExc7A5znDpfmf7IxM3nIooFPCKAnK9u8WY5XizAw==","signatures":[{"sig":"MEYCIQCFlgjDS3jSFdm+yZbMIWdaKTkArXBgxR3lhyDRHDdDWQIhALv6Z7oHwktNtx+gwKIVGgjlYJFxW3JSYk2S8bG9n11y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2258898},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.module.js.map","wgsl_reflect.node.js","wgsl_reflect.node.js.map","types"]},"main":"wgsl_reflect.node.js","type":"module","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"8c9cbac3b68bdd38f32c94ad0e4d64c5a415e012","scripts":{"test":"cd test; node test_node.js","build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"11.4.2","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","tslib":"^2.6.1","rollup":"^2.60.0","webgpu":"^0.3.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.3.0_1779201042195_0.4973207305812406","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"wgsl_reflect","version":"1.4.0","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.4.0","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"f13adc59667f4f828ac7ea01446121bb71164cf2","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.4.0.tgz","fileCount":29,"integrity":"sha512-OxrVGssWuV+ggyNXcWpS4CHAVVv6cdvmEAbj87uqpizndPtMs7sj/tSFZ1ATB7x7cvWV7sVAJ2MgEXH128u21A==","signatures":[{"sig":"MEYCIQDkcGfEWY+3QOY5442sGwu7U2EbokFUXM1Y2yyPFSp7dQIhAM+TconeOGN8S0b1lQR4oCj9SBYCEx5r99Z6RMoLmBrA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2360125},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.module.js.map","wgsl_reflect.node.js","wgsl_reflect.node.js.map","types"]},"main":"wgsl_reflect.node.js","type":"module","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"e9127d510e076ef30265924dfc19e9dd0bcba382","scripts":{"test":"cd test; node test_node.js","build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"11.4.2","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","tslib":"^2.6.1","rollup":"^2.60.0","webgpu":"^0.3.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.4.0_1780931461357_0.11500912861356039","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"wgsl_reflect","version":"1.5.0","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"author":{"name":"Brendan Duncan"},"license":"MIT","_id":"wgsl_reflect@1.5.0","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"dist":{"shasum":"b5549ee97c1b1bf5160197117ef2acf3c3687d33","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.5.0.tgz","fileCount":31,"integrity":"sha512-ntYNHZgzBHs+pzmVCsSiRqyye3Ey1xdKEX0Ls8PiDBKIiGFwUOef0PdBbYvUyGTGFwLKkqTZOGmPAed70mquTw==","signatures":[{"sig":"MEQCIFaVq/MOkF3X5FDml943zkbiJqbqLgNK8Gp3I8NmrO0ZAiAR/pzL9be04Itq79NHBbySHAeXigVpk2OYsOZzGhQvsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2771977},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.module.js.map","wgsl_reflect.node.js","wgsl_reflect.node.js.map","types"]},"main":"wgsl_reflect.node.js","type":"module","types":"types/index.d.ts","module":"wgsl_reflect.module.js","gitHead":"11417af86deec28d61ec17e01a1e8e51a2a96b83","scripts":{"test":"cd test; node test_node.js","build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch"},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"repository":{"url":"git+https://github.com/brendan-duncan/wgsl_reflect.git","type":"git"},"_npmVersion":"11.4.2","description":"WGSL Parser and Reflection library","directories":{"test":"test"},"sideEffects":false,"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","tslib":"^2.6.1","rollup":"^2.60.0","webgpu":"^0.3.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.2"},"_npmOperationalInternal":{"tmp":"tmp/wgsl_reflect_1.5.0_1783443281359_0.859246719522301","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"wgsl_reflect","version":"1.6.0","description":"WGSL Parser and Reflection library","author":{"name":"Brendan Duncan"},"license":"MIT","module":"wgsl_reflect.module.js","main":"wgsl_reflect.node.js","types":"types/index.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/brendan-duncan/wgsl_reflect.git"},"homepage":"https://github.com/brendan-duncan/wgsl_reflect","bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"sideEffects":false,"directories":{"test":"test"},"scripts":{"build":"rollup -c rollup.config.js","watch":"npm run watch:js","watch:js":"rollup -c rollup.config.js --watch","test":"cd test; node test_node.js"},"keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"devDependencies":{"rollup":"^2.60.0","tslib":"^2.6.1","@rollup/plugin-typescript":"^11.1.2","@rollup/plugin-terser":"^0.4.4","webgpu":"^0.3.0","jsdom":"^26.1.0"},"jspm":{"files":["package.json","LICENSE.md","README.md","wgsl_reflect.module.js","wgsl_reflect.module.js.map","wgsl_reflect.node.js","wgsl_reflect.node.js.map","types"]},"_id":"wgsl_reflect@1.6.0","gitHead":"709eeecc5bb106cd363e46e6ab7bb406f61ab2b9","_nodeVersion":"22.17.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-p2bJTZXaS4/2L2NlvRIcnI6ZJJSF1kxvH5RYZzGw958Z2PDAw6Cl13cgbE9CWEqWZOFtnlCLXM9ZYdifnJ0FJg==","shasum":"956ed9e694fc670abc89c3046ba80ade60d1058b","tarball":"https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.6.0.tgz","fileCount":33,"unpackedSize":3011874,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDPNa7WDadSa7MA6b6UcT9VWK+mozqFtys0uJLrDh338QIgBL9FkP1+9I7vortZGb8FlUQOepXHh0wuX89myCiUdmw="}]},"_npmUser":{"name":"brendanduncan","email":"brendanduncan@gmail.com"},"maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wgsl_reflect_1.6.0_1788643345761_0.270353645779432"},"_hasShrinkwrap":false}},"time":{"created":"2023-12-11T12:10:34.252Z","modified":"2026-09-05T21:22:26.046Z","0.1.1":"2023-12-11T12:10:34.514Z","1.0.0":"2024-03-17T15:41:26.564Z","1.0.1":"2024-03-17T18:44:01.777Z","1.0.2":"2024-04-16T02:57:46.348Z","1.0.3":"2024-04-23T03:42:43.208Z","1.0.4":"2024-04-24T04:04:02.864Z","1.0.5":"2024-04-24T04:28:23.620Z","1.0.6":"2024-05-11T03:40:11.382Z","1.0.7":"2024-05-17T02:24:12.292Z","1.0.8":"2024-07-16T17:40:18.177Z","1.0.9":"2024-08-15T03:39:14.475Z","1.0.10":"2024-08-29T04:14:27.753Z","1.0.11":"2024-09-05T18:44:58.176Z","1.0.12":"2024-09-05T18:48:21.984Z","1.0.13":"2024-10-10T16:07:33.218Z","1.0.14":"2024-10-15T04:09:58.649Z","1.0.15":"2024-11-08T04:56:45.415Z","1.0.16":"2024-11-09T04:51:13.777Z","1.0.17":"2025-02-04T05:38:34.536Z","1.1.0":"2025-02-20T16:05:53.845Z","1.2.0":"2025-03-08T02:29:31.243Z","1.2.1":"2025-05-13T22:08:50.223Z","1.2.3":"2025-07-24T04:28:22.990Z","1.3.0":"2026-05-19T14:30:42.380Z","1.4.0":"2026-06-08T15:11:01.534Z","1.5.0":"2026-07-07T16:54:41.553Z","1.6.0":"2026-09-05T21:22:25.914Z"},"bugs":{"url":"https://github.com/brendan-duncan/wgsl_reflect/issues"},"author":{"name":"Brendan Duncan"},"license":"MIT","homepage":"https://github.com/brendan-duncan/wgsl_reflect","keywords":["wgsl_reflect","webgpu","wgsl","javascript","html5"],"repository":{"type":"git","url":"git+https://github.com/brendan-duncan/wgsl_reflect.git"},"description":"WGSL Parser and Reflection library","maintainers":[{"name":"jimblackler","email":"jimblackler@gmail.com"},{"name":"brendanduncan","email":"brendanduncan@gmail.com"}],"readme":"# WebGPU Shading Language Reflection Library\r\n\r\nA WebGPU Shading Language (WGSL) parser, reflection, execution, and debugging library for Typescript and Javascript.\r\n\r\n### [Example](https://brendan-duncan.github.io/wgsl_reflect/example.html)\r\n\r\n---\r\n\r\n**wgsl_reflect** is a self-contained toolkit for working with WGSL shaders without a GPU:\r\n\r\n- **Reflection** — parse a WGSL shader and analyze its contents: bind group layout, resource bindings, uniform and storage buffers, struct members with their names, types, sizes, and byte offsets, entry points, and inter-stage inputs/outputs.\r\n- **Execution** — run a WGSL shader on the CPU. `WgslExec` emulates compute dispatches and produces the same buffer results a GPU would, which is useful for testing shaders without a device.\r\n- **Debugging** — step through a compute, vertex, or fragment shader one statement at a time with `WgslDebug`: breakpoints, step into/over/out, and variable inspection — the building blocks of a shader debugger. Fragment shaders can be debugged over their 2×2 quad so `dpdx`/`dpdy`/`fwidth` and `textureSample` mip selection resolve correctly.\r\n- **Race condition detection** — `detectRaces` runs every invocation of a workgroup in lockstep to catch missing `workgroupBarrier()`/`storageBarrier()` calls that cause data races.\r\n- **Static performance analysis** — `analyzePerformance` flags potential bottlenecks in vertex, fragment, and compute shaders, such as expensive math, division, atomics, and barriers inside loops.\r\n\r\n## Contents\r\n\r\n- [Installation](#installation)\r\n- [Quick Start](#quick-start)\r\n- [Documentation](#documentation)\r\n- [Reflection API Reference](#reflection-api-reference)\r\n- [Reflection Examples](#reflection-examples)\r\n\r\n## Installation\r\n\r\nFrom NPM:\r\n\r\n```\r\nnpm install wgsl_reflect\r\n```\r\n\r\nThe _wgsl_reflect.module.js_ file is a self-contained roll-up of the library that can be included in your project and imported with:\r\n\r\n```javascript\r\nimport { WgslReflect } from \"wgsl_reflect/wgsl_reflect.module.js\";\r\n// Parsees the WGSL in shaderCode, extracs information about it.\r\nconst reflect = new WgslReflect(shaderCode);\r\n```\r\n\r\n## Quick Start\r\n\r\n```javascript\r\nimport { WgslReflect } from \"wgsl_reflect/wgsl_reflect.module.js\";\r\n\r\n// Parsees the WGSL in shader_code, extracs information about it.\r\nconst reflect = new WgslReflect(shaderCode);\r\n\r\n// What resources does the shader bind?\r\nconst groups = reflect.getBindGroups();\r\n\r\n// What are the compute/vertex/fragment entry points?\r\nconsole.log(reflect.entry.compute.map(fn => fn.name));\r\n```\r\n\r\n## Documentation\r\n\r\nThe reflection API is documented below. The execution, debugging, race\r\ndetection, and performance analysis features each have a dedicated guide in the\r\n[docs](./docs) folder:\r\n\r\n- [Shader Execution](./docs/shader-execution.md) — run WGSL shaders on the CPU and emulate compute dispatches with `WgslExec`.\r\n- [Shader Debugging](./docs/shader-debugging.md) — step through a shader, set breakpoints, and inspect state with `WgslDebug`.\r\n- [Race Condition Detection](./docs/race-condition-detection.md) — find missing barriers in compute shaders with `detectRaces`.\r\n- [Static Performance Analysis](./docs/shader-analysis.md) — flag potential performance bottlenecks in shaders with `analyzePerformance`.\r\n\r\n## Reflection API Reference\r\n\r\n```javascript\r\n\r\n// A collection of gathered reflection information about the shader.\r\n//\r\n// This is the top level of the reflection system, parsing the shader\r\n// code provided to the constructor, and extracting useful information\r\n// about the contents of the shader.\r\nclass WgslReflect {\r\n  // All top-level uniform vars in the shader.\r\n  uniforms: Array<VariableInfo>;\r\n  // All top-level storage vars in the shader, including storage buffers and textures.\r\n  storage: Array<VariableInfo>;\r\n  /// All top-level immediate buffer vars in the shader.\r\n  immediates: Array<VariableInfo>;\r\n  // All top-level texture vars in the shader;\r\n  textures: Array<VariableInfo>;\r\n  // All top-level sampler vars in the shader.\r\n  samplers: Array<VariableInfo>;\r\n  // All top-level type aliases in the shader.\r\n  aliases: Array<AliasInfo>;\r\n  // All top-level overrides in the shader.\r\n  overrides: Array<OverrideInfo>;\r\n  // All top-level structs in the shader.\r\n  structs: Array<StructInfo>;\r\n  // All entry functions in the shader: vertex, fragment, and/or compute.\r\n  entry: EntryFunctions;\r\n  // All functions in the shader, including entry functions.\r\n  functions: Array<FunctionInfo>;\r\n\r\n  // Parse the given WGSL shader code, populating the info properties of this class.\r\n  constructor(shader?: string);\r\n\r\n  // Parse the given WGSL shader code, adding to the info properties of this class.\r\n  update(shader: string);\r\n\r\n  // Find a function or entry point with the given name.\r\n  getFunctionInfo(name: string): FunctionInfo | null;\r\n\r\n  // Find a struct with the given tname.\r\n  getStructInfo(name: string): StructInfo | null;\r\n\r\n  // Find an override with the given name.\r\n  getOverrideInfo(name: string): OverrideInfo | null;\r\n\r\n  // Find a resource by its group and binding.\r\n  findResource(group: number, binding: number): VariableInfo | null;\r\n\r\n  // Get the bind groups used by the shader, bindGroups[group][binding].\r\n  getBindGroups(): Array<Array<VariableInfo>>;\r\n}\r\n\r\n// A variable can be a resource passed to the shader, of this type.\r\nenum ResourceType {\r\n  Uniform, // Uniform buffer\r\n  Storage, // Storage buffer\r\n  Immediate, // Immediate buffer\r\n  Texture, // Texture\r\n  Sampler, // Sampler to sample a Texture\r\n  StorageTexture // StorageTexture\r\n}\r\n\r\n// Information about a resource variable. This will be a uniform buffer,\r\n// storage buffer, texture, sampler, or storageTexture.\r\nclass VariableInfo {\r\n  // The name of the variable.\r\n  name: string;\r\n  // The type of the variable.\r\n  type: TypeInfo;\r\n  // The binding group of the variable.\r\n  group: number;\r\n  // The binding index of the variable.\r\n  binding: number;\r\n  // The resource type of the variable.\r\n  resourceType: ResourceType;\r\n  // The access mode of the variable, can be: \"\", \"read\", \"write\", or \"read_write\".\r\n  access: string;\r\n  // Associated objects, for relating samplers to textures.\r\n  // For a call to textureSample(texture, sampler), texture.relations will include sampler, and sampler.relations will include texture.\r\n  relations: Array<VariableInfo> | null;\r\n\r\n  // True if the type of the variable is an array.\r\n  get isArray(): boolean;\r\n  // True if the type of the variable is a struct.\r\n  get isStruct(): boolean;\r\n  // True if the type of the variable is a template.\r\n  get isTemplate(): boolean;\r\n  // Size of the data pointed to by the variable, in bytes.\r\n  get size(): number;\r\n  // The alignment size if the variable type is a struct, otherwise 0.\r\n  get align(): number;\r\n  // The list of members of the variable type if it's a struct, otherwise null.\r\n  get members(): Array<MemberInfo> | null;\r\n  // The format if the type is a template or array, otherwise null.\r\n  get format(): TypeInfo | null;\r\n  // The array size if it's an array, otherwise 0.\r\n  get count(): number;\r\n  // The array stride if it's an array, otherwise 0.\r\n  get stride(): number;\r\n}\r\n\r\n// Base class for variable types.\r\nclass TypeInfo {\r\n  // The name of the type declaration.\r\n  name: string;\r\n  // Size of the data used by this type, in bytes\r\n  size: number;\r\n  // Attributes assigned to this declaration.\r\n  attributes: Attribute[] | null;\r\n\r\n  // True if this is an array type, can be cast to ArrayInfo.\r\n  get isArray(): boolean;\r\n  // True if this is a struct type, can be cast to StructInfo.\r\n  get isStruct(): boolean;\r\n  // True if this is a template type, can be cast to TemplateInfo.\r\n  get isTemplate(): boolean;\r\n}\r\n\r\n// Information about struct type declarations\r\nclass StructInfo extends TypeInfo {\r\n  // The list of members of the struct.\r\n  members: Array<MemberInfo>;\r\n  // The alignment, in bytes, for the structs data.\r\n  align: number;\r\n  // The line in the shader code the type declaration starts at.\r\n  startLine: number;\r\n  // The line in the shader code the type declaration ends at.\r\n  endLine: number;\r\n  // True if the struct is used by a uniform, storage, or directly or indirectly by an entry function.\r\n  inUse: boolean;\r\n}\r\n\r\n// Information about array type declarations\r\nclass ArrayInfo extends TypeInfo {\r\n  // The format for the data in the array\r\n  format: TypeInfo;\r\n  // The number of elements in the array\r\n  count: number;\r\n  // The stride, in bytes, of the array. This is the alignment of elements in the array data, including padding.\r\n  stride: number;\r\n}\r\n\r\n// Information about template type declarations\r\nclass TemplateInfo extends TypeInfo {\r\n  // The format type of the template\r\n  format: TypeInfo;\r\n  // Access mode of the template, which can be: \"\", \"read\", \"write\", or \"read_write\"\r\n  access: string;\r\n}\r\n\r\n// Information about a struct member declaration.\r\nclass MemberInfo {\r\n  // The name of the struct member.\r\n  name: string;\r\n  // The type of the struct member.\r\n  type: TypeInfo;\r\n  // The offset, in bytes, of the member from the start of the struct data.\r\n  offset: number;\r\n  // The size of the members data, in bytes.\r\n  size: number;\r\n\r\n  // True if the member type is an array and can be cast to ArrayInfo\r\n  get isArray(): boolean;\r\n  // True if the member type is a struct and can be cast to StructInfo.\r\n  get isStruct(): boolean;\r\n  // True if the member type is a template and can be cast to TemplateInfo.\r\n  get isTemplate(): boolean;\r\n  // If the member type is a struct, the alignment of the struct in bytes, otherwise 0.\r\n  get align(): number;\r\n  // If the member type is a struct, the members of the struct, otherwise null.\r\n  get members(): Array<MemberInfo> | null;\r\n  // If the member type is an array or template, the format of the type, otherwise null.\r\n  get format(): TypeInfo | null;\r\n  // If the member type is an array, the number of elements in the array, otherwise 0.\r\n  get count(): number;\r\n  // If the member type is an array, the stride of the array elements in bytes, otherwise 0.\r\n  get stride(): number;\r\n}\r\n\r\n// Information about type aliases declared in the shader.\r\nclass AliasInfo {\r\n  // The name of the alias type.\r\n  name: string;\r\n  // The information of the type being aliased.\r\n  type: TypeInfo;\r\n}\r\n\r\n// The lists of shader vertex, fragment, and/or compute entry functions.\r\nclass EntryFunctions {\r\n  // Any vertex entry points in the shader.\r\n  vertex: Array<FunctionInfo>;\r\n  // Any fragment entry points in the shader.\r\n  fragment: Array<FunctionInfo>;\r\n  // Any compute entry points in the shader.\r\n  compute: Array<FunctionInfo>;\r\n}\r\n\r\n// Information about a function in the shader.\r\nclass FunctionInfo {\r\n  // The name of the function.\r\n  name: string;\r\n  // If the function is an entry function, which stage is it for, either \"vertex\", \"fragment\", \"compute\", or null if none.\r\n  stage: string | null;\r\n  // The list of shader inputs used by the function, which includes vertex and index buffers.\r\n  inputs: Array<InputInfo>;\r\n  // The list of shader outputs updated by the function, such as inter-stage buffers.\r\n  outputs: Array<OutputInfo>;\r\n  // The arguments of the function.\r\n  arguments: Array<ArgumentInfo>;\r\n  // The return type of the function, or null if the function returns void.\r\n  returnType: TypeInfo | null;\r\n  // The resources used by the function, including uniform buffers, storage buffers, textures,\r\n  // samplers, and storage textures.\r\n  resources: Array<VariableInfo>;\r\n  // Attributes assigned to the function declaration.\r\n  attributes: Attribute[] | null;\r\n  // The overrides referenced by the function's attributes.\r\n  overrides: Array<OverrideInfo>;\r\n  // The [x, y, z] of the @workgroup_size attribute, or null if the function doesn't have one.\r\n  // Omitted dimensions are 1. Consts and override default values are resolved; a dimension from\r\n  // an override with no default value is only known at pipeline creation and is reported as 1,\r\n  // in which case the override is listed in overrides.\r\n  workgroupSize: [number, number, number] | null;\r\n  // The line in the shader the function definition starts at.\r\n  startLine: number;\r\n  // The line in the shader the function definition ends at.\r\n  endLine: number;\r\n  // True if called directly or indirectly by an entry function.\r\n  inUse: boolean;\r\n  // All custom functions called directly by this function.\r\n  calls: Set<FunctionInfo>;\r\n}\r\n\r\n// Information about a shader inputs.\r\nclass InputInfo {\r\n  // The name of the input variable\r\n  name: string;\r\n  // The type of the input variable.\r\n  type: TypeInfo | null;\r\n  // The location type of the input.\r\n  locationType: string;\r\n  // The location index or built-in location name.\r\n  location: number | string;\r\n  // The interpolation mode of the binding.\r\n  interpolation: string | null;\r\n}\r\n\r\n// Information about a shader output.\r\nclass OutputInfo {\r\n  // The name of the output variable.\r\n  name: string;\r\n  // The type of the output variable.\r\n  type: TypeInfo | null;\r\n  // The location type of the output.\r\n  locationType: string;\r\n  // The location index or built-in location name.\r\n  location: number | string;\r\n}\r\n\r\n// Information about override constants in the shader.\r\nclass OverrideInfo {\r\n  // The name of the override constant.\r\n  name: string;\r\n  // The type of the override constant.\r\n  type: TypeInfo | null;\r\n  // A unique ID given to the override constant.\r\n  id: number;\r\n}\r\n\r\n// Information about a function argument.\r\nclass ArgumentInfo {\r\n  // Then ame of the argument variable.\r\n  name: string;\r\n  // The type of the argument variable.\r\n  type: TypeInfo;\r\n}\r\n```\r\n\r\n## Reflection Examples\r\n\r\nCalculate the bind group information in the shader:\r\n\r\n```javascript\r\nimport { WgslReflect } from \"./wgsl_reflect.module.js\";\r\n\r\nconst shader = `\r\nstruct ViewUniforms {\r\n    viewProjection: mat4x4<f32>\r\n}\r\n\r\nstruct ModelUniforms {\r\n    model: mat4x4<f32>,\r\n    color: vec4<f32>,\r\n    intensity: f32\r\n}\r\n\r\n@binding(0) @group(0) var<uniform> viewUniforms: ViewUniforms;\r\n@binding(1) @group(0) var<uniform> modelUniforms: ModelUniforms;\r\n@binding(2) @group(0) var u_sampler: sampler;\r\n@binding(3) @group(0) var u_texture: texture_2d<f32>;\r\n\r\nstruct VertexInput {\r\n    @location(0) a_position: vec3<f32>,\r\n    @location(1) a_normal: vec3<f32>,\r\n    @location(2) a_color: vec4<f32>,\r\n    @location(3) a_uv: vec2<f32>\r\n}\r\n\r\nstruct VertexOutput {\r\n    @builtin(position) Position: vec4<f32>,\r\n    @location(0) v_position: vec4<f32>,\r\n    @location(1) v_normal: vec3<f32>,\r\n    @location(2) v_color: vec4<f32>,\r\n    @location(3) v_uv: vec2<f32>\r\n}\r\n\r\n@vertex\r\nfn main(input: VertexInput) -> VertexOutput {\r\n    var output: VertexOutput;\r\n    output.Position = viewUniforms.viewProjection * modelUniforms.model * vec4<f32>(input.a_position, 1.0);\r\n    output.v_position = output.Position;\r\n    output.v_normal = input.a_normal;\r\n    output.v_color = input.a_color * modelUniforms.color * modelUniforms.intensity;\r\n    output.v_uv = input.a_uv;\r\n    return output;\r\n}`;\r\n\r\nconst reflect = new WgslReflect(shader);\r\n\r\nconsole.log(reflect.functions.length); // 1\r\nconsole.log(reflect.structs.length); // 4\r\nconsole.log(reflect.uniforms.length); // 2\r\n\r\n// Shader entry points\r\nconsole.log(reflect.entry.vertex.length); // 1, there is 1 vertex entry function.\r\nconsole.log(reflect.entry.fragment.length); // 0, there are no fragment entry functions.\r\nconsole.log(reflect.entry.compute.length); // 0, there are no compute entry functions.\r\n\r\nconsole.log(reflect.entry.vertex[0].name); // \"main\", the name of the vertex entry function.\r\n\r\nconsole.log(reflect.entry.vertex[0].resources.length); // 2, main uses modelUniforms and viewUniforms resource bindings.\r\nconsole.log(reflect.entry.vertex[0].resources[0].name); // viewUniforms\r\nconsole.log(reflect.entry.vertex[0].resources[1].name); // modelUniforms\r\n\r\n// Vertex shader inputs\r\nconsole.log(reflect.entry.vertex[0].inputs.length); // 4, inputs to \"main\"\r\nconsole.log(reflect.entry.vertex[0].inputs[0].name); // \"a_position\"\r\nconsole.log(reflect.entry.vertex[0].inputs[0].location); // 0\r\nconsole.log(reflect.entry.vertex[0].inputs[0].locationType); // \"location\" (can be \"builtin\")\r\nconsole.log(reflect.entry.vertex[0].inputs[0].type.name); // \"vec3\"\r\nconsole.log(reflect.entry.vertex[0].inputs[0].type.format.name); // \"f32\"\r\n\r\n// Gather the bind groups used by the shader.\r\nconst groups = reflect.getBindGroups();\r\nconsole.log(groups.length); // 1\r\nconsole.log(groups[0].length); // 4, bindings in group(0)\r\n\r\nconsole.log(groups[0][1].resourceType); // ResourceType.Uniform, the type of resource at group(0) binding(1)\r\nconsole.log(groups[0][1].size); // 96, the size of the uniform buffer.\r\nconsole.log(groups[0][1].members.length); // 3, members in ModelUniforms.\r\nconsole.log(groups[0][1].members[0].name); // \"model\", the name of the first member in the uniform buffer.\r\nconsole.log(groups[0][1].members[0].offset); // 0, the offset of 'model' in the uniform buffer.\r\nconsole.log(groups[0][1].members[0].size); // 64, the size of 'model'.\r\nconsole.log(groups[0][1].members[0].type.name); // \"mat4x4\", the type of 'model'.\r\nconsole.log(groups[0][1].members[0].type.format.name); // \"f32\", the format of the mat4x4.\r\n\r\nconsole.log(groups[0][2].resourceType); // ResourceType.Sampler\r\n\r\nconsole.log(groups[0][3].resourceType); // ResourceType.Texture\r\nconsole.log(groups[0][3].type.name); // \"texture_2d\"\r\nconsole.log(groups[0][3].type.format.name); // \"f32\"\r\n```\r\n\r\n---\r\n\r\nCalculate the member information for a uniform buffer block:\r\n\r\n```javascript\r\nimport { WgslReflect } from \"./wgsl_reflect.module.js\";\r\n\r\n// WgslReflect can calculate the size and offset for members of a uniform buffer block.\r\n\r\nconst shader = `\r\nstruct A {                                     //             align(8)  size(32)\r\n    u: f32,                                    // offset(0)   align(4)  size(4)\r\n    v: f32,                                    // offset(4)   align(4)  size(4)\r\n    w: vec2<f32>,                              // offset(8)   align(8)  size(8)\r\n    @size(16) x: f32                          // offset(16)  align(4)  size(16)\r\n}\r\n\r\nstruct B {                                     //             align(16) size(208)\r\n    a: vec2<f32>,                              // offset(0)   align(8)  size(8)\r\n    // -- implicit member alignment padding -- // offset(8)             size(8)\r\n    b: vec3<f32>,                              // offset(16)  align(16) size(12)\r\n    c: f32,                                    // offset(28)  align(4)  size(4)\r\n    d: f32,                                    // offset(32)  align(4)  size(4)\r\n    // -- implicit member alignment padding -- // offset(36)            size(12)\r\n    @align(16) e: A,                           // offset(48)  align(16) size(32)\r\n    f: vec3<f32>,                              // offset(80)  align(16) size(12)\r\n    // -- implicit member alignment padding -- // offset(92)            size(4)\r\n    g: @stride(32) array<A, 3>,                // offset(96)  align(8)  size(96)\r\n    h: i32,                                    // offset(192) align(4)  size(4)\r\n    // -- implicit struct size padding --      // offset(196)           size(12)\r\n}\r\n\r\n@group(0) @binding(0)\r\nvar<uniform> uniform_buffer: B;`;\r\n\r\nconst reflect = new WgslReflect(shader);\r\n\r\nconst u = reflect.uniforms[0];\r\nconsole.log(u.size); // 208, the size of the uniform buffer in bytes\r\nconsole.log(u.group); // 0\r\nconsole.log(u.binding); // 0\r\nconsole.log(u.members.length); // 8, members in B\r\nconsole.log(u.members[0].name); // \"a\"\r\nconsole.log(u.members[0].offset); // 0, the offset of 'a' in the buffer\r\nconsole.log(u.members[0].size); // 8, the size of 'a' in bytes\r\nconsole.log(u.members[0].type.name); // \"vec2\", the type of 'a'\r\nconsole.log(u.members[0].type.format.name); // \"f32\", the format of the vec2.\r\n\r\nconsole.log(u.members[4].name); // \"e\"\r\nconsole.log(u.members[4].offset); // 48, the offset of 'e' in the buffer\r\nconsole.log(u.members[4].size); // 32, the size of 'e' in the buffer\r\n```\r\n","readmeFilename":"README.md"}