{"_id":"@cancentus/smiles-drawer","_rev":"13-37f49493ec5dfcc94b090ae9433f9e3f","name":"@cancentus/smiles-drawer","dist-tags":{"latest":"3.3.2"},"versions":{"2.5.0":{"name":"@cancentus/smiles-drawer","version":"2.5.0","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@2.5.0","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"5ac3a0fc289a8f1a182c8f3b5a8ad5dfac53fc20","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-2.5.0.tgz","fileCount":44,"integrity":"sha512-LtV7OxgE6ryWN9+RCZCxYKVnH3cIwZkU+n7zMXSMLwWubze0P6sGhTGtVPu1mbPYS4YMOjLOJ+gNcleSxq2lJA==","signatures":[{"sig":"MEYCIQCNJwzpU+aYRpDION1mwSalXITUKmh5jlsmFDy3jKE1DwIhANzIPAVF0ocvD54+JZdvw8oxwG3KKMhOjElFzltxSiN4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5523067},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"b098af3e4000c495f254a61c32c2fd8b61e081ec","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"chroma-js":"^2.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","eslint":"^10.7.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.7.0","playwright":"^1.62.1","typescript":"^5.8.2","typescript-eslint":"^8.61.1","@stylistic/eslint-plugin":"^5.6.1"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_2.5.0_1786125783328_0.4897903592925996","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@cancentus/smiles-drawer","version":"2.5.1","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@2.5.1","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"3e7fb2f9f342f44cb5c73f2eacd25c01704ce447","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-2.5.1.tgz","fileCount":42,"integrity":"sha512-zveL38U0ujQmE/FOqI//w7o20zk0Er8ivR0CZuCGH2RRnNNmQkL319oMr+KtqO6b4OzayNcpa1TlOmwK+dzf7g==","signatures":[{"sig":"MEYCIQCQJsBts0jxn/mBHxwGgD1luUUNDnbdWOeLILFKvKxiggIhAJJKEx/IShC9Dlkld4iwng/PRAtsEosjWmkAHqfAMU3O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@2.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3839307},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"ee31778face909531e8a136ed42a34ad77f74aea","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_2.5.1_1786127448772_0.2009983069964767","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@cancentus/smiles-drawer","version":"3.0.0","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@3.0.0","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"3fe4d1dc6a9898d97af9faa777fbd93705047d54","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.0.0.tgz","fileCount":43,"integrity":"sha512-ewIxK44na6iYHfVU5e/PNifmz02uLUxLfNvhUOhekQwLtUVHdidAbxrgiA+MzEzzQmjwgbMIYYq6/DPIRgC6Xg==","signatures":[{"sig":"MEUCIGnNWhzNQG6QqYRAYWL48EbNK/naubzpK+qhUKECdMF2AiEA1nj4elHpgRCW80IlSqIkKPa2bf3hapsZK5ymqAl5XwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3867049},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"7002f2d85d060d5b28faa92afdf0c7d9226ede62","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","@rdkit/rdkit":"^2025.3.4-1.0.0","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_3.0.0_1786172850326_0.9238447398226548","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@cancentus/smiles-drawer","version":"3.1.0","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@3.1.0","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"e56fa52459fcbd58746fd53313ba9f6663f74bc6","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.1.0.tgz","fileCount":44,"integrity":"sha512-qC5rlMNPFDk3jJIA6+2IkMgjSXOkRWQKEQmfGt8r0aJLbkD0c4Jag7iLK3418H0Sc+nlLZzeEjYnVEihfErHwg==","signatures":[{"sig":"MEYCIQC7fpT7IU0V7p4IyK+4sK5sh8Y2N9D0REKiEj7FGl6DGQIhALKIRKzh08v4PhfpFtxrxo9kuDyODGzQVos2MWeXq9Pi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3959748},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"634e7b942170dc04efd48cf8b29d88f28f3f7444","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","@rdkit/rdkit":"^2025.3.4-1.0.0","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_3.1.0_1786205288572_0.1574222944579502","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@cancentus/smiles-drawer","version":"3.2.0","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@3.2.0","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"b1bc1977d8839edaf0e65985da2b4d62090f77fe","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.2.0.tgz","fileCount":44,"integrity":"sha512-fukk7rTVp54dLCmryj49Iz07VaWX4H1rsSgclw7+GAqKEd/6J1Wfq+9ND21avqhWasG7WQYWsmC0D1FQg3JCuw==","signatures":[{"sig":"MEYCIQCNccfC08tLt7kOL7wZCGwFVsuSAR4Nu71VbScO9U8IMQIhAMak6wx+Ja5WsV/8aJswi1hobZNT/gSKr9GNhxvMInum","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3971948},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"5bf1f7837e24b6db21f1460afb22b93c1ab31139","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","@rdkit/rdkit":"^2025.3.4-1.0.0","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_3.2.0_1786330649148_0.8027333785489366","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@cancentus/smiles-drawer","version":"3.2.1","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@3.2.1","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"7212db2783f06694c0d1288bba2b30aac2cd5413","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.2.1.tgz","fileCount":44,"integrity":"sha512-4zDVMeIfhxFoA3/UU4HFSIXLwfIeGEcWJ4Y+MURrUcn8r99HWd9zLQ+96nDpQ852H0YhLdv1tNq0FXXSIjf1eg==","signatures":[{"sig":"MEUCIQCsvlRF9Q50gMXvtZHFAkTOrwdIIfO3uHsWXi9X/PJ6WQIgH91JO3Ad/PegdfAYi02SKOeKHUkxaIU9Ag4t+Uu7ruM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3983578},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"614d1d851f6f8fde136166063aa75b0ec2526418","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","@rdkit/rdkit":"^2025.3.4-1.0.0","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_3.2.1_1786475011926_0.11075616027597834","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@cancentus/smiles-drawer","version":"3.2.2","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@3.2.2","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"8f5e9b2194a9f3f78d21987ab9ef4c1d1ca1499e","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.2.2.tgz","fileCount":44,"integrity":"sha512-MYsQl2ol6qfZsVTymV23p05ZmGHYXa3mC5N/WyqSCZbkdYRcheR6CrqNi6TAu5KXIHWbgpwuJ3pC3baPQdRBHQ==","signatures":[{"sig":"MEUCIQCwAcxNYloJhJK7Nc7lg2Qh920XKePIj5OlYyW3f8knMQIgTiEztJ4CqmB8OBxCSguALt7ymSTIf4kIKJfXwiIu4pM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3986271},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"d870b51517fb0f73f558b0a121a2aa464121c864","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","@rdkit/rdkit":"^2025.3.4-1.0.0","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_3.2.2_1786478452347_0.9282894344102313","host":"s3://npm-registry-packages-npm-production"}},"3.2.3":{"name":"@cancentus/smiles-drawer","version":"3.2.3","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@3.2.3","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"84f58d5e20b7a1f7ba964abc366991e229780c05","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.2.3.tgz","fileCount":44,"integrity":"sha512-9Mbt+Ne/J9jzL61slOcan0XCBAydo/KwA3Nw7yp5sXN8qDVV0Sr75DjWuLzl1RIT8IXv9yK7bAwnljX8GFpNYw==","signatures":[{"sig":"MEUCIQDFTr55k3aiv5by6d1unJKccy5NHBaXV1sF45n+l4jElgIgfD20wZQKKRK7RGcAhyxIC9fvDeHTxVFrmF6WNta4pKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3989227},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"52a695f1bbe07f8515c111a16ed07fdd002598fe","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","@rdkit/rdkit":"^2025.3.4-1.0.0","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_3.2.3_1786480080609_0.9213407550999391","host":"s3://npm-registry-packages-npm-production"}},"3.2.4":{"name":"@cancentus/smiles-drawer","version":"3.2.4","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@3.2.4","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"c1037e57e0f24fe3508baad01873dc2b45b63669","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.2.4.tgz","fileCount":44,"integrity":"sha512-+J6jEraMVG9qiOvcxTnq838XFTHoXXj8WfJNiDavJ2DnqQfZ6VzsMkceHC9IfxRVuRpbSIHhGuI2fn8K5d5tUQ==","signatures":[{"sig":"MEUCIQDFGzfZqY1H9FvyTI/SxZrJ8rNqw0v0XlCc/g8FNsgZWAIgIteeyAKTnpGCEWVeqFiCZr+uKpT64LhOLmzMvHkW4f4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3993993},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"ffc29a5cdb1a00242e0053f01c9961bca176364c","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","@rdkit/rdkit":"^2025.3.4-1.0.0","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_3.2.4_1786513027126_0.6061954074950691","host":"s3://npm-registry-packages-npm-production"}},"3.2.5":{"name":"@cancentus/smiles-drawer","version":"3.2.5","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@3.2.5","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"d86b7b110961841a5f8b987056da0d195d39f46b","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.2.5.tgz","fileCount":44,"integrity":"sha512-oNs8BxxB8yrQVYSgMg0SKeFb2hldEdLqqTqmGQuu09VJJYC6L7wvJJ8AT00AzmoKqZcwVmNS6xD3PNoNI9c8Cw==","signatures":[{"sig":"MEUCIQCPbsavSmbmHO8tvot72jHlWsPDcwWB9TRiTIxLsDojwgIgWdyJo+08BLz6wby60cGWA8KLCq1wSmRtBmw1GTWQYvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3998321},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"9c133a0fe9a4d57e1b194101a5beab87461b4082","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","@rdkit/rdkit":"^2025.3.4-1.0.0","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_3.2.5_1786518338373_0.5048329115651893","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@cancentus/smiles-drawer","version":"3.3.0","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@3.3.0","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"04edcf981d30be8575eda101c3956d58927a061f","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.3.0.tgz","fileCount":44,"integrity":"sha512-DpgGZa0W85dgRqk8nq8FQ6XGzl5LIjFZwib7Rw8PKCtH6l54EN69JATVJUdcj+rtzD9R2o9jEYxNd4G9kmmrnw==","signatures":[{"sig":"MEYCIQD/qjZiub5ntSoAamDmOuKTUgwaxKN/e1/vj8461KMHAQIhANEEC2cvbHoQNM8SmD41TSborA4atu34TpiG2kdGeX+5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4042852},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"2be15d5cc6ab4d5a6f1808083f41e148490de8ff","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","@rdkit/rdkit":"^2025.3.4-1.0.0","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_3.3.0_1786520837172_0.3758378491788963","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"@cancentus/smiles-drawer","version":"3.3.1","author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","_id":"@cancentus/smiles-drawer@3.3.1","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"homepage":"https://github.com/Cancentus/smilesDrawer#readme","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"dist":{"shasum":"8b9c078fa8974b3de9441dda8a4d9035e82b8821","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.3.1.tgz","fileCount":44,"integrity":"sha512-WSKhRC7gs+d05QmAz2G6Rhx0Ex1SgiZoW+gaORpV+G159lyxS81BE8CN6wcPoDS0fuxJOTJnaBaS0MSkIDkpmA==","signatures":[{"sig":"MEUCICQf/UjG9YOWCjGJ8efJ216AmpKlbVoaxyu0gNbo4YlJAiEAjBrfUKA3vEfg9F4ePrHxeYTdFueoncpvxiODCEsUnAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4049328},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"gitHead":"ba5e6ff217985baad79423b9c7a27682e2312bb3","private":false,"scripts":{"lint":"npm exec -- eslint","build":"node ./scripts/build.mjs","watch":"node ./scripts/watch.mjs","minify":"node ./scripts/minify.mjs","gallery":"node ./test/complex/gallery.mjs","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","typedefs":"npm exec -- tsc --emitDeclarationOnly","test:unit":"npm exec -- vitest run test/unit test/regression","typecheck":"npm exec -- tsc --noEmit","playground":"npm run build && open test/visual/playground.html","test:stereo":"npm exec -- vitest run test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"repository":{"url":"git+https://github.com/Cancentus/smilesDrawer.git","type":"git"},"_npmVersion":"11.19.0","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chroma-js":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^30.0.1","eslint":"^10.8.0","vitest":"^4.1.10","esbuild":"^0.28.1","globals":"^17.9.0","playwright":"^1.62.1","typescript":"^5.8.2","@rdkit/rdkit":"^2025.3.4-1.0.0","typescript-eslint":"^8.66.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/smiles-drawer_3.3.1_1786522617867_0.010710430797782777","host":"s3://npm-registry-packages-npm-production"}},"3.3.2":{"name":"@cancentus/smiles-drawer","version":"3.3.2","description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","exports":{".":{"types":"./dist/types/app.d.ts","import":"./dist/smiles-drawer.min.mjs","default":"./dist/smiles-drawer.min.js"}},"main":"./dist/smiles-drawer.min.js","module":"./dist/smiles-drawer.min.mjs","repository":{"type":"git","url":"git+https://github.com/Cancentus/smilesDrawer.git"},"author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","private":false,"publishConfig":{"access":"public"},"devDependencies":{"@rdkit/rdkit":"^2025.3.4-1.0.0","@stylistic/eslint-plugin":"^5.10.0","esbuild":"^0.28.1","eslint":"^10.8.0","globals":"^17.9.0","jsdom":"^30.0.1","playwright":"^1.62.1","typescript":"^5.8.2","typescript-eslint":"^8.66.0","vitest":"^4.1.10"},"dependencies":{"chroma-js":"^3.2.0"},"scripts":{"build":"node ./scripts/build.mjs","gallery":"node ./test/complex/gallery.mjs","lint":"npm exec -- eslint","minify":"node ./scripts/minify.mjs","playground":"npm run build && open test/visual/playground.html","prepare":"node ./scripts/prepare.mjs","release":"npm run typedefs && node ./scripts/release.mjs","typecheck":"npm exec -- tsc --noEmit","typedefs":"npm exec -- tsc --emitDeclarationOnly","watch":"node ./scripts/watch.mjs","test:ci":"npm exec -- vitest run test/unit test/regression test/complex test/formula-reference test/stereo-reference","test:complex":"npm exec -- vitest run test/complex","test:formulae":"npm exec -- vitest run test/formula-reference","test:stereo":"npm exec -- vitest run test/stereo-reference","test:unit":"npm exec -- vitest run test/unit test/regression"},"gitHead":"b44b769b12333d24c7cfe309384abccf4cce2ff6","_id":"@cancentus/smiles-drawer@3.3.2","bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"homepage":"https://github.com/Cancentus/smilesDrawer#readme","_nodeVersion":"24.18.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-+1BTEgMwNME4NXKNNNhM45eUSzhtqIJTHZqBuWNnnhPcNcWbud88GAO0/o9aihOmf22woRIK0cYAwFtaGympPg==","shasum":"d672ffb157fecc3a53453001fb0ae693e345b1de","tarball":"https://registry.npmjs.org/@cancentus/smiles-drawer/-/smiles-drawer-3.3.2.tgz","fileCount":44,"unpackedSize":4065004,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cancentus%2fsmiles-drawer@3.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDtP34NIeIev+eBF8T5nvvt0RN59/9rZZiG8CsUq/R2sAIhAPvZmOc6PIDcHFmg2m3LrJTDTec15JnJp+6Hea5SNVvT"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0aaa80d8-91c9-498c-b059-1f31970cd963"}},"directories":{},"maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/smiles-drawer_3.3.2_1786523514431_0.3258032600491658"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-07T18:03:03.085Z","modified":"2026-08-12T08:31:55.033Z","2.5.0":"2026-08-07T18:03:03.498Z","2.5.1":"2026-08-07T18:30:48.954Z","3.0.0":"2026-08-08T07:07:30.597Z","3.1.0":"2026-08-08T16:08:08.759Z","3.2.0":"2026-08-10T02:57:29.332Z","3.2.1":"2026-08-11T19:03:32.155Z","3.2.2":"2026-08-11T20:00:52.576Z","3.2.3":"2026-08-11T20:28:00.832Z","3.2.4":"2026-08-12T05:37:07.312Z","3.2.5":"2026-08-12T07:05:38.521Z","3.3.0":"2026-08-12T07:47:17.340Z","3.3.1":"2026-08-12T08:16:58.044Z","3.3.2":"2026-08-12T08:31:54.594Z"},"bugs":{"url":"https://github.com/Cancentus/smilesDrawer/issues"},"author":{"name":"Daniel Probst, Reymond Group, University of Berne"},"license":"MIT","homepage":"https://github.com/Cancentus/smilesDrawer#readme","repository":{"type":"git","url":"git+https://github.com/Cancentus/smilesDrawer.git"},"description":"A SMILES drawer and parser. Generate molecular structure depictions in pure JavaScript.","maintainers":[{"name":"johnhalazonetis","email":"john.halazonetis@icloud.com"}],"readme":"# SmilesDrawer 2.0\n\n> **Fork notice.** This is a fork of [reymond-group/smilesDrawer](https://github.com/reymond-group/smilesDrawer),\n> created by [Daniel Probst](https://github.com/daenuprobst) and the [Reymond Group](https://github.com/reymond-group)\n> at the University of Berne. All credit for the original library goes to the upstream authors.\n>\n> The upstream website, playground and hosted documentation are not part of this fork; this README and\n> [CONTRIBUTING.md](CONTRIBUTING.md) are the documentation.\n\nNo server, no images, no templates, just a SMILES 😊\n\nCurrent Version: **3.3.2**\n\n### Examples in Specific Frameworks\n\n<details>\n    <summary>Svelte </summary>\n\n```html\n<!--file:Molecule.svlete-->\n<!--Tested against v2.1.7 of smiles-drawer-->\n<script>\n    import { afterUpdate } from \"svelte\";\n    import SmilesDrawer from \"smiles-drawer\";\n\n    export let smiles = \"\";\n\n    const SETTINGS = {\n        width: 300,\n        height: 200,\n    };\n    let drawer = new SmilesDrawer.SvgDrawer(SETTINGS);\n    let svgElement;\n\n    afterUpdate(() => {\n        SmilesDrawer.parse(smiles, function (tree) {\n            drawer.draw(tree, svgElement, \"light\");\n        });\n    });\n</script>\n\n<div>\n    <svg bind:this={svgElement} data-smiles={smiles} />\n</div>\n\n<style>\n    svg {\n        width: 300px;\n        height: 200px;\n    }\n</style>\n\n<!--usage-->\n<Molecule smiles=\"CCCO\" />\n```\n\n</details>\n\n### Please cite\n\nIf you use this code or application, please cite the original paper published by the Journal of Chemical Information and Modeling: [10.1021/acs.jcim.7b00425](http://dx.doi.org/10.1021/acs.jcim.7b00425)\n\n## Legacy Documentation\n\nAs of now, there is full backwards compatibility.\n\n### Examples\n\nA very simple JSFiddle example can be found [here](https://jsfiddle.net/zjdtkL57/1/). This example shows the `SmilesDrawer.apply()` functionality which draws the structure for every `canvas` element with a `data-smiles` attribute. E.g. `<canvas data-smiles=\"C1CCCCC1\"></canvas>`\n\n### Installation\n\nPublished to npm under the `@cancentus` org:\n\n```sh\nnpm install @cancentus/smiles-drawer\nbun  add     @cancentus/smiles-drawer\n```\n\nThe minified bundles and type declarations are committed, so this also works installed straight from Git (`npm install github:Cancentus/smilesDrawer`) with no build step and no `trustedDependencies` entry. Everything else in `dist` is generated — clone the repo and run `npm install` (or `npm run release`) to build the full set.\n\n### Building Smiles Drawer\n\nSee `CONTRIBUTING.md` for how to get the code and build your own custom version.\n\n### Getting Started\n\nTo get a simple input box which lets the user enter a SMILES and then display it in a canvas, the following minimal example is sufficient.\nIn order to have nice consistent font rendering you have to include the droid sans font from google fonts.\n\n```html\n<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"x-ua-compatible\" content=\"ie=edge\" />\n    <title>Smiles Drawer Example</title>\n    <meta name=\"description\" content=\"A minimal smiles drawer example.\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\n    <link\n      href=\"https://fonts.googleapis.com/css?family=Droid+Sans:400,700\"\n      rel=\"stylesheet\"\n    />\n  </head>\n  <body>\n    <input id=\"example-input\" name=\"example-input\" />\n    <canvas id=\"example-canvas\" width=\"500\" height=\"500\"></canvas>\n\n    <script src=\"https://unpkg.com/@cancentus/smiles-drawer@2/dist/smiles-drawer.min.js\"></script>\n    <script>\n      let input = document.getElementById(\"example-input\");\n      let options = {};\n\n      // Initialize the drawer to draw to canvas\n      let smilesDrawer = new SmilesDrawer.Drawer(options);\n      // Alternatively, initialize the SVG drawer:\n      // let svgDrawer = new SmilesDrawer.SvgDrawer(options);\n\n      input.addEventListener(\"input\", function() {\n        // Clean the input (remove unrecognized characters, such as spaces and tabs) and parse it\n        SmilesDrawer.parse(input.value, function(tree) {\n          // Draw to the canvas\n          smilesDrawer.draw(tree, \"example-canvas\", \"light\", false);\n          // Alternatively, draw to SVG:\n          // svgDrawer.draw(tree, 'output-svg', 'dark', false);\n        });\n      });\n    </script>\n  </body>\n</html>\n```\n\nSee the example folder for a more complete example.\n\n### Options\n\nThe options are supplied to the constructor as shown in the example above.\n\n```javascript\nlet options = { ... };\nlet smilesDrawer = new SmilesDrawer.Drawer(options);\n```\n\nThe following options are available:\n\n| Option                                                          | Identifier                  | Data Type                           | Default Value |\n| --------------------------------------------------------------- | --------------------------- | ----------------------------------- | ------------- |\n| Drawing width                                                   | width                       | number                              | 500           |\n| Drawing height                                                  | height                      | number                              | 500           |\n| Bond thickness                                                  | bondThickness               | number                              | 1.0           |\n| Bond length                                                     | bondLength                  | number                              | 30            |\n| Short bond length (e.g. double bonds) as a fraction of bond length | shortBondLength            | number                              | 0.8           |\n| Bond spacing (e.g. space between double bonds)                  | bondSpacing                 | number                              | 0.17 \\* 30    |\n| Atom Visualization                                              | atomVisualization           | string ['default', 'balls', 'none'] | 'default'     |\n| Large Font Size (in pt for elements)                            | fontSizeLarge               | number                              | 11            |\n| Small Font Size (in pt for numbers)                             | fontSizeSmall               | number                              | 3             |\n| Padding                                                         | padding                     | number                              | 10.0          |\n| Show explicit carbons                                           | showCarbons                 | string ['none', 'default', 'terminal', 'acyclic', 'all'] | 'default'     |\n| Show terminal carbons (deprecated; use `showCarbons`)           | terminalCarbons             | boolean                             | false         |\n| Show explicit hydrogens                                         | explicitHydrogens           | boolean                             | true          |\n| Overlap sensitivity                                             | overlapSensitivity          | number                              | 0.42          |\n| # of overlap resolution iterations                              | overlapResolutionIterations | number                              | 1             |\n| Draw concatenated terminals and pseudo elements                 | compactDrawing              | boolean                             | true          |\n| Draw isomeric SMILES if available                               | isomeric                    | boolean                             | true          |\n| Font family                                                     | fontFamily                  | string                              | 'Arial, Helvetica, sans-serif' |\n| Debug (draw debug information to canvas)                        | debug                       | boolean                             | false         |\n| Color themes                                                    | themes                      | object                              | see below     |\n\nThe default options are defined as follows:\n\n```javascript\n{\n    width: 500,\n    height: 500,\n    bondThickness: 1.0,\n    bondLength: 30,\n    shortBondLength: 0.8,\n    bondSpacing: 0.17 * 30,\n    atomVisualization: 'default',\n    isomeric: true,\n    debug: false,\n    showCarbons: 'default',\n    terminalCarbons: false,\n    explicitHydrogens: true,\n    overlapSensitivity: 0.42,\n    overlapResolutionIterations: 1,\n    compactDrawing: true,\n    fontFamily: 'Arial, Helvetica, sans-serif',\n    fontSizeLarge: 11,\n    fontSizeSmall: 3,\n    padding: 10.0,\n    themes: {\n        dark: {\n            C: '#ffffff',\n            O: '#e74c3c',\n            N: '#3498db',\n            F: '#27ae60',\n            CL: '#16a085',\n            BR: '#d35400',\n            I: '#8e44ad',\n            P: '#d35400',\n            S: '#f1c40f',\n            B: '#e67e22',\n            SI: '#e67e22',\n            H: '#aaaaaa',\n            BACKGROUND: '#141414'\n        },\n        light: {\n            C: '#222222',\n            O: '#e74c3c',\n            N: '#3498db',\n            F: '#27ae60',\n            CL: '#16a085',\n            BR: '#d35400',\n            I: '#8e44ad',\n            P: '#d35400',\n            S: '#f1c40f',\n            B: '#e67e22',\n            SI: '#e67e22',\n            H: '#666666',\n            BACKGROUND: '#ffffff'\n        }\n    }\n};\n```\n\nAdditional built-in themes include `oldschool`, `solarized`, and `solarized-dark`.\n\n`showCarbons` controls when explicit carbon labels are drawn:\n- `\"none\"` never labels plain carbons;\n- `\"default\"` is the usual skeletal notation;\n- `\"terminal\"` matches the former `terminalCarbons: true` behavior (explicit labels on terminal carbons such as methyl groups);\n- `\"acyclic\"` labels every carbon that is not part of a ring;\n- `\"all\"` labels every carbon, including ring atoms.\n\nIf `showCarbons` is `\"default\"` and `terminalCarbons` is `true`, the effective mode is `\"terminal\"` (legacy compatibility until v3.0).\n\n### MiniViewer\n\n`SmilesDrawer.MiniViewer` is a small, click-to-enlarge structure viewer for the case where\nmany structures are shown at once (a table, a list of results): it draws compactly by\ndefault (no explicit hydrogens, small canvas) and opens a standard-size view in a modal\n`<dialog>` when clicked or activated via keyboard. The dialog fades in/out (300ms) and its\nborder color is the inverse of the resolved theme background, so it reads clearly against\nwhatever page it's opened over.\n\n```javascript\nconst viewer = new SmilesDrawer.MiniViewer(document.getElementById('mini'), {\n    theme: 'light',\n    expandedOptions: { width: 500, height: 500 }, // options for the enlarged dialog view\n});\nviewer.draw('CC(=O)Oc1ccccc1C(=O)O');\n```\n\nThe constructor takes the host element and an options object:\n\n| Option | Description |\n| --- | --- |\n| `miniOptions`/`expandedOptions` | Molecule options merged over the mini preset / used for the enlarged view. |\n| `theme` | Theme name, as passed to `draw()` (default `'light'`). |\n| `values`/`dataset` | An `AtomValueOverlay` bundle and which of its datasets to label with, applied to both views. |\n| `showControls` | Whether to build the mini tile's H/values icon rail and the expanded dialog's own \"Show all H\"/\"Show values\" bar (default `true`). Set `false` when the host already has its own H/values UI. |\n| `onRender` | `(svg, {mode, drawer}) => void`, called after every draw (`mode` is `'mini'` or `'expanded'`), before the tooltip attaches. For host-specific post-processing that a `values` bundle can't express — e.g. a bespoke value overlay with its own positioning/coloring rules. |\n| `onError` | `(err) => void`, called if drawing fails. |\n| `expandable` | Default `true`: click/Enter/Space opens the expanded view in a modal dialog. Set `false` for a host that already has its own dialog around the structure (e.g. a row-click preview) — the expanded view (bigger size, full toggle bar) then renders directly into the host element instead, with no click affordance and no dialog. |\n\nCall `destroy()` to remove its listeners and dialog.\n\n#### Mini tile controls\n\nWhen `showControls` is true (the default), the mini tile itself carries a small, always-\nvisible icon rail pinned to its top-left corner — independent of the enlarged dialog's own\ncheckbox bar, and with its own toggle state:\n\n- **H** toggles carbon labels showing implicit hydrogen counts (`showCarbons: 'all'`), same\n  as the dialog's \"Show all H\" checkbox.\n- **#** toggles the `values` overlay, and appears only when a `values` bundle with at least\n  one dataset was passed. With more than one dataset, each click cycles to the next dataset,\n  then off, then back to the first — there's no `<select>` on the rail; the button's tooltip\n  names the active dataset (e.g. \"Values: pKa (uni)\") or \"Values: off\".\n\nWhile values are shown, the active dataset's name is also printed as plain text in the tile's\nbottom-left corner, so which of several datasets is on screen is readable without hovering.\n\nBoth toggles redraw only the mini tile and never open the dialog. The rail and the caption sit\na fixed 10px off the host element's corners regardless of any padding it sets, matching the\ninset Mol\\*'s viewport controls use — so a 2D tile and a Mol\\* viewer side by side line up.\n\n### Atom Tooltips and Value Overlays\n\n`SmilesDrawer.AtomTooltip` and `SmilesDrawer.AtomValueOverlay` add per-atom hover info and\nlabels to an already-drawn SVG — MiniViewer uses both internally for its enlarged view, but\neither can be used standalone against any SVG produced by `SvgDrawer`/`Drawer`.\n\n`AtomValueOverlay.parseAtomValueBundle(json)` normalizes a plain values payload or a pKa\nprediction payload (auto-detected) into an `AtomValueBundle`:\n\n```javascript\n// Generic shape:\n// { datasets: { <key>: { label, entries: [{ atom_index, parts: [{ text, color?, title? }] }] } } }\n// pKa shape (from a pKa prediction backend) is auto-detected too.\nconst bundle = SmilesDrawer.AtomValueOverlay.parseAtomValueBundle(json);\n```\n\nPassing a bundle (plus which `dataset` key to label with) to `MiniViewer` is normally enough —\nit calls `AtomValueOverlay.apply()`/`fitViewBoxToBundle()` for you. For a standalone SVG, call\nthose directly, or attach hover rows for all of a bundle's datasets with `AtomTooltip`:\n\n```javascript\nconst tooltip = new SmilesDrawer.AtomTooltip(svgElement, { atomValueBundle: bundle });\ntooltip.attach();\n// tooltip.destroy() when the SVG is removed.\n```\n\n`parsePkaDatasets(json)` is the pKa-specific path `parseAtomValueBundle()` delegates to when it\ndetects that shape; call it directly only if the payload is already known to be pKa-shaped.\n\n### RDKit CoordGen Layout\n\nsmilesDrawer never depends on `@rdkit/rdkit` itself — the host loads the module (and its\n`.wasm` asset) and registers it once via `SmilesDrawer.setRdkit(module)`. Once registered,\n`SmiDrawer.drawMolecule()` (and thus `SmiDrawer.apply()`) automatically lay molecules out\nwith RDKit's CoordGen algorithm instead of smilesDrawer's own, with no other code changes.\n\n```javascript\nimport initRDKitModule from '@rdkit/rdkit';\n\nconst rdkitModule = await initRDKitModule();\nSmilesDrawer.setRdkit(rdkitModule);\n```\n\nFor lower-level control — e.g. passing a layout into `SmiDrawer.drawFromLayout()`, or as the\n`presetLayout` argument to `SvgDrawer.draw()`/`Drawer.draw()` — call\n`SmilesDrawer.layoutFromSmiles(smiles, module?)` directly. It returns `null` (never throws) if\nno module is registered, the SMILES is invalid, or RDKit otherwise fails, so callers should\nfall back to the automatic layout in that case.\n\n### Usage\n\nAn instance of SmilesDrawer is able to draw to multiple targets. Initialize SmilesDrawer once for each set of options (you would initialize two different objects if you were to draw in two different sizes).\n\n```javascript\nlet smilesDrawer = new SmilesDrawer.Drawer({ width: 250, height: 250 });\n```\n\nIn order to depict a SMILES string it has to be parsed using SmilesDrawer's SMILES parser, which is encapsulated in the static function `SmilesDrawer.parse()` where the first argument is the SMILES string and the second argument a callback for a successful parsing. The third argument provides a way to handle errors using a callback.\n\n```javascript\nSmilesDrawer.parse('C1CCCCC1', function (tree) {\n    smilesDrawer.draw(tree, 'output-canvas', 'light', false);\n}, function (err) {\n    console.log(err);\n}\n```\n\nThe function `smilesDrawer.draw()` requires two and accepts up to four arguments. The first argument is the parse tree returned by the parse function (through the callback), the second is the `id` of a HTML canvas element on which the structure will be drawn. The two optional arguments are whether to use the light or dark theme (defaults to `'light'`) and whether to only compute properties such as ring count, hac, etc. and not depict the structure (defaults to `false`).\n\n### API\n\nThe SmilesDrawer object exposes methods that can be used for purposes other than drawing chemical structures.\n\n| Method                  | Description                                                                       | Returns  |\n| ----------------------- | --------------------------------------------------------------------------------- | -------- |\n| `getMolecularFormula()` | Returns the molecular formula, eg. C22H30N6O4S, of the currently loaded molecule. | `String` |\n\n### Bridged Rings\n\nBridged rings are positioned using the Kamada–Kawai algorithm. If there is a bridged ring in the molecule, explicitly defined aromatic rings are not drawn with a circle inside the ring, but with dashed gray lines where double bonds would be.\n\n### Contributors\n\nThank you for contributing:\n\n- SRI International's CSE group (For the excellent SVG support)\n- [ohardy](https://github.com/ohardy)\n- [Kevin Burk](https://github.com/xavierholt)\n- [Alejandro Flores](https://github.com/afloresep)\n- [Daniel Probst](https://github.com/daenuprobst)\n","readmeFilename":"README.md"}