{"_id":"@3plate/graph","_rev":"14-3d218fb74cf1fb5f21867758148be38c","name":"@3plate/graph","dist-tags":{"latest":"0.1.19"},"versions":{"0.1.2":{"name":"@3plate/graph","version":"0.1.2","license":"GPL-3.0","_id":"@3plate/graph@0.1.2","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"a1012fea543f3c2d59fe7dbe433cea21836e523e","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.2.tgz","fileCount":5,"integrity":"sha512-Aa9JA2/22kAohgdlAeLEe9XIDz+9ddqZU3BLyQsIMVkpK9d41u1eQ5qEb/PcYwGqjo9EH4fBMPSEWq5UjJoUhw==","signatures":[{"sig":"MEUCIQCZXFIRz1FI41YxErNh8Q27RPhUWZ5S5TpgEDTiFtCWpgIgd6FzuxBdN0hYw6lsiGRtNu4/xjQ5ej+4XYyF3fYrToI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42797},"main":"./dist/index.js","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3f5d96501d39bbb48fe070f97dd8ee12313d4262","scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:demo":"pnpm --filter demo-react dev","dev:site":"pnpm --filter demo-site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter demo-site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"3plate-nathan","email":"nathan@3plate.com"},"repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"10.9.2","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"22.16.0","dependencies":{"@3plate/graph-vue":"workspace:*","@3plate/graph-core":"workspace:*","@3plate/graph-react":"workspace:*","@3plate/graph-angular":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.2_1765503620286_0.35393592851519284","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@3plate/graph","version":"0.1.4","license":"GPL-3.0","_id":"@3plate/graph@0.1.4","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"7c8e74c2779f1f5aba8aa9548b4918dfe0c9f65e","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.4.tgz","fileCount":5,"integrity":"sha512-Mr0a7HGNi2EORWUdlty5nDXDu2H3jcbkALvw1G8iT5+MWOYghRi08dkU3Y52VNlcnojFEneUPzsBwr0JOHybNA==","signatures":[{"sig":"MEYCIQCfJruVUT0zLW51s4zrWRuwG6CqOHmMSD4UMxrLLGla6wIhAO3W71gUM7oc4l6hpP8TjzU9bt/deQwyl7E++eHYw5k+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42737},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.4.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:demo":"pnpm --filter demo-react dev","dev:site":"pnpm --filter demo-site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter demo-site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/dfaf752cd9827034261882a33fb3cfc0/3plate-graph-0.1.4.tgz","_integrity":"sha512-Mr0a7HGNi2EORWUdlty5nDXDu2H3jcbkALvw1G8iT5+MWOYghRi08dkU3Y52VNlcnojFEneUPzsBwr0JOHybNA==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.7.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@3plate/graph-vue":"0.1.4","@3plate/graph-core":"0.1.4","@3plate/graph-react":"0.1.4","@3plate/graph-angular":"0.1.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.4_1765768422940_0.4588770647770779","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@3plate/graph","version":"0.1.5","license":"GPL-3.0","_id":"@3plate/graph@0.1.5","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"6a606d96e720daccdf7f376e6c982f7591bd269f","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.5.tgz","fileCount":5,"integrity":"sha512-qjonUzxJvPIIHcf6J39KCyq6KhnDonlEjPBIKvNwjhcfEr04Y8GhVpIT9dGdAIgRv5Zimm2rDD9JxpSPw6panw==","signatures":[{"sig":"MEUCIQDYQNV84mK1kWT54nZHC66+rnbFGvElBUwt21U1v0OPhQIgNI/4IQEFETnB6TB+GaPJE7NUm6Whixg1IrcjC8KMJMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42793},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.5.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:demo":"pnpm --filter demo-react dev","dev:site":"pnpm --filter demo-site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter demo-site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/2886fbb92a27fa7557e5b73cccd9a5e8/3plate-graph-0.1.5.tgz","_integrity":"sha512-qjonUzxJvPIIHcf6J39KCyq6KhnDonlEjPBIKvNwjhcfEr04Y8GhVpIT9dGdAIgRv5Zimm2rDD9JxpSPw6panw==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.7.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@3plate/graph-vue":"0.1.5","@3plate/graph-core":"0.1.5","@3plate/graph-react":"0.1.5","@3plate/graph-angular":"0.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.5_1766450727024_0.1750173679826914","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@3plate/graph","version":"0.1.6","license":"GPL-3.0","_id":"@3plate/graph@0.1.6","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"490126cd0c84941aa7201b05f784a6bc90e8e37e","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.6.tgz","fileCount":5,"integrity":"sha512-CQJBxupZC1B1yXgQ7iUJbENow3N9v80Yf5lOBMo/1jv7L3ug5SZ1GAwlXX259YTwE03DEeXKSzEkUcc4z3uMEg==","signatures":[{"sig":"MEUCIQDpu3pxIQK1woq6McgyfztdXzBmFg5+7Zlk+KcSgDSxQwIgdNtl9p2iCS9oNfofr9H9xNNDLl+ZftwNgE1pZFqbuV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42566},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.6.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:site":"pnpm --filter site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/8cb82c01148d994534ec55541082c23e/3plate-graph-0.1.6.tgz","_integrity":"sha512-CQJBxupZC1B1yXgQ7iUJbENow3N9v80Yf5lOBMo/1jv7L3ug5SZ1GAwlXX259YTwE03DEeXKSzEkUcc4z3uMEg==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.7.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@3plate/graph-vue":"0.1.6","@3plate/graph-core":"0.1.6","@3plate/graph-react":"0.1.6","@3plate/graph-angular":"0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.6_1766683284597_0.010953946305239937","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@3plate/graph","version":"0.1.7","license":"GPL-3.0","_id":"@3plate/graph@0.1.7","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"4eac82413e5c8ccbb780291254c6a97b71909760","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.7.tgz","fileCount":5,"integrity":"sha512-hiYPdIceCYoy4tWxa+KDruorWXAs2aoK/0OeBhGhElgLdI2EMoWKIJLHnPboYnMiYgPHLb7bewRL0jEqh69bdw==","signatures":[{"sig":"MEUCIGvdAu9cnYaoxORHDzk+PCcsZw4Wwzi3mnhiP6S7H+u4AiEAn1H/1HcAi3Xpxb3GLVhE8c+vZm+japziaPgklgtV6kU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42566},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.7.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:site":"pnpm --filter site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/30399afabd915fd443b3c35c35853879/3plate-graph-0.1.7.tgz","_integrity":"sha512-hiYPdIceCYoy4tWxa+KDruorWXAs2aoK/0OeBhGhElgLdI2EMoWKIJLHnPboYnMiYgPHLb7bewRL0jEqh69bdw==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.7.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@3plate/graph-vue":"0.1.7","@3plate/graph-core":"0.1.7","@3plate/graph-react":"0.1.7","@3plate/graph-angular":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.7_1766691944067_0.540270300570511","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@3plate/graph","version":"0.1.9","license":"GPL-3.0","_id":"@3plate/graph@0.1.9","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"cc4269ceb03e647a94f2b894d3b2284134a53cfc","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.9.tgz","fileCount":5,"integrity":"sha512-Y07QIfoyw1NDJFpkV9zC11n/hY2IrxBEtuekulUIl/sjVFl9lnXL3RP+rWYEQ9wxAcKOwsed8KiUpYZ6zpmocg==","signatures":[{"sig":"MEQCIA/2w53UzbL6rp2oUm3Dp16TtVUvELvxG/bU3bhopIY3AiBAAaxtKqncFHogS1TGJdgMdY112I7f6j7OhIX3R5atVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47573},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.9.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:site":"pnpm --filter site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/658b4ce620936587c1235ea96b01722d/3plate-graph-0.1.9.tgz","_integrity":"sha512-Y07QIfoyw1NDJFpkV9zC11n/hY2IrxBEtuekulUIl/sjVFl9lnXL3RP+rWYEQ9wxAcKOwsed8KiUpYZ6zpmocg==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.7.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@3plate/graph-vue":"0.1.9","@3plate/graph-core":"0.1.9","@3plate/graph-react":"0.1.9","@3plate/graph-angular":"0.1.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.9_1766723594877_0.9834472039502817","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@3plate/graph","version":"0.1.10","license":"GPL-3.0","_id":"@3plate/graph@0.1.10","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"b2c82427fd63b1cff045ba2e477588bae38c9e8b","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.10.tgz","fileCount":5,"integrity":"sha512-bocM5VbUclezi0fh+IJ1L9La3IW6JZP6t9wQP+1qHmOgQ8K7IZkaIEFwjqzBw3bUri9Vu6DFyficoAVEYZdVAA==","signatures":[{"sig":"MEYCIQDORZo8KlTU+t10+RASo7koLeGfIvR1IuaWn/51lGeCoQIhALqW436sDntjxPU4NiA7GkYZYWO/XUv3+tM+fM/5gqmA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47578},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.10.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:site":"pnpm --filter site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/79d99da74ad62d81658a9aa9d7cf5c87/3plate-graph-0.1.10.tgz","_integrity":"sha512-bocM5VbUclezi0fh+IJ1L9La3IW6JZP6t9wQP+1qHmOgQ8K7IZkaIEFwjqzBw3bUri9Vu6DFyficoAVEYZdVAA==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.7.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@3plate/graph-vue":"0.1.10","@3plate/graph-core":"0.1.10","@3plate/graph-react":"0.1.10","@3plate/graph-angular":"0.1.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.10_1766765570751_0.45424036386718547","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@3plate/graph","version":"0.1.12","license":"GPL-3.0","_id":"@3plate/graph@0.1.12","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"ff425609ef3542aec1d28217a9aa8ea028241c7d","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.12.tgz","fileCount":5,"integrity":"sha512-uBR47lwaloqipgz/1WFTPJIfy7cb7KDqAT3kT5F2GwWkfNVOM5MUvvMebhB0MBK62E9RJt5V/3jRJtytklMn5Q==","signatures":[{"sig":"MEYCIQCV+BE+YEJQEqJDq1wg+jBvrQJhn2myOa5QjUdTPIqYZAIhAONUJcd2AxCXlL8Ert7QJLC7VyWrj9hgeUknC9ckNX7B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47762},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.12.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:site":"pnpm --filter site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/14a81e807609beaaa9884ed6b1877164/3plate-graph-0.1.12.tgz","_integrity":"sha512-uBR47lwaloqipgz/1WFTPJIfy7cb7KDqAT3kT5F2GwWkfNVOM5MUvvMebhB0MBK62E9RJt5V/3jRJtytklMn5Q==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.7.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@3plate/graph-vue":"0.1.12","@3plate/graph-core":"0.1.12","@3plate/graph-react":"0.1.12","@3plate/graph-angular":"0.1.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.12_1767111646751_0.06488315775809617","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@3plate/graph","version":"0.1.14","license":"GPL-3.0","_id":"@3plate/graph@0.1.14","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"fbf7b462baf15e61e8e9fe37be01b498dc860dc5","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.14.tgz","fileCount":5,"integrity":"sha512-ydd4/2MHZZeiIc8JmT0/ULpIVfoW98jnUzvxVpyNFatsPb9NB2xh2DHikx/jVFLjBcGRd9m3R1EN8Oa0fYoyXA==","signatures":[{"sig":"MEQCIEPw+ygdM54KyVUeMxEpQz3peQfODK7bZ5hz/CoOIEKVAiAM8v2SvTP7B61e1yE2y5FEQDZvF+hnSG1NQbMRT0+hLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47762},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.14.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:site":"pnpm --filter site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/23a4508448f2a4b843172417d2d2f8d1/3plate-graph-0.1.14.tgz","_integrity":"sha512-ydd4/2MHZZeiIc8JmT0/ULpIVfoW98jnUzvxVpyNFatsPb9NB2xh2DHikx/jVFLjBcGRd9m3R1EN8Oa0fYoyXA==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.10.1","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@3plate/graph-vue":"0.1.14","@3plate/graph-core":"0.1.14","@3plate/graph-react":"0.1.14","@3plate/graph-angular":"0.1.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.14_1772059797579_0.7837956435376348","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@3plate/graph","version":"0.1.15","license":"GPL-3.0","_id":"@3plate/graph@0.1.15","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"04ee58f6ecb67b9544614de5a4db2d99c504414e","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.15.tgz","fileCount":5,"integrity":"sha512-AYkPpzJSqWYYdgmHYWwqllV8AkK4QpaAUVvHDy6j3/mi1u3h2vaXOkhteBGIFrBO+xThqz4Ayu5QLmXphnrW9Q==","signatures":[{"sig":"MEUCICnbJBABgHOwi8UR/6y+ZDV+vXs+pTQ6ZGIip2VsZSwcAiEA0mVczSj0yctT5DB8nbXoBDXPCSPShcL6PgFTW+8f6+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47762},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.15.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:site":"pnpm --filter site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/770b6a8c0b02423d1ba3b334cd36e262/3plate-graph-0.1.15.tgz","_integrity":"sha512-AYkPpzJSqWYYdgmHYWwqllV8AkK4QpaAUVvHDy6j3/mi1u3h2vaXOkhteBGIFrBO+xThqz4Ayu5QLmXphnrW9Q==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.11.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@3plate/graph-vue":"0.1.15","@3plate/graph-core":"0.1.15","@3plate/graph-react":"0.1.15","@3plate/graph-angular":"0.1.15"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.15_1772060491971_0.00144620887497382","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@3plate/graph","version":"0.1.16","license":"GPL-3.0","_id":"@3plate/graph@0.1.16","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"dc8ad4c5f6e24b6e71225495060c398302c7e17d","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.16.tgz","fileCount":5,"integrity":"sha512-9gSpnr7jfmEugyJFCnebvI0kBBY+ZrkKXLKejZvCBU2V8AMNqkWm/G+zq2+6PS6yMwin5/dlsXhuccF/h5yc/w==","signatures":[{"sig":"MEUCIC6Xe1sHaReTct8anFKFCuLee1HF8c2WJPyICXJ8Xz8HAiEA/SoZA1Yk+5Gl6VWTg0IzigAiKPRki6mxd9sunp08lLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47762},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.16.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:site":"pnpm --filter site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/6a8fc2a575d9f388a268248f044e4627/3plate-graph-0.1.16.tgz","_integrity":"sha512-9gSpnr7jfmEugyJFCnebvI0kBBY+ZrkKXLKejZvCBU2V8AMNqkWm/G+zq2+6PS6yMwin5/dlsXhuccF/h5yc/w==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.11.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@3plate/graph-vue":"0.1.16","@3plate/graph-core":"0.1.16","@3plate/graph-react":"0.1.16","@3plate/graph-angular":"0.1.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.16_1772481248001_0.0036763144164588812","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@3plate/graph","version":"0.1.17","license":"GPL-3.0","_id":"@3plate/graph@0.1.17","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"f2b91cebec6a6ef951192293dcae25215ae7877b","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.17.tgz","fileCount":5,"integrity":"sha512-B9z+B3XsPXbpswbs2OwFiszZHfna/m6+wu2fiixO8MTKrdmwuzhETfLV9OQo55diyzjYkG99qAj+Tu4yNCPlrw==","signatures":[{"sig":"MEUCID115lCMIeBu3reDHUBPHq97eitdzLOka6faCzd5BU2RAiEA3P1jyuGXDMMxq0zs4ADefXpV/rPPyvbkL0xjE2zo9a8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47762},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.17.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:site":"pnpm --filter site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/e5714ac83e0a6b2909ad727993a607da/3plate-graph-0.1.17.tgz","_integrity":"sha512-B9z+B3XsPXbpswbs2OwFiszZHfna/m6+wu2fiixO8MTKrdmwuzhETfLV9OQo55diyzjYkG99qAj+Tu4yNCPlrw==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.11.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@3plate/graph-vue":"0.1.16","@3plate/graph-core":"0.1.16","@3plate/graph-react":"0.1.17","@3plate/graph-angular":"0.1.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.17_1772481786996_0.9597016076291924","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@3plate/graph","version":"0.1.18","license":"GPL-3.0","_id":"@3plate/graph@0.1.18","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"homepage":"https://github.com/3plt/graph#readme","bugs":{"url":"https://github.com/3plt/graph/issues"},"dist":{"shasum":"1033ef43003a62453f43b6b9199ab1e06807d3d9","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.18.tgz","fileCount":5,"integrity":"sha512-u4jdXNNZgeflW4SW8Zwkb/ffJUlt+xnlBmihxWnkIlq+xkNhUu32rK9KF2YW0Ui9JUemSgJS1Gx4cpjTH8B+1g==","signatures":[{"sig":"MEQCICW5hjE9fRFi2+cWltOMhl7jueNDawtrbo38LS/asuYeAiBe7z7EPRwRvo87qepRZPHscxRtctvICr+QxzLgC9bV6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47762},"main":"./dist/index.js","type":"module","_from":"file:3plate-graph-0.1.18.tgz","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint . --ext .ts,.tsx,.js,.jsx","test":"pnpm -r test","build":"pnpm --filter './packages/*' build && pnpm build:self","clean":"rm -rf dist packages/*/dist apps/*/dist","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","version":"changeset version","dev:site":"pnpm --filter site dev","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","build:vue":"pnpm --filter @3plate/graph-vue build","changeset":"changeset","build:core":"pnpm --filter @3plate/graph-core build","build:self":"tsup src/index.ts --format cjs,esm","build:site":"pnpm --filter site build","test:watch":"pnpm --filter @3plate/graph-core test:watch","build:react":"pnpm --filter @3plate/graph-react build","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","publish:packages":"changeset publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"_resolved":"/tmp/d8a4013516877e8239f75cadc0c9b3b8/3plate-graph-0.1.18.tgz","_integrity":"sha512-u4jdXNNZgeflW4SW8Zwkb/ffJUlt+xnlBmihxWnkIlq+xkNhUu32rK9KF2YW0Ui9JUemSgJS1Gx4cpjTH8B+1g==","repository":{"url":"git+https://github.com/3plt/graph.git","type":"git"},"_npmVersion":"11.11.0","description":"Graph library with stable layout and incremental updates","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@3plate/graph-vue":"0.1.17","@3plate/graph-core":"0.1.17","@3plate/graph-react":"0.1.18","@3plate/graph-angular":"0.1.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","turbo":"^2.6.1","eslint":"^9.18.0","prettier":"^3.4.2","typescript":"^5.9.3","@changesets/cli":"^2.29.8","eslint-plugin-react":"^7.37.3","@typescript-eslint/parser":"^8.21.0","eslint-plugin-react-hooks":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.21.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.18_1772489142030_0.46779843051301984","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@3plate/graph","version":"0.1.19","description":"Graph library with stable layout and incremental updates","type":"module","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/3plt/graph.git"},"main":"./dist/index.js","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"}},"publishConfig":{"access":"public"},"dependencies":{"@3plate/graph-angular":"0.1.18","@3plate/graph-core":"0.1.18","@3plate/graph-react":"0.1.19","@3plate/graph-vue":"0.1.18"},"devDependencies":{"@changesets/cli":"^2.29.8","@typescript-eslint/eslint-plugin":"^8.21.0","@typescript-eslint/parser":"^8.21.0","eslint":"^9.18.0","eslint-plugin-react":"^7.37.3","eslint-plugin-react-hooks":"^5.1.0","prettier":"^3.4.2","tsup":"^8.5.1","turbo":"^2.6.1","typescript":"^5.9.3"},"scripts":{"clean":"rm -rf dist packages/*/dist apps/*/dist","build":"pnpm --filter './packages/*' build && pnpm build:self","build:self":"tsup src/index.ts --format cjs,esm","build:core":"pnpm --filter @3plate/graph-core build","build:react":"pnpm --filter @3plate/graph-react build","build:vue":"pnpm --filter @3plate/graph-vue build","build:site":"pnpm --filter site build","dev:site":"pnpm --filter site dev","test":"pnpm -r test","test:watch":"pnpm --filter @3plate/graph-core test:watch","lint":"eslint . --ext .ts,.tsx,.js,.jsx","lint:fix":"eslint . --ext .ts,.tsx,.js,.jsx --fix","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md,yml,yaml}\"","changeset":"changeset","version":"changeset version","publish:packages":"changeset publish"},"_id":"@3plate/graph@0.1.19","bugs":{"url":"https://github.com/3plt/graph/issues"},"homepage":"https://github.com/3plt/graph#readme","_integrity":"sha512-TJJVFw23CGnsHOPdyaCeXFEaGc1ylrQjLuV9wsagy1+d9XQQnjwPRRksnmTXS1bSE2Sp+gCMH/jUVqZ1BzDfpQ==","_resolved":"/tmp/648dce65432a13e2da4dbee74edb9c98/3plate-graph-0.1.19.tgz","_from":"file:3plate-graph-0.1.19.tgz","_nodeVersion":"20.20.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-TJJVFw23CGnsHOPdyaCeXFEaGc1ylrQjLuV9wsagy1+d9XQQnjwPRRksnmTXS1bSE2Sp+gCMH/jUVqZ1BzDfpQ==","shasum":"8ff76adf8d27385fa3c4ab7b5b743528be0b17d4","tarball":"https://registry.npmjs.org/@3plate/graph/-/graph-0.1.19.tgz","fileCount":5,"unpackedSize":47762,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@3plate%2fgraph@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAely5z2ENHAiOCUnf2rqmyY0fe5LDH5VUgVh2DxlBmVAiEAzL1SItlRDSlwwpc4sKFQGkts5ATmpBEbac8GYmLrOFY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:62dd6547-92c8-462b-93be-071e84503007"}},"directories":{},"maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/graph_0.1.19_1772747505489_0.6635377718578768"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-12T01:40:20.215Z","modified":"2026-03-05T21:51:45.940Z","0.1.2":"2025-12-12T01:40:20.436Z","0.1.4":"2025-12-15T03:13:43.121Z","0.1.5":"2025-12-23T00:45:27.175Z","0.1.6":"2025-12-25T17:21:24.742Z","0.1.7":"2025-12-25T19:45:44.208Z","0.1.9":"2025-12-26T04:33:15.021Z","0.1.10":"2025-12-26T16:12:50.890Z","0.1.12":"2025-12-30T16:20:46.878Z","0.1.14":"2026-02-25T22:49:57.716Z","0.1.15":"2026-02-25T23:01:32.122Z","0.1.16":"2026-03-02T19:54:08.149Z","0.1.17":"2026-03-02T20:03:07.147Z","0.1.18":"2026-03-02T22:05:42.178Z","0.1.19":"2026-03-05T21:51:45.628Z"},"bugs":{"url":"https://github.com/3plt/graph/issues"},"license":"GPL-3.0","homepage":"https://github.com/3plt/graph#readme","repository":{"type":"git","url":"git+https://github.com/3plt/graph.git"},"description":"Graph library with stable layout and incremental updates","maintainers":[{"name":"3plate-nathan","email":"nathan@3plate.com"}],"readme":"# @3plate/graph\n\nA graph visualization library with **stable layouts** and **incremental updates**. Build interactive directed graphs that maintain their structure as data changes—perfect for visualizing pipelines, workflows, dependency trees, and state machines.\n\n## Why @3plate/graph?\n\nMost graph libraries re-layout the entire graph when data changes, causing nodes to jump around unpredictably. @3plate/graph solves this with:\n\n- **Stable layouts** — Nodes stay in predictable positions as the graph evolves\n- **Incremental updates** — Add, remove, or modify nodes without full re-renders\n- **Railroad-style edges** — Clean, orthogonal routing that avoids crossing nodes\n- **Real-time ingestion** — Stream graph updates from WebSockets or files\n\n## Quick Start\n\n### Vanilla JavaScript\n\n```bash\nnpm install @3plate/graph-core\n```\n\n```typescript\nimport { graph } from '@3plate/graph-core'\n\nconst api = await graph({\n  root: 'my-graph',\n  nodes: [\n    { id: 'a', title: 'Start' },\n    { id: 'b', title: 'Process' },\n    { id: 'c', title: 'End' },\n  ],\n  edges: [\n    { source: 'a', target: 'b' },\n    { source: 'b', target: 'c' },\n  ],\n})\n\n// Update the graph incrementally\napi.update(u => {\n  u.addNodes({ id: 'd', title: 'New Step' })\n  u.addEdges({ source: 'b', target: 'd' })\n})\n```\n\n### React\n\n```bash\nnpm install @3plate/graph-react\n```\n\n```tsx\nimport { Graph } from '@3plate/graph-react'\n\nfunction App() {\n  return (\n    <Graph\n      nodes={[\n        { id: 'a', title: 'Start' },\n        { id: 'b', title: 'Process' },\n        { id: 'c', title: 'End' },\n      ]}\n      edges={[\n        { source: 'a', target: 'b' },\n        { source: 'b', target: 'c' },\n      ]}\n    />\n  )\n}\n```\n\n## Features\n\n### Layout & Rendering\n\n- **Automatic layered layout** — Nodes are positioned in layers based on their connections\n- **Multiple orientations** — Top-to-bottom, bottom-to-top, left-to-right, or right-to-left\n- **SVG rendering** — Crisp graphics at any zoom level\n- **Pan and zoom** — Navigate large graphs with mouse/touch controls\n- **Custom node rendering** — Render any HTML content inside nodes\n\n### Interactivity\n\n- **Edit mode** — Add, remove, and connect nodes with mouse interactions\n- **Click handlers** — Respond to node and edge clicks\n- **Keyboard navigation** — Step through graph history with arrow keys\n- **Selection** — Visual feedback for selected nodes and edges\n\n### Theming\n\n- **Light/dark mode** — Built-in themes with system preference detection\n- **Node types** — Define custom styles per node type\n- **Edge types** — Style edges by category (error, success, etc.)\n- **CSS variables** — Full control over colors, borders, and shadows\n\n### Data Handling\n\n- **History & time-travel** — Navigate through graph states with undo/redo\n- **Real-time ingestion** — Connect to WebSocket or file sources for live updates\n- **Snapshot & update modes** — Replace entire graph or apply incremental changes\n- **Ports** — Define named input/output ports on nodes for precise edge routing\n\n### Graph Features\n\n- **Cycle detection** — Automatically handles graphs with cycles\n- **Edge markers** — Arrow, circle, diamond, and bar markers on edge endpoints\n- **Dummy nodes** — Long edges are split with invisible waypoints for cleaner routing\n- **Configurable spacing** — Control margins, edge spacing, and turn radius\n\n## Packages\n\n| Package                                               | Description                     |\n|-------------------------------------------------------|---------------------------------|\n| [@3plate/graph-core](./packages/core/README.md)       | Framework-agnostic core library |\n| [@3plate/graph-react](./packages/react/README.md)     | React components and hooks      |\n| [@3plate/graph-vue](./packages/vue/README.md)         | Vue 3 components                |\n| [@3plate/graph-angular](./packages/angular/README.md) | Angular components              |\n\n## Configuration\n\n### Graph Options\n\n```typescript\nawait graph({\n  root: 'my-graph',\n  nodes: [...],\n  edges: [...],\n  options: {\n    graph: {\n      orientation: 'LR',        // 'TB' | 'BT' | 'LR' | 'RL'\n      nodeMargin: 20,           // Space between nodes\n      layerMargin: 60,          // Space between layers\n      edgeSpacing: 8,           // Space between parallel edges\n      turnRadius: 8,            // Rounded corner radius for edges\n    },\n    canvas: {\n      width: '100%',\n      height: 600,\n      padding: 40,\n      editable: true,           // Enable edit mode\n      panZoom: true,            // Enable pan and zoom\n      colorMode: 'system',      // 'light' | 'dark' | 'system'\n    },\n  },\n})\n```\n\n### Custom Node Rendering\n\n```typescript\nawait graph({\n  root: 'my-graph',\n  nodes: myNodes,\n  edges: myEdges,\n  options: {\n    canvas: {\n      renderNode: (node) => {\n        const el = document.createElement('div')\n        el.className = 'my-custom-node'\n        el.innerHTML = `<h3>${node.title}</h3><p>${node.description}</p>`\n        return el\n      },\n    },\n  },\n})\n```\n\n### Theming by Type\n\n```typescript\nawait graph({\n  root: 'my-graph',\n  nodes: [\n    { id: 'start', type: 'input', title: 'Start' },\n    { id: 'process', type: 'process', title: 'Process' },\n    { id: 'error', type: 'error', title: 'Error' },\n  ],\n  edges: [...],\n  options: {\n    canvas: {\n      nodeTypes: {\n        input: { border: '#3b82f6' },\n        process: { border: '#8b5cf6' },\n        error: { bg: '#fef2f2', border: '#ef4444', text: '#991b1b' },\n      },\n      edgeTypes: {\n        error: { color: '#ef4444' },\n        success: { color: '#22c55e' },\n      },\n    },\n  },\n})\n```\n\n### Real-time Ingestion\n\n```typescript\n// Connect to a WebSocket for live updates\nawait graph({\n  root: 'my-graph',\n  ingestion: {\n    type: 'websocket',\n    url: 'ws://localhost:8787',\n  },\n})\n\n// Or poll a file/endpoint\nawait graph({\n  root: 'my-graph',\n  ingestion: {\n    type: 'file',\n    url: '/api/graph-updates.ndjson',\n    intervalMs: 1000,\n  },\n})\n```\n\n### Event Handling\n\n```typescript\nawait graph({\n  root: 'my-graph',\n  nodes: [...],\n  edges: [...],\n  events: {\n    nodeClick: (node) => console.log('Clicked:', node),\n    edgeClick: (edge) => console.log('Edge clicked:', edge),\n    addNode: (props, done) => {\n      // Custom logic when user adds a node\n      const newNode = { id: generateId(), ...props }\n      done(newNode)\n    },\n    historyChange: (index, length) => {\n      console.log(`Step ${index + 1} of ${length}`)\n    },\n  },\n})\n```\n\n## API Methods\n\n```typescript\nconst api = await graph({ ... })\n\n// Navigation\napi.nav('first')              // Jump to first state\napi.nav('prev')               // Go to previous state\napi.nav('next')               // Go to next state\napi.nav('last')               // Jump to latest state\n\n// Updates\napi.update(u => {\n  u.addNodes({ id: 'x', title: 'New' })\n  u.deleteNodes('old-node')\n  u.updateNodes({ id: 'x', title: 'Updated' })\n  u.addEdges({ source: 'a', target: 'x' })\n  u.deleteEdges('edge-id')\n  u.describe('Added new node')  // Label for history\n})\n\n// Bulk operations\napi.replaceSnapshot(nodes, edges)\napi.replaceHistory(history)\n\n// Theming\napi.setColorMode('dark')\napi.updateStyles({ nodeTypes: { ... } })\n\n// Cleanup\napi.destroy()\n```\n\n## Development\n\n```bash\n# Install dependencies\npnpm install\n\n# Build all packages\npnpm build\n\n# Run demo site\npnpm dev:site\n\n# Run tests\npnpm test\n```\n\n## Inspiration\n\nThis library is inspired by [IonGraph Web](https://spidermonkey.dev/blog/2025/10/28/iongraph-web.html) from the SpiderMonkey team, which visualizes JavaScript JIT compilation graphs with stable, incremental layouts.\n\n## Contributing\n\nWe welcome contributions! Before submitting a pull request:\n\n1. Read our [Contributing Guidelines](./CONTRIBUTING.md)\n2. Sign the [Contributor License Agreement](./CLA.md)\n3. Follow the code style and testing guidelines\n\n## License\n\n**GNU General Public License v3.0** — see [LICENSE](./LICENSE) for details.\n\n### Why GPL?\n\nWe've chosen GPL-3.0 to ensure improvements to @3plate/graph remain open source:\n\n- ✅ Use in open source projects\n- ✅ Modify and distribute\n- ✅ Commercial use allowed\n- ⚠️ Distributed modifications must also be GPL-3.0\n\n### Commercial Licensing\n\nNeed to use @3plate/graph in proprietary software without GPL restrictions? Commercial licenses are available — contact [nathan@3plate.com](mailto:nathan@3plate.com).\n\n---\n\n**Copyright © 2025 [3Plate LLC](https://www.3plate.com/)**\n","readmeFilename":"README.md"}