{"_id":"@graphty/layout","_rev":"41-886a5ae749d27c4e10ff63d3f4684140","name":"@graphty/layout","dist-tags":{"latest":"2.0.7"},"versions":{"1.0.0":{"name":"@graphty/layout","version":"1.0.0","keywords":["graph","layout","networkx","network"],"license":"MIT","_id":"@graphty/layout@1.0.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"faa575ac3066a46509f8580eaacf25da1eed6ba9","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.0.0.tgz","fileCount":20,"integrity":"sha512-A4Tfww/aQ9exa1qhsrSDdpGIZiF7K3ZABZcN/L5blE9Gb1zhnfRyWmG4RE7cHYFoPmkJfQ0+B3Ks8PRrgL7s4g==","signatures":[{"sig":"MEYCIQD6K5YKAEk81BL4wrIXxRSI7ETO+AA6bTjyYr7xHQjSpgIhAL1+2ciJPXkSGxKdcHjpfcsX8sCvYfOYEj2S99zptNSv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270984},"main":"layout.js","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"b7606d22a9ba5c09dcc2a16834fa2c444692c9ba","scripts":{"test":"echo \"Error: no test specified\" && exit 1","prepare":"husky"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.2","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@commitlint/cli":"^19.8.1","cz-conventional-changelog":"^3.3.0","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.0.0_1749449482907_0.8306069880815552","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@graphty/layout","version":"1.0.1","keywords":["graph","layout","networkx","network"],"license":"MIT","_id":"@graphty/layout@1.0.1","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"867e6e7b28f1210365059512cddfcaced597e79e","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.0.1.tgz","fileCount":20,"integrity":"sha512-hGj6W1oAYNdTB+kIzfE2ncYEqLPf/X7JcvIf1rK//GK3S6GSSa7vBjlEoZHq3ncggZO76Lob5j/XxuXF61Qf7g==","signatures":[{"sig":"MEQCICs8h+kLpgPPh43EznlQHZnqzoQkijp6U3SxoWdav0V5AiA36OqLZUQo+xVwjlAljgTRjAcLdSp0s37uMWuZXm7Mtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270996},"main":"layout.js","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"85ca8125b43217a80d5114fa3cc43ec5030f69eb","scripts":{"test":"echo \"Error: no test specified\" && exit 1","prepare":"husky"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.2","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@commitlint/cli":"^19.8.1","cz-conventional-changelog":"^3.3.0","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.0.1_1749450703551_0.1508573677694658","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@graphty/layout","version":"1.1.0","keywords":["graph","layout","networkx","network"],"license":"MIT","_id":"@graphty/layout@1.1.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"35dc0e06f2a41755ceed3589c80cba427344733e","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.1.0.tgz","fileCount":21,"integrity":"sha512-gTpd9YYRy5zAzvQ3EpTvrpFvUe+8mfu/pqbVRHyq3MWOoBVzuvenCrIxdJ1Ij5cdHrv0rJhe2SIcrgX3IIo09w==","signatures":[{"sig":"MEUCIQCP6eQpoDq0y4a6CAPGHkAZE3WCuk+1vWWZDxjSZ/pE+AIgKfccVT1vGaSQicwBYlPknfwaiGP+KdIeb3+uqswJDeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285216},"main":"layout.js","type":"module","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"770e0e9855a4a9866a2e6abbe241f78324582e32","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","watch":"tsc --watch","prepare":"husky"},"_npmUser":{"name":"apowers313","actor":{"name":"apowers313","type":"user","email":"apowers@ato.ms"},"email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.2","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","cz-conventional-changelog":"^3.3.0","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.1.0_1751145671650_0.6352581518626494","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@graphty/layout","version":"1.1.1","keywords":["graph","layout","networkx","network"],"license":"MIT","_id":"@graphty/layout@1.1.1","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"87b7c7e9f7b85d49a6ff76a45449a2fe9b614bff","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.1.1.tgz","fileCount":51,"integrity":"sha512-7j+lGzoRCrCnE7w5U0jJk/oM1Dc7GFAaB9G51Twf48T8cVJwcmrMUyzm1sqilZuLlT1pMeIxxN7YfvqZ9Z+y4Q==","signatures":[{"sig":"MEUCIHr0jhYEhEvJYxAajx61KhnblY+SnmkJoHYkrZRuxra8AiEAuCuf14+5tnrP7+/emWxmPqOAIzAMqFUvFTeRKBikgHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":742795},"main":"dist/layout.js","type":"module","types":"./dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"8e428bc2e4a7186d0c929551dea3ce54257a7a26","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.1.1_1752290091570_0.5364899140662216","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@graphty/layout","version":"1.2.0","keywords":["graph","layout","networkx","network"],"license":"MIT","_id":"@graphty/layout@1.2.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"83364b11513c573cf2b2dd6acf162248e2478e67","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.2.0.tgz","fileCount":58,"integrity":"sha512-WC9FaoIkYe/Gb/clb5ZS+Wb/wCgPOduekBoEc8JPYvjx71qtHz1kQQpeH6Sj/zQQbt9mrVTV4GdJvL9vo+E5RQ==","signatures":[{"sig":"MEYCIQCIxoC0PO6OvPhe8lFhh3ofBXHszfER8Z8sqni8I0HUZAIhAPOmxvbDcMn7kW+FcAul950nQQQU3cmYsuGBDQeUlKAI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":827052},"main":"dist/layout.js","type":"module","types":"./dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"466212ceb1543ee883425f68cb54ba810e30f5ed","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","serve":"npm run build:examples && vite","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","examples":"npm run build:examples && vite","test:run":"vitest run","test:coverage":"vitest run --coverage","build:examples":"npm run build && cp dist/layout.js examples/layout.js"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.2.0_1752362319294_0.9818321463931798","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@graphty/layout","version":"1.2.1","keywords":["graph","layout","networkx","network"],"license":"MIT","_id":"@graphty/layout@1.2.1","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"8d836c00dddeb8930d17c59f7e597e94fa4ae44b","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.2.1.tgz","fileCount":99,"integrity":"sha512-n4mvMeND5LoqMBuEkVMuXNV4Gc/PVL5vGUBfjmT5hA+StisLzhYGHvgZZb6LCrHQ/xzLsn7zB2/FkXnbWqzclQ==","signatures":[{"sig":"MEYCIQDUQxdw/NhizjbQRWbKSw2o+8OYBuVlV+rOv1Xmhm7xlQIhAOkm07tmfmgnScBAlTD2Jaf3vesy1/ftPOvm76aX0Gm+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620264},"main":"dist/src/index.js","type":"module","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"6e5b6c1a1c6eda2aad9c72e2ffc624ce90443451","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","serve":"npm run build:examples && vite","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","examples":"npm run build:examples && vite","test:run":"vitest run","test:coverage":"vitest run --coverage","build:examples":"npm run build && node build-examples-script.js"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.2.1_1752443346829_0.03181785666300274","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@graphty/layout","version":"1.2.2","keywords":["graph","layout","networkx","network"],"license":"MIT","_id":"@graphty/layout@1.2.2","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"68f634aa86d63f8b59ab83dd37a3a71a5c6f1861","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.2.2.tgz","fileCount":105,"integrity":"sha512-40J3R2zHDRcr3liszF0X859p5lFB2j5D/MSINcxA+OUpCZRIcZZKxQw+dmm98p279i0kss/FFtCwTbATvje5IA==","signatures":[{"sig":"MEYCIQCqRBcl5Na3b/W8goqHLesvyBTsbaH8FpgBE3D0BSj7KwIhALjcy1ClSUoffEtlrEQt8drTg8rjc/WqwYu55PawnAZ8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649376},"main":"dist/src/index.js","type":"module","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"fc1b505ad2d854c063d0b65c936fbf7bc4b23bd7","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","serve":"npm run build:examples && vite","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","examples":"npm run build:examples && vite","test:run":"vitest run","test:coverage":"vitest run --coverage","build:examples":"npm run build && node build-examples-script.js"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.2.2_1752443983219_0.9174889868303522","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@graphty/layout","version":"1.2.3","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.2.3","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"2a81fd9cd05d0032cc4256ba9acf48e2a4ce427d","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.2.3.tgz","fileCount":107,"integrity":"sha512-O2tFSsDd776wNK4VYdZ8u0kDsAYroSVtD7zy+ZS/aCI1n62Cd2QdZt8SrMLp848xI/ZiXroqxSFxj22EmZeJvA==","signatures":[{"sig":"MEUCIQDS9G1E8Q2Ho1m+IoOMxuXX+Q+IE1xVS0zDwqDPcWuetgIgCZ2UkzUpvor8ITSu7rZ1yb+QIa61pfR1j3j32t0Z1Fs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":718551},"main":"dist/src/index.js","type":"module","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"9b73a5f70b01d91a14801cb3df02279d877fe044","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","serve":"npm run build:examples && vite","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","examples":"npm run build:examples && vite","test:run":"vitest run","test:coverage":"vitest run --coverage","build:examples":"npm run build && node build-examples-script.js"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.2.3_1752711481270_0.686704970919547","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@graphty/layout","version":"1.2.4","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.2.4","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"09263a67300d90ad24dc321aa12264cf9ecea780","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.2.4.tgz","fileCount":197,"integrity":"sha512-8jdYMBzOXC7J/3uYGcSLej5dDQDnCSIpLG7BnG+TiiOpglpzgY66CqSrcSBoxUWuR9fXWI4hRfgru9QtZ1MW/w==","signatures":[{"sig":"MEQCIHFVe0jTf3y7vF0p72TZFrMI/Y2bg8ZS0jiNb+DfoRwqAiAcKmYPIGSfEFFRNndBNkzK9TfqWAqoWMi6j0/C3ejwBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336149},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"ebebad33e479afbc2713595183e2b97bd6ad54c2","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","serve":"npm run build:examples && vite","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","examples":"npm run build:examples && vite","test:run":"vitest run","test:coverage":"vitest run --coverage","build:examples":"npm run build && node build-examples-script.js"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.2.4_1752809967480_0.7330306509523692","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@graphty/layout","version":"1.2.5","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.2.5","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"1f3b7788d3a792ef7b45fe22293d69925f548afa","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.2.5.tgz","fileCount":197,"integrity":"sha512-12JhshzEtEGXJpiIg0SiCx3Xf6+ZSm/HFpf2hrKtx2M93uNLBCknq1nGggqS/l+/fWXIQ1h0WjnG7bX1rIG69g==","signatures":[{"sig":"MEYCIQCBoX6TjD4O4qLeg15I2+odilu401MW3F9cB94YTqMotgIhANu3oHHqjbzdjRh++TXesQpxBD67cPZI5rzy7qcviR0u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346457},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"c052017b3f332b55b81281debd45273219a7b43c","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","build:bundle":"node scripts/build-bundle.js","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.2.5_1752825221211_0.20502287062754587","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@graphty/layout","version":"1.2.6","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.2.6","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"899f16556a97df88125a22b86111438d22f8b8bf","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.2.6.tgz","fileCount":52,"integrity":"sha512-Yh4VQNmV17NmPD4kYDzoaY2Xf12Of2rCDndeF0CxUV4LsH9Ss9WnNMR/AqCg2fG1Q8uw9vlp20FSpdYrKsUdeQ==","signatures":[{"sig":"MEUCIEbR6UoQKMwPrqQVwO01sx60AAx8fP9RNRZF1RIukNIqAiEA3IYnVpBs44HfAkwOm/79fTQuFvv4xkKhCLz1UKv3sM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322635},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"bb0e9a1e332966bc15f334710aaed51df0461007","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","build:bundle":"node scripts/build-bundle.js","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.2.6_1752826480118_0.610896797868087","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@graphty/layout","version":"1.2.7","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.2.7","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"ea8475c79a90c0bdccf011c724dcb2bb3a1b8418","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.2.7.tgz","fileCount":52,"integrity":"sha512-Si44rdxrSKdAvMf60IXArIbM6o1f+ScAFl7SGXFc0ah8ZCR9h0ouiCVNB+d/gN/ZaweVPxmiuCV7F0IE/XRJVw==","signatures":[{"sig":"MEUCIDZdamHP0U1TDniQFvbqNtpg28KHEOqvALcVRcBKAlbLAiEA6mAjbbEI3h6KJVebfU9KK/+EDPS5DFENiIJrcvhX5MA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323887},"main":"dist/layout.js","type":"module","types":"dist/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/layout.js"}},"gitHead":"b34d65703c4827c889843ca1f2fd8aa6110781e8","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","build:bundle":"node scripts/build-bundle.js","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.2.7_1752828713698_0.24606035260372638","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@graphty/layout","version":"1.2.8","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.2.8","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"eede5e0c41e754b3ab4c3497d6c666ca088cf3e9","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.2.8.tgz","fileCount":200,"integrity":"sha512-fSu9wEnj6pqu5kUVa0Q3ELfwepU4uL+eXq+RsmZcqUF/7EBG0qI/GWZAxgR0IwnI8T/ieDV2Ttcx3vzROgsyWQ==","signatures":[{"sig":"MEQCIBdliUvNGJG+iA1myYeuQXbo8SoRmiW5AGDuFao5oj+/AiB8TE/XEZC3Tbyh+2D6IiTCHqBMCRCn2w6M4U1BzpPwHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":546401},"main":"dist/layout.js","type":"module","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"gitHead":"1334ffeb9b773eb4a8aac66442e5660bd388b6da","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","build:bundle":"node scripts/build-bundle.js","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.3","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.2.8_1752854274899_0.39115210747334594","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@graphty/layout","version":"1.2.9","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.2.9","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/layout#readme","bugs":{"url":"https://github.com/graphty-org/layout/issues"},"dist":{"shasum":"afa6551359b5e81930307ba8700df85fe8a4c06d","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.2.9.tgz","fileCount":200,"integrity":"sha512-gK3/orMs0SP/GEOqKj8E5b43f4CMxeiugHnuZfWzBnveBl7ryrD79a2V+nFdYcwMOF96q8KQaAdavYMz864iTw==","signatures":[{"sig":"MEUCICctLrRglrdkMPN4RhjHEgI3QIJKYnU0JNwGM+3MLCu5AiEAjDitQAvD4qfaoGU5mae0Er0XlqPj1m5qU0q3YYPEkcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":548167},"main":"dist/layout.js","type":"module","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"gitHead":"57edf51cf97eecbe7f116448f41e48a96623a435","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","prepare":"husky","test:ui":"vitest --ui","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","build:bundle":"node scripts/build-bundle.js","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js"},"_npmUser":{"name":"apowers313","email":"apowers@ato.ms"},"repository":{"url":"git+https://github.com/graphty-org/layout.git","type":"git"},"_npmVersion":"10.9.3","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","husky":"^9.1.7","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@commitlint/cli":"^19.8.1","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.2.9_1753423021421_0.8162282362560065","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@graphty/layout","version":"1.3.2","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.3.2","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"89b47cd07d93afd393aa9314d2aa0c285234a9f6","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.3.2.tgz","fileCount":200,"integrity":"sha512-r4HFBTxZjagUzGyDHlh2JutNHZU+iGp5P4E4c+ZzcaqLWgG4BwB+4S4PDAJc3vm59tXsImMIVN3VJrKtYSf46g==","signatures":[{"sig":"MEUCIQDuW7NTHQinRWIP4OYYn67NyzbrHLQ/qtqk4F1ZL4/+hAIgBjHhL/WQfxzBFVpjatz9Ex0BUPTZy80ol5SfQlZf6OE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":572994},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.3.2.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","typecheck":"tsc --noEmit","build:bundle":"node scripts/build-bundle.js","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","coverage:preview":"npx serve coverage -p 9052"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/47fd29008c1aad8ace818aea7765167f/graphty-layout-1.3.2.tgz","_integrity":"sha512-r4HFBTxZjagUzGyDHlh2JutNHZU+iGp5P4E4c+ZzcaqLWgG4BwB+4S4PDAJc3vm59tXsImMIVN3VJrKtYSf46g==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.7.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","vitest":"^3.2.4","happy-dom":"^18.0.1","@vitest/ui":"^3.2.4","typescript":"^5.3.3","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.3.2_1767421880093_0.7083115215045106","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@graphty/layout","version":"1.4.0","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.4.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"282dd83350b338eca20dbe8029a1579029bed6ee","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.4.0.tgz","fileCount":246,"integrity":"sha512-541l4fH51ELdknGtTHUpPW1KNARr1zGLLAJNSx4dizyajN+WcUuTsIsBPFdqT3Le3JtWz9lVOGxms01sbJaUWA==","signatures":[{"sig":"MEUCIH9idEDMOZ5kP2T6thu6vfTDsKRWs8Sg8pqxfNWmD6K9AiEAtW29kk9LBO19psML0FMX6Nob50nmIhoIVVEDhGpzj5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":661193},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.4.0.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node scripts/sanitize-api-docs.js","docs:dev":"vitepress dev docs","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","coverage:preview":"npx serve coverage -p 9052"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/cb4efb765efdeddc3107d1c1bf730ced/graphty-layout-1.4.0.tgz","_integrity":"sha512-541l4fH51ELdknGtTHUpPW1KNARr1zGLLAJNSx4dizyajN+WcUuTsIsBPFdqT3Le3JtWz9lVOGxms01sbJaUWA==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.7.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/layout_1.4.0_1767514718661_0.4475635563917004","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@graphty/layout","version":"1.5.0","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.5.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"87c70d50ef4b5fab4dc9662ade66acc80cf99e82","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.5.0.tgz","fileCount":246,"integrity":"sha512-o73bhvrC01krzZoZsBvpBAYGnpSm5h7aOkPlLMY9D4vlrFZTb0QFJD1pga9ciPVrG26Y1eF8366RhbZm0mDdxw==","signatures":[{"sig":"MEQCIH4NSRwjP3UiuUpGpgJYPkOaiwIjJokZI/7/+rr382+fAiB4eed/Sj6x8k0P0NI2LpEfP/YTgI+pUiDCIW6aswPUOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":661390},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.5.0.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node scripts/sanitize-api-docs.js","docs:dev":"vitepress dev docs","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","coverage:preview":"npx serve coverage -p 9052"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/59bb77591d0deaff9c8b8f03c98a0be4/graphty-layout-1.5.0.tgz","_integrity":"sha512-o73bhvrC01krzZoZsBvpBAYGnpSm5h7aOkPlLMY9D4vlrFZTb0QFJD1pga9ciPVrG26Y1eF8366RhbZm0mDdxw==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.7.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/layout_1.5.0_1767773088044_0.17224037601699171","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@graphty/layout","version":"1.5.1","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.5.1","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"1d92851f2a803629c43e32e73eb305dda79a11c3","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.5.1.tgz","fileCount":250,"integrity":"sha512-H0w3Te5JILjgdNRF7+OManYTiZhRJjMgZg/4Bipz3A4SJ7jLPor2Q7ZyT/pRgNfgHLcMfdyViJOegjpZYzgtrQ==","signatures":[{"sig":"MEYCIQCkMaFrxt0QQ2dzbq4GP9Mka0UytWdQ0Zx4boCDw87Z9QIhAM2rBvFMX2nRBRuvsKnvldd1TPnnshnEqIxL4d6gLvgv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":858385},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.5.1.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node scripts/sanitize-api-docs.js","docs:dev":"vitepress dev docs","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","storybook":". ../.env 2>/dev/null; storybook dev -p ${PORT:-6006} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p 9052"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/26f18e8035865ce721cb7745e141469a/graphty-layout-1.5.1.tgz","_integrity":"sha512-H0w3Te5JILjgdNRF7+OManYTiZhRJjMgZg/4Bipz3A4SJ7jLPor2Q7ZyT/pRgNfgHLcMfdyViJOegjpZYzgtrQ==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.7.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.5.1_1767858361895_0.10798717940397862","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@graphty/layout","version":"1.6.0","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.6.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"464855696bd6251eab3fd330cdc93e6dea0183ad","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.6.0.tgz","fileCount":250,"integrity":"sha512-FYLr+t5yTfSlHjVcRY+Q6EM1mT7qoU0biYy/A0GbY0b8RZEGKTf7t/4mnIWvAOSmfXTm60xLlzz91R1xSVldPg==","signatures":[{"sig":"MEUCIErwsdzzqzA4c97/n/hf2SCnyXqN2pecxJDYvfYQggZzAiEA84dDjqxze30gFS+sE0B/u2y4THrMwprqlwojY6uzUQk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":858385},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.6.0.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node scripts/sanitize-api-docs.js","docs:dev":"vitepress dev docs","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","storybook":". ../.env 2>/dev/null; storybook dev -p ${PORT:-6006} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p 9052"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/8bec5fd73e7b2fc321b42ef1bd7656d9/graphty-layout-1.6.0.tgz","_integrity":"sha512-FYLr+t5yTfSlHjVcRY+Q6EM1mT7qoU0biYy/A0GbY0b8RZEGKTf7t/4mnIWvAOSmfXTm60xLlzz91R1xSVldPg==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.7.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.6.0_1767892748451_0.7366227773948244","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@graphty/layout","version":"1.6.1","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.6.1","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"a40ef8b87722e62bc72bce5adb426a5564f21bc1","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.6.1.tgz","fileCount":250,"integrity":"sha512-A5PDsJ9thxOHyynIChN+aX8+MLjHSsazVu/B/IYApYqflgWbly4iYQ9717tBFBtWqGt178ryn2jRFuL1e11/SQ==","signatures":[{"sig":"MEQCIF21Kp6CcEzQSfIH5eFsSwQefK0oKERomtcKAkQ9aluqAiB7ACvjaRNllAGacbQbtlhZ80wZ9joNwh1Pbu/5zK6/ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":858385},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.6.1.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node scripts/sanitize-api-docs.js","docs:dev":"vitepress dev docs","examples":"npm run build:bundle && vite","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","storybook":". ../.env 2>/dev/null; storybook dev -p ${PORT:-6006} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p 9052"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/2669747cca445db88c8f84aa07efd0dd/graphty-layout-1.6.1.tgz","_integrity":"sha512-A5PDsJ9thxOHyynIChN+aX8+MLjHSsazVu/B/IYApYqflgWbly4iYQ9717tBFBtWqGt178ryn2jRFuL1e11/SQ==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.7.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.6.1_1767943273250_0.4749758859722102","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@graphty/layout","version":"1.6.2","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.6.2","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"a70d909b6630267be1c94c08d256ce40d8471e01","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.6.2.tgz","fileCount":245,"integrity":"sha512-1HaMYlK6KiqbGmSDN0iUA+VUuHGZoi2JF3+xS/aoa2cHRdF1wwlD9FTuZREny/fSXDJ8hD6pDul3LD3e6fL6Fg==","signatures":[{"sig":"MEUCIBTqHnvK8Ra7RRhEtKeEzUcLI2DbFhO/DE202l24kNmkAiEA9TAzlHSiKi9Xl+O2/Db1t76F4IskaU6iY+KGKnLZ3qo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":868557},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.6.2.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node scripts/sanitize-api-docs.js","docs:dev":"vitepress dev docs","examples":"npm run build:bundle && vite","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":". ../.env 2>/dev/null; storybook dev -p ${PORT:-6006} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p 9052"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/9f1da542cb66c6afad5a27d88a973852/graphty-layout-1.6.2.tgz","_integrity":"sha512-1HaMYlK6KiqbGmSDN0iUA+VUuHGZoi2JF3+xS/aoa2cHRdF1wwlD9FTuZREny/fSXDJ8hD6pDul3LD3e6fL6Fg==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.19.1","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.6.2_1789162240109_0.5601333898931302","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@graphty/layout","version":"1.7.0","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.7.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"3775ee22cb473714ded6fc8d826e800c83b3a905","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.7.0.tgz","fileCount":290,"integrity":"sha512-Je+oWhnxyR96wV4/9XWnrKbNWDPROifqKOly3jeuM7FelDX9Aj/6kJEYcceQVAsCNjWr7U1ZUbGYgEYLg3Vp4Q==","signatures":[{"sig":"MEQCIFAUYKa/0eC3kAeT0wmnA1dgd3G+8O4UqA68R1RpjP46AiAaQcchCQAUTUi0IW3l0sHdQJwfD29qvTdfcM2Ld25WJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB+ZS6Dlkp932B52vwI05WcPaQSFU0m0P0L9lmR2Kl1rAiAtfSr7T7dRccoq8gJdIx0urZV8Hv6kixoquYGVcGOcOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1262201},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.7.0.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node scripts/sanitize-api-docs.js","docs:dev":"vitepress dev docs","examples":"npm run build:bundle && vite","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":". ../.env 2>/dev/null; storybook dev -p ${PORT:-6006} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p 9052"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/39b1ef00814a2f848ead1fb3edae368e/graphty-layout-1.7.0.tgz","_integrity":"sha512-Je+oWhnxyR96wV4/9XWnrKbNWDPROifqKOly3jeuM7FelDX9Aj/6kJEYcceQVAsCNjWr7U1ZUbGYgEYLg3Vp4Q==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.19.1","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.7.0_1789886819075_0.34761054516524204","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@graphty/layout","version":"1.8.0","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.8.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"281fc2da9ee29a7b37fc97fdfbc3d5a000eb4042","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.8.0.tgz","fileCount":290,"integrity":"sha512-ghCaUBMSY7wje+4Ss3wf1MyKZ/UOlSPfnu3CyWTW1YeZT27jlQPDyMjUNPCdLURBE5NgXmipaTV+NsvExo33UQ==","signatures":[{"sig":"MEUCIQD3W190Q3KxL6THo9jcqmSI/2bga3vbtYqEyAfZGlRj+QIgcuEotc53wveQnu/Bv92mZwLGyLZVZoBM0e5mEq7AtmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDzrIeRRB5GT85qoMAJp39Ag5CT80dX5jRJQKZNcKiuOAiEAzlQVOmtUGdATquvKx4VSv3yarysh9YUjPNgwOfHFchk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1263790},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.8.0.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node scripts/sanitize-api-docs.js","docs:dev":"vitepress dev docs","examples":"npm run build:bundle && vite","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":". ../.env 2>/dev/null; storybook dev -p ${PORT:-6006} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p 9052"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/27bf47cccbcc770cc64cca936d89383b/graphty-layout-1.8.0.tgz","_integrity":"sha512-ghCaUBMSY7wje+4Ss3wf1MyKZ/UOlSPfnu3CyWTW1YeZT27jlQPDyMjUNPCdLURBE5NgXmipaTV+NsvExo33UQ==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.19.1","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.0.2"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.8.0_1789958008592_0.736523160401541","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@graphty/layout","version":"1.8.1","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.8.1","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"1581e1800b9d19720aa985c38e92b123c4b3c0b8","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.8.1.tgz","fileCount":290,"integrity":"sha512-wNCxfCrBSDBTMW4Xmb2ZXhgWy1dIEOFtzBDm0Cak4b/god/YVpd9O2Hlyb6bAne2N8BT6biAIIaaNQST2Ubfzg==","signatures":[{"sig":"MEUCIDrWHH1JUChmBmAUQMlF36KHEOUjr5R+N78Pfp0W11EMAiEApqRSsUYcBNGRGPHvFrT7KJnVhj6OaQiVy+5CXQBg37o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC/407gu8yq/9/IYs/ndTpT2PL8XtpZaU/piZLiM10UTAIgXt8oPnoxJQ2+L4fU+bOeuPc2p2JZ6W1MbQ18jMNwPWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1268603},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.8.1.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node scripts/sanitize-api-docs.js","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","examples":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/a0a3a68764c004e37b1572f940bdf4d0/graphty-layout-1.8.1.tgz","_integrity":"sha512-wNCxfCrBSDBTMW4Xmb2ZXhgWy1dIEOFtzBDm0Cak4b/god/YVpd9O2Hlyb6bAne2N8BT6biAIIaaNQST2Ubfzg==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.0.2"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.8.1_1790251302771_0.11940951625729479","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"@graphty/layout","version":"1.8.2","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.8.2","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"9782f060641decd2efa980d6b0553fd624a55540","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.8.2.tgz","fileCount":285,"integrity":"sha512-KT17qnO2S5+EEoesDSORNyB0OVb9wuQTxXserGQeL69FIL8Whe00wKSsSG+oiiEQCbWIlEbejA+O13io7vd/fQ==","signatures":[{"sig":"MEUCIDc+lsxoSQR5uDYede9295w4y5Mk7qmNAxuDrNHDH0s+AiEAqIxFKYEbkmGjEdSJKbnMZP2GyvAMSAECl8rt711HfSE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDHMjbVNeu5gBwKyCdU1Lo93fsQAj3CLE9nwWbl5ayWYAIgQ2cWb2hHk1ZYE0XxC7K6a72Z6KUtCs0Qi2whFn437Yg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":988455},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.8.2.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node scripts/sanitize-api-docs.js","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","examples":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/689ce03eae6ce08fcb8e88f248153ee3/graphty-layout-1.8.2.tgz","_integrity":"sha512-KT17qnO2S5+EEoesDSORNyB0OVb9wuQTxXserGQeL69FIL8Whe00wKSsSG+oiiEQCbWIlEbejA+O13io7vd/fQ==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.0.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.8.2_1790276530879_0.35149699941898116","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@graphty/layout","version":"1.9.0","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.9.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"edaaee579691493610e39e66ad5b0e7254707063","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.9.0.tgz","fileCount":290,"integrity":"sha512-s4mM7/N5wcf/nuNeGI/8VVhV0IP9SYh3nmLVeNncej6LsOgcV9qwNbJeieOAVuBgpeoCIQT11dsKQl4s2xzs6g==","signatures":[{"sig":"MEYCIQD+qwQ0zacLYr4ogFpdld8glXvKn3p9bcZXvrHo0HqtfwIhAJ5rZM9mfSXedhNrQNQZ7q1ghYTBHQeByAy7Jy+ELy9p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCFlH+c3u0AK11V6xxkJQozG41AO0rMypL34QtbeMCIWwIhAKKzYPIA+Ht8PATrB98HSqT/fov/Eg4qEcJlALJcKrmO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":998944},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.9.0.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","examples":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/da7b3a83a8b43aaccc7ef42c9c0c3793/graphty-layout-1.9.0.tgz","_integrity":"sha512-s4mM7/N5wcf/nuNeGI/8VVhV0IP9SYh3nmLVeNncej6LsOgcV9qwNbJeieOAVuBgpeoCIQT11dsKQl4s2xzs6g==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.0.4","@graphty/graph-samples":"^0.1.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.9.0_1790310010373_0.29899168247860874","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"@graphty/layout","version":"1.9.1","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.9.1","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"26f9f99253a69b2698270498888fb7a9a39c616f","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.9.1.tgz","fileCount":290,"integrity":"sha512-npo+tsXW5l6GMwnqlq/uS4bxbSQ5xyqHJymAqTkBzMn1dxFub/rt3SlU/00R/6RYfUpCsjP5gjHddfmabSW9Zg==","signatures":[{"sig":"MEUCIQCCX6GMvU7yZPr1HuSvpruIzWMzL+7XQnqjqAXFYmhdrwIgHPo7DNWqrGNYIWeAEdn6IU6iN6DEjq8RP/8PDpLovqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDUOVf13nyDpRpZ8qO/6OrfddcNfe/vj4OAwRedy+6augIgVtZ5v8ry2KyvzTCapo/NvdlfPRuiRGg4uSWAshetAdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":998944},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.9.1.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","examples":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/17d71eada93a37ba8a5a39bd7dd5ee0c/graphty-layout-1.9.1.tgz","_integrity":"sha512-npo+tsXW5l6GMwnqlq/uS4bxbSQ5xyqHJymAqTkBzMn1dxFub/rt3SlU/00R/6RYfUpCsjP5gjHddfmabSW9Zg==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.0.5","@graphty/graph-samples":"^0.1.2"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.9.1_1790383741673_0.05757636308282499","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@graphty/layout","version":"1.10.0","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.10.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"18738e92097c4baf68a2f54407a29831bdc52417","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.10.0.tgz","fileCount":300,"integrity":"sha512-K3vCMynxiaEtpRWX0oRzEqIMyCqTLE9TfGlrJ5v5a1n727iUrcTlFUl5/qObqwHQrJay0gm2Yt1hrEks2AnbBA==","signatures":[{"sig":"MEYCIQCxlB/ubVwrTHZD3VTvq/I3YvA18akV3S9ljslTfMGDHgIhAJRacSqcl9JkheUT9er3gBfg+XG1cTTPrZdo6zP1vr9i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB+w8cewOikzM9rukcf+D5/XWGEGslSkK2CbgaAsnzaDAiEA8/qX+1DPq1bDmeYfqVDHPrvHDJFFHovWamg9HZcHTQM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1026835},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.10.0.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","examples":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/4254f9826ef98fe2b9a620fc35a857aa/graphty-layout-1.10.0.tgz","_integrity":"sha512-K3vCMynxiaEtpRWX0oRzEqIMyCqTLE9TfGlrJ5v5a1n727iUrcTlFUl5/qObqwHQrJay0gm2Yt1hrEks2AnbBA==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.0.5","@graphty/graph-samples":"^0.1.2"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.10.0_1790446194648_0.42915369150200333","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@graphty/layout","version":"1.10.1","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.10.1","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"9df80a310b3036d11cbb07350fe115745a787316","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.10.1.tgz","fileCount":300,"integrity":"sha512-P1P1C0eicO4gzZBsS9atQvjeJNDvpma+M9j1/kz6lx7hiaIJrk3l9FbZ1aqoYR9sVM/NLNChPtZ9YlNsphHMHA==","signatures":[{"sig":"MEYCIQD1VlyDrOgoLON2e6N36o0vR8UbamnHxS51hFt1fM6XiwIhAOeQVx5KZDm0Q7adgyk05dEjtc6XRRUTUWnt0GR6gIEH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDqO1vpPI3dpvFeEE2/vPxYMYM+7zpbVkcaBRnyWqbCxAIhAOLh/Bx12OpzNySiyGCyfyIJXNHcX0ree6qBGfPvn5O0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1026835},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.10.1.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"tsc","serve":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","examples":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/93d7465f0ae768cb700cc32a71eedb7d/graphty-layout-1.10.1.tgz","_integrity":"sha512-P1P1C0eicO4gzZBsS9atQvjeJNDvpma+M9j1/kz6lx7hiaIJrk3l9FbZ1aqoYR9sVM/NLNChPtZ9YlNsphHMHA==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.0.6","@graphty/graph-samples":"^0.1.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.10.1_1790498740386_0.7488318369165721","host":"s3://npm-registry-packages-npm-production"}},"1.10.2":{"name":"@graphty/layout","version":"1.10.2","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.10.2","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"7da5a541361dd5518d6d7f72f00c2e9f07c82abd","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.10.2.tgz","fileCount":300,"integrity":"sha512-x/upe2LplSfEgrJKgNMjJ+HRRb+iOu8w380AxzZFXveaXhYnePlCg6pGXBu/uq7GWW70Ap1vUmVzauXd8jrAAg==","signatures":[{"sig":"MEUCIGLrEWCxYlsFIpb2ksHwZ0amLRYalPgbjhxBwm3mwmFkAiEAmS0bDLastdB4dcHXICup3tK+JPtNNP5LGDsqnhdS2I0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCZsFihPuCyuIhUTjFcUrKyGt+HUV4+5cVxoCsArUlZYQIhALjsKhjvzDS8K9Yv0LUyJsYuBoxPeA/5xB0WKkvUn5IW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1026907},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.10.2.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","serve":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","watch":"tsc --watch","commit":"cz","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","examples":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/8689e5cf63cfd5aa759c2bf405bc62a4/graphty-layout-1.10.2.tgz","_integrity":"sha512-x/upe2LplSfEgrJKgNMjJ+HRRb+iOu8w380AxzZFXveaXhYnePlCg6pGXBu/uq7GWW70Ap1vUmVzauXd8jrAAg==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.0.7","@graphty/graph-samples":"^0.1.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","vitest":"^3.2.4","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^18.0.1","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"^3.2.4","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.10.2_1790503121001_0.6909030644788838","host":"s3://npm-registry-packages-npm-production"}},"1.10.3":{"name":"@graphty/layout","version":"1.10.3","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.10.3","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"b7bf158a1e1a46966c689f45558d752600b83b56","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.10.3.tgz","fileCount":300,"integrity":"sha512-VdzFOZrAYY9zqumbfMaZDUyhpnO4RQtYygF0E6Se/QJM0q7EhchwI8F/8EY4fILs273gI1hATV7lOtFc349csw==","signatures":[{"sig":"MEQCIEdeBcniTiwQETuLBVbhua1OxJPWPJpPe5kPkEBMowTkAiAFo4QsQlcrb8CLjfSFeQEV33avM7fq+rFzWtZifL2Hsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDT8IjA8cnDZMF+XJWvnbanV+8cyBDiKFyOytzc7FoC8wIgXT4IWo6hbpwmFSRdEEGSyGMkdND0Bb9YUZ4kLLxgsk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1026912},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.10.3.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","serve":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","examples":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && pnpm run lint:knip -- --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/2391f90a3e4f6a598eb57bd4d5c47f4f/graphty-layout-1.10.3.tgz","_integrity":"sha512-VdzFOZrAYY9zqumbfMaZDUyhpnO4RQtYygF0E6Se/QJM0q7EhchwI8F/8EY4fILs273gI1hATV7lOtFc349csw==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.1.0","@graphty/graph-samples":"^0.1.5"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.10.3_1790554989082_0.6551804258076326","host":"s3://npm-registry-packages-npm-production"}},"1.10.4":{"name":"@graphty/layout","version":"1.10.4","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.10.4","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"0f6f7334cd79a7d9f949acdd0ce4c1f81d891b16","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.10.4.tgz","fileCount":300,"integrity":"sha512-YPb+HJn0VM/KD+kZIxewDf8CyqrT9EXEnkBcawxzBCJUQ6C5GSElnsHkYK+kTaVjoF/i+Do3w/NvZsVe1EauDg==","signatures":[{"sig":"MEQCIHmomXn+DohP4gjYugrFUC91jL7oRkuERr4afsh2c0YTAiAoerub3FL12ItV8bXc8XKLghqyr9brAkEgAYTxt/HJnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGXY+hJisRRSv3iIeX6eOd9WbpAiIcGtAIAwh0TdizICAiEA7oMsRWCkgcQ4HtF+gL+hfhHviD8gO7r2OJmgQ39TF/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.10.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1026910},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.10.4.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","serve":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","examples":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && ./tools/run-knip.sh --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/58fd5e102247481ebb3f06287fba5a70/graphty-layout-1.10.4.tgz","_integrity":"sha512-YPb+HJn0VM/KD+kZIxewDf8CyqrT9EXEnkBcawxzBCJUQ6C5GSElnsHkYK+kTaVjoF/i+Do3w/NvZsVe1EauDg==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.1.1","@graphty/graph-samples":"^0.1.6"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.10.4_1790558444639_0.5031350359758988","host":"s3://npm-registry-packages-npm-production"}},"1.10.5":{"name":"@graphty/layout","version":"1.10.5","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@1.10.5","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"5caae3ee91d07cd419d06b0f7a817be4d81fb9cb","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-1.10.5.tgz","fileCount":300,"integrity":"sha512-SKInm0z8P2wi0qMQcIqrzSpuFt4Jy9CFXSydZ7Jx7GZjfrL7jIW0i4wKZZy+XwitQ3oZq4rtbgGGvQCd91Gg4A==","signatures":[{"sig":"MEQCIBJOyqeH6F1O1G4VJYrwNpogwxXQj2bkxwK5EK+d2OrPAiBICeTTcqR6xFc/jSaHSPpbdQcODkdtKEDVBlGNNq8pcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB5slCVO+ECeMoqe2gmrNKjV7H2BWnGky1zbPsH1qmkAAiEA5z0SOluqmCMiiRloVKFBlq6YdTExmNnP2OnIsunYlFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@1.10.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1026910},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-1.10.5.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","serve":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","examples":"npm run build:bundle && vite --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && ./tools/run-knip.sh --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"npm run build:bundle && node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/cef3a0c31986433bb229bae1b21dbc89/graphty-layout-1.10.5.tgz","_integrity":"sha512-SKInm0z8P2wi0qMQcIqrzSpuFt4Jy9CFXSydZ7Jx7GZjfrL7jIW0i4wKZZy+XwitQ3oZq4rtbgGGvQCd91Gg4A==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{"example":"examples"},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.1.2","@graphty/graph-samples":"^0.1.7"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_1.10.5_1790586982469_0.6792521735030288","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@graphty/layout","version":"2.0.0","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@2.0.0","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"7fec147bf661a2dc70f0d5c67065caeaf517682b","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-2.0.0.tgz","fileCount":195,"integrity":"sha512-POMSNp1oVcpS0hi/L7KlK5fQ/lFf7L8W6chiFn6FVxXm4RZf6sa0AZoA8Eovj5f6EzH3j8r1hMygTNZLTMES0Q==","signatures":[{"sig":"MEUCIQDboe+a+5Lh3QqmTpgZS0Y91tCyAO8YtvjeoThf+eoXyQIgaK6cdFrdqKh62PKoZphRImQFi0qyKJQfd/wA9qAk1xw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB12XZ2H3rFYrguXAjHPfTa6IsCJMkk1y1WVBFRTLxCeAiEAg8hSwMughCD2gJse06f4sjJX8xQiTq/UkAejLpdngXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":965954},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-2.0.0.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && ./tools/run-knip.sh --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/220cb46a4fc43200a92f95e76064caf0/graphty-layout-2.0.0.tgz","_integrity":"sha512-POMSNp1oVcpS0hi/L7KlK5fQ/lFf7L8W6chiFn6FVxXm4RZf6sa0AZoA8Eovj5f6EzH3j8r1hMygTNZLTMES0Q==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{},"_nodeVersion":"22.23.3","dependencies":{"@graphty/graph-format":"^1.2.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","@graphty/graph-samples":"^0.1.8","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_2.0.0_1790713976788_0.3723005082909361","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@graphty/layout","version":"2.0.1","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@2.0.1","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"d14b28225b190cae7cf4b160ef9d5fc65bab7de9","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-2.0.1.tgz","fileCount":195,"integrity":"sha512-BKbG93iUOdnG1v58PVVF9xsAX6/1LeeGO+ozVYXrHiLMTw8cn7H9iCxeJM+lPP9ardpxxn9iwYibbxq/GkgqUw==","signatures":[{"sig":"MEUCIQCu+ZKDb8P4nyUI2QwDIkT8KCe0JmZFOHZcB9YouG6s1QIgTYW639c5zr8vdkaoM3ck9Wj7th6WKEulNDnig4BQFHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD8+QZYEF7Y2vi3bUsoD27QATt5lWy7blog1TVBdxwX3QIhAMmUZ4wdAQUDZRpi2xVP24IFwvEpPO2/dTMsd71bOHmK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":965954},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-2.0.1.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && ./tools/run-knip.sh --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/919913becd5730bffd986d103daad389/graphty-layout-2.0.1.tgz","_integrity":"sha512-BKbG93iUOdnG1v58PVVF9xsAX6/1LeeGO+ozVYXrHiLMTw8cn7H9iCxeJM+lPP9ardpxxn9iwYibbxq/GkgqUw==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.20.0","description":"graph layout algorithms based on networkx","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.2.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","@graphty/graph-samples":"^0.1.9","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_2.0.1_1790731397699_0.8852627526372197","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@graphty/layout","version":"2.0.2","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@2.0.2","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"dc3c1cf1c0a24f8c82ce3ccd142d8948cbc6294b","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-2.0.2.tgz","fileCount":195,"integrity":"sha512-SStepfL60YQfMKFt1adrQ2qValyOEs/2v2K1S+iKKmZez27iNQuzWFZOMWixpeSv2muLyujc0BUCXhjLqlV1Uw==","signatures":[{"sig":"MEUCIQDXTPNyiOoo9sbS/ObUAQ1QSrEH4E2lhDnk0d4WmlL5uwIgF65QYc4+nmOClTgOzyGwEAOSrXD1FYZOczHVLfGB/wU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBjug1SZWpGIFCvBlxzBoyxmSCIPWxQEmSldyRknNtwFAiEAqDwccvfvZkmUMRjSTDW9bkrchfTGDpp9v+Nj75nsCig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":965931},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-2.0.2.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && ./tools/run-knip.sh --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/00f401936358be3e1a3f742196a7058a/graphty-layout-2.0.2.tgz","_integrity":"sha512-SStepfL60YQfMKFt1adrQ2qValyOEs/2v2K1S+iKKmZez27iNQuzWFZOMWixpeSv2muLyujc0BUCXhjLqlV1Uw==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.21.0","description":"graph layout algorithms based on networkx","directories":{},"_nodeVersion":"22.23.3","dependencies":{"@graphty/graph-format":"^1.2.2"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","@graphty/graph-samples":"^0.1.10","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_2.0.2_1790798033161_0.6206215360512934","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@graphty/layout","version":"2.0.3","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@2.0.3","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"e7f5ef497ca82209c6cb20bbb45776ef108dc09e","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-2.0.3.tgz","fileCount":195,"integrity":"sha512-3bRGtSgVJx5Qi45qlnd/hLNMOKOrkeoatNZrqnRtntwMV/7g47C7leqcnQXnVXu9kU9E4bvPSs77gb0LS/3YlA==","signatures":[{"sig":"MEYCIQCZBra46R5+WV7rldH6dzBUxJ9nG8ZwL8lVs4i/Ngy69gIhAOrY7nfsaIBCfY0KqTi7ZPEbmVXbMMROj18VVklyPO61","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHmmRIiVqDB14sg/Zq+tKP7Y2sYM5nfwOd25yyqwZGnJAiB4kLVfqfgLuxpBYOGD7vCYPzp5tNre9rSoPJ0SN7h34w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":965931},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-2.0.3.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && ./tools/run-knip.sh --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/f28f9495cbff209e000be6fb25cb088d/graphty-layout-2.0.3.tgz","_integrity":"sha512-3bRGtSgVJx5Qi45qlnd/hLNMOKOrkeoatNZrqnRtntwMV/7g47C7leqcnQXnVXu9kU9E4bvPSs77gb0LS/3YlA==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.21.0","description":"graph layout algorithms based on networkx","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@graphty/graph-format":"^1.2.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","@graphty/graph-samples":"^0.1.11","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_2.0.3_1790824073498_0.7003719096347294","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@graphty/layout","version":"2.0.4","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@2.0.4","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"821a0b14307ef1820a5a451c3abd3b46d9e493a5","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-2.0.4.tgz","fileCount":195,"integrity":"sha512-yjhwBhQooYWHCBgFLAYAU00cZuqZIqExPm3mvZoGPwbLzFsvC++6aT4u+Yw1eUpVId7ThYjPtj7MoYwxlhAeuw==","signatures":[{"sig":"MEQCIF7XbfGrRn6Mxsyqxx1rs7dx6lPB39slDD3g6WdBkBevAiBY/bbO9u+0oIS48fYlARzYWAFLtVmpJ97x6/e90FuAfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGjMqRxIx6DxLhvrWvMgAjNv2yPZkCYA78fN9vk3vOSjAiEArM876ea754QwuM92DqBKPnu+Nnsd0AFpVuLAJ1q9CYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":967411},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-2.0.4.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && ./tools/run-knip.sh --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/afb672778ab4d82caf1e97772540717e/graphty-layout-2.0.4.tgz","_integrity":"sha512-yjhwBhQooYWHCBgFLAYAU00cZuqZIqExPm3mvZoGPwbLzFsvC++6aT4u+Yw1eUpVId7ThYjPtj7MoYwxlhAeuw==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.21.0","description":"graph layout algorithms based on networkx","directories":{},"_nodeVersion":"22.23.3","dependencies":{"@graphty/graph-format":"^1.2.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","@graphty/graph-samples":"^0.1.12","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_2.0.4_1790861982481_0.4907667462871297","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@graphty/layout","version":"2.0.5","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@2.0.5","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"b395871ef239863fcbb5d7ad5ce82bce5737fb5d","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-2.0.5.tgz","fileCount":195,"integrity":"sha512-aAXiE+sko7XRHFn2d3Qo6f2K2DoYXO8jYN4kx7z34YMVGYVPZ1LkD/r0I3CA4ZAi7DYeGW90IYbpKoXsCAs0Gg==","signatures":[{"sig":"MEUCIQCsjEiIsYq+Z0FGeoQka0ke2w0btZnmjZMbX6s+EliQ9gIgMjgMoyNZvigB9Q5hTt4LSJCdmNBknYJpynUsUBbF9no=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHisOwJtD/OgGoTdKeg5ct/q56b9UxC0Za2TF/VvdcPSAiEA1ZNezQuoyqkOYJUkKmD8Tknaj520rg11JWX8IzEi8Do=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@2.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":967411},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-2.0.5.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && ./tools/run-knip.sh --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/8cd93e43755f22f77c27103ec60aba23/graphty-layout-2.0.5.tgz","_integrity":"sha512-aAXiE+sko7XRHFn2d3Qo6f2K2DoYXO8jYN4kx7z34YMVGYVPZ1LkD/r0I3CA4ZAi7DYeGW90IYbpKoXsCAs0Gg==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.21.0","description":"graph layout algorithms based on networkx","directories":{},"_nodeVersion":"22.23.3","dependencies":{"@graphty/graph-format":"^1.2.5"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","@graphty/graph-samples":"^0.1.13","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_2.0.5_1790911888164_0.42656446021592975","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@graphty/layout","version":"2.0.6","keywords":["graph","layout","networkx","network"],"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","_id":"@graphty/layout@2.0.6","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"161a6b18a3ba021c14b9a588066195fd93fe167e","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-2.0.6.tgz","fileCount":195,"integrity":"sha512-/BjxebUcITQvliOIW92k7vIw95j1nYJ8FttW5nrvjQiJjP5f6lDh6ONEvEvvHdXUAh3vzPcOCFBFNvXKnPYZZw==","signatures":[{"sig":"MEYCIQCCPQz186l8xgyodDbuE0XGf1hMLXblSkvtkDqaIMhH5AIhAKKXYgEGzj4sItuQB4J7fGMIMSij03zVHgS+Qxg9mq5S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH9tS26n5yO6tuH2RpswSmqt5E14Js+nYY7XYBqOX2VOAiEAgCIZVxvKCQqCX0qlW7xNzIi0ATVfv9jy55STXXeiEEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@2.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":967411},"main":"dist/layout.js","type":"module","_from":"file:graphty-layout-2.0.6.tgz","types":"dist/layout.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && ./tools/run-knip.sh --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"_resolved":"/tmp/e6639d223fa476a34b6f61b4501ffb8e/graphty-layout-2.0.6.tgz","_integrity":"sha512-/BjxebUcITQvliOIW92k7vIw95j1nYJ8FttW5nrvjQiJjP5f6lDh6ONEvEvvHdXUAh3vzPcOCFBFNvXKnPYZZw==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.21.0","description":"graph layout algorithms based on networkx","directories":{},"_nodeVersion":"22.23.3","dependencies":{"@graphty/graph-format":"^1.2.6"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","@graphty/graph-samples":"^0.1.14","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/layout_2.0.6_1790917467752_0.9536941337808402","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"_id":"@graphty/layout@2.0.7","bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"dist":{"shasum":"7777674c274c25f6dfbefc9067fe81cd391d660e","tarball":"https://registry.npmjs.org/@graphty/layout/-/layout-2.0.7.tgz","fileCount":195,"integrity":"sha512-inNOcSpw8PcMgZCFz2Ma5GMqcYZRk3t8HgbadPLVFYnW7HrWPy4LY+0hdJcsWqexsEuIs1VsNU7m8jkAL9krKA==","signatures":[{"sig":"MEYCIQCTspw/sh1MSU3uFDmVTZKUnMliYR2sbm/KLzp+qla6pgIhAPAQAWEtPhR91X9C4jfSnITg4k+qpn9uIWXaf7cPK2N5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDa5fOCaqmPz2etm5G0w+Z1cBARik4F18uQ4EaYLU769AIgBCce/i4b5sLqoYaehMU0z9jj0m8ltGsounRGaJU6IIc="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@graphty%2flayout@2.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":967411},"main":"dist/layout.js","name":"@graphty/layout","type":"module","_from":"file:graphty-layout-2.0.7.tgz","types":"dist/layout.d.ts","author":{"name":"Adam Powers","email":"apowers@ato.ms"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"exports":{".":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"license":"MIT","scripts":{"dev":"tsc --watch","lint":"eslint && tsc --noEmit","test":"vitest","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","watch":"tsc --watch","test:ui":"vitest --ui","coverage":"vitest run --coverage","docs:api":"typedoc && node ../tools/sanitize-api-docs.js docs/api/generated","docs:dev":"vitepress dev docs --port ${PORT:?start it through servherd, which sets PORT} --strictPort","lint:fix":"eslint --fix","test:run":"vitest run","build:all":"npm run build && npm run build:bundle","lint:knip":"cd .. && ./tools/run-knip.sh --workspace layout","storybook":"storybook dev -p ${PORT:?start it through servherd, which sets PORT} --host ${HOST:-localhost} ${HTTPS_CERT_PATH:+--https --ssl-cert $HTTPS_CERT_PATH --ssl-key $HTTPS_KEY_PATH} --no-open","typecheck":"tsc --noEmit","docs:build":"npm run docs:api && vitepress build docs","docs:watch":"npm run docs:api && (npm run docs:api:watch & npm run docs:dev & wait)","build:bundle":"node scripts/build-bundle.js","docs:preview":"vitepress preview docs --port ${PORT:?start it through servherd, which sets PORT}","ready:commit":"npm run build && npm run lint && npm run test:run","test:coverage":"vitest run --coverage","build:gh-pages":"node scripts/build-gh-pages.js","docs:api:watch":"typedoc --watch","build-storybook":"storybook build","coverage:preview":"npx serve coverage -p ${PORT:?start it through servherd, which sets PORT}"},"version":"2.0.7","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7a58af5e-0bbd-47af-ae70-47c40ce64a04"}},"homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","keywords":["graph","layout","networkx","network"],"_resolved":"/tmp/08d26ec95b9285eac3533f665db921b1/graphty-layout-2.0.7.tgz","_integrity":"sha512-inNOcSpw8PcMgZCFz2Ma5GMqcYZRk3t8HgbadPLVFYnW7HrWPy4LY+0hdJcsWqexsEuIs1VsNU7m8jkAL9krKA==","repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"_npmVersion":"11.21.0","description":"graph layout algorithms based on networkx","directories":{},"maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"_nodeVersion":"22.23.3","dependencies":{"@graphty/graph-format":"^1.2.6"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","three":"^0.182.0","eslint":"^9.29.0","vitest":"4.1.11","typedoc":"^0.28.15","chromatic":"^11.0.0","happy-dom":"^20.8.9","storybook":"^9.0.11","vitepress":"^1.6.3","@vitest/ui":"4.1.11","typescript":"^5.3.3","@types/three":"^0.182.0","@storybook/test":"^8.6.14","semantic-release":"^24.2.7","@vitest/coverage-v8":"4.1.11","@storybook/html-vite":"^9.0.11","@semantic-release/git":"^10.0.1","@storybook/addon-docs":"^9.0.11","@graphty/graph-samples":"^0.1.14","typedoc-plugin-markdown":"^4.9.0","typedoc-vitepress-theme":"^1.1.2","@chromatic-com/storybook":"^4.0.0","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@graphty/graph-format":"^1.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/layout_2.0.7_1790978714505_0.7328936092763505"}}},"time":{"created":"2025-06-09T06:11:22.789Z","modified":"2026-10-02T22:05:14.968Z","1.0.0":"2025-06-09T06:11:23.085Z","1.0.1":"2025-06-09T06:31:43.783Z","1.1.0":"2025-06-28T21:21:11.874Z","1.1.1":"2025-07-12T03:14:51.766Z","1.2.0":"2025-07-12T23:18:39.502Z","1.2.1":"2025-07-13T21:49:07.015Z","1.2.2":"2025-07-13T21:59:43.389Z","1.2.3":"2025-07-17T00:18:01.513Z","1.2.4":"2025-07-18T03:39:27.704Z","1.2.5":"2025-07-18T07:53:41.400Z","1.2.6":"2025-07-18T08:14:40.325Z","1.2.7":"2025-07-18T08:51:53.886Z","1.2.8":"2025-07-18T15:57:55.118Z","1.2.9":"2025-07-25T05:57:01.624Z","1.3.2":"2026-01-03T06:31:20.245Z","1.4.0":"2026-01-04T08:18:38.855Z","1.5.0":"2026-01-07T08:04:48.231Z","1.5.1":"2026-01-08T07:46:02.126Z","1.6.0":"2026-01-08T17:19:08.651Z","1.6.1":"2026-01-09T07:21:13.489Z","1.6.2":"2026-09-11T21:30:40.285Z","1.7.0":"2026-09-20T06:46:59.163Z","1.8.0":"2026-09-21T02:33:28.709Z","1.8.1":"2026-09-24T12:01:42.908Z","1.8.2":"2026-09-24T19:02:10.985Z","1.9.0":"2026-09-25T04:20:10.497Z","1.9.1":"2026-09-26T00:49:01.766Z","1.10.0":"2026-09-26T18:09:54.857Z","1.10.1":"2026-09-27T08:45:40.497Z","1.10.2":"2026-09-27T09:58:41.105Z","1.10.3":"2026-09-28T00:23:09.200Z","1.10.4":"2026-09-28T01:20:44.725Z","1.10.5":"2026-09-28T09:16:22.574Z","2.0.0":"2026-09-29T20:32:56.880Z","2.0.1":"2026-09-30T01:23:17.824Z","2.0.2":"2026-09-30T19:53:53.270Z","2.0.3":"2026-10-01T03:07:53.597Z","2.0.4":"2026-10-01T13:39:42.587Z","2.0.5":"2026-10-02T03:31:28.382Z","2.0.6":"2026-10-02T05:04:27.826Z","2.0.7":"2026-10-02T22:05:14.627Z"},"bugs":{"url":"https://github.com/graphty-org/graphty-monorepo/issues"},"author":{"name":"Adam Powers","email":"apowers@ato.ms"},"license":"MIT","homepage":"https://github.com/graphty-org/graphty-monorepo/tree/master/layout#readme","keywords":["graph","layout","networkx","network"],"repository":{"url":"git+https://github.com/graphty-org/graphty-monorepo.git","type":"git","directory":"layout"},"description":"graph layout algorithms based on networkx","maintainers":[{"name":"apowers313","email":"apowers@ato.ms"}],"readme":"# @graphty/layout\n\n[![CI](https://github.com/graphty-org/graphty-monorepo/actions/workflows/ci.yml/badge.svg)](https://github.com/graphty-org/graphty-monorepo/actions/workflows/ci.yml)\n[![Coverage Status](https://coveralls.io/repos/github/graphty-org/graphty-monorepo/badge.svg?branch=master)](https://coveralls.io/github/graphty-org/graphty-monorepo?branch=master)\n[![npm version](https://img.shields.io/npm/v/@graphty/layout.svg)](https://www.npmjs.com/package/@graphty/layout)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Documentation](https://img.shields.io/badge/docs-vitepress-blue)](https://graphty.app/docs/layout/api/generated/)\n[![Storybook](https://img.shields.io/badge/storybook-interactive%20demos-ff4785)](https://graphty.app/storybook/layout/)\n\n**[View Interactive Storybook ->](https://graphty.app/storybook/layout/)**\n\nLayout is a TypeScript library for positioning nodes in graphs. It's a TypeScript port of the [layout algorithms](https://networkx.org/documentation/stable/reference/drawing.html) from the Python [NetworkX](https://networkx.org/documentation/stable/) library.\n\n## Features\n\nEvery layout takes a frozen [`@graphty/graph-format`](https://www.npmjs.com/package/@graphty/graph-format) snapshot and\nan options object, and returns a `LayoutResult`: a flat `Float32Array` with `dim` (2 or 3) values per node, row `i`\nbelonging to node index `i`. Each is a top-level export:\n\n- `random` - Places nodes randomly in a unit square\n- `circular` - Places nodes on a circle\n- `shell` - Places nodes in concentric circles (shells)\n- `fruchtermanReingold` - The Fruchterman-Reingold spring layout, with attractions and repulsions\n- `forceAtlas2` - ForceAtlas2, a force-directed layout for large and scale-free graphs\n- `arf` - Attractive and repulsive forces\n- `kamadaKawai` - Minimises a cost based on shortest-path lengths\n- `spectral` - Uses eigenvectors of the graph's Laplacian matrix\n- `spiral` - Places nodes along a spiral\n- `grid` - Rows and columns on an evenly spaced lattice, in node order\n- `radial` - Concentric rings by hop distance from a root node\n- `bipartite` - Two straight lines, for bipartite graphs\n- `multipartite` - One line per layer\n- `bfs` - One line per breadth-first-search level\n- `planar` - No edge crossings, for planar graphs\n\nAdditionally, the library includes steppable force simulations (`createSimulation`, `ForceAtlas2Simulation`,\n`FruchtermanReingoldSimulation`) that a host can advance frame by frame, and helpers that convert a layout result to\nan id-keyed map or to a scene position column.\n\nLayout 2.0.0 removed the id-keyed functions (`circularLayout`, `springLayout`, `forceatlas2Layout` and the rest)\nand the graph generators; see [Migrating from 1.x](#migrating-from-1x). `indexed` is a deprecated alias of the\nsnapshot layouts, kept until 3.0.0.\n\n## Installation\n\n```bash\nnpm install @graphty/layout @graphty/graph-format\n```\n\n## Quick Start\n\nBuild a snapshot, lay it out, and map the rows back to your node ids:\n\n<!-- doc-check -->\n\n```typescript\nimport { GraphBuilder } from \"@graphty/graph-format\";\nimport { circular, toPositionMap } from \"@graphty/layout\";\n\nconst builder = new GraphBuilder({ directed: false });\nbuilder.addEdge(\"a\", \"b\");\nbuilder.addEdge(\"b\", \"c\");\nbuilder.addEdge(\"c\", \"a\");\nbuilder.addEdge(\"c\", \"d\");\nconst s = builder.freeze();\n\nconst result = circular(s, { scale: 100 });\nconsole.log(result.dim, result.n); // 2 4\n// A Float32Array [x0, y0, x1, y1, ...] in node-index order\nconsole.log(result.positions);\n\nconst byId = toPositionMap(result, s.ids);\nconsole.log(byId.a); // [100, 0]: node \"a\" as [x, y]\n```\n\n## The graph\n\nA layout reads a `GraphSnapshot` from `@graphty/graph-format`. Build one with `GraphBuilder` (ids are strings or\nnumbers; node indices follow first appearance), load one from typed arrays with `fromEdgeArrays`, or import a file with\n[`@graphty/graph-io`](https://www.npmjs.com/package/@graphty/graph-io).\n\nA layout treats a directed snapshot as undirected. Edge weights, when a layout reads them, are the snapshot's own\n(`weight: true`) or a numeric edge column named in the options.\n\nCode that still holds a `nodes()` / `edges()` object or a plain node list converts it once with `toLayoutSnapshot`:\n\n<!-- doc-check -->\n\n```typescript\nimport { spectral, toLayoutSnapshot } from \"@graphty/layout\";\n\nconst graph = {\n    nodes: () => [0, 1, 2, 3],\n    edges: (): [number, number][] => [\n        [0, 1],\n        [1, 2],\n        [2, 3],\n        [3, 0],\n    ],\n};\nconst s = toLayoutSnapshot(graph); // the undirected snapshot of the object\nconst result = spectral(s);\nconsole.log(result.n); // 4\n```\n\n## Generated graphs\n\n[`@graphty/graph-samples/generators`](../graph-samples/README.md) produces seeded graphs as typed arrays that\n`fromEdgeArrays` freezes in one call. Their ground-truth columns (a community, a layer, a bipartite side) arrive as node\ncolumns that a layout can name:\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { barabasiAlbertGraph, gridGraph, randomDagGraph } from \"@graphty/graph-samples/generators\";\nimport { forceAtlas2, fruchtermanReingold, multipartite } from \"@graphty/layout\";\n\nconst grid = fromEdgeArrays(gridGraph({ rows: 5, cols: 5 }));\nconst springs = fruchtermanReingold(grid, { iterations: 100, seed: 42 });\n\nconst hubs = fromEdgeArrays(barabasiAlbertGraph({ n: 200, m: 2, seed: 42 }));\nconst fa2 = forceAtlas2(hubs, { maxIter: 200, scalingRatio: 2, gravity: 1, dissuadeHubs: true, seed: 42 });\n\nconst dag = fromEdgeArrays(randomDagGraph({ layers: [3, 4, 3], p: 0.5, seed: 1 }));\nconst layered = multipartite(dag, { subsets: \"layer\" }); // one column per value of the u32 \"layer\" column\n\nconsole.log(springs.n, fa2.n, layered.n); // 25 200 10\n```\n\n## Layouts\n\nEvery example below builds its graph with a graph-samples generator; any snapshot works the same way.\n\n### Random\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { completeGraph } from \"@graphty/graph-samples/generators\";\nimport { random } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(completeGraph({ n: 10 }));\nconst result = random(s, { seed: 42 });\n// each node in [0, 1) x [0, 1); for random, `center` is the lowest corner of that cell\nconsole.log(result.positions.length); // 20\n```\n\n### Circular\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { cycleGraph } from \"@graphty/graph-samples/generators\";\nimport { circular } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(cycleGraph({ n: 12 }));\nconst result = circular(s, { scale: 2, center: [10, 10] });\nconsole.log(result.n); // 12 nodes evenly spaced on a circle of radius 2 around (10, 10)\n```\n\n### Shell\n\nShells are listed innermost first, as arrays of node indices or as the name of a `u32` node column whose equal values\nform one shell:\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { plantedPartitionGraph, starGraph } from \"@graphty/graph-samples/generators\";\nimport { shell } from \"@graphty/layout\";\n\n// the hub alone in the centre, the rim around it\nconst star = fromEdgeArrays(starGraph({ n: 8 }));\nconst hubFirst = shell(star, { nlist: [[0], [1, 2, 3, 4, 5, 6, 7]] });\n\n// one shell per planted community\nconst groups = fromEdgeArrays(plantedPartitionGraph({ groups: 3, groupSize: 10, pIn: 0.5, pOut: 0.02, seed: 7 }));\nconst byCommunity = shell(groups, { nlist: \"community\" });\n\nconsole.log(hubFirst.n, byCommunity.n); // 8 30\n```\n\n### Fruchterman-Reingold (spring)\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { erdosRenyiGraph } from \"@graphty/graph-samples/generators\";\nimport { fruchtermanReingold } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(erdosRenyiGraph({ n: 20, p: 0.2, seed: 42 }));\nconst result = fruchtermanReingold(s, {\n    k: null, // optimal distance between nodes; default 1 / sqrt(n)\n    iterations: 50,\n    seed: 42,\n});\nconsole.log(result.n); // 20\n```\n\n### ForceAtlas2\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { barabasiAlbertGraph } from \"@graphty/graph-samples/generators\";\nimport { forceAtlas2 } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(barabasiAlbertGraph({ n: 50, m: 3, seed: 42 }));\nconst result = forceAtlas2(s, {\n    maxIter: 100,\n    jitterTolerance: 1,\n    scalingRatio: 2,\n    gravity: 1,\n    strongGravity: false,\n    distributedAction: false,\n    dissuadeHubs: true, // good for scale-free graphs\n    linlog: false, // logarithmic attraction\n    weight: null, // true for the snapshot's weights, or an edge column name\n    seed: 42,\n});\nconsole.log(result.n); // 50\n```\n\n### ARF\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { completeGraph } from \"@graphty/graph-samples/generators\";\nimport { arf } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(completeGraph({ n: 10 }));\nconst result = arf(s, {\n    scaling: 1,\n    a: 1.1, // spring force; must be larger than 1\n    maxIter: 1000,\n    seed: 42,\n});\nconsole.log(result.n); // 10\n```\n\n### Kamada-Kawai\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { wheelGraph } from \"@graphty/graph-samples/generators\";\nimport { kamadaKawai } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(wheelGraph({ n: 8 }));\nconst result = kamadaKawai(s, {\n    dist: null, // node-to-node target distances; default the shortest-path lengths\n    pos: null, // start positions, `dim` values per node; default a circle in 2D, a seeded random cube in 3D\n    weight: null, // true for the snapshot's weights, or an edge column name\n});\nconsole.log(result.n); // 8\n```\n\n### Spectral\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { gridGraph } from \"@graphty/graph-samples/generators\";\nimport { spectral } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(gridGraph({ rows: 6, cols: 6 }));\nconst result = spectral(s); // the grid's structure survives in the spectral embedding\nconsole.log(result.n); // 36\n```\n\n### Spiral\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { cycleGraph } from \"@graphty/graph-samples/generators\";\nimport { spiral } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(cycleGraph({ n: 50 }));\nconst result = spiral(s, { resolution: 0.35, equidistant: true });\nconsole.log(result.n); // 50\n```\n\n### Grid and radial\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { balancedTreeGraph } from \"@graphty/graph-samples/generators\";\nimport { grid, radial } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(balancedTreeGraph({ branching: 2, height: 3 }));\nconst lattice = grid(s, { columns: 5 }); // node order, five per row\nconst rings = radial(s, { root: 0 }); // rings by hop distance from node index 0; default the busiest node\nconsole.log(lattice.n, rings.n); // 15 15\n```\n\n### Bipartite\n\n`top` names the nodes of the first line, as a node mask (bit `i` of word `i >> 5` set means node `i`) or as the name of\na `bool` node column. The default is the even node indices.\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { completeBipartiteGraph } from \"@graphty/graph-samples/generators\";\nimport { bipartite } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(completeBipartiteGraph({ a: 4, b: 6 })); // node indices 0-3 are the first set\nconst top = new Uint32Array(Math.ceil(s.nodeCount / 32));\nfor (let i = 0; i < 4; i++) {\n    top[i >> 5] |= 1 << (i & 31);\n}\nconst result = bipartite(s, { top, align: \"vertical\", aspectRatio: 4 / 3 });\nconsole.log(result.n); // 10\n```\n\n### Multipartite\n\nLayers are arrays of node indices, or the name of a `u32` node column; the default is the column `\"subset\"`.\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { pathGraph } from \"@graphty/graph-samples/generators\";\nimport { multipartite } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(pathGraph({ n: 6 }));\nconst result = multipartite(s, {\n    subsets: [\n        [0, 1],\n        [2, 3],\n        [4, 5],\n    ],\n    align: \"horizontal\",\n});\nconsole.log(result.n); // 6\n```\n\n### BFS\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { starGraph } from \"@graphty/graph-samples/generators\";\nimport { bfs } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(starGraph({ n: 10 }));\nconst result = bfs(s, { start: 0, align: \"vertical\" }); // node index 0 is the hub\nconsole.log(result.n); // 10\n```\n\n### Planar\n\n`planar` throws `G is not planar.` when its check rejects the graph:\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { completeGraph, gridGraph } from \"@graphty/graph-samples/generators\";\nimport { planar } from \"@graphty/layout\";\n\nconst grid = fromEdgeArrays(gridGraph({ rows: 4, cols: 4 }));\nconst result = planar(grid);\nconsole.log(result.n); // 16\n\ntry {\n    planar(fromEdgeArrays(completeGraph({ n: 5 })));\n} catch (error) {\n    console.log((error as Error).message); // \"G is not planar.\"\n}\n```\n\n## Common options\n\nEvery layout except `arf` takes these options besides its own. `arf` takes only `dim` and `seed` of them, and its\nresult is not rescaled: the forces settle at their own size, which its `scaling` option sets.\n\n- **dim** (`2 | 3`): values per node; default 2\n- **scale** (number): size of the layout around its centre; default 1\n- **center** (numbers): the centre; missing components are 0; default the origin\n- **seed** (number): seed of a layout that draws random numbers, for reproducible layouts\n\n- **Nodes are indices.** Options that name nodes (`root`, `start`, `top`, `subsets`, `nlist`) take node indices,\n  a node mask or the name of a node column of the snapshot, never node ids. Use `s.ids.indexOf(id)` to find one;\n  for an id that is not in the graph it returns `INVALID_INDEX` (0xffffffff), not -1.\n- **Start positions** (`pos`) are a `Float32Array` of `dim` values per node in index order. For the force layouts\n  and `arf` each `NaN` component is drawn from `seed` and the finite components of the same row are kept;\n  `kamadaKawai` reads `NaN` as 0.\n- **Unplaced nodes**: `shell` and `multipartite` leave the row of a node in no shell or layer as `NaN`, and\n  `toPositionMap` leaves such a node out of its map.\n\n## 3D\n\nPass `dim: 3` and every row holds `x, y, z`:\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { cycleGraph } from \"@graphty/graph-samples/generators\";\nimport { circular, forceAtlas2, fruchtermanReingold } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(cycleGraph({ n: 20 }));\nconst springs3D = fruchtermanReingold(s, { dim: 3, iterations: 50, seed: 42 });\nconst fa3D = forceAtlas2(s, { dim: 3, maxIter: 100, seed: 42 });\nconst sphere = circular(s, { dim: 3 });\nconsole.log(springs3D.positions.length, fa3D.dim, sphere.dim); // 60 3 3\n```\n\n## TypeScript Types\n\n```text\nLayoutResult   { positions: Float32Array; dim: 2 | 3; n: number }   row i = node index i\nPositionMap    Record<NodeId, number[]>                            the id-keyed form (toPositionMap)\nNodeId         string | number\n```\n\n## Position helpers\n\nA `LayoutResult` converts to the other forms a host needs:\n\n<!-- doc-check -->\n\n```typescript\nimport { GraphBuilder } from \"@graphty/graph-format\";\nimport {\n    circular,\n    fromPositionColumn,\n    fromPositionMap,\n    rescaleInPlace,\n    toPositionColumn,\n    toPositionMap,\n} from \"@graphty/layout\";\n\nconst builder = new GraphBuilder({ directed: false });\nbuilder.addEdge(\"a\", \"b\");\nbuilder.addEdge(\"b\", \"c\");\nconst s = builder.freeze();\nconst result = circular(s);\n\nconst map = toPositionMap(result, s.ids); // { a: [x, y], b: [x, y], c: [x, y] }\n// id-keyed map -> flat array; the fill callback writes the row of every node the map does not give\nconst flat = fromPositionMap(map, s.ids, 2, (i, out) => out.set([0, 0], 2 * i));\nrescaleInPlace(flat, 2, 1); // rescale and recentre the flat array in place\nconst column = toPositionColumn(result, 100, [0, 0, 0]); // stride 3, scene units: v * scale + center\nconst again = fromPositionColumn(column, 2, 100, [0, 0, 0]); // the inverse\nconsole.log(flat.length, column.length, again.length); // 6 9 6\n```\n\n## Steppable simulations\n\nBesides the one-shot layouts, the package exports steppable force simulations that run over a snapshot and a\n`Float32Array` you own: three floats per node (`x, y, z` in your scene units), read once at `load()` and updated in\nplace by every `step()`. That is the contract a host needs to animate a layout frame by frame, pin nodes and drag them\nwhile the forces keep running.\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { barabasiAlbertGraph } from \"@graphty/graph-samples/generators\";\nimport { createSimulation, seedPositions } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(barabasiAlbertGraph({ n: 100, m: 2, seed: 42 })); // an undirected snapshot\nconst positions = new Float32Array(3 * s.nodeCount).fill(NaN); // the array you own: stride 3, scene units\nseedPositions(s, positions, 42, 2, 100, null, \"fa2\"); // draws every NaN row from seed 42 into [-100, 100)\nconst sim = createSimulation(\"forceatlas2\", { scale: 100, maxIter: 300 });\nsim.load(s, positions);\nwhile (!sim.settled) {\n    sim.step(); // one iteration; positions holds the new scene coordinates after every call\n}\nsim.dispose();\n```\n\n- **Types**: `\"forceatlas2\"` runs `ForceAtlas2Simulation` (the published ForceAtlas2 laws;\n  `new ForceAtlas2Simulation({ compat: \"networkx\" })` reproduces NetworkX's variant); `\"fruchtermanReingold\"` and its\n  alias `\"spring\"` run `FruchtermanReingoldSimulation`; `\"spring-electrical\"` has no CPU simulation and needs an\n  accelerator.\n- **Snapshot**: `load()` requires an undirected snapshot; `toLayoutSnapshot(s)` returns the undirected copy of a\n  directed one.\n- **Options**: the layout's own parameters (`maxIter`, `gravity`, `linlog`, ... for ForceAtlas2; `k`, `iterations`,\n  `fixed` for Fruchterman-Reingold) plus `dim`, `scale`, `center` and the settle rule `settleThreshold` /\n  `settleWindow`: `settled` becomes true at the iteration budget or once the mean free-node displacement has stayed\n  at or below `settleThreshold` times the layout's RMS radius for `settleWindow` iterations.\n- **Units**: the simulation runs in layout units and maps them to your array with `scale` and `center`, so pass the same\n  `scale` / `center` to `seedPositions` and to the simulation. Nothing is rescaled per step: a pinned or dragged node\n  stays where you put it.\n- **Pins and drags**: `setFixed(mask)` takes a bitmask in graph-format's `NodeMask` layout (one bit per node index);\n  `setPosition(index, x, y, z)` writes a node's scene position immediately and reheats the simulation.\n- **Accelerators**: `createSimulation(type, options, accelerator)` returns the accelerator's simulation when it\n  implements the type (`@graphty/webgpu-graph-algorithms` provides one) and the CPU class otherwise. A GPU\n  simulation's `step()` returns a `Promise`, so `await sim.step()` when the simulation may come from either.\n\n## Error Handling\n\nInvalid input throws an `Error` whose message names the problem:\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { completeGraph } from \"@graphty/graph-samples/generators\";\nimport { arf } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(completeGraph({ n: 5 }));\ntry {\n    arf(s, { a: 0.5 });\n} catch (error) {\n    console.log((error as Error).message); // \"The parameter a should be larger than 1\"\n}\n```\n\n## Performance Tips\n\n- **Large graphs**: `circular`, `random` and `grid` are linear; start a force layout from one of\n  them through `pos` and give it fewer iterations, or animate `createSimulation` and stop when `settled`.\n- **Dense graphs**: `spectral` is often clearer than a force layout.\n- **Workers**: a snapshot and a `LayoutResult` are typed arrays, so both transfer to and from a Web Worker without\n  copying.\n\n<!-- doc-check -->\n\n```typescript\nimport { fromEdgeArrays } from \"@graphty/graph-format\";\nimport { erdosRenyiGraph } from \"@graphty/graph-samples/generators\";\nimport { circular, fruchtermanReingold } from \"@graphty/layout\";\n\nconst s = fromEdgeArrays(erdosRenyiGraph({ n: 2000, p: 0.002, seed: 3 }));\nconst start = circular(s);\nconst refined = fruchtermanReingold(s, { pos: start.positions, iterations: 20 });\nconsole.log(refined.n); // 2000\n```\n\n## Migrating from 1.x\n\nLayout 2.0.0 removed the positional, id-keyed layout functions and the graph generators. Each layout is now the\nfunction that 1.x exported under the `indexed` namespace, at the top level; `indexed` stays as a deprecated alias\nuntil 3.0.0. To keep 1.x's id-keyed output, convert: `toPositionMap(circular(s, options), s.ids)`, with\n`s = toLayoutSnapshot(graph)` for a 1.x graph object.\n\n| 1.x                                                                                 | 2.x                                                                          |\n| ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |\n| `randomLayout(G, center, dim, seed)`                                                | `random(s, { center, dim, seed })`                                           |\n| `circularLayout(G, scale, center, dim)`                                             | `circular(s, { scale, center, dim })`                                        |\n| `gridLayout(G, columns, scale, center)`                                             | `grid(s, { columns, scale, center })`                                        |\n| `shellLayout(G, nlist, scale, center, dim)`                                         | `shell(s, { nlist, scale, center, dim })`, `nlist` as node indices           |\n| `spiralLayout(G, scale, center, dim, resolution, equid.)`                           | `spiral(s, { scale, center, dim, resolution, equidistant })`                 |\n| `spectralLayout(G, scale, center, dim, seed)`                                       | `spectral(s, { scale, center, dim, seed })`                                  |\n| `planarLayout(G, scale, center, dim, seed)`                                         | `planar(s, { scale, center, dim, seed })`                                    |\n| `radialLayout(G, root, scale, center)`                                              | `radial(s, { root, scale, center })`, `root` as a node index                 |\n| `bfsLayout(G, start, align, scale, center)`                                         | `bfs(s, { start, align, scale, center })`, `start` as a node index           |\n| `bipartiteLayout(G, nodes, align, scale, center, aspect)`                           | `bipartite(s, { top, align, scale, center, aspectRatio })`, `top` a mask     |\n| `multipartiteLayout(G, subsetKey, align, scale, center)`                            | `multipartite(s, { subsets, align, scale, center })`                         |\n| `kamadaKawaiLayout(G, dist, pos, weight, scale, center, dim)`                       | `kamadaKawai(s, { dist, pos, weight, scale, center, dim })`                  |\n| `forceatlas2Layout(G, pos, maxIter, ...)`                                           | `forceAtlas2(s, { pos, maxIter, ... })`                                      |\n| `fruchtermanReingoldLayout(G, k, pos, fixed, iterations, ...)`, `springLayout(...)` | `fruchtermanReingold(s, { k, pos, fixed, iterations, ... })`, `fixed` a mask |\n| `arfLayout(G, pos, scaling, a, maxIter, seed)`                                      | `arf(s, { pos, scaling, a, maxIter, seed })`                                 |\n\nThe graph generators (`completeGraph(n)`, `cycleGraph`, `starGraph`, `wheelGraph`, `gridGraph`, `randomGraph`,\n`bipartiteGraph`, `scaleFreeGraph`) are in `@graphty/graph-samples/generators`: `completeGraph({ n })` and the\nothers under their own names, `randomGraph` as `erdosRenyiGraph`, `bipartiteGraph` as `randomBipartiteGraph` and\n`scaleFreeGraph` as `barabasiAlbertGraph`. Their `SampleGraph` becomes a snapshot with `fromEdgeArrays`.\n\nWhere the results differ from 1.x:\n\n- `kamadaKawai` reads a zero weight as a zero distance, gives an unreachable pair the ideal distance 1e6 instead of\n  Infinity, rejects a negative or NaN weight, and starts a 2D layout from the unit circle about the origin, so its\n  positions differ from `kamadaKawaiLayout`'s.\n- The layouts take `dim` 2 or 3 only; 1.x's `circularLayout`, `fruchtermanReingoldLayout`, `springLayout` and\n  `kamadaKawaiLayout` also accepted other dimensions.\n- `fruchtermanReingold` rejects a negative or infinite `k`, which `fruchtermanReingoldLayout` ran through its older\n  loop, and leaves a pinned single node where `pos` put it (1.x moved it to `center`).\n- `bfs`, `bipartite` and `multipartite` centre a horizontal layout on `center`; 1.x's functions centred it on\n  `[center[1], center[0]]`. With the default centre (the origin) nothing moves.\n- `multipartite` without `subsets` reads the node column `subset` and throws when the snapshot has none, as a\n  snapshot from `toLayoutSnapshot` does not; 1.x's `multipartiteLayout(G)` put every node in one layer. Pass the\n  layers as `subsets`.\n- Positions are `Float32Array` values; 1.x returned f64 numbers.\n\n## Development\n\n```bash\nnpm run build            # Build TypeScript to dist/\nnpm run build:bundle     # Build the bundled ES module (dist/layout.js)\nnpm run build:all        # Both\nnpm run test:run         # Run the tests once\nnpm run lint             # ESLint and type checking\nnpm run storybook        # The stories (start it through servherd, which sets PORT)\n```\n\n## Contributing\n\nThis project is a TypeScript port of the NetworkX Python library. For contributions and issues, visit the\n[GitHub repository](https://github.com/graphty-org/graphty-monorepo/tree/master/layout).\n\n## License\n\nMIT License - see LICENSE file for details.\n","readmeFilename":"README.md"}