{"_id":"@accelint/smeegl","_rev":"12-a1cf3f7d74c7f1184d906de94827b92b","name":"@accelint/smeegl","dist-tags":{"latest":"0.3.5"},"versions":{"0.1.0":{"name":"@accelint/smeegl","version":"0.1.0","author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","_id":"@accelint/smeegl@0.1.0","maintainers":[{"name":"ray.knight-hypergiant","email":"ray.knight@hypergiant.com"},{"name":"hg-devsecops","email":"hg-devsecops@hypergiant.com"},{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},{"name":"bryan_hg","email":"bryan.kizer@hypergiant.com"}],"homepage":"https://github.com/gohypergiant/standard-toolkit#readme","bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"bin":{"smeegl":"dist/main.js"},"dist":{"shasum":"3c0d32172f69f32acc796a83eb591c5eefbcca79","tarball":"https://registry.npmjs.org/@accelint/smeegl/-/smeegl-0.1.0.tgz","fileCount":45,"integrity":"sha512-vntAdpJtQm9sIQDt0sb69V9eLtdt5jwJCJji0ZN4llTw95T2aCh2oIjXyITx1ZHpKbPxeFUM/J8vfiCcTMBHVA==","signatures":[{"sig":"MEUCIQD1vln4nq7HUsGC3EXaCmEcHLqYsXQj3BIhAcKW97APpAIgLn5GNcX8vtgQraAIJmW070gHCHbm9/FR4le//8SLUpU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102417},"type":"module","_from":"file:accelint-smeegl-0.1.0.tgz","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/lib.d.ts","default":"./dist/lib.js"},"default":"./dist/lib.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"pnpm biome lint","test":"pnpm vitest --dir=src","build":"pnpm tsc"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/e93ff2125511d54e8550abe7b9916922/accelint-smeegl-0.1.0.tgz","_integrity":"sha512-vntAdpJtQm9sIQDt0sb69V9eLtdt5jwJCJji0ZN4llTw95T2aCh2oIjXyITx1ZHpKbPxeFUM/J8vfiCcTMBHVA==","repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"_npmVersion":"10.9.2","description":"A small, `spreet` based spritesheet/texture package for use with Deck.gl.","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"ora":"8.2.0","ansis":"4.0.0","globby":"14.1.0","inquirer":"12.6.1","commander":"14.0.0","true-myth":"9.0.1","typescript":"5.6.3","esbuild-plugin-file-path-extensions":"2.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.3.0","vitest":"2.1.3","@types/node":"^20.17.48","@accelint/vitest-config":"0.1.3","@accelint/typescript-config":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/smeegl_0.1.0_1749054566545_0.005420260574629632","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@accelint/smeegl","version":"0.3.0","author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","_id":"@accelint/smeegl@0.3.0","maintainers":[{"name":"ray.knight-hypergiant","email":"ray.knight@hypergiant.com"},{"name":"hg-devsecops","email":"hg-devsecops@hypergiant.com"},{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},{"name":"bryan_hg","email":"bryan.kizer@hypergiant.com"}],"homepage":"https://github.com/gohypergiant/standard-toolkit#readme","bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"bin":{"smeegl":"dist/main.js"},"dist":{"shasum":"16b3a66834d69128d299eb76ef214c314dacaaf7","tarball":"https://registry.npmjs.org/@accelint/smeegl/-/smeegl-0.3.0.tgz","fileCount":95,"integrity":"sha512-aHWV7EUzH787Zsj9j3PuhFGJYGgI6P0hxkvCkVn7pd3tcA6VizsJJnQ+XP+GNWw3VxS1cYMdrgOPbM1S7HWVmQ==","signatures":[{"sig":"MEUCIQDl4GjtVV8vSJYAgj+bwukmRnzYUuLdj7lE/ldzCExY0gIgX8aGEN59gz01jGnh9uSVGhLO+vxLave+ekemFaFMvk0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192790},"type":"module","_from":"file:accelint-smeegl-0.3.0.tgz","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/lib.d.ts","default":"./dist/lib.js"},"default":"./dist/lib.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"pnpm biome lint","test":"pnpm vitest --dir=test","build":"pnpm tsc && pnpm license && pnpm format","format":"pnpm biome format . --write","license":"pnpm zx ../../scripts/license.mjs","postinstall":"pnpm run build"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/8dcb9ac4ddc414c7b07b8f1b663ab17c/accelint-smeegl-0.3.0.tgz","_integrity":"sha512-aHWV7EUzH787Zsj9j3PuhFGJYGgI6P0hxkvCkVn7pd3tcA6VizsJJnQ+XP+GNWw3VxS1cYMdrgOPbM1S7HWVmQ==","repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"_npmVersion":"10.9.3","description":"A small, `spreet` based spritesheet/texture package for use with Deck.gl.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ora":"8.2.0","ansis":"4.0.0","globby":"14.1.0","lodash":"^4.17.21","inquirer":"12.6.1","commander":"14.0.0","true-myth":"9.0.1","typescript":"^5.8.3","crc32-universal":"^1.0.1","esbuild-plugin-file-path-extensions":"2.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.3.0","vitest":"2.1.3","@types/node":"^20.17.48","@types/lodash":"4.17.20","@accelint/vitest-config":"0.1.3","@accelint/typescript-config":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/smeegl_0.3.0_1756837359878_0.48562657046651325","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@accelint/smeegl","version":"0.3.1","author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","_id":"@accelint/smeegl@0.3.1","maintainers":[{"name":"ray.knight-hypergiant","email":"ray.knight@hypergiant.com"},{"name":"hg-devsecops","email":"hg-devsecops@hypergiant.com"},{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},{"name":"bryan_hg","email":"bryan.kizer@hypergiant.com"}],"homepage":"https://github.com/gohypergiant/standard-toolkit#readme","bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"bin":{"smeegl":"dist/main.js"},"dist":{"shasum":"3395ab1196226b0eca7919503a55373b608899cb","tarball":"https://registry.npmjs.org/@accelint/smeegl/-/smeegl-0.3.1.tgz","fileCount":95,"integrity":"sha512-0VBo2oXaYXllT85Q5/4Jc90e9H4sBxv3v06UUf4gvhklNnaEYlJPEUsxjkjWpIiMnUmx9LTtRj7bxYSuGM4Lnw==","signatures":[{"sig":"MEUCIBapRFdli4sVWDXP4mO2gKKldeFqscZ1HCIFXAAK3v+VAiEAyAQyOQzCzksavcdTC9R5YnTgq5K7cauZ+lEU7qIlu88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193624},"type":"module","_from":"file:accelint-smeegl-0.3.1.tgz","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/lib.d.ts","default":"./dist/lib.js"},"default":"./dist/lib.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"pnpm biome lint","test":"pnpm vitest --dir=test","build":"pnpm tsc && pnpm license && pnpm format","format":"pnpm biome format . --write","license":"pnpm zx ../../scripts/license.mjs","postinstall":"pnpm run build"},"_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/734412daa9d8689503d1f516c11c82ee/accelint-smeegl-0.3.1.tgz","_integrity":"sha512-0VBo2oXaYXllT85Q5/4Jc90e9H4sBxv3v06UUf4gvhklNnaEYlJPEUsxjkjWpIiMnUmx9LTtRj7bxYSuGM4Lnw==","repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"_npmVersion":"10.9.3","description":"A small, `spreet` based spritesheet/texture package for use with Deck.gl.","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"ora":"8.2.0","ansis":"4.0.0","globby":"14.1.0","lodash":"^4.17.21","inquirer":"12.6.1","commander":"14.0.0","true-myth":"9.0.1","typescript":"^5.8.3","crc32-universal":"^1.0.1","esbuild-plugin-file-path-extensions":"2.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.0","vitest":"2.1.3","@types/node":"^20.17.48","@types/lodash":"4.17.20","@accelint/vitest-config":"0.1.3","@accelint/typescript-config":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/smeegl_0.3.1_1757960062189_0.144728458010964","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@accelint/smeegl","version":"0.3.2","keywords":["dev-tk","tooling"],"author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","_id":"@accelint/smeegl@0.3.2","maintainers":[{"name":"ray.knight-hypergiant","email":"ray.knight@hypergiant.com"},{"name":"hg-devsecops","email":"hg-devsecops@hypergiant.com"},{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},{"name":"bryan_hg","email":"bryan.kizer@hypergiant.com"},{"name":"isaac.kehle-hypergiant","email":"isaac.kehle@hypergiant.com"}],"homepage":"https://github.com/gohypergiant/standard-toolkit#readme","bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"bin":{"smeegl":"dist/main.js"},"dist":{"shasum":"584b31806b77001776fcea58984ed5ca61515c2e","tarball":"https://registry.npmjs.org/@accelint/smeegl/-/smeegl-0.3.2.tgz","fileCount":59,"integrity":"sha512-/wxNSxN/MxkN5FxW8zzZrfr9vJVs7I6cqIjAVpJEu7kmOvkHXBzPhY9M3aXugHGvtpdtoLKYbAbjGzrcgOhviA==","signatures":[{"sig":"MEYCIQCknwjFsF4vP1ecEDcvstZ7v4JAN4SdplcJC41uNx++pwIhAK2R//7SoEeVX/sRhX2xTbtzYnBszWWD4DovEB36iwsj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93683},"type":"module","_from":"file:accelint-smeegl-0.3.2.tgz","owner":"default/pathfinder","title":"Smeegl","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/lib.d.ts","default":"./dist/lib.js"},"default":"./dist/lib.js"}},"private":false,"scripts":{"lint":"pnpm biome lint","test":"pnpm vitest --dir=test","build":"pnpm tsc && pnpm license && pnpm format","format":"pnpm biome format . --write","license":"pnpm zx ../../scripts/license.mjs","postinstall":"pnpm run build","constellation-tracker":"constellation-tracker"},"subPath":"tooling/smeegl","_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/662485da5ea560f367660bb3b54d2152/accelint-smeegl-0.3.2.tgz","_integrity":"sha512-/wxNSxN/MxkN5FxW8zzZrfr9vJVs7I6cqIjAVpJEu7kmOvkHXBzPhY9M3aXugHGvtpdtoLKYbAbjGzrcgOhviA==","repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"_npmVersion":"10.9.3","description":"A small, spreet-based spritesheet/texture package for use with Deck.gl.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"ora":"8.2.0","ansis":"4.0.0","globby":"14.1.0","lodash":"^4.17.21","inquirer":"12.6.1","commander":"14.0.0","true-myth":"9.0.1","typescript":"^5.8.3","crc32-universal":"^1.0.1","esbuild-plugin-file-path-extensions":"2.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.0","vitest":"2.1.3","@types/node":"^20.17.48","@types/lodash":"4.17.20","@accelint/vitest-config":"0.1.4","@accelint/typescript-config":"0.1.3","@accelint/constellation-tracker":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/smeegl_0.3.2_1760140542451_0.16291340110972663","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@accelint/smeegl","version":"0.3.3","keywords":["dev-tk","tooling"],"author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","_id":"@accelint/smeegl@0.3.3","maintainers":[{"name":"ray.knight-hypergiant","email":"ray.knight@hypergiant.com"},{"name":"hg-devsecops","email":"hg-devsecops@hypergiant.com"},{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},{"name":"bryan_hg","email":"bryan.kizer@hypergiant.com"},{"name":"isaac.kehle-hypergiant","email":"isaac.kehle@hypergiant.com"}],"homepage":"https://github.com/gohypergiant/standard-toolkit#readme","bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"bin":{"smeegl":"dist/main.js"},"dist":{"shasum":"9201b909862d896f1ed4ddefdbd11838a36122f7","tarball":"https://registry.npmjs.org/@accelint/smeegl/-/smeegl-0.3.3.tgz","fileCount":59,"integrity":"sha512-IqmkBXOIfv4WgrnInLKXvSJPwFUMf/lrORRR7szKiHnWtutOYy5WHNxQa78usjkX/88njYHVZowEiLu8dB5TAw==","signatures":[{"sig":"MEUCIHIC1Vbkmuc28N5XORrBHrMUqQRoEHArkKCFsukq5DKbAiEAsqofUobcA+xR7BTFnsd8te6FvJIUtDV7aZHDIsbXkkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94006},"type":"module","_from":"file:accelint-smeegl-0.3.3.tgz","owner":"default/pathfinder","title":"Smeegl","$schema":"https://json.schemastore.org/package","exports":{".":{"import":{"types":"./dist/lib.d.ts","default":"./dist/lib.js"},"default":"./dist/lib.js"}},"private":false,"scripts":{"lint":"pnpm biome lint","test":"pnpm vitest --dir=test","build":"pnpm tsc && pnpm license && pnpm format","format":"pnpm biome format . --write","license":"pnpm zx ../../scripts/license.mjs","postinstall":"pnpm run build","constellation-tracker":"constellation-tracker"},"subPath":"tooling/smeegl","_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/232b05d173e6948a86e7c0673bfccbe7/accelint-smeegl-0.3.3.tgz","_integrity":"sha512-IqmkBXOIfv4WgrnInLKXvSJPwFUMf/lrORRR7szKiHnWtutOYy5WHNxQa78usjkX/88njYHVZowEiLu8dB5TAw==","repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"_npmVersion":"10.9.3","description":"A small, spreet-based spritesheet/texture package for use with Deck.gl.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"ora":"^8.2.0","ansis":"^4.0.0","globby":"^14.1.0","lodash":"^4.17.21","inquirer":"^12.6.1","commander":"^14.0.0","true-myth":"^9.0.1","typescript":"5.8.3","crc32-universal":"^1.0.1","esbuild-plugin-file-path-extensions":"^2.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.5.0","vitest":"^2.1.9","@types/node":"^24.9.0","@types/lodash":"^4.17.20","@accelint/vitest-config":"0.1.5","@accelint/typescript-config":"0.1.4","@accelint/constellation-tracker":"1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/smeegl_0.3.3_1761862914626_0.6519992061062214","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@accelint/smeegl","version":"0.3.4","keywords":["dev-tk","tooling"],"author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","_id":"@accelint/smeegl@0.3.4","maintainers":[{"name":"ray.knight-hypergiant","email":"ray.knight@hypergiant.com"},{"name":"hg-devsecops","email":"hg-devsecops@hypergiant.com"},{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},{"name":"bryan_hg","email":"bryan.kizer@hypergiant.com"},{"name":"isaac.kehle-hypergiant","email":"isaac.kehle@hypergiant.com"}],"homepage":"https://github.com/gohypergiant/standard-toolkit#readme","bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"bin":{"smeegl":"dist/main.mjs"},"dist":{"shasum":"913740df8061467693753e56a90e003519519bf0","tarball":"https://registry.npmjs.org/@accelint/smeegl/-/smeegl-0.3.4.tgz","fileCount":58,"integrity":"sha512-N8apdl1SoX8khPPUMeJWxMXInoux160X1ZL4I11z2YR8nHTk7xZleTYDeCo2kPdjAweGZIm8fE3QdjHDuwHphQ==","signatures":[{"sig":"MEUCIQCgsJzqr8Mt6VlhyGdgxrftugiTqIBptauPdfmzyO+36AIgAqPVG6L1lVdVjjUD9+xmXSYMuIceMaS5EA9crSYnL5U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127791},"type":"module","_from":"file:accelint-smeegl-0.3.4.tgz","owner":"default/pathfinder","title":"Smeegl","$schema":"https://json.schemastore.org/package","exports":{"./lib":"./dist/lib.mjs","./main":"./dist/main.mjs","./utils/types":"./dist/utils/types.mjs","./log-messages":"./dist/log-messages.mjs","./package.json":"./package.json","./validate-input":"./dist/validate-input.mjs","./build-react-files":"./dist/build-react-files.mjs","./build-spritesheet":"./dist/build-spritesheet.mjs","./utils/pascal-case":"./dist/utils/pascal-case.mjs","./utils/find-sprites":"./dist/utils/find-sprites.mjs","./utils/duplicate-file":"./dist/utils/duplicate-file.mjs","./utils/generate-sprites":"./dist/utils/generate-sprites.mjs","./utils/make-temp-directory":"./dist/utils/make-temp-directory.mjs","./utils/find-common-base-path":"./dist/utils/find-common-base-path.mjs","./utils/clean-up-temp-directory":"./dist/utils/clean-up-temp-directory.mjs","./utils/generate-constants-file":"./dist/utils/generate-constants-file.mjs","./utils/merge-svg-into-react-template":"./dist/utils/merge-svg-into-react-template.mjs","./utils/copy-sprites-to-temp-directory":"./dist/utils/copy-sprites-to-temp-directory.mjs","./utils/read-svg-files-from-input-directory":"./dist/utils/read-svg-files-from-input-directory.mjs"},"private":false,"scripts":{"lint":"pnpm biome lint . --verbose","test":"pnpm vitest --dir=test","format":"pnpm biome format . --write --verbose","license":"pnpm zx ../../scripts/license.mjs","pre-build":"pnpm tsdown","format:check":"pnpm biome format . --verbose","constellation-tracker":"pnpm exec constellation-tracker"},"subPath":"tooling/smeegl","_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/7f598714a09be67002af7825610bba6a/accelint-smeegl-0.3.4.tgz","_integrity":"sha512-N8apdl1SoX8khPPUMeJWxMXInoux160X1ZL4I11z2YR8nHTk7xZleTYDeCo2kPdjAweGZIm8fE3QdjHDuwHphQ==","repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"_npmVersion":"11.6.2","description":"A small, spreet-based spritesheet/texture package for use with Deck.gl.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"ora":"^8.2.0","ansis":"^4.0.0","globby":"^14.1.0","lodash":"^4.17.21","inquirer":"^12.6.1","commander":"^14.0.0","true-myth":"^9.0.1","typescript":"^5.9.3","crc32-universal":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.18.0","vitest":"^4.0.15","@types/node":"^22","@types/lodash":"^4.17.20","@accelint/vitest-config":"0.1.6","@accelint/typescript-config":"0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/smeegl_0.3.4_1766092887561_0.6236319566169377","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@accelint/smeegl","version":"0.3.5","keywords":["dev-tk","tooling"],"author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","_id":"@accelint/smeegl@0.3.5","maintainers":[{"name":"ray.knight-hypergiant","email":"ray.knight@hypergiant.com"},{"name":"hg-devsecops","email":"hg-devsecops@hypergiant.com"},{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},{"name":"bryan_hg","email":"bryan.kizer@hypergiant.com"},{"name":"jacob.foster.hg","email":"jacob.foster@hypergiant.com"},{"name":"isaac.kehle-hypergiant","email":"isaac.kehle@hypergiant.com"}],"homepage":"https://github.com/gohypergiant/standard-toolkit#readme","bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"bin":{"smeegl":"dist/main.mjs"},"dist":{"shasum":"79e00d9ce392195a48569db6dc4a10422140dacc","tarball":"https://registry.npmjs.org/@accelint/smeegl/-/smeegl-0.3.5.tgz","fileCount":58,"integrity":"sha512-YPWI17LICLq8bW5Xt3gAyQ3rk2bPq1eK4Q6tOBu+Ps5Y+uUftfjy4KMGSAFHcCtl4gESbkAIwd4zknnb0A8Txg==","signatures":[{"sig":"MEYCIQDjiye6facOS9LAbgM7/mCAsX1BsUMR19PtRyl5rwSqOQIhALRjikjp7g+OSLsyFc0hhl8JPuG5IkD+JWDQRN/KUE31","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128014},"type":"module","_from":"file:accelint-smeegl-0.3.5.tgz","owner":"default/pathfinder","title":"Smeegl","$schema":"https://json.schemastore.org/package","exports":{"./lib":"./dist/lib.mjs","./main":"./dist/main.mjs","./utils/types":"./dist/utils/types.mjs","./log-messages":"./dist/log-messages.mjs","./package.json":"./package.json","./validate-input":"./dist/validate-input.mjs","./build-react-files":"./dist/build-react-files.mjs","./build-spritesheet":"./dist/build-spritesheet.mjs","./utils/pascal-case":"./dist/utils/pascal-case.mjs","./utils/find-sprites":"./dist/utils/find-sprites.mjs","./utils/duplicate-file":"./dist/utils/duplicate-file.mjs","./utils/generate-sprites":"./dist/utils/generate-sprites.mjs","./utils/make-temp-directory":"./dist/utils/make-temp-directory.mjs","./utils/find-common-base-path":"./dist/utils/find-common-base-path.mjs","./utils/clean-up-temp-directory":"./dist/utils/clean-up-temp-directory.mjs","./utils/generate-constants-file":"./dist/utils/generate-constants-file.mjs","./utils/merge-svg-into-react-template":"./dist/utils/merge-svg-into-react-template.mjs","./utils/copy-sprites-to-temp-directory":"./dist/utils/copy-sprites-to-temp-directory.mjs","./utils/read-svg-files-from-input-directory":"./dist/utils/read-svg-files-from-input-directory.mjs"},"private":false,"scripts":{"lint":"pnpm biome lint . --verbose","test":"pnpm vitest --dir=test","format":"pnpm biome format . --write --verbose","license":"pnpm zx ../../scripts/license.mjs","pre-build":"pnpm tsdown","format:check":"pnpm biome format . --verbose","lint:package":"pnpm publint","constellation-tracker":"pnpm exec constellation-tracker"},"subPath":"tooling/smeegl","_npmUser":{"name":"brandonjpierce","email":"brandonpierce91@gmail.com"},"_resolved":"/tmp/3e7fdd277fbbb1583764e572df9a8950/accelint-smeegl-0.3.5.tgz","_integrity":"sha512-YPWI17LICLq8bW5Xt3gAyQ3rk2bPq1eK4Q6tOBu+Ps5Y+uUftfjy4KMGSAFHcCtl4gESbkAIwd4zknnb0A8Txg==","repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"_npmVersion":"11.6.2","description":"A small, spreet-based spritesheet/texture package for use with Deck.gl.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"ora":"^8.2.0","ansis":"^4.0.0","globby":"^14.1.0","radashi":"^12.6.2","inquirer":"^12.6.1","commander":"^14.0.0","true-myth":"^9.0.1","typescript":"^5.9.3","crc32-universal":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.18.0","vitest":"^4.0.15","@types/node":"^22","@accelint/vitest-config":"0.1.6","@accelint/typescript-config":"0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/smeegl_0.3.5_1769476316568_0.5869375307449607","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-06-04T16:29:26.478Z","modified":"2026-04-02T19:30:56.129Z","0.1.0":"2025-06-04T16:29:26.728Z","0.3.0":"2025-09-02T18:22:40.068Z","0.3.1":"2025-09-15T18:14:22.391Z","0.3.2":"2025-10-10T23:55:42.625Z","0.3.3":"2025-10-30T22:21:54.855Z","0.3.4":"2025-12-18T21:21:27.719Z","0.3.5":"2026-01-27T01:11:56.705Z"},"bugs":{"url":"https://github.com/gohypergiant/standard-toolkit/issues"},"author":{"name":"https://hypergiant.com"},"license":"Apache-2.0","homepage":"https://github.com/gohypergiant/standard-toolkit#readme","keywords":["dev-tk","tooling"],"repository":{"url":"git+https://github.com/gohypergiant/standard-toolkit.git","type":"git"},"description":"A small, spreet-based spritesheet/texture package for use with Deck.gl.","maintainers":[{"email":"hg-devsecops@hypergiant.com","name":"hg-devsecops"},{"email":"brandonpierce91@gmail.com","name":"brandonjpierce"},{"email":"bryan.kizer@hypergiant.com","name":"bryan_hg"},{"email":"colin.leahy@hypergiant.com","name":"colin.leahy"},{"email":"jacob.foster@hypergiant.com","name":"jacob.foster.hg"}],"readme":"# @accelint/smeegl\n\nA small, `spreet` based spritesheet/texture package for use with Deck.gl.\n\n## Prerequisites\n\nThe [spreet](https://github.com/flother/spreet?tab=readme-ov-file#installation) utility is required for this tool.\n\nA few options for install include:\n\n### Homebrew\n\n```shell\nbrew install flother/taps/spreet\n```\n\n### crates.io\n\n```shell\ncargo install spreet\n```\n\n### Other methods\n\nIf those two methods aren't available, check the [official instructions](https://github.com/flother/spreet?tab=readme-ov-file#installation) for more help.\n\n### Standalone binary\n\nUse the `--spreet` flag to point to a stand-alone binary.\n\n## Installation\n\nHere are a few options:\n\n- For global installation: `npm install -g @accelint/smeegl`\n- For local installation using npm: `npm install @accelint/smeegl`\n- For local installation using pnpm: `pnpm install @accelint/smeegl`\n\n## Usage\n\n```shell\nsmeegl --help\n\nUsage: smeegl\n\n  Example 1: Using a base folder. Note, the '~/' is a valid input.\n\n    > smeegl --in ~/exported_icon_set_1 --out ~/react_svg_set_1 --target REACT\n    > smeegl --in ~/exported_icon_set_2 --out ~/react_svg_set_2 --target SPRITESHEET\n\n  Example 2: Using a glob pattern. Note, the '~/' is not a valid input for a glob pattern.\n\n    > smeegl --glob \"/Users/me/exported_icon_set_3/**/*.svg\" --out ~/react_svg_set_3 --target REACT\n    > smeegl --glob \"/Users/me/exported_icon_set_4/**/*.svg\" --out ~/react_svg_set_4 --target SPRITESHEET\n\n\nCLI tool to create spritesheets and React Components from an SVG glob pattern or base folder of SVG files\n\nArguments:\n  GLOB             [DEPRECATED] SVG glob pattern\n  OUTPUT           [DEPRECATED] The atlas output path, CWD if none given\n\nOptions:\n  --spreet <path>  Path to pre-built spreet binary, unneeded if installed (default: \"spreet\")\n  --crc <MODE>     Sprite names will be converted to crc32, either DEC or HEX (choices: \"DEC\", \"HEX\")\n  --glob <glob>    SVG glob pattern\n  --in <path>      The input path to scan for svg files\n  --out <path>     The output path, CWD if none given\n  --target <TYPE>  Spritesheet or React files (choices: \"SPRITESHEET\", \"REACT\", default: \"SPRITESHEET\")\n  -h, --help       display help for command\n```\n\n## Script Output\n\nThere are two options for output: a spritesheet and supporting files, and a folder of React SVG Component files.\n\nThe sample icons use for these examples are a set of arrows:\n\n```shell\n❯ tree ./assets\n./assets\n├── arrow-down.svg\n├── arrow-keys.svg\n├── arrow-left.svg\n├── arrow-northeast.svg\n├── arrow-northwest.svg\n├── arrow-right.svg\n├── arrow-southeast.svg\n├── arrow-southwest.svg\n├── arrow-up.svg\n└── arrow.svg\n```\n\n<p align=\"center\" width=\"100%\">\n    <img src=\"./assets/arrow.svg\" >\n    <img src=\"./assets/arrow-down.svg\" >\n    <img src=\"./assets/arrow-keys.svg\" >\n    <img src=\"./assets/arrow-left.svg\" >\n    <img src=\"./assets/arrow-northeast.svg\" >\n    <img src=\"./assets/arrow-northwest.svg\" >\n    <img src=\"./assets/arrow-right.svg\" >\n    <img src=\"./assets/arrow-southeast.svg\" >\n    <img src=\"./assets/arrow-southwest.svg\" >\n    <img src=\"./assets/arrow-up.svg\" >\n\n</p>\n\n### Spritesheet Output\n\nOn successful completion, three files will be generated (assume the default name `atlas` is used):\n\n- `atlas.json` - The sprite's index file\n- `atlas.png` - The sprite's image file\n- `atlas.ts` - A file of exported constants that are available for the application\n\nFor this example:\n\n```shell\n❯ tree ./assets\n~/assets\n├── samples.json\n├── samples.png\n└── samples.ts\n```\n\n- `samples.png` - Spritefile\n\n<p align=\"center\" width=\"100%\">\n    <img width=\"33%\" src=\"./assets/samples.png\" alt=\"samples\">\n</p>\n\n- `samples.json` - Index file\n\n```json\n{\"arrow\":           {\"height\":48, \"pixelRatio\":2, \"width\":48, \"x\":0, \"y\":0},\n \"arrow-down\":      {\"height\":48, \"pixelRatio\":2, \"width\":48, \"x\":0, \"y\":48},\n \"arrow-keys\":      {\"height\":48, \"pixelRatio\":2, \"width\":48, \"x\":48, \"y\":0},\n \"arrow-left\":      {\"height\":48, \"pixelRatio\":2, \"width\":48, \"x\":48, \"y\":48},\n \"arrow-northeast\": {\"height\":48, \"pixelRatio\":2, \"width\":48, \"x\":96, \"y\":0},\n \"arrow-northwest\": {\"height\":48, \"pixelRatio\":2, \"width\":48, \"x\":96, \"y\":48},\n \"arrow-right\":     {\"height\":48, \"pixelRatio\":2, \"width\":48, \"x\":144, \"y\":0},\n \"arrow-southeast\": {\"height\":48, \"pixelRatio\":2, \"width\":48, \"x\":192, \"y\":0},\n \"arrow-southwest\": {\"height\":48, \"pixelRatio\":2, \"width\":48, \"x\":144, \"y\":48},\n \"arrow-up\":        {\"height\":48, \"pixelRatio\":2, \"width\":48, \"x\":192, \"y\":48}\n}\n```\n\n- `samples.ts` - Constants file\n\n```ts\n/**\n * THIS IS A GENERATED FILE. DO NOT ALTER DIRECTLY.\n * Generated by smeegl.\n */\n\nexport const ARROW = 'arrow'\nexport const ARROW_DOWN = 'arrow-down'\nexport const ARROW_KEYS = 'arrow-keys'\nexport const ARROW_LEFT = 'arrow-left'\nexport const ARROW_NORTHEAST = 'arrow-northeast'\nexport const ARROW_NORTHWEST = 'arrow-northwest'\nexport const ARROW_RIGHT = 'arrow-right'\nexport const ARROW_SOUTHEAST = 'arrow-southeast'\nexport const ARROW_SOUTHWEST = 'arrow-southwest'\nexport const ARROW_UP = 'arrow-up'\n```\n\n### React SVG Component Files\n\nThe `out` parameter is used as a base folder name for a set of SVG files that are [built off of a template](./src/utils/merge-svg-into-react-template.ts). The algorithm will merge a working SVG file into the template for the React SVG component, massage the attributes from `kebab-case` to `camelCase` as appropriate, and add a section for `<title>...</title>`.  Also, the assumption is the icon will have a single `fill` color. The fill color embedded in the raw SVG file is assumed to be '#FF69B4', though any fill value that is not `none` will be replaced with the input parameter of the React component.\n\n- Output folder:\n\n```shell\n❯ tree ~/Downloads/react/samples\n~/Downloads/react/samples\n├── arrow-down.tsx\n├── arrow-keys.tsx\n├── arrow-left.tsx\n├── arrow-northeast.tsx\n├── arrow-northwest.tsx\n├── arrow-right.tsx\n├── arrow-southeast.tsx\n├── arrow-southwest.tsx\n├── arrow-up.tsx\n├── arrow.tsx\n└── index.ts\n```\n\nFor a generic example of a built component:\n\n```tsx\n\n/**\n * THIS IS A GENERATED FILE. DO NOT ALTER DIRECTLY.\n */\n\nimport type { SVGProps } from 'react';\ninterface Props {\n  title?: string;\n  titleId?: string;\n}\nexport const SvgArrow = ({\n  title,\n  titleId,\n  ...props\n}: SVGProps<SVGSVGElement> & Props) => {\n  const { fill } = props;\n  const fillColor = fill ?? '#FF69B4'\n  const hasTitle = typeof title === 'string' && Boolean(title.trim());\n\n  return (\n\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n      <path d=\"M19.9997 4L18.5053 4.68873L5.46423 10.6149L4.00024 11.2722L5.36522 11.8256L10.2042 13.7955L12.1736 18.635L12.727 20L13.3844 18.536L19.3105 5.49499L19.9997 4Z\" fill={fillColor} />\n    </svg>\n  )\n};\n\n```\n\n... and the corresponding `index.ts` file:\n\n```ts\nexport { SvgArrowDown } from './arrow-down';\nexport { SvgArrowKeys } from './arrow-keys';\nexport { SvgArrowLeft } from './arrow-left';\nexport { SvgArrowNortheast } from './arrow-northeast';\nexport { SvgArrowNorthwest } from './arrow-northwest';\nexport { SvgArrowRight } from './arrow-right';\nexport { SvgArrowSoutheast } from './arrow-southeast';\nexport { SvgArrowSouthwest } from './arrow-southwest';\nexport { SvgArrowUp } from './arrow-up';\nexport { SvgArrow } from './arrow';\n```\n\n## Source SVG Directory structure\n\nThe GLOB root path will be used as a base point for prefix information for the exported constant definitions. If there are no folders inside the GLOB path, then the names will be simply the names of the file. Otherwise, a common path will be determined, and the prefix will be prepended in order to guarantee uniqueness in the file.  \n\n### Character replacements and name normalization\n\n- The generated sprite's definition file should export all of the constants using [CONSTANT_CASE](https://stringcase.org/cases/constant/).\n- The generated sprite's index file should use [SNAKE_CASE](https://stringcase.org/cases/snake/) for each of the JSON properties.\n- The following rules are applied to the directory and file names in order to achieve the desired casing:\n  - The directory separator and any spaces in the folder names will be replaced with a single underscore `_`.\n  - Parentheses are removed.\n\nFor example:\n\n```shell\n> tree ./icons\n\nicons\n├── group1\n│   ├── a.svg\n│   ├── b.svg\n│   ├── c.svg\n│   ├── d.svg\n│   └── e.svg\n└── group2\n    ├── x\n    │   ├── a2_2112.svg\n    │   ├── b2_2112.svg\n    │   └── c2_2112.svg\n    └── y\n        ├── b2_2112.svg\n        ├── c2_2112.svg\n        ├── d2_2112.svg\n        └── e2_2112.svg\n\n# Build the two sets of sprite files\n> smeegl \"./tree/group1/**/*.svg\" \"group1\"\n> smeegl \"./tree/group2/**/*.svg\" \"group2\"\n```\n\nThis will generate the two sprite constants files.  Obviously, the svg names should be something more substantial.\n\n```ts\n/*\n  group1.ts\n\n  The most common folder is `icons/group1`.\n  Since group1 has no sub-folders. the exported constants are simply the filename roots.\n  \n*/\nexport const A = 'a';\nexport const B = 'b';\nexport const C = 'c';\nexport const D = 'd';\nexport const E = 'e';\n```\n\n```ts\n/*\n  group2.ts\n\n  The most common folder is `icons/group2`.\n  Since group2 does have sub-folders, the sub-folders will be used as part of the file prefix. \n*/\n\nexport const X_A2_2112 = 'x_a2_2112';\nexport const X_B2_2112 = 'x_b2_2112';\nexport const X_C2_2112 = 'x_c2_2112';\nexport const Y_B2_2112 = 'y_b2_2112';\nexport const Y_C2_2112 = 'y_c2_2112';\nexport const Y_D2_2112 = 'y_d2_2112';\nexport const Y_E2_2112 = 'y_e2_2112';\n```\n\n### TODO\n\n- [ ] Allow using a config file\n- [ ] Allow multiple svg globs\n- [ ] Allow searching in npm packages for svg's\n","readmeFilename":"README.md"}