{"_id":"parsegraph-viewport","_rev":"203-959b071b96fee58e3760ed8f06e6f9cf","name":"parsegraph-viewport","dist-tags":{"dev":"2.9.27-dev","latest":"2.9.27"},"versions":{"2.0.0-dev":{"name":"parsegraph-viewport","version":"2.0.0-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.25","@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","babel-jest":"^27.5.1","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.13.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^27.5.1","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.8","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.3","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.19","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.2","parsegraph-block":"^4.3.2","parsegraph-blockpainter":"^1.6.6","parsegraph-camera":"^1.4.11","parsegraph-carousel":"2.3.3","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.9","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.0","parsegraph-input":"^1.6.5","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.11","parsegraph-method":"^1.4.22","parsegraph-normalizewheel":"^1.4.7","parsegraph-projector":"^1.13.2","parsegraph-scene":"^2.2.1","parsegraph-showincamera":"^1.7.1","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.8","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","webgl-debug":"^2.0.1"},"_id":"parsegraph-viewport@2.0.0-dev","_integrity":"sha512-GHfQpwwORp20sE9pxfCphlQQ8coSHNO4+0ZvrfBoIs+5e+xN8Tsrq6n0eBzJ+3e5cXqToUg3jrAqKJ3U9sAjHA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-GHfQpwwORp20sE9pxfCphlQQ8coSHNO4+0ZvrfBoIs+5e+xN8Tsrq6n0eBzJ+3e5cXqToUg3jrAqKJ3U9sAjHA==","shasum":"5760f10751b4c091cf9145a8acde86eb5250ac4f","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.0-dev.tgz","fileCount":61,"unpackedSize":9095659,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGh8Xf1BZITSdikrabbdyuR2SNynl0lfsak6BwLu4rKVAiAK4auf6p6fKEcpQXdlTdoJeFp9NCHZYHIJ6FFog/0rcg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZfd0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmosUBAAmaHHUDDYdo6mRu6KbKvdW8bHVk7BeNbixg4t5yyJ/zJTPyRc\r\nTEigtk4sWp9tSKzSaPoQx/CFlue4tXvV1E2KEPDyf7bz5nSEAy1o6DGQk42R\r\nfJBBdjtHJEMoVLQNhHT7DMN0boQ9Kevu6AeWP24tRQzrzTUmJmyLl25uk6KJ\r\nkCQtCjzDPNp6iufpBRgZPon5vb9VxjYu7NShAm2tfwn2twbyAaDEsLQkipDt\r\nT7nI+nPh+H36MNSFAqROwKhhWKxbsmY3DtjyG6zrnQwC9vGG/nH/MVEY/jQv\r\nVq6/SNC7G+ZWy/IrtlPbxkDNShS9Fn+RZfTwwA/CCCzM4odaU5j64iWi2zyF\r\nIjJpnELfi08VWxcpyaIXQLWVQqU7cp+RlG9AdRF7LTkOWIGv6cySCu4lHngn\r\nixmxt5n9t8lPrvAWjOTMMhc/Zfa4K7zPDVyBALAgrcwBOqf2flCJRVQsXBAM\r\nE5CVgLYVuLMptpZDyzPM5ZP1Z4F7kZ4b32fUwcNDQ+Q8j4tEPZdiFY8S/Px3\r\np2LUkqrptMo7QW1x9Gebs+rOimMLGjVhp9V4wifk4Thk9+Cbl9wbsKrNFzeG\r\nTQbNsgP5uTyOaGWG2nWrKctggpvMLPPMnRhgu9jnm+3cUsv+DOgGoiyIOKna\r\nOufiG11fTHYYTR3SYwVh6T6bjroFObNGkHI=\r\n=nn0b\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.0-dev_1650849652054_0.21595559715663937"},"_hasShrinkwrap":false},"2.0.0":{"name":"parsegraph-viewport","version":"2.0.0","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.25","@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","babel-jest":"^27.5.1","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.13.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^27.5.1","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.8","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.3","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.19","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.2","parsegraph-block":"^4.3.2","parsegraph-blockpainter":"^1.6.6","parsegraph-camera":"^1.4.11","parsegraph-carousel":"2.3.3","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.9","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.0","parsegraph-input":"^1.6.5","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.11","parsegraph-method":"^1.4.22","parsegraph-normalizewheel":"^1.4.7","parsegraph-projector":"^1.13.2","parsegraph-scene":"^2.2.1","parsegraph-showincamera":"^1.7.1","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.8","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","webgl-debug":"^2.0.1"},"_id":"parsegraph-viewport@2.0.0","_integrity":"sha512-8jB9LhUNQnveQaUI7KwCDsnw5PW+n/ZIIakhtOPzEjgaUusfUVdg0o5pNYzCD8kjjdLno0UOONgXMRX9b4RsDA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-8jB9LhUNQnveQaUI7KwCDsnw5PW+n/ZIIakhtOPzEjgaUusfUVdg0o5pNYzCD8kjjdLno0UOONgXMRX9b4RsDA==","shasum":"5f09fc4457258c1c0e2f6de03f95245782d36369","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.0.tgz","fileCount":58,"unpackedSize":1496530,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0GkLj6DtI01JRysmtIaYc9AZrjg1moy817gNc9rjrWwIgGAICf+oIcBJCaM4RE39zYHS8VQGBLdkqQq96FqqZoB4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZff/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpi7g/9GkmEGLpIz8uS9jehlaY1J4BK7cW1UzLUvRpqCJV2+H9DCLGC\r\nlpqrd+yNeCuhDEC3gy2B06khjwWb2Z683ilRCKPIHhCo9KjoWS7wyAsHZ2kZ\r\nM/2CLJt0V9FxO16kicT+aPDsf3lO+gRjnqtNQYZJV4JdTiAY4xvUAETHirQ8\r\na+KVgBmP9ss8s834pTUTqM9bRp5cPnY6vE7861PznPa3Eq/vBNjAOnn9ryiD\r\nfz7ttc64kAsrWhLpMdf5OmP3Jr0AMmAVqceHRwnT/oPqcai9rvv7Ojf/SpYz\r\nAlE/sThvnq1gHWdfwJGuxPnAHeVumR1pIJUha8JRcTQqZiAI2pVp97h01yRI\r\nDgR6Hn9XHfDdvtY3B5GrHMS3CK49FBMh919tUbnWI6O1oIqIKlymvv3UcdPq\r\n2APz+/OrLfXdjOZTIuhqCZEZ86kL3ySRLZUGm2qEpnagCGFzoKAqejXE8x55\r\ncGG1SLMoj5IGY2fu2zp0uGCqQTd6vqaWZNbAhpTlWj8cciT4g6xEU6w7bNNG\r\nE/jN/Tk6uVaSuvOuNDZQMppgC5XyFqlqQirPYBVe4uss0eT0vhJmX9mwmB9E\r\nE3nIvbBeL57NlVRaz6H6wqitcMA+pkd60OEpQIDm9WFyJfyUvc+qeQNG+E6e\r\nmqnEY8m6Kf8So2sO9CSDaLzhDst/Xta7898=\r\n=2+6d\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.0_1650849791583_0.02027934417560373"},"_hasShrinkwrap":false},"2.0.1-dev":{"name":"parsegraph-viewport","version":"2.0.1-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.25","@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","babel-jest":"^27.5.1","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.13.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^27.5.1","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.8","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.3","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.19","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.2","parsegraph-block":"^4.3.2","parsegraph-blockpainter":"^1.6.6","parsegraph-camera":"^1.4.11","parsegraph-carousel":"2.3.3","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.9","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.0","parsegraph-input":"2.0.2","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.11","parsegraph-method":"^1.4.22","parsegraph-normalizewheel":"^1.4.7","parsegraph-projector":"^1.13.2","parsegraph-scene":"^2.2.1","parsegraph-showincamera":"^1.7.1","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.8","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","webgl-debug":"^2.0.1"},"_id":"parsegraph-viewport@2.0.1-dev","_integrity":"sha512-n7ZXC+2FqySQ/UirzjuV7nmEYhl5AoMPVTcZfARi9iUs/NRDDLZhh51k/aa2D0pjLLMjEdtzPtQPqdH62G32NA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-n7ZXC+2FqySQ/UirzjuV7nmEYhl5AoMPVTcZfARi9iUs/NRDDLZhh51k/aa2D0pjLLMjEdtzPtQPqdH62G32NA==","shasum":"d67d9093d495d1eab95e7e380c408a6af54ccc53","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.1-dev.tgz","fileCount":46,"unpackedSize":8951501,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEyf9J+XQgSdkEDLd+AfpRy/xH8zhgIxgLenMRii/XkPAiBfP5A7//AFGiep7FihmGUzBmexglcCC//CC8tM2td17Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZf4TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogaA//QB069im4G5fVfdQVxJFvPDh0MVUox5+VTTfpXWKDYiULUMMU\r\nAoLy5ZVbZVPXiEMxfXxnA4j9VtBmO0mmENP/CjOz/PfIfEISF8XQNdOWY26c\r\nMPIMY3namSfP9Sf4s9fzuQ3QB027U02U5igaMNa5mh1BU+jhGG6PMRd76jbF\r\nKzz+CfZybdGKzajBihUpJS8LByvnLAAhmTF5GTqVMvznhuojRnAZttRLS2a9\r\ntf5CCNFxhyMjWBclEn9hhESFRl2zh4/KkIvI/pfBwJDCfGPKoI35IZj/eyBb\r\nwTMgkII9svH2T4u+or/i/kav30OsMrzPWsOK4LXNO/0Js/h//0+xhhG5z6xZ\r\nEFUrw7eoMfxNAw82oBThg8dmmTMRlBxRD6+gi/6NQ18yXvMMjektrZybQfJ+\r\n49BzImnjHPy/GyGamwClqQZ6JaEdKKUfxWnoA/ihGG2qpPwUL/fMZB7LyjnH\r\nYj6NFV2pIO230h2K1kLup0ajAkthRRE0raZShXql/2VdCAIbgnOidk5DOyoc\r\nrISBXHRg7p5uESKtwZDCspelK7F5IG72mAncNL4jbHbHXKHdQbljcUsa1TS+\r\nkwRFCxHh+eL61JArgx0wZiN7ZDe4VziEI9rA0DefYZL+FYM2qOc2UaVRQQdM\r\nG0M/hPBw4npp8QjHbtak6A5ZmrLB4G9gNII=\r\n=3R2/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.1-dev_1650851347100_0.8544518509219359"},"_hasShrinkwrap":false},"2.0.1":{"name":"parsegraph-viewport","version":"2.0.1","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.25","@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","babel-jest":"^27.5.1","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.13.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^27.5.1","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.8","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.3","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.19","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.2","parsegraph-block":"^4.3.2","parsegraph-blockpainter":"^1.6.6","parsegraph-camera":"^1.4.11","parsegraph-carousel":"2.3.3","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.9","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.0","parsegraph-input":"2.0.2","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.11","parsegraph-method":"^1.4.22","parsegraph-normalizewheel":"^1.4.7","parsegraph-projector":"^1.13.2","parsegraph-scene":"^2.2.1","parsegraph-showincamera":"^1.7.1","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.8","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","webgl-debug":"^2.0.1"},"_id":"parsegraph-viewport@2.0.1","_integrity":"sha512-FiIbFWC3X2MY17Z30Z2ki5DyimUgiT82lO6TG/FQ9uAeHHsZiLBUqAVK+aSwUBFc6HbzVkufb3a6n8EVpFxzsA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-FiIbFWC3X2MY17Z30Z2ki5DyimUgiT82lO6TG/FQ9uAeHHsZiLBUqAVK+aSwUBFc6HbzVkufb3a6n8EVpFxzsA==","shasum":"37781c847bf7724e99d8a800b845c2a03b702f68","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.1.tgz","fileCount":43,"unpackedSize":1482704,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDazGaqSyo+1BvS/PpP8oD/mqtnQmTm9efz0IHfT2iqgIgI6gXUyeL/0t5zDcEI71/E2Z6pLeFcC/QWQhBw/0kAcw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZf6wACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrpAw/8Cv7wFd20fLXIB580aYKzReS17ZO7xvqdso6mJTpuT2ZcL873\r\ncSpY58s4W9RR4MzN5VaLDLNExLWCXQC6BNQOFSRtfKRBzDHc9qsvDCXDLXNx\r\nzBzFQlRK72Pbqx0CY34WEUmr/7QMwUjeLtVF2/NNL2t8+RJPUlH4BiyNjxCq\r\n8ni/+gLEVpLntSAtwtgSMupHHhwyFqF3dwmY0ygvfHWzZNiCKLze1qwS9++H\r\nMcNRm5qm+5lX+b5nRn7HRdTK2hDPsYrgQkTxNUj2PJ+w6WvTykUiyee7G1o5\r\n7MK6rd9pMVYnanwUMHRAr5trsqVWKaAZxNWbKWWaeMGYjZ7ajYmP2P36K5aO\r\nJ17tk+2l8qQs519iwlPaFhm+1AGdQ0Cqeeobq/f1oAKbYmUYS76zA641rqku\r\nzU4EBDP7Sg1uz8KyjxPuhhb11lK+D5+/pUI9M6Kxs/pKwdMSJaMjXlQ1rGt1\r\nINEEd8mW1/d+0HzpBPISHRw8fEvIKLfe3ZPq5mqjC5gOZQy3eMZHIXyOqLcd\r\n8D7b4kGQojCmUyWg/CBLTV4IFy7SL+DKXVlG2T1XTRDuDsQntcuv9b4GGN/3\r\nHIAu1YD4AhndICV1hm19lZ76FaVcAeL+ONGWQrNa2t3YlE+RAvgGaxHpIftX\r\nwBNARxOg0KvkLEd2Hdms7WmTq8aRHZzke7I=\r\n=W/d/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.1_1650851503867_0.27447341536071557"},"_hasShrinkwrap":false},"2.0.2-dev":{"name":"parsegraph-viewport","version":"2.0.2-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.25","@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","babel-jest":"^27.5.1","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.13.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^27.5.1","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.8","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.3","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.19","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.2","parsegraph-block":"^4.3.2","parsegraph-blockpainter":"^1.6.6","parsegraph-camera":"^1.4.11","parsegraph-carousel":"2.3.3","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.9","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.0","parsegraph-input":"2.0.2","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.11","parsegraph-method":"^1.4.22","parsegraph-normalizewheel":"^1.4.7","parsegraph-projector":"^1.13.2","parsegraph-scene":"^2.2.1","parsegraph-showincamera":"^1.7.1","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.8","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","webgl-debug":"^2.0.1"},"_id":"parsegraph-viewport@2.0.2-dev","_integrity":"sha512-hnFUGpqjB4YsKvsLAGIvhwweyqxU8rmQcbeNM8w0vnVbXFlpVxqsjctNFqaU+5WJt279xXaZHMKtqtvvM+01rA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-hnFUGpqjB4YsKvsLAGIvhwweyqxU8rmQcbeNM8w0vnVbXFlpVxqsjctNFqaU+5WJt279xXaZHMKtqtvvM+01rA==","shasum":"27a503be73bc2b40c63438b622842b88fdd571e9","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.2-dev.tgz","fileCount":46,"unpackedSize":8953587,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEqW7rHrkRLLOOEchk+x3UrwCTFD+eb/FEVF1iaYX3OQIgQPcjmpTpCnSr4ZIZnKdlzeyzwm3fO5QMMAcIz+D7IzQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJia5z+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr45BAAjDx2tWQSOcuvixx6soMIqYN0gpwap0GT1gpd8JnvqFxHbkqM\r\nXOSNmMKzqJJwFWhNeKobyMFXtyYXQr9YRTEo2x96wEtL05TOWJ/jhUgbI8XR\r\nW+udgK4PXjgaq7VeRHawRwKtZOPqs8GouaWo49GT9nKwF9VZy3ENdAzaG27Q\r\nzavmFIRjoGgFtmsOcBj9lU0ND0yWBJJKXMbUKaz4On0TyO/XXS5ohGJ1M7Pe\r\n5GMmJUXZgSAXfEoW2FrnJJUIZImPuK5iobKXhDW2GzD3Og5VISzJwRb/X6If\r\nwcoRQUVEMtS7jqg0aEKXZ4plwuAHtir8mZwkthqSJl1ejDsD6xWMMxhfhZGe\r\ndHl6kDEdJpU07tQoWFU0UTMzr1MapKzvixoJhpcFrFDeuRJyxeU7yzFkrF/7\r\n/y+j3kJCRmJ058mEw8ltSAFbJLjss+tjKoMIVqAY1Zw0DBLtKoBIS8RWFpt/\r\nz7TiTbmtq/LzDPzfE2YjlkNqoBFPBj4QsKt+ETd0/B20mQ1TCzZuzbjr5lhz\r\nndRNvoY/WXRs4qq7XnVH7zsA2G8knidV+yqkH50GqAflaXE0T2JB9Tuh6arG\r\nJTRe7RAd/JGlyNQz+tl9ha36WRc6P+OasdY3dITlkRMzyzwi+w3U4KQoft5p\r\n/uvPl/PfndudDRf2kN1LNQmwiB+q7rspMaE=\r\n=7vv4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.2-dev_1651219710646_0.3220024940368278"},"_hasShrinkwrap":false},"2.0.2":{"name":"parsegraph-viewport","version":"2.0.2","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.25","@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","babel-jest":"^27.5.1","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.13.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^27.5.1","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.8","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.3","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.19","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.2","parsegraph-block":"^4.3.2","parsegraph-blockpainter":"^1.6.6","parsegraph-camera":"^1.4.11","parsegraph-carousel":"2.3.3","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.9","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.0","parsegraph-input":"2.0.2","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.11","parsegraph-method":"^1.4.22","parsegraph-normalizewheel":"^1.4.7","parsegraph-projector":"^1.13.2","parsegraph-scene":"^2.2.1","parsegraph-showincamera":"^1.7.1","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.8","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","webgl-debug":"^2.0.1"},"_id":"parsegraph-viewport@2.0.2","_integrity":"sha512-9sIcwlAUtveofKlVB6VSBNSvs3ElJwzM7Y2ktCT+PdwOK6hH7XXatP+SkuJUfPSUFS5Lrb63lIkmeTF4GJVdLw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-9sIcwlAUtveofKlVB6VSBNSvs3ElJwzM7Y2ktCT+PdwOK6hH7XXatP+SkuJUfPSUFS5Lrb63lIkmeTF4GJVdLw==","shasum":"1418772aef4b96f40d02aa6f5d1aed48e971529b","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.2.tgz","fileCount":43,"unpackedSize":1482997,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICxDR9yUrOATFtDT1hKEub+WGU9rb/I4bYz7KySvdF0mAiB4m5Tdq7kRDPXsvPXrCVt1yimqS6hvsL1xTOzKHKgVcw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJia513ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqLLQ//bLwyMJiCXUNpeqM/ccbXAQ/yjZRx2/VbVfLRLnQdjO8HvcP3\r\nw78Mcq81Kz20OAvuwl6xSQ4+p6P1Kv9ko6LExy6hgAsJTdv0GjsUtmwPYoWS\r\nQLZQjm5u5Xoqu+SdYmqMSF7NKDyjAYQJJOVCp8acYN9Zd6cinSS6FYfJmihC\r\nJnZKIkNdt6tVoSs0kKQgJScRLBAikY+PfbmApnU8dR5GuQfer25pH84ZYED0\r\nzIgeB85ZyKFS3ZyZP4PEsWiqPpjuI/KTz6dub9kiSpI4H/eNzblcxbTkiYTA\r\njZiBF3q/vtWLpVuQ3YBLHxjACOmGJyT4fd2Zt2zCix050OQXPcvJ2DS3AxwQ\r\nmWjUC6t/L/hYdEf8f3RnaixX5BSnQfuNTt3WCtFh1X93wFTYrpnsH1+6880B\r\nOHnTaQbIKK95yNDHcGI/sr5GEPj24zHdLKv6lsGga4LsO8BOjvlbjNDeEaff\r\nm3oU1L7b8hu/yhUYoRcO39CEDkoPCGGTwMMKq07On+ptAY0UTSqSVNNw6+1c\r\nypmOZqHZ6uJWN6juUAUMDuFv3tSkUCy0QEeX5dTAtuBwp5EANQ84bCThQLE7\r\nVeeoZyCRX5sDGohx0oQOc0Bj8OW3fQtVOd1VutCbEgc0fsvEGtcWWJ+hwjCy\r\nauSZBP5qoeONM/xpeYncv8TRjwx6hdLakbM=\r\n=EAQP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.2_1651219831505_0.9588068812468873"},"_hasShrinkwrap":false},"2.0.3-dev":{"name":"parsegraph-viewport","version":"2.0.3-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.25","@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","babel-jest":"^27.5.1","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.13.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^27.5.1","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.8","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.3","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.19","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.2","parsegraph-block":"^4.3.2","parsegraph-blockpainter":"^1.6.6","parsegraph-camera":"^1.4.11","parsegraph-carousel":"2.3.3","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.9","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.0","parsegraph-input":"2.0.2","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.11","parsegraph-method":"^1.4.22","parsegraph-normalizewheel":"^1.4.7","parsegraph-projector":"^1.13.2","parsegraph-scene":"^2.2.1","parsegraph-showincamera":"^1.7.1","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.8","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","webgl-debug":"^2.0.1"},"_id":"parsegraph-viewport@2.0.3-dev","_integrity":"sha512-bZMX1BtE/KwQPWcZR2B7X5r63RSn8EUr1FYsfol2/WP1bM5PgVtfNLjuSBDBlEwveET2DaIJty9OZpzmVxq4/A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-bZMX1BtE/KwQPWcZR2B7X5r63RSn8EUr1FYsfol2/WP1bM5PgVtfNLjuSBDBlEwveET2DaIJty9OZpzmVxq4/A==","shasum":"5c583594206913867648612cc9c2237ed1da2f3a","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.3-dev.tgz","fileCount":46,"unpackedSize":8953587,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjqJBr0dR/PIVke3jvNFe59pr5nTp06z3PZXwmcTcqmAIhALKm34nVIaZlhGEmBJGG9XAQILgNPStfojdyUuzVbYeq"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJia54/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrS4A//aOw3VmSA14EgMq1HtUwLqWRDZ3uA/LOL/dI7f6mA9mNAtLLH\r\nHEhlna4M30rVqMaQA6FS+o558PZNJQxgrMcmTk7hqUMpMIoRs1I/9T+GbHO5\r\nUaaoON3jLN/3PphtjzTMjhbLh1rD78rIIhtWnEPVp0k3TNbQgwJnKOQRsPr8\r\npMZRwTXRIFSiF7zhAdFc5C1mVEixuaUMyJ4uWycp6hTEkwLYIsw2b3VqPTfB\r\nZnXXq2FyhzWsZr8YWHkgKwbOu0ZTG/h132TlhQg6BSlQl6IJIRKBWeULFrjc\r\nf/UPpzsazsFlGjx9SpGUpuiQ+7Dl8ag5rMbQTonoiFrBn4QJ2hsSumFUCYr1\r\nzJzyE+L7kLTKeD6mvSWVMvtYUerICUsTkiu8g9Q5J5H8uIwt2xBKEFL9I3St\r\nz2JTZ6ge/63oPSasMltpKZjIl+H5tioBLBMdUH1ORT4o6aqsTK+YIcWZE9lL\r\nrY2VnFXSTYnKGDn3F1XJxsK+0y6z9etgBqAv3dNVPDo/55dZ2mwgLduOVkpg\r\n7vqH+YlajO3cRy9vImBjh0gd3VMtxiBM9s4yqFoW7BwqUqbC2x71jmh5DlCq\r\n429vP9aFuI7M7H5jvQ8G10adh2VLDpprHxibl34YbGOnDsqwRSD2iVrGVNpl\r\nJfWJpq52+SOVGb4C+zrTjVD7HoZ5wRJHZIQ=\r\n=9oEt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.3-dev_1651220030883_0.9233982301330084"},"_hasShrinkwrap":false},"2.0.3":{"name":"parsegraph-viewport","version":"2.0.3","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.25","@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","babel-jest":"^27.5.1","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.13.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^27.5.1","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.8","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.3","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.19","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.2","parsegraph-block":"^4.3.2","parsegraph-blockpainter":"^1.6.6","parsegraph-camera":"^1.4.11","parsegraph-carousel":"2.3.3","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.9","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.0","parsegraph-input":"2.0.2","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.11","parsegraph-method":"^1.4.22","parsegraph-normalizewheel":"^1.4.7","parsegraph-projector":"^1.13.2","parsegraph-scene":"^2.2.1","parsegraph-showincamera":"^1.7.1","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.8","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","webgl-debug":"^2.0.1"},"_id":"parsegraph-viewport@2.0.3","_integrity":"sha512-YyjaLq3wj1/N1FpvNeeX1XgaKw54toNai5pOzAhTEV+wjArT7fN3yTb8FBULD3lTaVrI+NKm4woIJnVSWkZwfg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-YyjaLq3wj1/N1FpvNeeX1XgaKw54toNai5pOzAhTEV+wjArT7fN3yTb8FBULD3lTaVrI+NKm4woIJnVSWkZwfg==","shasum":"2639afbe3d3975aa0bd2f11fa1f57480e356adc0","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.3.tgz","fileCount":43,"unpackedSize":1482997,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFq04we491P4uqIjna08PVLy2G5w33xTbxVJrqTqSJwjAiEAkEprxI2jdud+Te4DlZNV0ly5wMutLMHsHidcfQ9OB7Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJia563ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGWBAAmygRQLVprgo+zdvomHP/sJHvcc3BeQn+Z0ig8EXiAtXAjxPm\r\n6A8wRfvzcSaUpKlSmsYArlR1CCjqbgq2+UCVQrWca1vw5FJWraixLtMU83Ku\r\ngAW2efJn9co5OZ97A1OaDCm7h5FYL8cimS8UwLhivsJd8JuUUOAmFGFmTTwE\r\nIca1NvEtvvYUUZqysF9/YngPsc07/SnQRnspgaOG+ahv7+FkGOaCZVDSLXtg\r\nrwnkN8LLuIcMwBrnxIRv/Ocfhk5o/8xiAJegPISCZRbEOhf6l/dQg0Y3RqWC\r\ng6j1WLp25zrStPF2x+/YI9H3QejAvOQUZGNPox49POX2JEAY6wZFqoVlgHk2\r\nDDQ4Gc4u+oaIItG6uohrysmCGBAxX19g9vc0MciOjcz6C+9Z8LvUqe5jPNeP\r\noCbbrk3WXE2usJ3QZ7MqEDu/LAqpd4fhwYJ5GSinqgyRtAGFJPI8X6sCbhD1\r\ndyhMbS/pw3GvYA2VtZREdDbERvSmlx2ISH06xnGQU4oZ1Z0gUiJfHKohqlSt\r\nb1oeMAhDGrZXIWGdCB3nPWw0dxqaPLvCjCcaXfs4Vg3cmVazMbx16gv8GimX\r\nOBK3ooGIwrmdvqtyiOp29SHgy+aFvkLV+8QRiDBgFpG9n6XFE274tAkE2Vxe\r\nUKjm+sUKVVLyLC5jku3droDVDPbJ6OvYAJ4=\r\n=MCHg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.3_1651220150984_0.3686494443052397"},"_hasShrinkwrap":false},"2.0.4-dev":{"name":"parsegraph-viewport","version":"2.0.4-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.9","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.31","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.15","parsegraph-block":"^4.4.6","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.8","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.7","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.4-dev","_integrity":"sha512-Mu9XkHRv3nFxsUpSkqEGMVPgOPoGD6Jf/CKwejEjgZiCTr0fghdggaMBkT0dFg4FY9q3V9eGY6TDgBNY6lbI5w==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Mu9XkHRv3nFxsUpSkqEGMVPgOPoGD6Jf/CKwejEjgZiCTr0fghdggaMBkT0dFg4FY9q3V9eGY6TDgBNY6lbI5w==","shasum":"f73e0d6ad50b07db08553038c642ca5d950be511","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.4-dev.tgz","fileCount":48,"unpackedSize":8150494,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6Vj9r1B/CRX5XBloPNyTWNVqNM/akec++irNvTNdD0wIgY/G5H/TDaVUUPuP2W42GhZ/zqUBuhdFFqF+Qez9c0tw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibNRqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpfxA//WDyPJb8VZ0LNOE1Xohj9E2PEmDMdbDT0UpgHRY5ya8SbCUgc\r\nVkBsgBqQ05m0Ezsdkya/qSyq2rJmPfnh2SlfO1hWLHaXMDNI7+b36715Wp51\r\nHvSdUJi1ftTZVrfiu02bwBdKjQHjV7mQgCQa3StwWQOCYjDeoseB/4WGSvhs\r\nbwPypJCR7oAQl1rR93xspprn5VBHHeUpBL5FYNbhOHGzgVz3ZCoY0eR0zTyO\r\nZxSClsBvtxZv/ygsMjKiiVno5DGkLC6WZVwYLPePWHM0Im+lm/ZrZ74htLzA\r\nXL4XeuQb8+l2DfQhaqgcF3poWQfLJHmr7v83sIncMHB4+h8zcGnGQUi7Hc65\r\nGbQWLt/2waPwhm8hAuVxqaw/Sau7pAY005ZyPW6kELFRZf7nHPHUZSdM+vxg\r\nUskSgxSZAStwoUnSIhJKr8bdJvmBEjeW50jTVUsfH9iSTPT8J75ulSkf0iC+\r\nRkE+1sruOrFR07NHxAw28Vl6D1xiW6YuMWVvd9/DNaJNuwnkKxkp1vYVvY2Z\r\n3RZIOrq08NtCuW1x2pqB1ZZ4YPoyYwdEqpu9+d7Bqajrw/oAA2LZIkDQg2Z+\r\n2pkDj+zp/6lW5Lpp2pA/Tv4l+AXEYXLh9+QwdfdlmPzERRd4CkpjZUzFLpbT\r\nVZ4mUni7ZKcPvIevbFoOGnIznzLKzhBsnJE=\r\n=rBwC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.4-dev_1651299433947_0.9944095990152171"},"_hasShrinkwrap":false},"2.0.4":{"name":"parsegraph-viewport","version":"2.0.4","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.9","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.31","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.15","parsegraph-block":"^4.4.6","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.8","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.7","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.4","_integrity":"sha512-JxjkCrhtYEjYMYT/gxogWwOj2EW9bbt1DiIImCGD1QIL10IuIb7np+VOgU4A74GC9MQ1KDMPVcyRU2MkaYcUUQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-JxjkCrhtYEjYMYT/gxogWwOj2EW9bbt1DiIImCGD1QIL10IuIb7np+VOgU4A74GC9MQ1KDMPVcyRU2MkaYcUUQ==","shasum":"b48e4454846dde2f51033e3c68d997c5d163382c","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.4.tgz","fileCount":45,"unpackedSize":1353910,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFLi1AIZXP6dPEnSGjsdjlssayG4a2smVJx/urbwzW7eAiEAkoPfhzEQLPVKW8F+CA/w9SCTnS5w/VNhzrsvX4SOYsY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibNT2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmofww/+M1WJa1kilQyF0o6U+9V3Hzsw6JVPSfPfRLkFsWmsSdoD17yy\r\nKA6N82v7/AlFKQJEf5NwwaoUtj5x+4+DzORCM0PSQr5cnnrfRGB61Axsm3xt\r\nP8ARxwCMfPTMtSXdWo1KXYtclYUoj+M2maU7W4BH070P6xED8/SX79XZV8JE\r\nTyjTnH3oBMvaMZBzytGD3uhlpMsr2ooPnBT2e/v4MJ2m9Fgr3r7qizPaUfCf\r\n5sj1LhyiqzR3wdXKGYB8uOPjmZWlAbws0AZMc+27McnZLXK8SIDlgISpxLAQ\r\nr0d7bpLAecL2i7N5rWmCnzJ7znk+/tz+0IL9yD3QNzQgUJ+0shYM/5x95zNt\r\ne5NgBeip2mEQJz0wjMg1qOr+S3VP301zqYmrrcrY2+b/J0t4UnG6D6AuQuTi\r\nIl/8RsLjJD1dUzgf5/nEDqlaGbUwRYEtOEWAJFVDxHxUegvEA6Hu0pYaPxKW\r\n8MnJ7VY6mwkaHx9tqqzwaLUJ71Ar7da14wypWHQb1MjCT3BPDCQpFZgtccdl\r\nFGFpOKmWepoVHT3Ne7lreCdRCqsKtevZS5FbPlUQHq5VQM4es2iChzKNr4Md\r\ntVQqAXXID3Usr5E340gZJkA4QWa8oIq1+yPBE0OWpWKuMtmRUM5teX2QBadO\r\nwRo5Sj1QCUyEpKmGFOFeFKqlqnBqr8xVX/w=\r\n=4CWh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.4_1651299574581_0.0609226795232134"},"_hasShrinkwrap":false},"2.0.5-dev":{"name":"parsegraph-viewport","version":"2.0.5-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.9","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.31","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.15","parsegraph-block":"^4.4.6","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.8","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.7","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.5-dev","_integrity":"sha512-pGEFCGjRJ31ft9cDXrPtcZJPKs4WoEblzjBv/XLc4J9MPAi489qGXfLpBmYu/6AQwqd5Ja4A1PKWjqjC9kxuvA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-pGEFCGjRJ31ft9cDXrPtcZJPKs4WoEblzjBv/XLc4J9MPAi489qGXfLpBmYu/6AQwqd5Ja4A1PKWjqjC9kxuvA==","shasum":"ef10dd899a68be46caafa23e8615d5d407aba487","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.5-dev.tgz","fileCount":48,"unpackedSize":8150494,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDe3lKkwbgKZhbjvHOQ8KNhC+ReM9+7ouF6spvIzd7VbgIhAO59b/sNxU8XLGrVCIil/BS9Rktr4wQyhN6cINxdetFe"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibNUFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmprvxAAmC31rsVgn8My/1yZje6MqV8jkRNaXe0kZuIjf56cwGkK8nxd\r\n8wIQL0YMaYK12SjCBdeOfAnYM4CFiCx+pOQLr/bQHHs48BdoY4ROqFoZC3AO\r\nF4NlS0IXaZG2Afl0ThopswQyji3ntBz1NJlA7BLDVi7bZAeYdj0cHJb7f6QA\r\noz67tZLOoPnhnFtiEftuKPmYu90NZLNI5PkvHWK46OrJuVqqdr7guTGpbCWf\r\nuLQU8uzjDuWT6VMH2OoE/W5BCxb4WzrrNqbrVuMOIMeyEh0bpDO5jutxHTsk\r\ny5bCT9JljPwUOd7BEOFEfAmK3VV2FF4E9FC12oqaqhRdCtApW/nh5BJoxxmW\r\n+ZDBhD2aD2/UomtPuHWtat608d0zsXAXQ0yEEoyt8gI3ZV/GU9TsuEDuTfIX\r\nYyWRSdBsXNxPuUpQRiVv4hDXEsSwxHaHOrtbBfu/Zpzsh8X5fb5FO4QdjT7+\r\nLIYG+X5N9HJr68vSEH39TqkNQGgnvOOOiKQcIjhLBGhDNCpxEw/Mc3kvNpKl\r\nJT6+z/hdvTeRjjzdvDnRX8z3ifcknEjj3S+WBXsCvO96p7Wf1rBwq4rE/vmY\r\nFGnNy6fUj/Cj5dp58/X43px5Ukd3tWPB31Vw0E5ZyJ7zB9JRiMpoKQgwQV/o\r\n4739IC/IKadhz+mOLx2i57Z7ghPxlmAUB+Q=\r\n=2GgE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.5-dev_1651299589511_0.7230327301877109"},"_hasShrinkwrap":false},"2.0.5":{"name":"parsegraph-viewport","version":"2.0.5","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.9","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.31","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.15","parsegraph-block":"^4.4.6","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.8","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.7","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.5","_integrity":"sha512-MYjQ3i8oe1kpB4ZdTFv6cKVnABwXmkGaC5ydBiPfLscz8gQY8nY4s/04rzoBTpK5bsgQ5LWLZf8EbxeRtn1gqg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-MYjQ3i8oe1kpB4ZdTFv6cKVnABwXmkGaC5ydBiPfLscz8gQY8nY4s/04rzoBTpK5bsgQ5LWLZf8EbxeRtn1gqg==","shasum":"573fbde35b1162fd6864bdf7d67e5a8a06c1b29e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.5.tgz","fileCount":45,"unpackedSize":1353910,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzOgcI5rGj0heYuEA8f0N1T02MOdi7Tvo3AENlnVyHaAiEA1DGtW3BFRiOXDZBSDK4vk87I/4lGMiIXW5j/02+3gb0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibNWMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvKw//b9G+z+VAXmirJE7ukj61VgEVlUvT0rdIH7eKu8h+wHVy3FqY\r\nTpMpR0iH44xbRRfR8QkUb1ELK+4ZGXcu/u+/xFbr59yDx4vF6Qg+DdIyrdnW\r\nRuHAGaSLqLnU1uqAuY2mTXaWXpEAE3DpOfHS21SIRn5GT6siSBqgvtIelGlV\r\nMFmOGcHYYQSqNGY4ozVbJuzRI8MH1tFwnU+DipgM+khPgpwqKBxexELuNF3h\r\nv6pz8SeQEmN1+XShQ1zfMwWhpALXXMge6ELKxPWXLSV9LYj6uNJvqdOR4nnD\r\np1sFaQ/hvegDMNO2q6BumPLzVI13ruQEf7We+9EI93bhRPNqZ308gSx6MIDK\r\nliZ3TPapO8gtIDhqRJJbrYKWU6yJpfiYdxupIZaxbEEj0JJU8UArJ+pi6b1M\r\nGCK/iNY7XHeinKbfON+ovnIEkjIamY0CGu2uBMRHx9J+6nSWlcTs5LDW8LuZ\r\nCpljAz02RfA3H3FYjhHCRYndUCyFCd5l6tayGyyJAZO07FI781vZpqebK4Uc\r\nhH0G8ZUVACpjQhi1iX5bu7ZsxZ0FTojXTxIIw/2dqFcxlGskzBgN9+VeOfVw\r\n8jucqMCh1nHai40CUFmtL5/GRYi7qwvETEK40xF9BOlfhalSv4q2YyC0A3H0\r\nb+BHg7/iLOvA3oDSzrokQ/crrVjs7QHNOdc=\r\n=mk27\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.5_1651299724626_0.3631280008787219"},"_hasShrinkwrap":false},"2.0.6-dev":{"name":"parsegraph-viewport","version":"2.0.6-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.9","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.32","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.16","parsegraph-block":"^4.4.7","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.9","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.7","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.6-dev","_integrity":"sha512-7FbVhs+WgpfvjBMuf623wJPXcHbfW/et8f/nRRxvrGPHRz3mORxO5rqCXNprgiYafmLViPDoNsniBIvlFubVCQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-7FbVhs+WgpfvjBMuf623wJPXcHbfW/et8f/nRRxvrGPHRz3mORxO5rqCXNprgiYafmLViPDoNsniBIvlFubVCQ==","shasum":"e71973e7ce8f0a2a4fc5dba13be5f01053aa2d73","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.6-dev.tgz","fileCount":48,"unpackedSize":8150494,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICkYQpiPY97bm4bo3omgPYBK/6RvOZOCeIpWk2DCheL8AiEAvZwIwNsJ2F1Ql5EUP0poAj81Zy2XTK0OULLyQ3HBL58="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibNo8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrqfQ//bLpJkG4/lrNcNNWH3mOzGqSDjZZsF+UyB0jviAY30nGeayhU\r\nlPIAKKv1F0HD15nfV6G9WduW17DAQy08MiLZ4HkzjiqggnEaX+pjUDpU3Z2s\r\nJF5oNRNlnYcUvN0zcZEhMNVcyZVTgeUKtF1SUZs0QGHXCM3rfaSyx3oLKPPR\r\nV2lm0OlkC9GvUHTuxs6STlOM9oREuIaFYAOb8qflguDbvFAf2kAQf21mlH8g\r\n6Y/JwnRurRygWgSOuT2gsOUpYw7iEGNbcSHpD1gitRP9riN0e0RUMBez3O7F\r\ngB0y9yvKT6AOJobV2o34gHkGMficfoi4wT1I6KgYnsH4Di+25TjWOV04G0rF\r\ndU/ffKfHUVHdu59JwLOzBZ6yurzbmwY2OuswpO7oub7sG8UrthO7ii55k8pd\r\n21wUibNe7/M6o5MODMRyyklGApC/LCuCZ5XyX1ST8iCmDb6ZIKqffKjoLC+5\r\nqCRgnFqvRfyZZRWvr5MCl+c5WG6ypTapW1rv5HRDWESN8U6WN7wiLRcIRChh\r\n2VCw5yATHy/wfx+QjAol3QOaQKBDmAc2xyILG6PsrdZx7HX0wzHGY6tmu3jB\r\nGCtijBI32sgUyY7o9CzKp9GKVj4ZaSwajk4wEOIjohQgMXBZx2JljaGXS370\r\nWt9IqUQt7KS2qS93Bg9zD6yDSt2rsrD5L/M=\r\n=77xw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.6-dev_1651300923861_0.33873034744890007"},"_hasShrinkwrap":false},"2.0.6":{"name":"parsegraph-viewport","version":"2.0.6","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.9","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.32","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.16","parsegraph-block":"^4.4.7","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.9","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.7","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.6","_integrity":"sha512-kpsqbd6+6dxViFxpTi8j5LF+uK7WJCzrMjgVwL8/tf2JEYXFi32uieDgIi6viJJNzMJComK2SY1JzDzFbARL8g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-kpsqbd6+6dxViFxpTi8j5LF+uK7WJCzrMjgVwL8/tf2JEYXFi32uieDgIi6viJJNzMJComK2SY1JzDzFbARL8g==","shasum":"c8a04dbbae00b25af80e0604ccf713894f43a98a","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.6.tgz","fileCount":45,"unpackedSize":1353910,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEeTT4Ga8W3CtbfAQE8/A6jeWhDwu46hUeY43zN+kopsAiEAl60+EyVs4Y87Pdstvqq6Wr1lBWZLpNnLm0lrNCFjND8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibNqgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpDDRAAi3UvGEhxFKb9G96JVhzvkmhrCKD14aqCz/hCBOKSSugGnIyS\r\nVBdymeXt0FOZzoaTNLEZUx7VLXUUUamJybVgyYkDU/SlKqs0aKGr8p1VgLer\r\nyiq9XJf52AZUVNgIu0wNAXEaarvviKeoI7z6I4JGFjnhtn7ip2wgv2ai9E1w\r\nlDToYLKn1qEY5i6fSn/d4q/i7/0PVa/Zpy+9KqdxntKcV1jOUqYupIPCSKcY\r\ndEfMJOCOAjUPOChqZODSDX3WJtPOvbkuoNE/mqBRQYOev986zGkpM3AYWV2o\r\nauPm14z3HBqExa9DrXf7HOvXqz1iTqmnEUQmXOw+Of1tFMmYupoIIF6oCfAd\r\nbDJ+Q9NmAhD0sDlTfYHiOxwL3XgnF5iIxrfL+3P8n6YSbBPaWL3jO4L4OAwL\r\nWvpvFggbsVACdg1aRBAx7xsI75iIXXcfVlLX/LD1AkE52+G0HB0XP+s0ohK4\r\nAGN8a6KdgKDkAoBMEijLWO2eiSx9qD8EMYRQmAufQnjuPmfM9vp6hEyjHQ9V\r\nMxGGPx999itD2IckoBnNGMUrOsgxhxfqVxico4pA7wqDJwtG5U42ryxhQ4tV\r\nl2mH6Gpg9ECjzKlyliviJABrno1MDD/TsqmwC/WkRrIGtpSfP1xEoZRcqEGl\r\npCb+1mhSjZ/Z5MK+2wD4r6RMjyz2zqIHC3w=\r\n=D2T5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.6_1651301024025_0.43680940969993953"},"_hasShrinkwrap":false},"2.0.7-dev":{"name":"parsegraph-viewport","version":"2.0.7-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.9","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.32","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.16","parsegraph-block":"^4.4.7","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.9","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.7","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.7-dev","_integrity":"sha512-qQPdrKCC5wFMFfd2f+BeD6JvSyFc64+4WoLcV6AtVyMK4cdHMVoXKy5NMlNBncMU0uqlbfoGM8rV2/5Ap15JjQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-qQPdrKCC5wFMFfd2f+BeD6JvSyFc64+4WoLcV6AtVyMK4cdHMVoXKy5NMlNBncMU0uqlbfoGM8rV2/5Ap15JjQ==","shasum":"3db9001e490485633f1604445039e2f7585ceaa4","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.7-dev.tgz","fileCount":48,"unpackedSize":8150494,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8vEo5iSGTScZucnhTOhC8nJmz+lt/QQOwXWIMBwCbBQIhANpGPm8hR4sZFQUNGoZpp9tA4JYuRYqkrfi2PDSyXUpa"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibNrKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpktQ//Sx9tseopxNdsx19cf/ilGEeGgClJhAFBAzloY0zlT2rJtvKf\r\n9urmS6mhKpltjrMA01My10/13kA4kCyfguhSsKtWC9VrH3veMTuupXFXqaMl\r\nLbY4wbNx1w9HRxiYi6f49KEKBVFZLhTMvZ0zz058gF2QjVr199pW/8pL1RuC\r\nshsTv+1/gsHb7WOv1C/CxdjZY5QKu2zoZ4Sfff2aUHZl+RakAVttq0qGFzd+\r\nnm2ciWAeP4a2iTcLVU3rYQv95letuma4oJwSVJEs4v+ibCgdHSE61I3vKAg7\r\nfwuHgMx20TER3cn9iE9Gj+8ofVbbwmFU+XZjdMf8c7cZTqEF8OVO8KSz0Ko1\r\nVp2p1LuhkJFo5TbaoKOzuctDN+TZ1c4sW7jVMR4hUkifVUVF3DkKknDCQxdP\r\n2McvYpCOO2/pLvHTvJitetle5HpXAnWXKcs/f3m/p0tYsaDCaMcBu1GaDOwD\r\nH+58DUewxs9tI7PaGSq0my1AYEQ0yHpxmxggi8nU7LoBvBSmUmyFYaEOcBUL\r\nbkvsgCItSiHrdpqOQOgioLHNp4sW9z0hrJ7xAgSJekIdIeaGCiSdA/fKtlf0\r\nayhdKhPINpfWRKxxK9EQTjDJ2MPd/5sPDsM7JcXJoU6sTm2PUCXf/B6OgWG2\r\n8vAaIyLL04HQZTahqJJT0lfxgWXyyNy3dtw=\r\n=X67d\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.7-dev_1651301066636_0.512481645753825"},"_hasShrinkwrap":false},"2.0.7":{"name":"parsegraph-viewport","version":"2.0.7","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.2.9","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.32","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.16","parsegraph-block":"^4.4.7","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.9","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.7","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.7","_integrity":"sha512-GRoAp7DKLmcJ1QtvhbduKMKO0QpKsoWNTsM2u230Qu4JeKG/YxglD+ymNzSesTX+lsiTDreYqfJSLOOFvorC8w==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-GRoAp7DKLmcJ1QtvhbduKMKO0QpKsoWNTsM2u230Qu4JeKG/YxglD+ymNzSesTX+lsiTDreYqfJSLOOFvorC8w==","shasum":"994f4ba017c517e496c887ff466ad8cc272cde45","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.7.tgz","fileCount":45,"unpackedSize":1353910,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvHO/+EpFQAC0bxl0qDosLuBoJkOQt8GQispqXh13WsQIgZgs08cajmLJ9czzbHg4sBbXuQHPDW3oL70Az/YgPBho="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibNsyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqd4w/+IyQsvrlThxl78Nlex7AJDLkkS0kQkzdMXGuaZs5HX3BSQEBt\r\nqFPujJWblMOGeVU+bFGAFwMVGspF39Zhb+br8+pfYLX8PNgAaMbLK3sGjSn3\r\npWX4qxD4T1S+GfLo3Fs32wCD9pkQuVmGhnayRDcnBf2a7Af2TTxd6F6QGDgz\r\nNFAVt9tD7fQU03UxXmcCFMXtwX/B3OwF9lbP3Xu26NPCap0syd9GU/zBdHOA\r\nsijyUPFhAt7Dv0AgQJmw11xxdu6U7YONjxEfzzldNF7+GgjPCWek0UeDjNIv\r\nYy0U7YEPC2/W05QsV+/BFez6FvR4C0C2L38jI9uw1hsVfnBqAIeSfNDXY52S\r\n8O84HcOYn+xRiMaCKtxkq6+LEvI+ZIQJkaPhmIeGxefy97Ky34DVnfZA9c/w\r\nV3TU2dcsQscIUx+gAAZ74puDGX6qaTZerIRR3s0ia3LbokuPbpbx69jGEUwq\r\nshgkXS6U/Tp7w00bqe/gqkGXxRwim38OGh8xnSjly7oUSbn0tGu2PJi0B6WP\r\nxF6bB0zZzGSjLLsf3EntqfywoYs5PgE8Ls9EQi4lG4Voa0FK56vl3rWO7lsW\r\n5S9OPuZdVMPeJExPITaoeV6VQYc/Xyyhq4XNNU3xTBuEXT/HyexVY1pRqqM/\r\n/G0UCZyJBgqz1wHXSsJLYHgn9SWo9Bxv77I=\r\n=CAa6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.7_1651301169883_0.13139742837914636"},"_hasShrinkwrap":false},"2.0.8-dev":{"name":"parsegraph-viewport","version":"2.0.8-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.33","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.17","parsegraph-block":"^4.4.8","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.10","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.8","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.8-dev","_integrity":"sha512-dSs0hBpP6WnXd7bDgcn3GnFBSYKG1oXsc4DBpSWtgR2fTS1PcB6Lb0fqG7gsX3V2zuNRtGB8HgqRT5Mg70DPBg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-dSs0hBpP6WnXd7bDgcn3GnFBSYKG1oXsc4DBpSWtgR2fTS1PcB6Lb0fqG7gsX3V2zuNRtGB8HgqRT5Mg70DPBg==","shasum":"2e6f4198042cf722cc33460196f5c0aee07c1871","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.8-dev.tgz","fileCount":48,"unpackedSize":8150495,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/If7rvd1AUl8sUmHc7drZ1gDB8sSkZkRJgCoOaiLmyAIgSWkAEOY8hkrI7Cyzk+FF2XnORhJASroFORcKmDmwuMk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibWNLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpC9RAAmH6B+mK9h7qS8yO292+LnPMMp21ca+VSrWXd7zqx8Re24wWW\r\nVmY5qMiunKD3P6KBZ9qHPp3NLgveFTpgmDckre92BNcJZZINZDh9uzvTdNIN\r\nVC47o/1JNZhVlSB04Bij8yRm1iPwF1xPQeZUPGB49+EHaqK9SdfHa1Ih/ITP\r\nNaTbgveK8erNgKOBdY51Tfv+Y4SnSBGATap5xBlAnazdiTUy9IR2Zpvo3dch\r\noR/Xnky0rH2JqEepeIy6eFuhPlsmFD0Q8EoVYxcG48hFVSW2o8mFkJk8hLSt\r\nIEdaFAjJiljZwl6wGgzQcUScjmwzPhVxRLx4Bf1eupZOgfxgx5Khqpy7YZ3w\r\nAwW0gzDhriiB5/xSctZqquDvA0nsG4TYyooCzyxOOrvEoph2lPJe/CAbZl77\r\nQmwMoUDNlmbFuAZdSbdFPbOADnQZTQ4GrfmdIJjYMUHnKUU1IwtjOZ9c20FV\r\nJHKQQ9tR7tuAigq2wTxtI1VyJsQkNmqrU8Eh7lgVOdVn0aiGO24wY14/vUMq\r\nkMWWaEmLDBAymMUlJBV9UTCZWapW3BZuKy7vKGIHleaWV2av/f0Lj8LlAW9q\r\nafvvDlLd+qrBZob2R2Co5tHfRS7H/NufDH3PqGcMalsgH2QUKPuWEyesD7Zb\r\nI7InAXmcP5KEkfncixCBLCKC3FJDFaORLMc=\r\n=WjUx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.8-dev_1651336010862_0.4809156817758542"},"_hasShrinkwrap":false},"2.0.8":{"name":"parsegraph-viewport","version":"2.0.8","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.33","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.17","parsegraph-block":"^4.4.8","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.10","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.8","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.8","_integrity":"sha512-EeaX6iHjnAPQupdUBz/c6D7yvZM5zqW+FlQSwg1oXTRnU3EhWPZo9TtwQU+/y1t8HeOAdniQAQuCXfTGQjokJQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-EeaX6iHjnAPQupdUBz/c6D7yvZM5zqW+FlQSwg1oXTRnU3EhWPZo9TtwQU+/y1t8HeOAdniQAQuCXfTGQjokJQ==","shasum":"5ca692a129e7afb526c22cba3bd195ff0b2f8953","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.8.tgz","fileCount":45,"unpackedSize":1353911,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCP+bwrqn27Gkj8ySte168FHMzFy9p/E1q3UPr0UgYJsAIhAKTcTDDql+F7Inz2VJrFI+tmQdziCLRM2DvUiZS5PGzf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibWO4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrhiQ/+KA04ohUCDGghk/MqUg7UVg2X5+TPugIohQCfjTkpdaGZTs0/\r\nuOfne5QLqK3d9klB0nd/EcDWZ7mAQvgyiohBRo7yJcTzI9CJncqLqOJ7rSSj\r\n0hSUCEuwWfYESkBJcBE7eBjHO6r/+PtrXtosMOC2PWtjyoUQZAJeHwLV6owo\r\nCJHKeEhJJFY1icMEE6hricfThj7q/JAY8OXLOVj7vyQ+22vQr0KBU46/n9wi\r\nOOAOErtVehZ+QAneOl2g6byhIn/8PVLKrjUW63KC6NhPc2fikACyU1J78q9Q\r\nnLkCnnEldW8tHi79hiH50IXfsJTmmZtrOpUgqxn2a3p8sySNUxv4y7KQ1+KP\r\nyB3HqyLt18f/ECkGNSAS9M08uCcK7iDg/478Yfn5s1Mx0vgn8SIH6mqqdk53\r\nnXy+RshDhK9pMHL+9bnb8FN2c/gcTQ4r517z9mZsUcx4+omm0KOCbHP+QsSn\r\nFhlir18mSpewh0qNRdVJpm4QaTcpeHe9IFOcFgOYrDBgYckSG2SWih2AD0rz\r\n5crgJZuGkjAZ2aH3uRFpXopHRGdJxG6onB+YZtZgpud5+S4PM9BzlVleire8\r\nfWPj+EWY9MxYNrHGLu2OhByMZGLAB+SU24hGVpI0BZQqy4vzpGDZtb/kMLmd\r\nfJQVkP9YQuhzbzEMu3rq/J60ZvfWVs4xgYM=\r\n=h+kb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.8_1651336120101_0.6954504302840343"},"_hasShrinkwrap":false},"2.0.9-dev":{"name":"parsegraph-viewport","version":"2.0.9-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.33","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.17","parsegraph-block":"^4.4.8","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.10","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.8","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.9-dev","_integrity":"sha512-L4p5cVEf54fLDDGm1B6UpigX1LiARENs8Q6VsNMm5/CBpKB4VgCruuxHz7IghMgtT4jfvvMDcBqKdPa++YX7Gg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-L4p5cVEf54fLDDGm1B6UpigX1LiARENs8Q6VsNMm5/CBpKB4VgCruuxHz7IghMgtT4jfvvMDcBqKdPa++YX7Gg==","shasum":"87f0c1f7020d4b9f488b9977686f022a6459c609","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.9-dev.tgz","fileCount":48,"unpackedSize":8150495,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCK/FOUfxrP49O+NRKSvm7j8xX5gA32Xfy9aSCiH8Z5WQIhAIdhWW9T6M0RCu28DUjpU03fbHhDMP5ZowvN+6BIs14U"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibWPeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUnw//VqWClJD4NNVhXx+fpLc0Giee3eHFrcUAMsxeREUQU9C4zd0R\r\n4oFO6NW0KshbrFwIFRnEcGQcwGz6uAJDgKUdxMzdm9JNUPaiO+jkv5lkxe/q\r\ne36p67SHCM2U6DaU3/JOQVhqZA7m6E7JF7vQTj4Ssuy78vew2kPAmVRmfCn/\r\n0Fq+87MVtAreGOf9d4F5LJRbG3cV3o6fcV9K9/XMMChLdSW4CnxkatwlJf4s\r\n6Lvc2g1PYm4aYXlIxdFuGD0j3MXOhTbog3a9BNPvETLWjN4TrI64Uj8W6zoN\r\nG8C7UjpcQD2kR5NxQyeRh4Zh003jYNyqgjxxBLNZDpBresntTdYCh7e/0Krg\r\nKkQDUS+rhYwHXpLIJFu/EYuLmmwXARig7mCg/VuqM6Ry/gLV9e0hi29C7tIM\r\n3WvQ5lbyubbfZmJJafikXuFa3Kl/7qpUzJ9RTcKmGMEuIRvOmcJ6soh2Nu4I\r\nKasD0vQIgCL04gm+BcaWS2Wt1kZamR2bTPZS0I5rNEm4jmg9Pn3noFyjuaro\r\nENPZjeOBDNfoJFZZrpk6kDAqn+EW0+EIvL1KvfN0+xyYyqlP9LH9Ajkw27YU\r\nVD3DOEcJjUUhl4H/FrzYlfiYVK3HY7vz1jyds4zdmZ/wDZutRHiXhA/MZooi\r\nuUIEmXprYSWj4kGnwmJkDoUjaPeLcC2F2fk=\r\n=xEVp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.9-dev_1651336158344_0.04254128423253034"},"_hasShrinkwrap":false},"2.0.9":{"name":"parsegraph-viewport","version":"2.0.9","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.33","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.17","parsegraph-block":"^4.4.8","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.10","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.8","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.9","_integrity":"sha512-GcAfCIEQx1FAjbPVBIog0VJE4fNKjplgD98L0p69+O/a2mqayIRmpa7NNqsR6OSz07xtFke5qk0rwn5+2AvsPw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-GcAfCIEQx1FAjbPVBIog0VJE4fNKjplgD98L0p69+O/a2mqayIRmpa7NNqsR6OSz07xtFke5qk0rwn5+2AvsPw==","shasum":"51a6695b297f041234301cf15c5f890928dca717","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.9.tgz","fileCount":45,"unpackedSize":1353911,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICndKmRsiiq7cgmQg/zjfQFpRhkdOYVa+6Simuqu30v+AiEA2iTlDk0aluzpaacLN+yNmZznW8CPLeRRtiHATkH6+fA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibWRiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqvTxAAouqUwVi20ma/uA6hhIECEg4VIYeU/v0xUZ1bh+YIBBPH73y7\r\n4GUmblwCCMZFK803IXhdzuo7Yyyz7CbthT6DCjhOZ/S/4qwHgEge3UvcmMg2\r\nREcm6GCP4I+f74bj4CT7bk+n++4aahq4Vn8uBqWklxGF+oUaxffv/qo8926e\r\n8XooToanyKXuPx3DuVjTS0Ligbo7ukpQ0Tm9Hb2ZKllZBBMwEC+nUZsj25gI\r\nCMuSSEv8djuXUdMfZJcV+xtPT/b7CVvO79Vr/yG69s+T0kYei6z0YGaqNils\r\nIMEGgz+4VmfjVLOBkugDnrtaYZbGxa+wU5RTHOLT9nLdif0be6q1bZopq52V\r\ngyLE77yNxZYbGY0TcNlDCq2y/Kqv78ybTsE8ASch0PhaBsFpgzvthBfHRyDa\r\nw8MgrdP+PnaplZygiOwdMyPevTUfhsxLNzDF/oB2ZgdFOo7OuTY8qzosWQrN\r\ncBYFWlzhG7o7e38bnNyl6KhJVBbT6tEGQLnf3lTzIbq70cCagKJnYohUjrtP\r\npccVLzT0sS/zdO0YATE7g/JmHeOZyt0gUOMtAHjrC5qDBKgyuzQ6x4ee/hMq\r\nwOedKkQXJQeMEYLF3+LfjZzyQtFl9g9z4aLayCT87oNPVObpou+pdvMaUYdr\r\nq6HoZIoCYT0jbwZF8xQwJ15Pffjdvt8rLLY=\r\n=Fhn8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.9_1651336289619_0.15577456390573663"},"_hasShrinkwrap":false},"2.0.10-dev":{"name":"parsegraph-viewport","version":"2.0.10-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.34","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.18","parsegraph-block":"^4.4.9","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.11","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.9","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.10-dev","_integrity":"sha512-Kz+J9o4YVeBxYUNDfHuRG+NEARns87tPNvHfkBgNEx6QcVJpY/DHmkc8ogz6fUoCosrMGWysqYGqaFkV5y1wJQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Kz+J9o4YVeBxYUNDfHuRG+NEARns87tPNvHfkBgNEx6QcVJpY/DHmkc8ogz6fUoCosrMGWysqYGqaFkV5y1wJQ==","shasum":"5f2be62fb1eff7b4ec8c8b949533900380becd29","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.10-dev.tgz","fileCount":48,"unpackedSize":8150496,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCboP36F0GWzlWzzNr1Iil9FszCt+9I90MKrArWkkmEQAIgKdMKh1E/FlAchNdWXzPmSE0dqd4A5po8LTVHSCWl+o8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibWtKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7bQ/7B3pA6tRA2dzAResd3a/aL9+vJ6d/cv4UXBYeq5Bcocnvrc9U\r\nnO505kZd5HT7VhyPPQ4WhlWebr5BqYCzHxYv+oxWtQquWs+mCPdVW41i7DsO\r\neM8+ryy5XFUvl/0LG4BdLVWJegz4juh6f2bWOllrvWP7laXmL6/r1WY+pIjg\r\nkhAAldYjaex1AFFh0LJLLk4KA5Nz8fGayw5OcG8LkeL5wX0FXj3xs56Co38c\r\nVsaBsAoEFiPoQZGsL4lyHwvXFkYgcUat221SS2/NJK2eS41f9nTHpXZ4+S+G\r\nXqG8sIkgTA+rqWyTKTm9PwihjTY3NSgRDzvWYZDrENuit5nL9VU42Q7W1i/H\r\nAsof2sHxwUYodscRHUQwDYgDjrVCsbsTjzOeuddlYrJMIvAzefe3BBT6sZPX\r\nJt99UuwplYLfUCjrhiqq/1xwuUJ8NvRMQq2w733R2u7mHZQ9vxi5O1iDObA3\r\n5LYMJ0qshndvhee/P4sM25eEWUopxeLVliw0A8dIrfo4DlFgFqYlVnE1qlWA\r\nHI4QAGFBefwNG46/1WSKGqKGs+Ut0Oxd4MsJCqxJgHWX1jElmMhSCucV6tt0\r\ngmaZGgcBW0KIzoSd80JLtknUR+LT64ZJ0XLvXsZeMsjjSSg96QgPHSv/5RRb\r\nKqsCBv1bCbVNg9yW8lqwE3cD6TLpfFDiLv4=\r\n=5ci6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.10-dev_1651338058501_0.07945047234051028"},"_hasShrinkwrap":false},"2.0.10":{"name":"parsegraph-viewport","version":"2.0.10","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.34","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.18","parsegraph-block":"^4.4.9","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.11","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.9","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.10","_integrity":"sha512-kT+VsJbKuSaGKi7GIyK6RwHRacQ7Ey9Z4aLRJx81h8ThmooDIHfVj1CnEEGZ5inYNIEa4WiXHI4ONB7X6OIB+A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-kT+VsJbKuSaGKi7GIyK6RwHRacQ7Ey9Z4aLRJx81h8ThmooDIHfVj1CnEEGZ5inYNIEa4WiXHI4ONB7X6OIB+A==","shasum":"395084c1beb439c514f6693226fa5c650ee31687","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.10.tgz","fileCount":45,"unpackedSize":1353912,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC6wj6IKh1fSoxBRHXDZ3TRDsUzHQ3tuwar+gafMCUGyAiEA/77tpzxGXWRo65b/WbUUkFefb+HwifC73B0DlHHCOWY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibWvGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpBlw//QzlZGkruyZuq+w7p9njidtafLd4wcrmZqrymX7oasMC5GoLf\r\nfh7CCXhDBAOEePhjj1ilP5sRBAnQPuYyNu0ioNBtUTkh13q67YPxjKC/r6lg\r\n+wY+p8uW2d4ZDIiTITUdMOgwGQsW3QrEMv7GWcxbOWZJJVV9T3k+oi4RiPGs\r\n8Twx+uZf/lZq81g6KA03qu8tGRxAcXaHxD2dc075QXBInO783qctV3KTZfyr\r\nEzJONuLn3MzVbBGV7K4Jnsy+dxwlsXngv3FDZ5DfrpgMVB0KiRUiDMyS+vlR\r\nMXr3ciOFUbIULTug0/yzrYUg8crzEY2ZmRRcTUBJN2Q7jEtKJUqg43gbl2kO\r\nQc3ddtBcxcNF3mVLiQEdIh4hS7LELYKTgwQM1R8HnTPn3a5MBCJEDEqDtBbU\r\nbTJiBN/sRRUuYN5EwJiNVzFF1GTnjQxrD2A1bUxUQy7agYs9PjnGnItxGUMt\r\nMRp7GXraGV0qjMHSEkn0DlxwKWA7PWPRWbFyBGDZjxh4c4Nv2aRRl5qBlHtg\r\n3eVbF70uKO4Cy5Qhaapy3o9/Hm8t7hhhXI03MVVsQz0Tjblgfk58ZRYj8ryu\r\nQPWA1Du8B8MFQeI2n/MIgaZzY1EdVcokt3C6PHnoueNMFh3Ak1UodNyTA52W\r\ndFKhJCEtkngAWKzMlNFiR/DNdYwFnTKnwFU=\r\n=WOBs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.10_1651338182462_0.6677219896479787"},"_hasShrinkwrap":false},"2.0.11-dev":{"name":"parsegraph-viewport","version":"2.0.11-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.34","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.18","parsegraph-block":"^4.4.9","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.11","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.9","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.11-dev","_integrity":"sha512-BXJGxJJill5HewNn3wG+aiwgvurgX9ymgQjH4o4GuDYRvbfVCOF91QrfA1BBXficPx7VGpK3JmKA36sjeZ2/1Q==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-BXJGxJJill5HewNn3wG+aiwgvurgX9ymgQjH4o4GuDYRvbfVCOF91QrfA1BBXficPx7VGpK3JmKA36sjeZ2/1Q==","shasum":"f415820ae2b5ccef767f0f25a2c37c2b554d6d5c","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.11-dev.tgz","fileCount":48,"unpackedSize":8150496,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAW2CzSpjhRbU0KBuhNoL8MOyAKvPPd4pGj72O3b8W7kAiEAlWQ4mLaNnZQjLGKEbm1SxTrH3YsQ0b4QfzH8eir0RhY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibWvWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrdlxAApA0m3A7Mg/b02Na/tR7TaHQJCS8oShI+DF1hjA30RjRShwZf\r\niOv6j34XsYzGulN5coT6tHuhhg90Vi47oXpaKB4oVwoTUgYx1SVzO4xRnH+y\r\ngsJxkUNGJ2hBbvn2shGKIZ0HrrIFe2JAawVU0wWY5SKnmnpfvt51gis0nxuw\r\nBb9eUEtu3qnhxwdfXPhNt0LcZAYI/tArkp9Rq1cxDfLjM71S+qTz95yt0w2g\r\ntxHdpcdldCIyvV4QSEhof4K9epp76VbvdjlGHaqTQ7iYUZ1fhnScvtP7Y6oq\r\nBUetoMepM1ojeFWqWOppZVbaacT3Fu/KNDunzwosuQjP+U675ePIZ/77TcsU\r\n6h7gmuIS4U/HCUH0KlrQ9MPxJd4n/C2Fo6NurrqugdKCyA/dMOpVoe6GZCDt\r\nJWPMNYN0oCuRYVX6l/khvQ/au3clx/aYKctjwZyO1nqu2IO4uaqPKi63lvOV\r\nEYky+X6vbosc7Uo5PJ6OwZX0xwo6Ynpwhp1Dc41737DoUiaBfL9vVY3/kqV1\r\nF+CnG6iowaaznILh/XCKdL4gW9DllG8I8KN61UQgKJgpS7eZ7Z0VuCX3CoJK\r\n0cn2Ge7IpMcct+C7Redu6LUWXQhDQ9uQ0xu/uYzxNap2tzIPD3WTDh6QXO+I\r\nlBxdcOUWj8Y3HMGgdsWILMXGbW61S1UaVKs=\r\n=3e/N\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.11-dev_1651338197953_0.0917833611119181"},"_hasShrinkwrap":false},"2.0.11":{"name":"parsegraph-viewport","version":"2.0.11","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.34","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.18","parsegraph-block":"^4.4.9","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.11","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.9","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.11","_integrity":"sha512-RNrz7xJMGCriTnCr6VxTLNZuTYXjkkRcVszakMpLqS6hGXidoYFVYMKLhg5lEH+2QPA9EY1qcGi7RIiOc2v4vA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-RNrz7xJMGCriTnCr6VxTLNZuTYXjkkRcVszakMpLqS6hGXidoYFVYMKLhg5lEH+2QPA9EY1qcGi7RIiOc2v4vA==","shasum":"e5a7269ca1984d0275dfaba17336f4504ceaa709","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.11.tgz","fileCount":45,"unpackedSize":1353912,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdWRnvhxfkTK8G8G0fzYShyG7gwUE2Y6p4psSJaw7BMwIgB27JLJW5ySpz7otJCDv1MLUZbxMYMLrr1zZuMhfJBxo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibWxXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0ahAAmd/G1ZmZaykXMmqrXndvgApnVgCyERUU6gOA4PAdNmjAbx0z\r\nA355F0GEYEsPGjd97PypEsB2yS2r6Wt2u1ma+MMxc+9MyBX7lfTnyL4Oh8gn\r\nLJZLubwem1FN9o7/YDoJgo4rgMeByXUyfdiDUITSvYibm2hFZymVkkDzxFFU\r\neRk6iO9iAftV+dJ/V5Scr0tV/XHzxk8hjOj6DMIfVdrxY0C4mQn7as9WZy/k\r\n9pDYkK+I16/mzhl2tyx4IIngP1REJplCJ0B3/n86lu7ASL8ayz+xrPDq1g4W\r\nfiaZeU5IhVFuxGQA4HleQDW0gGpLSwL60ePPDTflLkox2ENcnguVQliv0EY0\r\nKFIvVI1uEMpJRl1VeDeVaWYSnqToAMl3fp94ZIEAzFi5ZJQuRg7K3JEZ1XYM\r\nZJ83sR4g16aJVpCAce6c+wDwujrz7ojy9GwAtd1vJJZ6dTh/SU2RtTS31koH\r\ntldFd4GjEiZjxa0g/RSkPA2Qoq4ITYhz86ICHKB/UeNVrAg8mWiTbgwKyw0Q\r\nDhF/2qHB03Bn4yggjE0/svtnDtTZC5V2iJe/5AhljiFyoMVKlN/imeTR+8CM\r\nwUGkQPRQ5TvI1l9z9ittdXtP/VeTgWU+4Fm7A/XNsGrOV5HfBBWf4E95XqWG\r\nsxqcNzKJGRkizw+YD/HGNXBSt/IbebkHpCw=\r\n=+Dz3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.11_1651338327433_0.8120217530400644"},"_hasShrinkwrap":false},"2.0.12-dev":{"name":"parsegraph-viewport","version":"2.0.12-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.35","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.19","parsegraph-block":"^4.4.10","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.12","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.11","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.12-dev","_integrity":"sha512-Vf0wcI4ZfCI41FVhflLG+B3Q+RPSBxyG8NtM5Q7x4Y2m8eyIXwRngPqEFq7eLlCr4GMHjnTUmDHrV7zuX+AbbQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Vf0wcI4ZfCI41FVhflLG+B3Q+RPSBxyG8NtM5Q7x4Y2m8eyIXwRngPqEFq7eLlCr4GMHjnTUmDHrV7zuX+AbbQ==","shasum":"0c45354181115fa9548bb9206ecf3a38deb7225d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.12-dev.tgz","fileCount":48,"unpackedSize":8150432,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyuc/564jnniTzXZzMhnIQV9CvF728XWGaGcorFG/oYgIgXYS4xejn3zP7UFUKRn3FnsoYMuC6LjlYFEAzqF5tmsA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibXsoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqdaw/9EZ3rBVvayku/K5RkSrOnLU7AbT6aExa1/38EWyCLLOCSP/3q\r\nXbs6awCbJFq3zZN/Z5u3sVs71Xy2CPFaF7aBXQfSwJ5+aJbBnf1Vgw6lNTZN\r\nzK0glQcy9FivJsnQvsl+DLrk2C4ObhZCoQJBbh2rYipyxOZT9n4PrAxKNsCR\r\nmZ/BBK+5yn/d+jDLFMVKM8By6iZOxDbSg4aPPB4Ax/T9Q6pRh+B71AR8rn2a\r\nuKXnkNk38VHs44CObIiafKs8HjZ5gaTEbv6iynjggHWzoO79cliV1+6jAEnq\r\nQ3fsnWswuAZCoyLl76VHWM5EEVpf58MsKi/xqqlvrcsoOjUkk7OdaVRRgeZs\r\nhFTf/fiIIxX1DnjeaL3EqTQeZYCbab58Kiw+BW4/ET1+/0dFF0Ta09Ugs1EB\r\n2cKU+9Znjdsh2N6pIAcoB4687/aPRG53anf4Cc28JyuD7kXqoQqd7vUWG5QS\r\n/h+uFDBGKupUQmlXburKpJpw/i4wsEV9qGvlCTQB/2p6RCqJLNQ3ht5bf+H+\r\n5db+TSaThWxTAlDcNqcsxXvZ1rQw2ZOCXw71fs05pwmDBvkGCWWGiZ/RcJSS\r\nDNyA+ORLz0as/V9xEvWAABgayQ64CcR/4Su6lx3V0OM1URPlo9ariwz2i8OP\r\nZsxp1zjbIGigkdusQ4R7+101gR40Gs0lREI=\r\n=Hgfu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.12-dev_1651342120420_0.7523757078720557"},"_hasShrinkwrap":false},"2.0.13-dev":{"name":"parsegraph-viewport","version":"2.0.13-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.35","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.19","parsegraph-block":"^4.4.10","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.12","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.11","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.13-dev","_integrity":"sha512-9X0EW8V62rHWE1iyjjdLS6IJ2KGoezWHno40U7p7ZX6xct5/vrIbBcddq8Awr6BkF5v+8e66dd0Ym9hSncM3pg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-9X0EW8V62rHWE1iyjjdLS6IJ2KGoezWHno40U7p7ZX6xct5/vrIbBcddq8Awr6BkF5v+8e66dd0Ym9hSncM3pg==","shasum":"77669a5d4e329c7a504acd638269f3fcad80dc12","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.13-dev.tgz","fileCount":48,"unpackedSize":8150432,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAnHJgBueU85YoGgW+2ssis/Vk0N+zHGwQXdBtT7r5tAAiARmGLZLa4FsGQVC3I4D9rJ6SUkJlpEBYUNsy+3adl3ow=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibXtKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqveQ//cHWajwLKR24Cd44JnumcPHch7WCPogdSRWABv6HJsVrn7YnG\r\nV6ebaxJfWtTTcxyBWVKie6KRZH03f+h1vHZOPvH3uaZw+oExQyLK9OIWY/Os\r\n2GUmlVg8KW7WCXqJEknizB+hMQvUgr8/vnfBT7O3n6z0UHf7e/qhgmUWtehb\r\nHtX3OQ0RoKa5q1564aFaJDMqBH2mmVyDItLpLTrFJKv9XipSYp9UwLafR1to\r\nqeA4iVjEcnPhwqOBRI6nNcqgmL+Vng43+eGoQpXfVbERc5YNU9LjTauua6MI\r\ngPf7O8WfQ8nSewmC6eEfxET11m/RXsxDPjJKCRvuUZ5dcBLxFy8rU03pJHhJ\r\n7nJl+Hd88T8Q0WE+f85zbHcyZI7oLCFwxYzUtXmfY15VHt/QbZesOjjWiAnr\r\n3IVhGRap9kVIBxMxNKfLp8QLNgaX+Hin7N21pA0X7M3rytjLHdGqx3xox5Kg\r\ng2WebJFMobp1BVS7RO4AsXRgpCXVioqd8fCLk1lUQjp9T7oP6ePrA4/2JQtg\r\nxg8JhiVfGc6eE3ZGx+S42HATGGvF9Rf+7bBSsbYpfaZOty19R6ySMkRd4Ibx\r\nI9kLVPkSc7wIYhexhiEchHNMRCokh8pijtpfQpKg4VlPbbxeQjQ30/aI+tNb\r\nlo2BJA79KxOB7V/fpYvu6f5H1xADWPek6Yk=\r\n=rv4n\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.13-dev_1651342153876_0.04775192245818083"},"_hasShrinkwrap":false},"2.0.13":{"name":"parsegraph-viewport","version":"2.0.13","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.35","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.19","parsegraph-block":"^4.4.10","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.12","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.11","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.0.13","_integrity":"sha512-YkgWSKodlWvNJwiQVZYRwbpzHZwl+2UaHjPw/QRNcxt945qa3crZEdGKul36rTqkGslxkQZjtZQZb0U2c3z5Bg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-YkgWSKodlWvNJwiQVZYRwbpzHZwl+2UaHjPw/QRNcxt945qa3crZEdGKul36rTqkGslxkQZjtZQZb0U2c3z5Bg==","shasum":"4ebb43ee2df066d7f7d7f3a9ce1b780e4e00c95e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.0.13.tgz","fileCount":45,"unpackedSize":1353792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICe4g+9RlyuqEUTjSiD/Sb4LnYuwCblsKLNuWLWqyBBSAiAWw6hIK8aP+dnW9mfwZtn5TLgOt0hAw+MqE6R+gvzyAA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibXugACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtMQ/+LesbHg4in7PZoIMDkcdIH6nZFyrijzdynNkr6qCUZa8arz/J\r\nYqOf8RvowhiD+dHsuHmj5yhSVwW4VgPyc681bsOcYtHOqWu7RMlXr0A6hFF1\r\n3oHCgoIlyL2jzXedlsf8QS1bxJnUksE3CBEhoR77+bIaJIEZq1Y8BVouq6tk\r\nWDFlbSQyk0xBetmYg31zsohODvy1LgYV2pTqzukeGgpCXP4RlJsvBP7Rz6H+\r\nS9YCFy6s7CCzZ5h5J7sfXzUHTQzCP2z8onZNojQ/kaucNgN0xwrYjr8SFxbQ\r\nrkqP+0A7myQa3eRZ/Dpca01bmR5NyDB/7vl2wVOURoqFEhsWHphEL5LnGquj\r\nsCxXxChMtc3AQHiVc3IP8+WxhVPH0Gk4oNEc1RNsWUYe7i/8VJ1TZXZLIKvi\r\nU2Gn8Q5yKoXX1FGTsccwRojZezKuT+NHsnLmWrryhR/RCbEmZ9Eg3BcB5dSJ\r\nyDl37C1gfxsWAZ0uOqWLBhC16A/18+fL9IpVaCfHnkGT+L33OCAKLnV5aYNs\r\ny8fDtb4WNrdd9+H7giDO9C0j42e0kJlztp6d9IYONRoEKo+LM7ps7Usgpj+l\r\n268PD/NHpq3iuOVQCi/6O/+Rwt/WpbrgxhZDFGUR0SqrVDM5AOVjrlndcb5N\r\ng8mkgTHm6kw3Jm0xPWBTKhSZkVDs/XqSvUE=\r\n=XJuZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.0.13_1651342239946_0.4760677509763609"},"_hasShrinkwrap":false},"2.1.0-dev":{"name":"parsegraph-viewport","version":"2.1.0-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.35","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.19","parsegraph-block":"^4.4.10","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.12","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.11","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.0-dev","_integrity":"sha512-hK/ZiMaiD8ZzRHHhMccceHu8jYj49rKZQgjC+ha0fSRDuByA7+7a5Y89SOMMLjum2xikRtGMsQP1vdo1IbwA7g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-hK/ZiMaiD8ZzRHHhMccceHu8jYj49rKZQgjC+ha0fSRDuByA7+7a5Y89SOMMLjum2xikRtGMsQP1vdo1IbwA7g==","shasum":"ea5fdda970a854d88162dfd4b4f9e143e05e6b12","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.0-dev.tgz","fileCount":48,"unpackedSize":8153525,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClsprRVXzxVUiY4HjOH3esY5FXfAUFuRNWSQ94fZXqoQIgKy82Bo1ebgMttYot1yGIrVrwYAosRcjf1nkBW9u+Ep4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibYPiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqFRhAAk8X8xBNuVgJuetEcgRED+r3ofej5EaDBukWbq5OIhTjArbtp\r\nzk88XSWiZ0rZT9dx/dg6g3GrbSXxVJ2KYr3K/53iuO6p7/m6myH3NzYCkM2Z\r\nRxJb/bc9W8IufZrSMe5jfGWnNZIpGwZkjbWxVdOzSW9RQ8geGiOuzsq43M5F\r\n0CNqdvS/nRYClfrkPrvYhRZloWYG57MNz9hLn29S6Xmw8tXzbQ0yL875HKUH\r\nwP6AJNrhm+EE1CQTq63RIaoCcW1VffhdacCwvLgsqdFdnvqMIdgtIvOswIDf\r\n4ZA3CdSLnJyfkdtb2p0PLf2ttTLagOMa200lDsvP7dhKWiHvncFibV1XgcDB\r\nsfZRebA3KHRtga6hCjRMqgI2SKsvMbtmZg7YIdUW2RD9kXiLXB4HYkabDamS\r\nUEVOG0bqCueTislirUCCeRwffYAYv8A496FDv7WKlFOxF98ejCz0nbfAFWmJ\r\nwIUqVeaaXKK105Srfw2cqcy7QuiuliPriHZMfoX0sbSXARWFkHspo2Go5RPs\r\nHqNUX59p73cTM9iyxN1+fUkHryukPrA+m/H1AjkZJRIZMVYbmiVo6/Nj+UIy\r\nplIVxFXlzQ1i1wX9Zgsk0rur7Qv1sWOW4DePeGs3ON9HoVQ72nvd9ji5uMHK\r\nM6plZ9Z89WaeY+TqH11Bz7TVqfa6zHuzcec=\r\n=fVQa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.0-dev_1651344354807_0.23231100203267419"},"_hasShrinkwrap":false},"2.1.0":{"name":"parsegraph-viewport","version":"2.1.0","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.35","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.19","parsegraph-block":"^4.4.10","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.12","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.13.11","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.0","_integrity":"sha512-qN51DWunfyF1qWIjJqbJV5ATv5e4uFKr2dW5drvcBL/OF4p25jmtfDfHA3LCBBxxZwQkoDh/PKb/y+r7q7qG6g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-qN51DWunfyF1qWIjJqbJV5ATv5e4uFKr2dW5drvcBL/OF4p25jmtfDfHA3LCBBxxZwQkoDh/PKb/y+r7q7qG6g==","shasum":"ccc4685b2129015f448bd303a73d99e3e6f08447","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.0.tgz","fileCount":45,"unpackedSize":1354258,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuGiNvFHgl+chSe9zQFyfb5LZhYetA9i/ZigiVk/t9MgIhAPvGTQlndIF88hghmTfDd5hxoj6VfCGa67AGgwdcrLnQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibYRgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrt0A/+PcSC+1Ljb1h6kDPjrTDXefF502/wUy44OZETcUvzZtQ8n7vw\r\nGDTowuIXIP8oDHPWasxkQ4R318k+ZR5gIDDSpH8qDB6wRfX9Rl8SNKBqvC5h\r\np54QpVWdvecRVXyZ0loAJTD09InnxXbuc62OYRC3bIDmGmniqC2O2irjCIXd\r\nbJRl9/E+iN2sMM9XqCYFfk8Qn6hDURa1bP9Vc+kIHe6SJb70XuHMvbkM2qHL\r\nlg3ky3nWvyHBa3ozQ6l1QuvVhiAkWlM5O0dX1k0IkDYkoCefVNcI3tWaEr+m\r\nMjU3wc3pZhewxaJKSjDheICdIzayYiayTq9QHPbNY6ApEs4HnZ3G76f/UlJu\r\nmudz5GQe0bgqPwqpehLxUeEGsdHDkt2RBkJwiQSW6xcEILjsK9f7bDOI9L1x\r\n87imItuJomZTieE4fzRQJ+QLzhWJpkcCw4wc8jIZc9LIlkjEOw2rL2nyNNJn\r\n8Mw9hz2BdmXRn1OhhnHcsiCqT9oLcCXYal64d2uLS7WJuw+PAYq4+GZz2Ek0\r\nCR6039o7kY7KTGVwot9VyI0eb4RthIO+cjBH3PhlJVrh4ffQgeEHnQ7fOD7+\r\n757UlN4BqV6y89AhLsNeJa6Q3bm1tkAq/jsciac57KmswS+0tP0wQJbo9GUP\r\nNdJtp+w6GlOZHpb++h/0O024o8iLnQHIYZI=\r\n=A5dX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.0_1651344480108_0.4392001012083475"},"_hasShrinkwrap":false},"2.1.3-dev":{"name":"parsegraph-viewport","version":"2.1.3-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.21","parsegraph-block":"^4.4.12","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.14","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.3-dev","_integrity":"sha512-Qkaa4R7maErIRyVMB7bUSsbx0cVUfSsCjaQmH+AdID8mQC8UAbN8StVRyE+zgvZZipxBQqiLbn4yRgX+aHASQg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Qkaa4R7maErIRyVMB7bUSsbx0cVUfSsCjaQmH+AdID8mQC8UAbN8StVRyE+zgvZZipxBQqiLbn4yRgX+aHASQg==","shasum":"1f45b05ab6d49f9e5b5858345fd38b1504f58cf6","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.3-dev.tgz","fileCount":48,"unpackedSize":8153476,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICx7pGUDKwaPS4dMLILlqFRVNWQz1AUoutYnvkSbcfSFAiEA2mA7IbvWXjJ6m3uOT9pVSaZT8r8YI21mo/M3JESGbJU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibZV1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrsUg//ZiDti94oN/tm+Hb514+ELPHU8ehvUG8VKcOiQO9U3AVi6IjW\r\nkdutnPun8GLnXjOwfZsy9yhf2SzdyGPkMC879Drb8eKGBXOFuwcITFkpjfxc\r\nwjW8b2roMsQN/V3z3640V4i7ufMNb7IKjrW874ywoASr1Y/uWVugLBFua56m\r\n7leD5d3ejqjOpQOehek9SJ3GGmq23/4ttzew+Syac6oD9qByz2EXie3mZDKY\r\nsdLL8kzDLPXyRnuCXUrxlJ0pMPwtimJJTwPNq4VjvAaebauu3qu6T3v83eaG\r\nEpYuzsEi+dAx4kcwL+6FW+WiQ8DNPDbX9W3A/UXiiIJ//3ZmFGvLt5kTGaCJ\r\nIjlAt/nwRXaIbApdq3U/7XLYr0N4HnQIxminD9uwH647uPD2y2t7iqV/9c9m\r\nyLPsFDtY7X7iTLjtl4v8KQ4fSOLT/vzdCrklHxYdHuD+fNa38K/+hHIfEjHs\r\nh/baHfSGjpszkm0y6+JEVTv+q8jHOXfEB+2/vUjAEIf92i82yrPQ1cgjKRvm\r\nCV7DBhJsmpwMtg074FkQhrtaCRCHr58bG2gNtEnLQP2VxMfVjoPs2D29ethO\r\nyQQSO5bF3viERFJheLeqO5VpseKgdnfrbcMdrNFXHAYAq1w8px2Y9z8hu2U8\r\nSxoCvw64VLvVOPKgvM6wylen2fN6/gfJq3k=\r\n=n7du\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.3-dev_1651348852881_0.6712923856675905"},"_hasShrinkwrap":false},"2.1.4-dev":{"name":"parsegraph-viewport","version":"2.1.4-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.21","parsegraph-block":"^4.4.12","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.14","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.4-dev","_integrity":"sha512-NBb/8Px9hpORUa6a55Xc2iCWfoVRSN3S3CWcuZPFMIyzwp0SJN5Jrl15nGcgcMfiwR2FwtsdPs2I7d+P5a7gag==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-NBb/8Px9hpORUa6a55Xc2iCWfoVRSN3S3CWcuZPFMIyzwp0SJN5Jrl15nGcgcMfiwR2FwtsdPs2I7d+P5a7gag==","shasum":"b79f5961a799db088ceaf28ed1cefa4a673b5e26","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.4-dev.tgz","fileCount":48,"unpackedSize":8153476,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCy5Z0+Q+dIE45U/yKYhGfLzhRTxr/3ie5+9eiLVKl6qQIgMmQc+AyaqOQ31ykC/n1gB75ioH+NonFzje6jbX0okIM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibZWaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRxRAAms+UA2mG0F0Ijf7ke/0LHuLf719I2ZFbv7kuR0E62Wi4UmbA\r\n9iW0lIjXznKP75JJfdzPKalYNg1rxMDX7VKZDwU2FRz3FEYPgwNwjcD7ntty\r\nFOJAR81t7Eb8KlPICynp4nXRk1Co6IcNkiQ9sjQndX1B4c+V+YJaVueQVuhL\r\n6anknrjMblfKo8gxcKfiHWnMsWiF/3pU+rOS+939MKts1LJQd3kcpLqPbMmX\r\nia1woNHkKc8A4fBRhfOia85Ic9zWHIgLXbnsf93QvxMWMmutVcavAYNDN/HF\r\n2kNZFKrCmfSa7wdHRlv2tOb7fwvIIAzdiINHZsC2JwfdMUOuo+2UJnIoxxed\r\nUFUT+vA2/a6INdokldDuCrHgo5Z3wXTiEWUsHb+zYrpJ7X614CftRPIgUoxg\r\nHnNzTICCfL7P2uhW+BqqTptt/yNYCoK29nozY4MUOw9lj7tEoKpWd/hBuHW0\r\nEhgGEPCrSlmHqAMgKiCoj/O80Yy028XsFEm792xsqbZO7iJoFhm3m/IVedjX\r\n/lbhpA0/DmPzhW2ZLcKM6BLIgdH5Sa6e4nZ7cL1jaXT61D/U4Vyq1Y7QLFbM\r\nT2AMtVXBCal6GwyZEIW7pz2Sggkkk2weWfWpAs01kbyZ5ZE0dw7Ouw84/Mhe\r\nD1RIFdl3Uyuh3VjkHiEhc7OAu4U7uAdoMAs=\r\n=afPj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.4-dev_1651348890531_0.9325170837472967"},"_hasShrinkwrap":false},"2.1.4":{"name":"parsegraph-viewport","version":"2.1.4","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.21","parsegraph-block":"^4.4.12","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.5","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.4.14","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.4","_integrity":"sha512-18CzK3Rehypmkvm84MBwxpnQMkOKGPtYFvFWI6ouqiqYi7NiIVsGDJCK5gPw6pwTH9kTEIQZcdJB9iKxS7UtDg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-18CzK3Rehypmkvm84MBwxpnQMkOKGPtYFvFWI6ouqiqYi7NiIVsGDJCK5gPw6pwTH9kTEIQZcdJB9iKxS7UtDg==","shasum":"56034e9e347fdf25bf24b4d8ad650c76a3625698","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.4.tgz","fileCount":45,"unpackedSize":1354249,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUoAoPr0n65ew73bLx/FJ/X8qETCGEO1sZR49hOw0gfwIgItFrPlrW/hW8WFJbl/AUPtQCmymx9B6IlSrYk2PoUhg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibZXvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqssQ/8C4pczUJZb7flrtlE+5gZW/Y4zTsl56LlaYQLJIa+N+yHR+cy\r\ntZnR9WaQ31ptKlO/0a+MHm8lE0kyGzfuYRYKp+clXyKmfb3sbl8W08AFcZuk\r\nqzh7khRDlAJpR2++S8d5gyenWCDgkekqLIP4tFxBmHU/ortp+X/Q2izrbvIm\r\n8Yyt4FHlOPwAbmCX+RUcvaQx5ZRRxMUlNVmFu3xnpRrMXevZXFhNR70zmykP\r\nYfBYeMUZfDfI2nR18DfNlhc1E6p9bg8Zo2vxSECrYudyLU9Gxr1GO9qU+wgV\r\na1fWYVpLPI/sIMKphw3YGUXZhm3z+sWbtQI1RIYinH0KWvLdEO6Hr+iRTG6K\r\nlto+qad1pbRuchnMhzzpWXiYK5pxBRpzyuq6QGdhBwvBJeQSb004IgaS9ZF6\r\nYZ52/tuSjgCbHZgkk+wTPvrGyOstFqdRV4Prd0owQavcF5HX7viO2vWv7OgG\r\n0P0DMlPK9DT6biQ50SdPLe/TmeqwTp4aFRQqdeFy49J00KRB3ru8+Q2RjIEa\r\nE8nwUl+q/4hEGSieT7yWuXAESGfpqcY8KLMfW79d5h0WaFgRZqCiOoDNNUxD\r\n55K+Dk1sYurOJ0wYn0UJPM+woijDKsP9WYHZ8EL0MviIlvlPXEZTKx2/gaIp\r\nZ1DOWEL+KF6kCoHXiTrKn06IbwfOox+P0Jw=\r\n=WQ3l\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.4_1651348975266_0.4762278148087862"},"_hasShrinkwrap":false},"2.1.5-dev":{"name":"parsegraph-viewport","version":"2.1.5-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.12","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.21","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.5-dev","_integrity":"sha512-Kjfxd7U+KcxJ9fM+8YFx7ra41LqMz/hz00BS63tzv7YfD/RpoMglt8Hd3u0qAx8Se1jhuauk2Sin4Ku9BhA3gg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Kjfxd7U+KcxJ9fM+8YFx7ra41LqMz/hz00BS63tzv7YfD/RpoMglt8Hd3u0qAx8Se1jhuauk2Sin4Ku9BhA3gg==","shasum":"0e9e077fdd42be9a9bf243bc28ba461acb467698","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.5-dev.tgz","fileCount":48,"unpackedSize":8081068,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAFavstPyqMRUY8W0DAyBC3q2kIQRFFyvAubTsoIgT1AIhAL8RkEgcj88iju0UrTvyW9d+Q6xy9MNX5aMADOV+aUaT"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibayyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoOPw/9HowfSBBzVtmB4rYVtfpzMni3MinMIt0zHXxjDjv0TJt4bKdd\r\n7eK3wQkWE1gcf4NcBUEami+3snYxggaxGCa92x8AihsZaOfjpziV03Ltdh86\r\neafjpfSqRbUbZouIMNyfNhdRZfI/T2clPB2Cb4WzCgWdiNqmlfDdfRjLXTSi\r\nENlpc6jiqpHLUyWc60piqG6nJmsT54PSsUSkwNq8BftIGp5bGKMi3BfDdpJZ\r\nkR1ywt/Nk/J/h9Uy5I72wCNSN//0ijEXo3vxfFwjSYGO3V7q61F4VfwSlgaM\r\n+yLWDqsdgoT29cgOXpyoApqq7Q4Fixo4bcJk0O2liSFDvszuuA4ovXYXoz6T\r\nDPtH+pA0qj1J3fV44qAasgiv0r6kSc9eY4oiN20eCJLavgMAHczuuodv39Ge\r\nXW8XXzYWyYc9LarHgmTWRUtbESfhEhtHzZ1iJ1q7rCKnEezMSlhLmm6FG7DP\r\n9Qr8Uej7XfHUC5w3uu3PVY21KtDav95a9DecfmzsB3KgZ6i/pHqhyYVAdZOq\r\natm4HVgqNnP07nxp0chQEOybPdkAZ+elFKupqTFkm2vtrrQPIIF9AfjOjaX2\r\n8+iiJVW6RIi6zTeEob5ITCuprwiEpY6kW1TFox80+DQZDcyx4IJM3Z6Sd7z5\r\nQ1re1hP37fbtWyWlxw77PKn5q1jMIRP0yYk=\r\n=zSgr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.5-dev_1651354802029_0.6387415057001673"},"_hasShrinkwrap":false},"2.1.5":{"name":"parsegraph-viewport","version":"2.1.5","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.12","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.21","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.5","_integrity":"sha512-ar86mgx93cW3nGZD9nhBmBVGFw1GhCpTN0j1a3Y3c0TmxB8fEk3PBPSm5EtH/AnoGVL5BHxQ9ShlnZyl3fGyLA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-ar86mgx93cW3nGZD9nhBmBVGFw1GhCpTN0j1a3Y3c0TmxB8fEk3PBPSm5EtH/AnoGVL5BHxQ9ShlnZyl3fGyLA==","shasum":"0395cb18e75d441a5082a1b2a1ef73293b4500ee","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.5.tgz","fileCount":45,"unpackedSize":1344446,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICPXmpXqGDsh3n9MECTb2g+/gAUXLw71oFrLIjRuYibZAiEAxccIDUy8AxE/Ky7rBNSfhaSwrZ6ozUJsEJSjVsPp6xk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiba02ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpmZw/7BBeDwv+pFTsOh/oHIpA3NAxmRASqNhzbBADEQlrLxHRwK+UE\r\ndnp9dXg73ljjslB6fe7H9YpsnDRXSzlrQ37B2WKzTe08GZHSLq96tbXV7myS\r\nGpoKwo+oYl4/hGGHL3KpDOX0YjMu6jbqCjXHiXuVfUHjiRUao2Iz/XeV2miu\r\nyGzZjxQuR+G0ICKUz3p7Kw0SUGq0ZxTQTXMhpcNCaLen4sIl2EjmxJQW9OA3\r\nTBDI83LcvW8Yxxid9crsyGHC/Qh2k+byKtlvEA0gekM8hL3JwicUm6iP7muv\r\nXlAvhcNIOO6Zxi+laCO/bF/zkhA2KpywGsQiUAagTMvgvc+dzEQM0cHFjDh8\r\nKHEm4jVeB4N7D1MIzaopKzm1Sbnlai0avA4Z1JdOga9uC2j5I55yDH99iKS/\r\nPoGU4Z+4ZNgv/Rdfze1s7Tw2b1jJklwmkKHJ/THCz8nLI+t4bESN4RVV5D9z\r\ncMuJ9O7I9+bWH80+2tkqXi6MRs1cBHdNHeb1Diw7TGesAWO6tZldce2kaG7M\r\nW0rp4+b5fUfEKLn3LyT69JIAWVJ1xgu7EUu8rCz5sBXZcPH9Z8KgcKPIrUEs\r\n74b38Pg28dAkIg4R0OFy8OoTJXsgWZ4Iflbqk78PIiqFEUqoegNTQiq/mE/p\r\nfCl2vRR4opiwGbpL84VmJJaiWN/9LS72SO4=\r\n=o/bY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.5_1651354933739_0.8770103007525285"},"_hasShrinkwrap":false},"2.1.6-dev":{"name":"parsegraph-viewport","version":"2.1.6-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.22","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.6-dev","_integrity":"sha512-ppwbu2CqhPJsmZO4KpA6qmAk9m9KO5UtIcLJx/38pGUkLqDYCjK3DEXl1MfG4lNjPItzY0vmIq+baAU3F5xQsQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-ppwbu2CqhPJsmZO4KpA6qmAk9m9KO5UtIcLJx/38pGUkLqDYCjK3DEXl1MfG4lNjPItzY0vmIq+baAU3F5xQsQ==","shasum":"04fb5a1cb715e9da24c8f06cf47d387142f438b7","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.6-dev.tgz","fileCount":48,"unpackedSize":8100335,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBLnsgnNs5OKhysS4kEkt5PMvDyo/b1WhnQCkOu8v9KKAiEAm9fzDz4GBBDaFt789f/clfSGJGraZf5nEPeDqx2cbj0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibbi1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6vA/+KrYkCCbeUGAkjrvhHZaUmnD+hsEty+XBXHBLyqMTbWAxs/V4\r\nSW4lC3mNqF6PfTZe5g9gPEHUxEfiM5DQ+RBApD9AJppPF3vU5jrhVciN8Bwn\r\nyA4fJ72zwzTkT1aFslflYs9eNk1mKqaPSJAmTSeV10iA7N7/Pc/rV4jBDTm3\r\nJWq575t8Y+Cbu/JtkoQZWZDx6xSZPoC/sEcj/h16hfBYU6PcZK3Q0xYQFJuF\r\nNtuBj0PbaYmrOEBvGzsMm7ygXwxSbzEuhFI0IEtzXaGfIOoDf54YY0ik6GMT\r\nZoSKRrDSvtYpFii8Ueg26LWdANHbKZEz9243OfDxbUxOa1z2sh3kJD9FwNou\r\nZr6DGeEbRLxlm3eu3o472EnjioVz4I1DzGzucdKdsOxkjVGcBjWgLJqbch+4\r\nik98gOffhf+tjeJuOjOiHtpGecdjbSU6OCfQnqMGGfbKWA9/9HrtVneCEWbB\r\nWrVQHi7uiBnC8deU7uNEm7WDE6hqlB3am/poZSkFirHHzZunz2ORH4oW22qM\r\nh2tHq7KqehNcrwtUtMJLLmu9yVhSJ34KyGcapGhX3dA6UMmYApLBffHkme3V\r\nYOLeCPO1F+xsQsLeGmIsseSgVjGVqP8rs2hFZQvQb1NA/jSrtvheQxzxBJoV\r\nvliWVrPivAoXsmzWygGFhXm9HjvCIK6iOMM=\r\n=ZvV8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.6-dev_1651357877238_0.7058298266685274"},"_hasShrinkwrap":false},"2.1.6":{"name":"parsegraph-viewport","version":"2.1.6","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.22","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.6","_integrity":"sha512-7jZu6UE2q427gsBVHpDOdztLKQCsmXke1nTbXrRWIICJOnp/JrD9ECkZc1gREaQahsONuOZpNuEl3HKcg/uQww==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-7jZu6UE2q427gsBVHpDOdztLKQCsmXke1nTbXrRWIICJOnp/JrD9ECkZc1gREaQahsONuOZpNuEl3HKcg/uQww==","shasum":"0306b00a8d8de497d640acb0d40a7e5710e98411","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.6.tgz","fileCount":45,"unpackedSize":1346925,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHMPNU6ijyTHLvyLpZl4Iif0FkUXtTtOdPPqlwhvEVYwAiAPaSyX+PliBlDW0kGEUT5gk0xaQ/CBQNjgIVzxIkUA+A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibblXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpgSxAAkZOa5eC3MEE91kxjvs/1Gcm6ANo12RRtX9imALjSqJQ/+LWx\r\nXkW6+T05kEs8HDfytc1e9uf/VbY+9e7EGl5ikn0XHnwbuH5OFfx+c+Ca9Kzn\r\ncTkleZxktNYpTmvRLgUqxOwff0yog3tNzM2N7uvOGvj0Co2a2fnd5MZMqCEU\r\nrtQGnq/EdhYUW6n9V7MO5PTJJqdOYdbbFsEuuDwN4oXD/gp2ZUvp4x68ypnX\r\nfm864ouqq7tx8T/AlW7EUwScoGDeg+2c3JccqEcyVmEDNRxQqbQu8yJOquCs\r\nCd2wVVeuPaFMkoDxae5o2AI/QWEgPw/D3yRIRn1C/obCmFBQBfGEYFjQzmig\r\nC+lKJqp4gMEPXEhm50nocFsQNeYrd/hvKZHegZ8406/Xj9Io2IZrm8afVb5P\r\ngxT2GoBxINU8Hyp7XMXvMDl1E1OPw74OYze7kJ7sg+vXRjzZR64+1bLcTaKD\r\nREH2eIgtFLWnntoLvYPa/WCnNQxXAiD6ffT4qVMikgycyV/vQ9UEIAlWn+8D\r\n83D7UV0G9QpLJP9xK+RTWAXXR3/6BnAUgs09PWwIP22Ubwj1USEFQ/lWwFNa\r\nNsOwGzocHsYV47SJsPjCpQcz7DbY3Sy1KYtUjt4nNmp/uXs/VMDX2KGQoCJn\r\nibmW8dAXwlnc9ILGwchkkyxBEVnVmfrEtWA=\r\n=VYWM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.6_1651358038800_0.7174598476222294"},"_hasShrinkwrap":false},"2.1.7-dev":{"name":"parsegraph-viewport","version":"2.1.7-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.23","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.7-dev","_integrity":"sha512-DjWlRXIpe3ezKAJDzCywbw9eyBH8huI7vZOTjZAL20ucZmRDbcbxaSHBwEWVTb0SqWx1aDrAnaQHJN9Zn7+Kww==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-DjWlRXIpe3ezKAJDzCywbw9eyBH8huI7vZOTjZAL20ucZmRDbcbxaSHBwEWVTb0SqWx1aDrAnaQHJN9Zn7+Kww==","shasum":"5de311d0ce3202f3d787a17d61c5a609843f3c4c","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.7-dev.tgz","fileCount":48,"unpackedSize":8100335,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdik2lUtl3nQVf16md8tfPpU7HfXgUyk4dKGENVL2xggIhAPsXEl7B5f9SrUgcxeHRtaAa9IFLZyViF3T3SvhTkJfc"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibb92ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7EQ//Vxi3BBAIA4k6XJMqr8RCtwVwlUV2PLOo28Ap61jeZ0dsDtg5\r\nXoatU07Z+4rDkjyjlY7+s8LNhkN1yCo0QShNZEb8CdG4QJhETT+4IlVk4ffL\r\n3CgbXJwksABkk1jQ+MeSwihx3YHkrwWguvgONovXyOmZRv7j4+7YF3G+TOZC\r\nk3dEM6YperxhMkHdShS8G5qxgeU1W0EK9+5cJ2NbnDml/vbvpPCsv3mHkR/w\r\nFVZaeHSKVrBDXnfIdMPstMABmnhXj+WEsr4OPLjz4Yr3Yj7OqoXQDNM323nY\r\nqt/pDvFedlo3FSJx/aeqKf7kLZpET20Q/cRC6BS2QLM1Qzg3yKaFRsBTdHfk\r\nMF7WTx/CA+eRRQrEMrSPVO8qEJCoHAYtSU4owNkFaprU6h1L0MY4rnTX1P5W\r\nKug8x9xQ5ycDCb4kPdb5YyyDXaaiQ8IbaSfNIDJPCerkJjTULCl99tm9XRWd\r\nWGmQWYlZsZ/v214ElhTwMRNfRDDT1Z29ufWqTpxlSxC+nDlVehOOOVcvSE5X\r\nhFB5RrsRjHLOfTnSga+mEk2dU5z9WYWeAXBkujkuzso87pZFPpncgS0eBM4L\r\no3JzXXWqYNsC1w8DXc/+inwTTu3A13XxnEdbW2HELkUYGu55Ee7mP+MGSguf\r\nurqaz7XAWoNyTfcUTNQwlquuUiHxs35QoaU=\r\n=2X9m\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.7-dev_1651359606506_0.7865214165006313"},"_hasShrinkwrap":false},"2.1.7":{"name":"parsegraph-viewport","version":"2.1.7","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.23","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.7","_integrity":"sha512-kclxssDz8tRqqjvrJx8j3AKM5IICBoCYNvvaf9Z25qRSeQ00/IPeoRrzoATLtpNxZYh2ChkGETwIdM9vGdfK7g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-kclxssDz8tRqqjvrJx8j3AKM5IICBoCYNvvaf9Z25qRSeQ00/IPeoRrzoATLtpNxZYh2ChkGETwIdM9vGdfK7g==","shasum":"1bc681066e0146982d139442d3661b190ac8d05d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.7.tgz","fileCount":45,"unpackedSize":1346925,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+s/HUD5XwMSDyyhBZ5bSadavA4lDgh1WBLvBQIUZWNwIhALQu9SSso4JNzG6lX3Se2NjXRH2ISjgW4L6zY8nSOXru"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibb/cACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrnLw/+IOMDUqF3/gO9d0qQUXirb2SWNaHcOhimoRBxe0fu2fPW9fRu\r\nYleb9VDmpQUySIGHpj0OAiDZtXOl+GXLflJUqgAVGDHTrZSzh7Dh7YH095I3\r\nruL017HC9HCeQ5hrcmem+5Dr4xIJ2hjQSFPtxkOmqRMBdwNYudQe1Gx1buSg\r\nrRjcTZwgazkLIJNJTITjiA049D26mdVChtj7Fu2KreTw9f6dvhT/zoBw3lt0\r\nrS0ZV2pXq2XYybgWtwcG/cSDXbKeN54oyaCRv4WGM7i+MiTB+sbgeEj0KS6B\r\nPH4siuX/z14pYRus1c62TIYSt2ja2bVfLUzIOoP6t32VmN2ajfgc7YMt9y3m\r\nInIe5Cl/LpF8axcL+ad+sVeRE6KfBMEdFmtjPbTamulBIYWXQNZnF8qrn+Ft\r\nG+hVUzmZYh2EmBUO4Fe7L1h7R0QmqR3SWH7W44A+vCEdkpzUUgwcI5pW1VFd\r\nwc/5srQ6CPuiV+nKu28+kzj06nnbCjZSFGHuEy1HI1aosDReUT8MflHiBPXd\r\nanPKP/MG+LxckD4htsdr30j7pAQGppOhjeuHdfqv1PQL7slfSsnJWS1nAtqb\r\nVuXFviw0MipEY1Hsvnpkks3otTxQpPv3kMk3mkbIkHeTXA+0o1PwY/ncnMe4\r\ne2zX3bMuSSWTAsY7R82xFFeQUG98e+uEtP0=\r\n=duIK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.7_1651359707935_0.37331684724703784"},"_hasShrinkwrap":false},"2.1.8-dev":{"name":"parsegraph-viewport","version":"2.1.8-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.24","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.8-dev","_integrity":"sha512-iOKfvIgo6vULJHEy9CU0QJzrRfmeaPp2QE/2fR8nW98Gj6v6hgRJ0WOrS2MJShSVMjPZwVnwAftWsUWVv2pXRA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-iOKfvIgo6vULJHEy9CU0QJzrRfmeaPp2QE/2fR8nW98Gj6v6hgRJ0WOrS2MJShSVMjPZwVnwAftWsUWVv2pXRA==","shasum":"e4c6ad547df8d52f43c4fe1bfbefa3779c44b0cb","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.8-dev.tgz","fileCount":48,"unpackedSize":8100335,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFVyF1ebwGEGRZ+jW43XGvpzZXv+UnPFw7pSePAyxNd+AiBbyWOj0VZz8W4Vm0orS+IQMI/HCR0FKRO4J3zuD0fC1g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibcJYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq09w//TsMacF/X3LOX0p+fMbsgVV5yJJ6no8qHaTUtaAHivb7BUQtb\r\nYVezuuGXGGPgX6hSLEnGdLM70/obddrdaC4m20SodhRzi+PAq/A+vA6HjWvk\r\nn0uMH7BKxeV68yTJ4fGwrk886guYULhSOLxFUEaGeWo34QVAVnr/yfnHPDGz\r\nFkuY2V+uXRknt24roY8cSn7AGRKHpPEs7sRSDho0evcrZQVQmJG8EqstBlKw\r\nqwli5p+jY5NOjgf0l3mp9zYauoXUKGipnxzyk9obcj8rKoLEuHQ56teH4/ll\r\nZ2o2dTwwxr0ZtKQnQbBbFCJ9xZ4K9+UwBP8Lta1DKN+mpYUcOim23yQR1u8T\r\nAroXHdUtoV83v2Qo3LlWfP8cnJFPV7WoqgHpgzKVovVf6EfMSGLfkp7jh+kQ\r\nU5Vzoh8cRD5OtV8mPJ6rjpCaSzFwDssh2nA/ykQj8hlwF7HZ13LNMB4jwaqr\r\ngmlB7fJvEcBk37Xnj8lvAlNtRk3bF72gNNagEA9UFR4nmHoSrHD7yFJ4jJi+\r\n4R3SnuEjVuBrbcb7hGwouaCOwNiEaP+onaOh9qKocI2/KMAHDCKNHwwHXPaO\r\noF3spZ2rcpzqQWDpHqgVO1UPHnW4RpQZrinUJSb/BNL2cdmjBtQtN3cEwYu5\r\nQ8cd0LRFwZvJZ6Vfn8Nqpq/kzIyHSSPxHvA=\r\n=aTvd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.8-dev_1651360343794_0.9027688600882935"},"_hasShrinkwrap":false},"2.1.8":{"name":"parsegraph-viewport","version":"2.1.8","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.24","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.8","_integrity":"sha512-AItzCU+CPQg1JPqPFNGvGYeeJOLDFil+sevy3k59BiiQbh7wLXtpOIayT1EvSDAhNyafJY5einKVuMQz/IzsJg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-AItzCU+CPQg1JPqPFNGvGYeeJOLDFil+sevy3k59BiiQbh7wLXtpOIayT1EvSDAhNyafJY5einKVuMQz/IzsJg==","shasum":"3a48a719acf1f2dc03667bcc74f962252fc97ec3","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.8.tgz","fileCount":45,"unpackedSize":1346925,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3K9Bq2Ghlr2QL+AFjhj0oSwYrLmXtcUCTnozyb+5Y4AIgHY74dn4i5EJjWtPRQ1PjPPOeydwKrusHjJHSXjMeEG4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibcK9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoiBRAAn+9cjgCseSpMQOBKOeSJPI++jU3seTt/9+RQIrQqJObI8lwD\r\nw29g15PP1kUVbD/RsDbW9eJhDwYXUZAjjLHPgUWSTHdIAirJlLrpwmSshpUe\r\nYE5s5NdSDNu0YIDHSrLPl1/+JvC4/cRXF4uZAnSaihz7rK7A/Iuz6OG+kAEj\r\na5NlM0LC9R24xFx4UnZWqoBDzLNZa+9iYbLIy5EoDahdv0SavCEE8zgprR1s\r\nlhlZNeNWEM8vFp1tBgv8FXYK3lePyMPb+uQsgKzKVgIy6o+kenb1jziwLS//\r\ne60c7emjhsqoGQ++hku88wKjgbGZOhZ8k++B2ASxoIsdeQ3aCDzaQIjiFCQ3\r\nGQiYDlANq/P1D8SkwxYIndh05aG1S3JrcwCDOo6dwCm5sSiZFf4m3EkPE+NL\r\n2CJ0M6oN7o2aQUB0/fvGSlRdxI2E5Y7ALYoHuB75YyxamdIemrIVxZ9C9PHB\r\nZwwOTsYhP6aj32usVH+MwWvtJIrYFnI7v3rszn5iW62ZTemtEvJAiMHuEd8+\r\nkIxlONXKGlOmxTe+BXKn9XXFimkCfIgOkeYpBe/E+oRboKR6NG5VDw2EWVWB\r\nDbrRF3RnM1e3XpWfFjfJvxKHvu/gLpfF9ZOzIToR7ko/TQ0UmOwS09vYHcEr\r\nOTRXNlCM9AS167YXlD5mZYaBzj38lmtoidw=\r\n=TV33\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.8_1651360445116_0.56923065896535"},"_hasShrinkwrap":false},"2.1.9-dev":{"name":"parsegraph-viewport","version":"2.1.9-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.25","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.9-dev","_integrity":"sha512-gTEdxIlOB/mV2wnlsHWVVli8UoUmf4Zm2U+3SAesQQq37kh/9XvGxXkvUPG1XwFFic8MglVxgtKDy+YyeBvrPQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-gTEdxIlOB/mV2wnlsHWVVli8UoUmf4Zm2U+3SAesQQq37kh/9XvGxXkvUPG1XwFFic8MglVxgtKDy+YyeBvrPQ==","shasum":"0d52af56b52eee1ea1306cd8b36bc338a0125ae6","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.9-dev.tgz","fileCount":48,"unpackedSize":8100335,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFsBnz6agB9TKDFI0/TlrTeXrb3Jh0ijYgox6qfrt9UQIhAJd8IZzUmkAYNkt47Ps1yIePGzdp5L2CU0h6co8F+yTe"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibgPFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmojjA/9E7aap83t7Y3VZcSLpn7DWzIPSm3Da3baEVJkgGUCixYa6p7a\r\ngt61dAM31HQaI3y+IX9PNs7pSBtoHavZZkBZko3nx9SmpXNjCZUVIowK33rN\r\n/5SSUMgtgXufrKnKlqiFl7LY73IcPVkVSKcN4VFDzXBmSulBr8cRA3m8kWuY\r\njtJWvP/Ew4lVYGuWsrvWW/WRmoV2IpMJmRAdS1p2jNErebjbPqeLARmRs+7V\r\nsUwCAuuKKsg8v47ZWOy6GlYO9ks4yPLFxMnxQGrMLtFJLVJ68hdRs01RWLQ8\r\nwt0cL+cUEsJXt5xxqLCGyoEF7CnmXlXI6PU5SEqWhoPnQslZ2FhVjTQNt2v3\r\nNC/pxbtsB/NILulJdA5J6zY2CojZ7aHFpnbC35IUbIH2+ZCfaYORTIx7FW0L\r\nJ1zrbs5lJ0bA91Kwz/phdOnHkAT3DolI0GAfmWKNwgY3j8ejE6YAJSpGmlDs\r\nP+6OzPDShoVRBocsIRWSL6YeRxekYruL6+eGq+Q8of8H+Eo7rOQLtpdpMFSk\r\nmkrR8rhSABmMASUq4yhWDWTC0xEnq2OknUOkfiISTzWrgVggS4vrr7wVB7ZS\r\nqhLNAAknvAFgrVDNmgFEF+DvYcgtLvk/HN4OzqfsT4c4oiP0zog38pTOApM8\r\n/Edq2N1vN09TceEaSbcIyGd3BpYxoaWH/as=\r\n=omSm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.9-dev_1651377093019_0.27731157050724353"},"_hasShrinkwrap":false},"2.1.9":{"name":"parsegraph-viewport","version":"2.1.9","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.25","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.9","_integrity":"sha512-tAsvpKoS49P+WYis7oftDEQeYZTgYi4Cv+6lz+Pz3xhNFIJB/PitnnTtYZnYCIXKXNLWSZ/b50eBt5buvLE0wg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-tAsvpKoS49P+WYis7oftDEQeYZTgYi4Cv+6lz+Pz3xhNFIJB/PitnnTtYZnYCIXKXNLWSZ/b50eBt5buvLE0wg==","shasum":"3d047f58ed7bf8411e10f389b6bb8b3186f3eab7","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.9.tgz","fileCount":45,"unpackedSize":1346925,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUcVdMGElTOcg3O2VEWpNMSQD6oc7RA3KE2UEAMgxO/QIgYimGJWBa9XyXuhLvrTlFuMpTMLZ8EUe661GJpwy8SSA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibgQtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpccg//b4ZA35g2wai6yorB0SgAsYa/FLAdpefJ62cgmQU6YZKype0H\r\nTCKi4v3mIYQUdSoadChAmr4pAth8dkzZ0wMdN+1Q6eUixcujLXGoRBnc0t7q\r\nfD2Kg76oBhVWPMp0woMrer9Us6Kd6RsInI332sZsxbb4jrvU+w5RaCmhKBUp\r\n+G7SG18ZcFx2bXo0aQl+WrwYCSxu/d4Ohr+RDEW+0cfgbZaJ9TdX0T6l7VUE\r\nQrusPeNcmYKSQeN6OAp0l1daBSihS8syg8eP+qxgvrNxTrfY7tAUjrM+bvLg\r\nco1cPlPTXMgUNzwu2ZG82QE1yc3g6GadjJa9QwxB8kvCYani5EXjVSIzHH+8\r\nzxTfWDHSxXhgI+l+eglJ9iNNIzpBKstQ6J8UvW8KjGSzH5W7j0f0q/LrXFBe\r\n5SgxY37tf++M+yYUYrhCrCFZEL/V4aWoxAKdSkPKHOxWcYY8ukNQ5rw9ndl9\r\n1r9uDXIqNfM1Ee9HEaBBkEE7wDxW8t42acZsOCM1AfCN0PWsn6V+PTvZtu8L\r\nHOVjScHpcU+xUgimCZgKHMbXI8Y9E5m3YQN3ycg1XI6wNTHjhAV5yAprx3sB\r\n++PXGW8oI8WJ/w83nCgjoFrD4ouhYtdyUdQPPpj4j6MvvZJNPOddket6mAg4\r\nsel/mhe9sBhGVYZs2411AYm68+ZXe5wowns=\r\n=sc4x\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.9_1651377197582_0.8578013662066641"},"_hasShrinkwrap":false},"2.1.10-dev":{"name":"parsegraph-viewport","version":"2.1.10-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.26","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.10-dev","_integrity":"sha512-8FtBOCAl1UZX1myFKsdERQQPz3qHNIrPpXgRlzGc3fL6PP38WZ8tjWOVcvPJ3Be6CmgmDuZTAmXQ0Vb/EZn8Sg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-8FtBOCAl1UZX1myFKsdERQQPz3qHNIrPpXgRlzGc3fL6PP38WZ8tjWOVcvPJ3Be6CmgmDuZTAmXQ0Vb/EZn8Sg==","shasum":"605acfa427da793a2dd1710d1b32fba1053cc228","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.10-dev.tgz","fileCount":48,"unpackedSize":8100336,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWSA0sdDDHfoJUkjXrH96ditwFIqMsO/Fw2k8i4C6PZwIgPj/xXDwXaWzoyuQLZ0n/hvqPIchE7bmAQ60gUepaaSY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibrnNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqM+BAAmPSkKvoyEQeK5N9wIBzy+8oj9h2mbUfxgqCpNRqiF6FL+xPq\r\nGbtVYBs5I3ghdUhZo61iGMkEm/5CcibGYB4vHQis9/NOo50BCmNlg9zaCeMJ\r\n8Dj3tWvxepSDOsIKKz9qE2JFyWiMBqX3iuhGVpB+sjoQlmU7FWqaKPNGKBN7\r\nTvHbDags6N2dXsoS+FK4qciDTGOzkAePWnHDYMLFmPLu+hFFuS1hvHG48rOK\r\nFare3GmUsXvn+KKdL/ozRrOFReeVuSR/uIy4zf79NjXF6rECQO1fd6k5PP0+\r\nJtewvVjO6Ua9L3hGx4sseEKElxNBOi7TAtwn/fuouVobpMlMCPPPuqc2mDse\r\nZ/BIqwXGnJxFaWVl0z2NdsmSTlHlW91i+/+hz1ek5sk6eQzynckK0Z+s9JeV\r\nC4+kNUuD+hpqPIW+3Xw3CeTkmjUJTaUs8g2AyWRHpQyBc+twIJ9QFzzbDgq6\r\nFG676owY8gNhj6LExoNsmbZU+opRE5s/kEQpt5TJnDE0M0t+R2PNSdqRswBu\r\n1gldkLOMizfp1e8EKZczKzbimcnJ7Rh2lRaCGfM7I5zcrSoUknTRIjyUTfSb\r\nnaoXbSo/D0QdVRfRKFiNlTefV4k0Ih157enjJal/BcpNxeILXzqO/P50VGgC\r\nCjqlkcnmyDADu516JdEhOpTFK4Amzzots+A=\r\n=ifEA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.10-dev_1651423693150_0.3511140955159"},"_hasShrinkwrap":false},"2.1.10":{"name":"parsegraph-viewport","version":"2.1.10","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.30","@typescript-eslint/eslint-plugin":"^5.21.0","@typescript-eslint/parser":"^5.21.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.26","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.0","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.10","_integrity":"sha512-PG2LetQzKBUf+z+lYlLPsDfKJg9gFeEuZMdHgLFoYPfHccSArRrnIcrau1b997GOE6/wd19YMB4HTwygnss83g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-PG2LetQzKBUf+z+lYlLPsDfKJg9gFeEuZMdHgLFoYPfHccSArRrnIcrau1b997GOE6/wd19YMB4HTwygnss83g==","shasum":"14600ebe58999d6da79feedee8327e9ed36b1c83","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.10.tgz","fileCount":45,"unpackedSize":1346926,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBT+Y7jv/szxDmR8KxW8XDD3Ua2DZcoPxMCorEq57kqJAiAJw3OLvvMmwKGoR7XW/QW1SMnLGEwuhgCXMVC1HMd2Ww=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibro6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmptThAAkYBQSLeuPBdnOHycbLA8LMVnpJdTRq0kU9x4JD6rpxJVEBUf\r\nLGNaKaIr+CsKPJ6LokUy1ZPQM18CEIYygxo77FU9b7yRg8MbbsXz9FwlNbdC\r\n+XvFOxKOX40yinqf/9+Ts0RBmguHbscsaNFRuxZWpDKnvQ59bT93ZDi+DeeG\r\nGXLeVgoiQbkel/kdakQDoXcrG+OdTZchQohoZmM5fyUHPnfbLwM/SvpQA8QK\r\nnmi3cPeYBhIC+wgMYmxpBAqXTSiYYBskzh9VGg0G0oLVj8eM4CHfNgxFqxWp\r\nJw3j0qOgk+b3Ih9tJcEXS4wWumvgFOhtdUpTkeiIiKi8OiDnxxT7xUEaFBBw\r\nOzF/RiZcHwr/0VqVNonheltdb/heUMvArjqvw2iFsw5hcfeiI+YcEZWnqyff\r\nHuXlL2dAD0lsAKgVlfmlZJAu76UuXRt6Z101pIpupmnvaiiPPs5smKHLMola\r\nplQFSiR9UlPMWi3WW7LX46K0WbWVl+5NkHfQ70JcICRcyl75mKTBUlj8EE1w\r\nODM04B/YTDwbwJrEDzI99dG38aSzahlj5eAxtdj+FlpOipbJ1Ehe0sifsRMA\r\nsqlcB05C3B3Bu+wVW4ebCRxBq4rrrfSwyEQYJe9yizsLBMqEWcv4jBb95cXI\r\nuTuljm2vk36t3p7I0mJx75MjevC+vx4K7Xs=\r\n=3pl+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.10_1651423802600_0.22617094609542088"},"_hasShrinkwrap":false},"2.1.11-dev":{"name":"parsegraph-viewport","version":"2.1.11-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.11-dev","_integrity":"sha512-SEhSpJC5aDSwebQIgw/vnBeo5CtYG4JULGlSludZb6YEyIvt1yBga3q8A2MjPyOlm548JUOTRytlEOVBJx6bIg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-SEhSpJC5aDSwebQIgw/vnBeo5CtYG4JULGlSludZb6YEyIvt1yBga3q8A2MjPyOlm548JUOTRytlEOVBJx6bIg==","shasum":"4deadb8868af6a97ebb44a9b334f1d9b2392a10f","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.11-dev.tgz","fileCount":48,"unpackedSize":8100377,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICkVBX17KiP6l7g47D0T5tLueocjJYiDHLEkAxhpDG8dAiEA33cFpcqDpfJr1JQYX5R8RwDF13LmsUdY0Svxl5333x4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicEbPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmps7g/+M0gtABeKEH1pNie/XSwVrUXzbMEOotusd34UvOncEefAhJkz\r\njSYbbuLtB4Dn9bi48ck2h1vRREWwV8KYzTlx1iA5R6/5VPUEjzeeQUsMs/IX\r\nsJfsk+uaPhVHyFYUKJPhrkW5S48EU9eVlcFjTBfJJB0nYGT6R1RdbCywwW2y\r\n/bgqvzLrLqgyt6C74DLGTUvEOosPYZD81pC/PySVaAyKuLnYboErezk5n6Pw\r\nMFFSd23KSdKMOaXAB3wyYlHv7DzGPALRzr+OpV1GM4xKwA7YkMmx6w4i9Ibz\r\nC0u+8ySiM4RDeYwsTs46u8Zg0Cz4FLtVNHGNDztS4p0XZ3ZFbHf2LZVBvfmF\r\nlForkOIsg4xM8ZWDlKoYuG2FQ0Z6igMMPjjNdTXNir+/CVm/sjS3Ks1xo9/I\r\nffk17chVHkEJmGB9HmEDcI2Nh/rnKGDwa8UF+Kp/caNoSvSeYTaNyxN0ZgfR\r\n17FxrUuIWmGZHBn2SmrQS1Ubg3KAYFqUUOZ+UNx/m6gwCIaYBNKJJEmjkoXZ\r\n+ml3XWd8MYZrH5NphpiIuMlOpn1cdVHA2sobibxTNAnkr+IIV59ZjhX1P1Qo\r\n/7Fq1V/WRiB3+6wZ8gqeJWxOG5EjzcIu9uIFFHCs+QkuR/+XLEfFC+EaRpLd\r\n5h8YR7IKGLv193xjBwsREMJ26lAib4Jmi40=\r\n=FfzO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.11-dev_1651525327165_0.26413365884527007"},"_hasShrinkwrap":false},"2.1.11":{"name":"parsegraph-viewport","version":"2.1.11","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":"Rainback, Inc.","license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.1.11","_integrity":"sha512-N/lvQ7pDcR7i+AWPKEvHaaIj0yLDNTwX8Nwdv4zuvPT9P+oxZel2thvkCrLTGGTshTOkAwczfLShSnQUEzA+7Q==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-N/lvQ7pDcR7i+AWPKEvHaaIj0yLDNTwX8Nwdv4zuvPT9P+oxZel2thvkCrLTGGTshTOkAwczfLShSnQUEzA+7Q==","shasum":"f21af64fe4fad038ca1a864a6b65ae32e1ae7f67","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.1.11.tgz","fileCount":45,"unpackedSize":1346967,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/RURMyS6a0i4GOSPDgSCvMoE9WS1QqqoMNj1Oh0OIeAIgPDoKFVUr6ax7BWnRYMoWtA+5a8DSZ6/MRkFkFIvOkug="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicEc6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrW+g/9GRob5xyiE1PzckIbqxWKi5ghS4Qz/kMyQ7vlO+COagfSjTPJ\r\n2EMzUrWiK9b8tj/avUSarY2kpFKAfHkJnlnn0DIQlrO5okJZ0dLoNAC7zgxt\r\nt+GJPuXGMnb8hBOY0BXNHuxBIsiKmOzCBu3nYTW7MORzH04rczXlQRIf3RGs\r\n0aYCrNGgXF1VEIcuuA7eXkgNIK2XF4z26MlP0XR/CAJjwAaFqg/U1i6nJp1I\r\nY/2WBj2cKb0QiQuSp6uqqZ6EBNUS08hN4mMzrFs3Xwasr5Se2gGA2NyWrD1o\r\nMJ7LLfwX//G9qJM55rU3A98dvoxJgJO6hwr3NN+DyE/Hb0c2z6/0yQ5Mg9vN\r\nclg1hBDbKiMKYOD/C0JItQmlGGWYWPKvURdBh7GJqYk/+8p5HbY66u+zSNKT\r\nebVkEb8Lbe7VyP3HoXxMBlag4z3DEbcJ8pgEjD13Mv3tscFjXrNIid+/D/Xw\r\nsCVPQ4POEjJWtf1D62NO/lKGgrfyB34p0NYXJxtbsA4iYzgdsdmMcXzJr7Jl\r\ncfmyHExQQ13hjMmyvTFnXPr1GwdGgv2fCyxUOfo0H/1VYPY49Fhz4OLYN5ea\r\nCswbZiSU/IL3i1ly/V4tM9syqWODD0BY4RQZPWVcLRcrEg725At7iVvBYBdH\r\ndbjgT1NyemZWhWTVPTkTxL+q9++BgOqzc88=\r\n=oLIb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.1.11_1651525434086_0.7028993245552366"},"_hasShrinkwrap":false},"2.2.0-dev":{"name":"parsegraph-viewport","version":"2.2.0-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.2.0-dev","_integrity":"sha512-tBSy+kkvRgyIN7e2WiOhecSrgIBOs3XPbT1gVH/DDBTTlEJXA30jsmM/F+xw17nd+cckltFhl62bcgbFfyMzPA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-tBSy+kkvRgyIN7e2WiOhecSrgIBOs3XPbT1gVH/DDBTTlEJXA30jsmM/F+xw17nd+cckltFhl62bcgbFfyMzPA==","shasum":"378ffbe5e6d4e554ab46fa43b243b9713c6c3cac","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.2.0-dev.tgz","fileCount":48,"unpackedSize":8106047,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICCMRtr/8qDErfkVcPeoPdN7u0x2GHRl63xagGTZkYe4AiEAl56Vjlz4gv+9UgY+/QQTahH0LXcQpKRSaTgJWtVfWmc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifa8pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdlhAAgFSmLtJwj5czo+4I2RmCJyKhUdVEd0dMsZvYN8NCbvuHALbt\r\nL3A3CBZFSIXMYGEWhl+X+P+UWdfThDWKThnSty5PXeMkJvunFJfFHn+9jlu6\r\nH8wdmdZpSO+RioFNyi3FBqkXmuj70bP7sNvM4lW+FT1Cqkp6pG0/jeL6PbZ5\r\ng4+pYmSOElBmxSTrR0w1/93L0KPAPtOmH9gRlnIncVKv+Q5qUi03iog2uRfk\r\n87E44SBCZ6X1n1vhs7I+SLDSY47uFk/CSgagH5vd0b3HvDJVxTbCsv7NcTCs\r\nD2oLltEgeyEPTJTyyY8aQY/YARr7J8bTBk2wunWiObUtuqmCVJQZjBLSF+hf\r\nS7zq/IXYrpi8kIcHk6nUCeGKO6zVCbiuz5lj3dQxLfax6urHs1FQrNZwDBxe\r\nronZiSCcmmhGV5dGex6Hf5X7HtuPHiyCIAT+gsqctf6/J1zb7WXO7b0Xh8XK\r\nT+B7M2u0muzdGpjWMRz5zDVrXOAuHxq7Yn0ZRjmJnOrAhq4KHQQu2F+hj1eg\r\nLrArGjwSkoM7tVUSgBFvCnrOTK3lDwTVyyjA5OeRopHGSUi+TGsE2qpD6SX7\r\nMpdA0m3A/+fVIj0zSCXd1Ta+4u4F5VB85dwXuxuQT7QH20NL930TTnsebBKg\r\n1OGmsFq1bZvfF2hGi0t3jDpLPEfWUez5xgQ=\r\n=78Tc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.2.0-dev_1652404009382_0.42855751073514425"},"_hasShrinkwrap":false},"2.2.0":{"name":"parsegraph-viewport","version":"2.2.0","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.2.0","_integrity":"sha512-H+a2vIaGEZt6bkGPaCHvXxsAqA75iS0I6+59PhvCuDdEOCyF4NvCZ+G+yZ6WlFs34JkZTuB3XPfPDkow76ejmw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-H+a2vIaGEZt6bkGPaCHvXxsAqA75iS0I6+59PhvCuDdEOCyF4NvCZ+G+yZ6WlFs34JkZTuB3XPfPDkow76ejmw==","shasum":"5c1fd78456815a72ab993fafcf5f34b999898aa1","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.2.0.tgz","fileCount":45,"unpackedSize":1347573,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMqbW+4mZZIpXtjp2Iw/hs40SZgzhjZXvr8AEp3UXhygIgd1u21eIQFF2Zj5FnAH2ztkH1TrZhAKs/Kaqsh2xUUlQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifa+TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmowyg/9GSeg2pvpiW0j9O7P3LDg+pCgejgPDASgrFqYfBmy0cEdLp8U\r\noQhC+BABeKLj++Cj7yFglyIysJDCBUSjp/K1ljpyzVd4hswbpSh3OwziDxFF\r\nJ4A2rH8voshNAqrMTOxAv5CL5ZGbRXNO4ysPhNfGmzI2cEod2VcN7F9qfGGE\r\naRLwNH6jf/R5noSXMri69DA+u0/mHRoiKxiZ6L3kgqNT7BA2SwmgSOul2UgO\r\nBaZGs57F8FWr4Vd3qMYPJwbTjImW4Et/9AXVubFHUgT19NmjaP59hLHEOL4Y\r\n1olCP7HlZi0xXG30luLrAfbw3nj2DSYvFXAIC80En7w86w8+u2ecRYtESPdL\r\ncz7MwqsofLSZ0lt838u4su+AiYmNtjRcWUHZ5A63P8pgo+1sFn336LwIRpnq\r\nvrMd+7eqsKQ6uhO5+WUHqe7zVugDbs96XL1Sao45yWnNi9uESjxFUJw2Bhc1\r\nnC/9d9n8ctSj1vwT51xeeQLnnVl1cwh4JfoLoqL5A2Qo0dN0wHDmDIOmZom+\r\npK5L2oMUFj9TGpsPYJnQD0FwlYIu89HMBUmKFDoBMwnoppQaM2CY8XBmntwz\r\nw4aEsrqr6bi1j9Hd5rvJ3Yp+m79Pv9369bzG+eGfWYKOM7Qi2a89q1D0aSkg\r\nD3HGkQN2Ir0pzq0Wfq8O/dfMuAPE5rHZSzI=\r\n=cILH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.2.0_1652404115185_0.9096993356662595"},"_hasShrinkwrap":false},"2.3.0-dev":{"name":"parsegraph-viewport","version":"2.3.0-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.3.0-dev","_integrity":"sha512-FH9+QgKgtaSh1Kj7FUkxMiBBdNYVadimR115amTU4t09fQQrTaPVNWO/cDd11UmJMRKsSYSLAW7aJda+e5aiFA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-FH9+QgKgtaSh1Kj7FUkxMiBBdNYVadimR115amTU4t09fQQrTaPVNWO/cDd11UmJMRKsSYSLAW7aJda+e5aiFA==","shasum":"2a4fead2eb2e5d87104de2f5281452424197f19a","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.3.0-dev.tgz","fileCount":48,"unpackedSize":8106281,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCktp4gAJQcedo5KexZeqa8bb/08iz6DWWAnzBPEeITeAIhALPV1XcrmhOS2CLJV7HKEHY3JSicMwIq+FSk+i5cdLdC"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijvilACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmraoRAAj/Hv0Fi4EQAGvUidsVgV3T7cPKVHBdUeVt+puH7nCWl08pZl\r\nxq4/XQ7InS2akALUh1ItLnU7eKAi/Kk98sofSSE8Q4+kWFVBl98A6z3Kb+xF\r\n3QK/WFCqBqjbTv7HtsFfclfkenrDvbI7uT8MCQfQa9Jia9gQ5zEM3H2tPs6h\r\nXWXZPYh/LU1R1gm8uARyQivwcdgpNpp9Fc386kCVz74ZRmzrRCYw/dG5W6cg\r\nsBwbc6Vy3cxF8xI1TvXepMsAS3DnoUtG8s6sKhqvZf8r7wpj7b8KqLVZk5ts\r\nHnVcwp4127KKoo7A2K/tAIv93sOPVamjAoleSSye7mt7K3nBsvKjs9XvPY7A\r\nQZZZb44EQ34Y1QHgaFXBR08+KdUHdLFWuN810c6R45x8MCDItMemeiipsQ7a\r\nKLNRlEAWcBZvncVXfu0wh3U56XBDC34P+llR6D/fzj40fs+k/Uqn9AnG/SWA\r\nXD+JTQYNQfzWlVIurIRtZLRcAt13Q0OwNx1n33BcdmZucx6q1nAuDVx/x19y\r\nht1o/hcGiu5M+CMcW1O5/mXHajLl4DOulTQFpyzpBnbITx+p1Zm5Ulq9a6w1\r\n21HI4bDpwFcU1hOrQ0NSx2w/Y+sAc9VPt2wBvWG6BdhmzEy1mSS5sDypvKkZ\r\n3ZA5golukovBq57SE2hbg7AYTvmh7pbMAis=\r\n=WxpA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.3.0-dev_1653536933240_0.2782974706953196"},"_hasShrinkwrap":false},"2.3.0":{"name":"parsegraph-viewport","version":"2.3.0","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.3.0","_integrity":"sha512-K7G5laJukWTtzGxo5pnXzSpIypFCmo1KOR5FdNRBdAs6EI2zXLAoD/EUz1LTdCf7Vj95gkwGscE0arQmvkyf+g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-K7G5laJukWTtzGxo5pnXzSpIypFCmo1KOR5FdNRBdAs6EI2zXLAoD/EUz1LTdCf7Vj95gkwGscE0arQmvkyf+g==","shasum":"b240694bee94a608b1efe84e6240962966483c53","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.3.0.tgz","fileCount":45,"unpackedSize":1347598,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhG3nWeEGy0TBgUaBYEDFvZuVAefCyviXaVJ+YPYrXtAIgc3THJgqNtuz5WHJe3OwR0DOfiOrOE/aSpm/907GGZzw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijvkSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBpRAAgU00AJl/y6q4rRL79+l9YVCBabT8SMZY0sg7mTDoOwn2Dls/\r\nu2GuO0DZa8qmwh8VHRBwtpTckPGn6CR7q8Znuww5RD/wy6Bh74FMGnWf+LnD\r\nT+fz/TPHPJtT46EHZa1zezd2rYYKN3ENsFtWUekKpMjqeBMutswYuv4q+NSA\r\nzAbi9sGFLcwgvRdPxWKflIE227FY6b6gssHrJ0DgTxflw1nvM407iNxciQsK\r\nbV9FsSpVGr3wVY73eMzJQz9qPcmljPLkEpqF8tCviG592zyf/I7qSjkoQ/33\r\n+SIWW/TlqLJlXPLBIKnn2LB084P/MJIFrLOXVd7axS6Isgv8ThjOFQohdTBN\r\nCasjHf1Pt/kzNu2T+q9EOhs/keHbOHRtS3pxjSpeFDFafQWmFKAPWao9PM+b\r\nermNX3f7/znD7uW8yg4Rl7fc8QRQxQ1uinhCwA55azI0CpVK8LN2+R50+muK\r\nmVKLxm77JxE9032Vf4TYFS7QTVKH0d7/K6czZbFFOO5MEvO9Vt0Uveh5PI1s\r\ngLdm0DTxxOIdyCNy4F7VnnYSMBzSexqnhijNHXzjXRuBmxMVtUufCBaHPehJ\r\nbNXSMScW7JLU3q9KZ2wHufKlyuQZPAR9W2SWhYljM3CBYP5cX89/j8jEW1hh\r\nKTOukmeEP/sh9pTz2kp3Kra8d0GuO4Z9tQs=\r\n=gDfJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.3.0_1653537041914_0.030952384507195285"},"_hasShrinkwrap":false},"2.4.0-dev":{"name":"parsegraph-viewport","version":"2.4.0-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.4.0-dev","_integrity":"sha512-D/g+w484LsAgapRuNbc7vHRH7kDNQlQX63snOzXM+zON+N4VymzwTzR4nQzkLDyhYy479UuZVWXrg2+QpraLvw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-D/g+w484LsAgapRuNbc7vHRH7kDNQlQX63snOzXM+zON+N4VymzwTzR4nQzkLDyhYy479UuZVWXrg2+QpraLvw==","shasum":"f8100a547fc244611edc1d56ecb5ddefe55aed12","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.4.0-dev.tgz","fileCount":48,"unpackedSize":8106653,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNHuVTUuopyVLVR5IyE7DxQJXpQa7Z19cr0A4HSN4IHQIhAObp0O9WG//n15eFrdhsQfeizFwKjGjt7wnF3yZ5EPxI"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijvrqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpwmw/8Ct56tJGGn5Ps5dlyw/AjzMy/gJo5wQOL1wxqrL/nw7oHs8cE\r\nBUpmuO5VHeysj8xgi5RkhPhGwW3hT+bXG80GHS1NxQ+vEQoxJyLUoZW6oik7\r\nInaUMEK5O59VrdrM7tnrfvaNnUseUDNFkdp8tvNhMKT59fSFKREDCGovEPLI\r\nE7VUDPuOhbs8TfcmDwrgiM2YJid9mD+hTMMa4nWHGN9C8bdB4I5Skrx6Pse+\r\nremy90m6b38P3iK1173arXmpjwAQN6XrH1arQGvfWlhBmYv/fwJl3IYHK8Io\r\ngqErdj2HMgz39pFyJBgmO2OGWhBsjHtzVW1thFeNtz5y8JG9z89/feu8Q5vb\r\nyP2tTNuhzDon+Sa/XIvDr3hPTq9nzdBwrQ1h8SdfQk0gOQZL6csPO5vhvFmp\r\n8/ASlnTNqRyzR79sxBS6gT+/Y9EhV2TMG94TeON4LftoCdTkJseGgntu/aAg\r\nNqrSgrhWY2T7zpr2atIPkJQk4pWON/huoqzeof09ZO1NewSm0VjEyinZwNWZ\r\n3TxLvVAj7goVm3SLoOFniQEJcJleNUrtLkQFN7XzX0ngBvbFUmuSPW7Qzfbd\r\n/l6icFCEKLW6W5Ggk0AiaUpCMeOfddHqwbvUIFOgHg+f939JV19JCvXFcUY5\r\n8BUs6ptPPB54s6VAMtzhxtddxHKzRCUN+/4=\r\n=xGOJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.4.0-dev_1653537513889_0.5137885469891337"},"_hasShrinkwrap":false},"2.4.0":{"name":"parsegraph-viewport","version":"2.4.0","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.4.0","_integrity":"sha512-SmAvgXrQZuf3QfHxoAusqkA/hzKL5Fn29JZxYw7OLGDcYslSWg+uUwd5dDfIz7e/KGGV/0ixetOmCw0vTMvang==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-SmAvgXrQZuf3QfHxoAusqkA/hzKL5Fn29JZxYw7OLGDcYslSWg+uUwd5dDfIz7e/KGGV/0ixetOmCw0vTMvang==","shasum":"7acd23f9d47f2a57edef564aeee3308ac2f4e51c","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.4.0.tgz","fileCount":45,"unpackedSize":1347629,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBw/VzuYPdm3V8H6G+N9RU/vwJRAGJYyrES27h03eSQ9AiA3wwDisXRLylVx3W4CQaQ7FtC6JOjoRBe6ZhE5ABCGcg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijvtWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVqQ/+Ixv/6ut0QSnhhDkqaFeAiALFcPTeondV8IUv4akymufTjCNu\r\n6bNsFUsIOx/vmpv4BqUss0r6Bw3QHTZ4QFjjax0uMocDWCDyWxlUNr1+8wKA\r\nTWVjiGsfTUtC+4fE1EDXc0aFDlwH1GDTyCRL+G/tWUHq3FhCKVlRPu68pTCR\r\nGWPu+MYO9oamgpxJSsktKKsPjnutL/I5uh+N5PCqEnuB/Mi8E+OjVp8OO0At\r\nfasrWz3rg93KpS5uUzJe9HeYZogb1tx+PgT51WBwTIXt5H7KijTqlaDygGPH\r\nCkKBnEGUUBOf0VfVC+w90pPSV+1lsYk1GTpmboRFLIo907Hoi7pbVQAPi+Ed\r\nsb5aApry9FdTdHZlVu5787kAv+BPBTRxC2HCV1GmGQswrHzs+puuTnfmQON6\r\nRy1tSN5PYqaRtLDnhUukqiKxFsMZ4cpfpTx7pkeh3pdfwL2+U72t2phg49rX\r\nTxzDyth3gqQk9pkefWcu7fdxU//WVGX3xKDtCan/AJiZV1dNpQtVxJJAsScn\r\npdlDRvzGnocT5aHLFb4Tvox/VFclveOklcGNaTM/XWcFjYLKpHgIFZtgQlPf\r\ndJjyXe9D/JayziRj7MbSIxvm6iis4MKK9Ok+S3/6wIMrghiFX9ZM9MCS8f0x\r\nvAUnzLubIsGuZGwpVGhnSFrGilVt8oM6nUs=\r\n=Kypi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.4.0_1653537622672_0.40461886371911815"},"_hasShrinkwrap":false},"2.4.1-dev":{"name":"parsegraph-viewport","version":"2.4.1-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.4.1-dev","_integrity":"sha512-kSZHTb9omJbKS5AKK+C+LNUp9MHzBe0538VMrc/zT5lBfxNen0uo9IRmJTIr/bX3olC4TB8mo3hSRPJdptZ+SA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-kSZHTb9omJbKS5AKK+C+LNUp9MHzBe0538VMrc/zT5lBfxNen0uo9IRmJTIr/bX3olC4TB8mo3hSRPJdptZ+SA==","shasum":"8e43188ef80f77a5cda3497664029db48de908e3","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.4.1-dev.tgz","fileCount":48,"unpackedSize":8110269,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCo5+ZXPpbLP8FP6wa5Y57ecZUiQCcZtkckTYH9UH/XGAIgHI2TcJxmFy9nOh7zsViid01fMCTt4E+mS+ujhNUhul8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimplkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoh3hAAnOHenN1zJMQ76X+KD8WYnMKN9BX6tvXfs9bkcKakbXtf2kp+\r\n59GZLH1LxtpwvHZ0e69SXnwJ2v6vVFiH3fuXC0kbqX3WTr6kxXWHbumoi5WE\r\nlUxqHz9xgYK6xlE371ZzD0GqVfTgf0kI9e6mbTNVozJd8gtDl6VWN3U8a7lB\r\n/5wQkcS+7t58EknraUGqGGWkwFKNRaIxi3UqFCO83iQN9Lo/UXv/FeCm11S5\r\nuxR+O+hdxYayi5fYXjPwhziIszU92RFBEBxSoqayjYXopJ8iUlNHN3x0eJ3J\r\nYJul753y025mJLA4hbYzBv23YnsBft/lcyc/qNff+B1sP9mcgBt1ez/O5TI8\r\npxYxJOmkln8J5nqZkSLNNO1hK3QitseTRQu3QbbqL9jk5Towuoj2mNo1t5Qf\r\nLya9JgRwACa02KhiYRgY6pO5YYFM3qk5nCzQ0YFDkFuIblFbmwRhKunaDvSh\r\n8MagPTMyzK9TC//gZQ+xkz16dal3D6UkGQn8q1bomxzQ5e3eaxxCwLwVBasM\r\nPkaoo5XGPxEVYwFcaj45HIF43pVOb1vKj5FKpPr+mGcCwQ5JW7GOB2ntK+Pd\r\nyUDHgGEGi2ju1Mmj93+x7gDMKt9X1wY3E2JU+HV1Ty/Bm7AmoRPhpIlBNVto\r\nlJt12nFRnF/44TaV/2KRx+MJj3YHlgTAaKA=\r\n=b4cU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.4.1-dev_1654298979802_0.9454582761295727"},"_hasShrinkwrap":false},"2.4.1":{"name":"parsegraph-viewport","version":"2.4.1","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.4.1","_integrity":"sha512-JMJXQ2A4ifLLeEukFjNvd8cSUfWRcvsDfyu8qCyBBOa4dfx9onwK/9XxK8McbpVdfF9xrQlVnquwXyEDXAq7HQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-JMJXQ2A4ifLLeEukFjNvd8cSUfWRcvsDfyu8qCyBBOa4dfx9onwK/9XxK8McbpVdfF9xrQlVnquwXyEDXAq7HQ==","shasum":"7ca4c2489f6489465e649e4aa8d84488c88b95a5","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.4.1.tgz","fileCount":45,"unpackedSize":1347867,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBgC05sNR1EViWb/AgIAbaOiU065WUzKYRcfdBnWVxkQIhAJiclFujRJ0i1mXYpXtEcJSY8icXxvag3hT9bqHbxmph"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimpndACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpy0A//Udn3c1kxnWEJziAJF7t0SoqPeEvOAXWEMrLzEbgX/JfUuyqu\r\ncQeaOFf6NF1hPiu/J9ueQ+rlrQHxbQZpwMszV3ZeaeLFaraKjXervGDFScEv\r\n3y/09b843BtXB3N2SYSf+M40faWPWes/Q49IfW2G+7YsvJYynkYEWjx6JBrQ\r\nEijZEYOiqt8qciHTPI9blOjXVYMc3zNcwXw13kMTJG6/4ThGAcRw8odAxMeS\r\nkufca4GAuHLjk4w66tJ7McFT2uL0zbg0HwQpQEhOfHexzWYfp+8vmk6SnuES\r\nTfX03Rg9YRtJp4IWmHSNhZY9uHVwOVUnOxDyYCyizVupWbGlCmjADTla0AL6\r\nLzrgWPh4KhUk0/e9X4lFZd3Y9uiLF9kiQLIyQKPYj2XM7XbdHZbB8OT2d0iE\r\n+oJHC117pXijD4f89h6U7B04tc38PkkbbNH7VcIl2o6quzLRf3fTbauJ+rl+\r\nDRRPC8hwTf94FEfuA2NYGgPE5UN9LMdm1Du9uTGCvtjCFkHm4w+fovu/JJrG\r\nMJ0VWqhXNyOBwofJTCaevMdXW5iVLwsQ5gNYJCDOEtV9BT4auF2FD6PKJpZg\r\nMpVGCJvkxEj1pGMW2iYFjZFhiBAv7gjBRFNpJCzQWLVuWxbi7PdoWety20r8\r\nESBq7yufUW+Cu21zMYjMl1uvJFV4qCKEh8o=\r\n=JvLe\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.4.1_1654299101046_0.2980919446676935"},"_hasShrinkwrap":false},"2.5.0-dev":{"name":"parsegraph-viewport","version":"2.5.0-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.5.0-dev","_integrity":"sha512-0LGrnCXDfwwQWVSMwUaIZCfuMwvmZ8b8GjOA9LRRQRGYEtfJcLWB8Efso3+xGvdks9bwEVkzWSonxYXGG5m05A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-0LGrnCXDfwwQWVSMwUaIZCfuMwvmZ8b8GjOA9LRRQRGYEtfJcLWB8Efso3+xGvdks9bwEVkzWSonxYXGG5m05A==","shasum":"4d6bd105b30deb0e8158388660d9970f00ec9a16","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.5.0-dev.tgz","fileCount":50,"unpackedSize":8137089,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFlAnw8hDYoRStI/O3Dt8/Wad4Ls6GVnEOuogUySqKi6AiEAif0mu9eC92QoIDs+MqIasu9eBYnR85Ii6LoagnFYJH4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinrovACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBEA/9HIgnVt9Z8WPxdX4nVNSQQFKrmhrESw9tA7rI2pFqQsowwZRJ\r\nM5Tu0gyLHVCyA1UR5KC+nmnbiU8BqooKOfrfFtsmSbISGegdwOlrWsHUEUVH\r\nLWHIqFtUezR4TFoIbjgri5SyhuH7XC0sAyzbuVnMT3ujdTw3hTdqbRqWU+OW\r\nOc45Hij4V7vOh8t62wdp2x9Ojk8xHL3/jOyye6ya/pnEbW0yYEK7R0JBrN2h\r\nXqBnVM45kYWh6vzpzmPD8Nul17p81wU071qF5sOUKuOE/9kTmPb3lQz9MJZq\r\nY07S/nGewJHxLUUfYqlKhZzLB97dr5hlin/IS38/P2a6V99362yEAy9kHo0b\r\nztn7p7TqVLk0Y8RW+7Dl6stscqjI1wdirSg5ANJfgDK/uO4LkfyTOTXaFgbU\r\nhAkxv4XUTTovHnhcKJUayZnV0YWshs+vz+v/gUzTEaIS6CaZx89+HXTuGvmA\r\n0GIbJFU94K8Dttxb6fnVfZyzAAqtcOgtehleiJQeAkER8dZO2n8RGzQmuXHY\r\nTx/hss0kZ67WZhev/Zm8pa/UIGI34TEzFZlyIcnE33HRwElY6RRy74mt18QH\r\ns3+U7Uz8z8PKVi7cAxghhkGUU+jsTqVJZv6kZh95+rBuhBKm28o2/2lMxJB1\r\nPkMUfO1D+i9WkEBYIyCZufcWFfbMqeS8TFw=\r\n=EE4U\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.5.0-dev_1654569519570_0.7387360035187525"},"_hasShrinkwrap":false},"2.5.0":{"name":"parsegraph-viewport","version":"2.5.0","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.5.0","_integrity":"sha512-MFsgEw7XxBumQvByCmhC0CqaJP01IG8rKeHBOX004auK96sTPIHnnotJiU3FBWbmStMUUXahlmQIXR5PFv10Rg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-MFsgEw7XxBumQvByCmhC0CqaJP01IG8rKeHBOX004auK96sTPIHnnotJiU3FBWbmStMUUXahlmQIXR5PFv10Rg==","shasum":"7aa405dc9ceb3ca72d4e671193b2ad555c563e29","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.5.0.tgz","fileCount":47,"unpackedSize":1350706,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHeDI0FYYqjxCaMJw/PUvnaa9fyT/+TAah8hHchBQm0AIgNEX+YsiE208qWQr1maxho9+rUjutc2HWl3qUE1bPsEQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinrqcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpyVg//Xs5A7m9n7K9K9HGIs7jsttM5E6p2dKgRfZQcGk8StkIPUXu3\r\nANgWu6k24Wq9OQ70biBMlAh8jgKLk0RSNmmB3EcmCJR2D7MSPeWxNGSeHhZl\r\nUw+JM5LC5amPtF+Kagr07k+NmZdnXyagIUsFp+LHMd2zVMv4TbcdoU8YY7lx\r\nAvkCv0LVav0SzW/PKXWj1md9pwdTg65dycnsFB7stC2+ZPMrJs1BF0c6/ss+\r\nugTRzgOc2BYGU14m9SErHQWLB2UXiQ8vLMgDGGyrzHs7YP4Nv3GnvZ42RdcC\r\nI9AHfVwd78gO1f1hAHG20NfCIWbAfcFlqTmLb3v0/fzUDyltwHU2AM1rRLB3\r\nEWyhWOkYP5FQ33m5VZpsvMNtTILfnI0I+juo+4NzxIbB4chvp4YA1H4mleSh\r\nLBTj5kWsP3f7El0tH1VvcDPSgsKdzU3RmYTL27QV+mEUSQWxLHuDsy/bsyiN\r\nkIdDOLT4n18xsdvrBYOKklhRvd5v/BnRfd0P9t6xa46fHlkEZvU733DITQon\r\npgFWSInZnuqMNMo8fdSUQRf/e+lDekN0r09zop4Xbo4gAiz183zaucBKVJvV\r\nwbrRiTNb9xuyvsfHHUWZJxHsqBcCnxAiAlipZL0d7rsSTnoZospLlHyHehk+\r\nEu11+VXBAYp7D+S+ffVpmWQaDrsd+JxxDU4=\r\n=i67a\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.5.0_1654569627980_0.2696311410147576"},"_hasShrinkwrap":false},"2.6.0-dev":{"name":"parsegraph-viewport","version":"2.6.0-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.6.0-dev","_integrity":"sha512-Zj9NCiAtomKHaEp+iGdGC/x+O1qq/PclIZ4JNSXY0sd/hGOKDPIpJdYEhyNjK6D7TB0z4QVskWnCxdv7wZ0lag==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Zj9NCiAtomKHaEp+iGdGC/x+O1qq/PclIZ4JNSXY0sd/hGOKDPIpJdYEhyNjK6D7TB0z4QVskWnCxdv7wZ0lag==","shasum":"1cd412fa8838380355038077db9b307f39ade9ca","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.6.0-dev.tgz","fileCount":50,"unpackedSize":8137117,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3fUOvGq2foLSRuLsp3XUDGdjqM1zaAgoEAq+7h82MnwIhANWlxYLM7ozeSfESuQkrVS6irUson2T0LuouggMzFQ7U"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitvnkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoHYg/+PlkTS5+tf/BvntBDDB9zA6Ly2w4lEN2a6UaVm788sRtLiF/v\r\nLI27jcFYmPYFn+dOPM7q/tmNESnA7eF2RC5W3UCZfZmnLsVa2s2K7TGmlhQ7\r\n22ddYUANNMWPRsloroOtqDkxT+Y8LrCwsqj9UAAdoYv7dWk42HcrA9nO9+Up\r\nEykbpZ0tfnJMJLv/EB5awaBm4kpAhWaslVjkFYB3Jc5lRvJGkSJqQZHzSNGM\r\nLiw5bxlz2v4Ym6Kfsm0O3YvR7CcfprKkjfHX13htGQ9tEsQbaqVzOzk8P1TO\r\nzxpNNYPEP3PB5r8jwYik7oXYsOqY+IR6RA7gPEIGE4kDIh+Hr39OpZ8pV/zC\r\nCybCAUyNPlWSLEfBz3OxJ7fE4b5CQO5wxD7AdFE+e9eY3RXE+8srm0p0vHYx\r\niTB4qfbHkbxcRZ4n7sKEMGl2iAVYaJb57INF4hqpuoZS1NzJ+AFRtMFdGRKM\r\nZtk/nrupYhSCB5jgNy0Lb3ojyY/FCwh/F2JlCl7EdNzLztb9jJaUsuLfaCn3\r\neGEiHmeggFKGm/4O0wTcOzP4XwUDzxLB2SakrAFoy9IiCwpdpsAhMHh8dpnt\r\nMWDFjBaqpyTtt2uJsdGYcCuvVsYvPjVZPKWCwWiCoEKp3Vhy45eYlhOT1kSr\r\ny/ejBNbB4f0VRcIQt2XRsU41TJyS7Q447oo=\r\n=qlk0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.6.0-dev_1656158692242_0.9266264823013108"},"_hasShrinkwrap":false},"2.6.0":{"name":"parsegraph-viewport","version":"2.6.0","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.4","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.6.0","_integrity":"sha512-GKfr9E1+CkRDfC1GT7B9lSD2AWgYr2alwuARaDxYXxmq9CKnfUu+8s6/eELZeVK6667jxrVgqz7LhYdn/8GIzg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-GKfr9E1+CkRDfC1GT7B9lSD2AWgYr2alwuARaDxYXxmq9CKnfUu+8s6/eELZeVK6667jxrVgqz7LhYdn/8GIzg==","shasum":"36d674935f59f5c844adbc7fe483c89a14fc7d36","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.6.0.tgz","fileCount":47,"unpackedSize":1350458,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXVm0uVDGmqb5/ejNMHKkJfm92PnvAGkNHW4buQ0h+OwIhAN+DkL9vcmYatkslko45FukU5Lb0iSgqfLnJp7cpGP6i"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitvpeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+xBAAijEjWU2zCytG/S0rEuqWCfAACg58jQrpCwqKllQEu7vlrYnU\r\nYHVdcVEYL44h5HcxNfbbbX3iXDMUrGV4DQ1n8vmDaOAHSUsKkIECC6LSUW7W\r\n+V5P2nTYAsRkbOexqf9NAPzvBp3sBNeL6yav16sssFz036uklMT42/4F1kEP\r\nxu9i+0GSdR6mZBwL6g7zp3VMeBrPmm/XcdND+/GvIY21/mkpQxJoT0rGKJZY\r\nq2azNy5SYTlkNgFZuraiOwuXliP+lXkF2Dvd3truamq2Qp+nn8bo0DTuWxA+\r\nSgA132INlfOdxPDGtvvesOloqx8IlG+ykscKMiy9eUvqIIiQT56xbUylEvaI\r\nmTnZq7T2H0W4P52L9UG8eay5uGxxFlRtyzxae7lruBKvatOxAaFoKI8BQQCE\r\n+0xtCHwTtk9TUP9ULsDIO0VVfMi2iDOgXDKLz++tMLfHR/WbqPzpvco1b1Tk\r\nqphi44f+p5TYbcqrpSJWa311ItXFCNjeBFd97cURKu1T9jUZJT8jN2TZx9X7\r\nwpgoUCV0/OzAlsDkx7b/m/cD1jBxeJPKJR2vpItlSmAlTK9knXkY05Q6rtkO\r\nSBh7FJr3TXgZvu91NyidbE1E0KIgNscmbxpyqc1/A3kRr6ZR4VjnIIhJZCHh\r\nytkJJJPj9RljZmErAugmSlUeZVUVMSq5YxM=\r\n=W2oq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.6.0_1656158814394_0.6120998179671477"},"_hasShrinkwrap":false},"2.6.1-dev":{"name":"parsegraph-viewport","version":"2.6.1-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.5","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.6.1-dev","_integrity":"sha512-llrw1QUh/AaE6AstGEzqofoInpo1AkgLZu4FMv3g3psys1bEXzk9RINdBXLhKZQ2omsWCHnpuSn/BrgRN/f//Q==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-llrw1QUh/AaE6AstGEzqofoInpo1AkgLZu4FMv3g3psys1bEXzk9RINdBXLhKZQ2omsWCHnpuSn/BrgRN/f//Q==","shasum":"caeaa0c6a50aed5f6f041f5531c102ee8c0c252a","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.6.1-dev.tgz","fileCount":50,"unpackedSize":8137823,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHazV4VlftebxWzMzLOVvI8r0yKHjY8U69mnVpUscmpWAiEAxlL5CLi1LwPkodkXhFMu4yBzJi8pzhcS25+LNejrXMg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJit4R+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr39xAAjafbRKJVrAfDba8vTTHOzBHLuYkAyhCue6G87q/Ljpvo0+9j\r\nc+AUe5dkm2Q4ksZOp/pxDksAfmhj878leKMfpob4LKXDkho3gz19StaCyTC5\r\nQ3Ih+A3sahgBMY3PB+vt7kGbc0oZ+BikxvPXhEtF9LrdZSbRwG5RSelbsGi9\r\n/hfCZ5+Fqrh4KzxojFfoNAl/yrLxODOU5WndGr8w//tXwuSsrbjE+5j0jB4o\r\nBXG+aOo7GmkKrYU6keMi9UURBxgeeyGNx9GYH9pI+zsDF/6d+ueViugKze1e\r\ngguOiQas9y5wiAeUqjUoSt0mjkaecw2BuLxOb94TfCUm4nNQ0bSP/mlClQcW\r\nWjMq/0q8LmvW+XpJiMpcz2DvazavL4kHby/jHmMmlmYIQ8MQDffkotyeqhAi\r\nWe0qD5IDu0SrYXdI6GL3LTObAucL7nEQHEXdwrTvi/xmy+0BcTIgsRjzMuUc\r\nu8NERtqn/LwJhT0cMhMijkixl7ouL5y1Cnsm6HVgcR5dBZJnLjbuB748RyRk\r\n4jmhuduoqWdWykGyGnkHiyrHiARfva5pibdfUdSk0egasyoKWCXTKoolsGgc\r\nZ2LZhiHXWxW0TREy+lAUC+FwJr05eV6UBSlgI1v+JRmsiEgbABn+5tKepqet\r\npcBlVsXg7ooWhG70CPz7oy+rwKNXNA+gtws=\r\n=wsQx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.6.1-dev_1656194173938_0.41998626288171437"},"_hasShrinkwrap":false},"2.6.1":{"name":"parsegraph-viewport","version":"2.6.1","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.22","parsegraph-block":"^4.4.15","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.27","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.3","parsegraph-input":"^2.0.5","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.6.1","_integrity":"sha512-nCRylf5JYGNR+EBW+BEpjsnWJEJbvxEY6fZ6iUZEfCbqk6+RItmuakpq28Hv6Kefw292sQhZy8znHo0p9EL97A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-nCRylf5JYGNR+EBW+BEpjsnWJEJbvxEY6fZ6iUZEfCbqk6+RItmuakpq28Hv6Kefw292sQhZy8znHo0p9EL97A==","shasum":"ed1f15e406be41823e4122681e2cb22db47cd468","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.6.1.tgz","fileCount":47,"unpackedSize":1350622,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHWt2iLprrR+j/ElP9ziKEH8rgQ3KeNT5MT4iKX+rhauAiEAg7cy2kXMjHGhKDwBCR2pRckWgqppClPm1WbpHQ0HQao="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJit4ToACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrIIhAAje/IL4CPaIul6HUbzc1CELzznxmz3Fc6cs1vzGBc2WKCjjYl\r\niuu8w+JX3ETiw4eobm090O4VkadGklgUYY8fRyDWM+o9/0+qyKzH97JsSnDe\r\ndzC1Mnpc7tKesrfPwQeRoXKDIRiHYtimnPz2h2hbuRpQrnexc6C7Bjc2nmL1\r\nI/JAuIVljvH9wFD/k7DA2oJ4RaHLu//UptPTRiUfHfsBtQdAAxN1f4HLwyuk\r\nCVpG5uELTfl3Wn5YL9IO5CwLlwGi4a7W6NsMofZMNN1S6xHhqR3GmJ8KJY9C\r\nzWPLjEFc6WqfcH0LzRi1ASM0PmAdauSr2SPTM44PrtPph1HKNk4qZMgRYRiC\r\ndq1HNToYklV1gUTYdMufZHeg5mIkoGw75fdzNvTxWdVMy6o7RnJQMz6OgYXs\r\nFnjTLOVdkoh+KJJzF1IzjixD+MCmEO8noQYr8vBJXrZ2S2QEROEJ5z3wSxlH\r\nygFGMNzIc498h+ol5bDKg6smar5/BNUAFVv4pRxUbmisBzVoIhIl2iMGJQOb\r\nTXDnRi65AnUoWrC3f5CRDO9h0dbAzJT4VnmuTnhGPjP2EbZpIzN2ejOvOnYH\r\nkiBsp5ODF6bnGxy3tX6fJ+FkpLhtUFwc6q1weTvK59l/hpJZhhEhnFZVQ+Z3\r\nRVv4OvmpxFFlApeI1eveArYlhYmgCd/3gpE=\r\n=ouOW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.6.1_1656194280146_0.10884868617171595"},"_hasShrinkwrap":false},"2.6.2-dev":{"name":"parsegraph-viewport","version":"2.6.2-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.23","parsegraph-block":"^4.4.16","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.28","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.6","parsegraph-input":"^2.0.5","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.6.2-dev","_integrity":"sha512-PFL1oucp5W8fLESXZO+mSDVA9HHPqdmLo00ZhIXboM8KDuhl7OFBnf2rVFGsjx6mPdIA8UKqsrp0g/hT1wmZ5A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-PFL1oucp5W8fLESXZO+mSDVA9HHPqdmLo00ZhIXboM8KDuhl7OFBnf2rVFGsjx6mPdIA8UKqsrp0g/hT1wmZ5A==","shasum":"7bcdf71a33c10a664123ee8dc8f3d2ed228a00a4","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.6.2-dev.tgz","fileCount":50,"unpackedSize":8139119,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIET9+yZaB4sFQc/a1KqAIZdreJj6zBthSdTDyYqSCUvtAiBuBtrvMzVYRnC51ZvZozcWML6hYORIGrOjofpWGNdu8w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJit47VACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqyng/+Jj2iTvi3vKge1D8h9Aiqg1W+R2OcdpKON2zC3QwnjI2gnyQ1\r\n5bM3x2O368KZEZlLs3vB+8SpWDMFhQafksXPUf234XkvschfCenE8sA3fhsC\r\nDW1n8FQ7YuHu+6cRL34YvhAg+OhRw0JsDD16gCPnCVrrKUffzFwLvr3X7gln\r\np6I34ySqMi0Tcfm8p7CkzkI09Y6zkPAvPxGTvwapqRRomjKa4EIUFqc96r7c\r\ndzzQLE4iku6V+ioiPqTlhO7kdODzCkDyyVR2mZO0YbGmaKf4tuB4Su6arSUH\r\nDzHgJjJ9hixkRA1VV6zE6VJWPriS8ehKzCqTaDi1Ci23YvoY7gCR2zDDoDTe\r\n3RQTgth6jmXRcsSEWtkOREIwLp06AHkTpmxSMpf6rTAxBlztVC/8mrdRsfQ9\r\n9mTBbfKk7/tkGqVQeTZfNVkyaqBS5Tsn0zEf5R8HvfYY81yzdl+1NIiRT4Dp\r\nm8mQ2KQ6Rd3lRjSWShgHqI13hp33E/HulZgmGOdksR5b1DIenk1fxiwjxRLd\r\njia2Zg0BU6GdYAIWpBlmR8ztmWmH4cqGrOYjDtumrvQTzaAbMZSOnv0N6qvh\r\nBvFJbAnjId37rqZ4mL/vx85HKGOQFreKJ2q4ntBJaVb99yPatRLhte/ns0NP\r\nvlB6Zpy9eX4Q4sRwtLwfv/YznSL+8aL5Ees=\r\n=MPpq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.6.2-dev_1656196821304_0.31000726581938975"},"_hasShrinkwrap":false},"2.6.2":{"name":"parsegraph-viewport","version":"2.6.2","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.23","parsegraph-block":"^4.4.16","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.28","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.6","parsegraph-input":"^2.0.5","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.6.2","_integrity":"sha512-4Vb8i+vn5K8qNp3LzqE28HR5aY/kXb7Mk4YHaE0RLZoDLC5bOiUUw3jGpq+3Yfu+nNKr+LcltS1k4odobm3g+w==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-4Vb8i+vn5K8qNp3LzqE28HR5aY/kXb7Mk4YHaE0RLZoDLC5bOiUUw3jGpq+3Yfu+nNKr+LcltS1k4odobm3g+w==","shasum":"afb09fb4c919d33c3864d68e71b3309728381808","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.6.2.tgz","fileCount":47,"unpackedSize":1350874,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICRrnLGsjXwjl17WtLrid0UU7/zG9flNxu40YaqSQxjjAiA1fWXXMR2fjFFbV2ENN5xDxdD6g9Je2NHM8tsLgjNbyw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJit487ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGCw//aI2q1L45Ii5XZojrlGsjCok1J2fBOkRS2ZUNWD3hx1jNKBkx\r\nZCQVh2/CG5Ogsu1N5zM7qP5Y9Q7aj04f4ze2h2WESjmSEQY0bBwhOOzy/ziq\r\natY+ZR3eIeZp/wBcCtb3XmICrgUe22Bf71u9YrINlckpTXAnNjHXiiLiRqYV\r\nx5Vm3XJ6VMNR9WDfZgNQ49asc6UiyiJiKV6Akgylf4GodpFb3vjglIjdLoD+\r\nz7HO4kamyIziG/snFx1HkAI7lSzL5HnypMZGfyl7nPBnAWa9E8wDsbdEjNKD\r\nYtHRPTDf9+G9fLMHnIyT1M8pl+Ztst30gE1bzicdiqT0kgzAYS2lFwIjvT2m\r\ng1kMWt7NgXw954dK+DyqsevyoSLUiRdOca2+Jsw0IDvmceOiGCUKfuLmK1/t\r\n0M1pR+rXYWm4CYA6EDTyRUiXVqvX507Alo5h2n04N9pdvTEDqvVyWSQxS4yM\r\n9ZznByBUUa9c3asdK33fc6ipsYDy7bFT+TzUaZMJQLUllKQAIK6pkA4bh8yI\r\nkFfaGLaaQYd9+jpjXoV2Z4LWok2BU6YhcS9Tgyvwse9oze87Wa500+Z4j0FO\r\n7Am528l10BKIWHNQB11xzGLP927/RyiIE1OSJhcLvwdOr19tQ62lTp8FWBzY\r\nP1a4IHpQ2il6SG0aloVfIOwt7Zq2OkLiRuI=\r\n=NtvH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.6.2_1656196923465_0.06862162444891706"},"_hasShrinkwrap":false},"2.6.3-dev":{"name":"parsegraph-viewport","version":"2.6.3-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.24","parsegraph-block":"^4.4.17","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.29","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.7","parsegraph-input":"^2.0.6","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.6.3-dev","_integrity":"sha512-v74MmgAzjh6QGJUEO353AzblPqkq+of4zZRDK1wvGaySIv98I1A8sQ+31DcpMQ0JvOkxN28Bxrfdwd22BxU/cg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-v74MmgAzjh6QGJUEO353AzblPqkq+of4zZRDK1wvGaySIv98I1A8sQ+31DcpMQ0JvOkxN28Bxrfdwd22BxU/cg==","shasum":"7eda5efe570551f382961fb35d31026694039d3b","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.6.3-dev.tgz","fileCount":50,"unpackedSize":8142360,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCKctsRkcYBgQApHeAMMZ/vTRLboXZgU1JwC9gorooIAIgT3yDznvPgIIwUsgatOuj9f11KWchd8eFxZhH3lQv8Aw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJit6oWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpzEQ//fnCL+PXDfRA9ryB12ISsMNbt0V9P7cv7K80JTUP1AUTJ395+\r\nQn03IiwJ3XIp5T8gxx+wNeWMWCGUKxw2SuLUB3hr79TRLfi6IUaRxLWD/bMi\r\nObjIeKxigFYJsZnENYsF7067kZrJkWoeZr9+QZvTzl7N5kY9lL0rJTygYbmL\r\nMcjLZtlHUlMJnC8c1wKgbbk3Prl/+GtS9n/8RQhmO9PJ+2V5KPA6Cqy0aDJ8\r\nMFnW/uNt90ArXd1zoX0lGmGoFM4ul3gY+pp6MhjRusqpUv0BCXMOoNGP3jPC\r\ne+9unZJBQWmrzcm+1vVvQLcAxERiRWE3aVGMlYduntuREJ4hOoAgans1A524\r\nVTkeAZaCJaKpHgkolqWMAdeHeYZ7p4rloJ3pEWkQOZHMs203YKWpBhPaCUKq\r\nzmITSe2TOLQdRl4Nnzaa4INEnG6K4ffZ9d/yxA64U0N/dd4J9bdvEaGh7UZa\r\nrnblbsyQQgldWSFmFm6bt41cHZwkLFvU44ETDtKiROiCy4r1zc7dkxSaM2jF\r\nIgHi7sOw/pssRJ4mOmxnjpQpFdwTktG3wLXtwLxMlNWV8ZnokMIUpRKQ6kuG\r\n4Qv5B/YgRhhZk+EKmznrlAhqJf68zp8b/oPyQcx1eA+FCzNk7XrlfdegkmhA\r\nA14pzNRwzRugEIbCckBRcy/0JTiDDSfkKHk=\r\n=FJek\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.6.3-dev_1656203798647_0.30390143946323245"},"_hasShrinkwrap":false},"2.6.3":{"name":"parsegraph-viewport","version":"2.6.3","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.24","parsegraph-block":"^4.4.17","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.29","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.7","parsegraph-input":"^2.0.6","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.6.3","_integrity":"sha512-I92H0oJ6wGJcW9BHt/MDfpyKdd667zG1zpiReqigUJwQ2HrBhAro/NfRkRX+Jd3x+JcdHVdyQmJvsayRMk1Ogw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-I92H0oJ6wGJcW9BHt/MDfpyKdd667zG1zpiReqigUJwQ2HrBhAro/NfRkRX+Jd3x+JcdHVdyQmJvsayRMk1Ogw==","shasum":"b485f9b4ef2a17a1c4cfda2b8246058beb46daf1","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.6.3.tgz","fileCount":47,"unpackedSize":1351797,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3GZqQV4VHoBsPAO4Rho5rGQLdh7VcLt+oYp0sT3bp4QIhAPXWWEXvkft7ratYbmjvIY9/7tgqUGqMLvBqtkXm+igU"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJit6qIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqOiQ//ZNnqJFX341FhLZBw3xdPTE2lr3xwJGJtAfgW1mNsQPG/mAOB\r\nBgIYJTUAJ3K5wHXa4tXeZ/mYf8l8AemsFtvn/kpxXpcohhMRTtKp8zYbxWBh\r\nza8v3OvZLqPlrd1YwX5ljUvWkqmzu2uwWZt/IiQpNW8AgOvq3Q+AFYgv8MN0\r\nmfqWdVf8xTzDnP9uyJs4cebK3lCrWMEa8B2vW47hItBjuyeRMciBr/jyk0EX\r\nJ7wyYMJKhlf0iR8o+3nz113U0nglt8wYZ6UwE/2UeVTw3MOkcuZlGoWgMUw+\r\njCxLuLJbYCXsJ3hSyvldR015Je8kFct1G5XBDlj+v/XOIdUl23OuyNwOmxM3\r\n1AeREV9zyyG0gXHYn5SYZEsjUMRb9USGzwH8EYBD/AJkgWs6qOjVvkzl0ldk\r\n5mJfxacjcTu/JN4hi6O7aO3LXyDS2tGtQG8j4ktkZIs0N/98C+tE5kEAB33b\r\n+ey9s+7HwS7lYY83YK9yxkNN3shD/FMb1an2iVVw6hlhMA12HGs8/J2ROJtH\r\n41cjt8Ma3i8TgW0Nx7wjZInMFxPPbEbyXtmjwe9oO0VEzMhWvPa8LI/0eY/S\r\n0sYWpfSoIRU+51h8bGl0v8HwsbNitrSwb2NsDb2FnWlFL6TQah8ZJ39pVtXt\r\nK9JHXzZYPd/Pq+7gfKjwkscRNsJ/ADRTz6Q=\r\n=PVzI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.6.3_1656203911955_0.8394630504387777"},"_hasShrinkwrap":false},"2.7.0-dev":{"name":"parsegraph-viewport","version":"2.7.0-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.24","parsegraph-block":"^4.4.17","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.29","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.7","parsegraph-input":"^2.0.6","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.0-dev","_integrity":"sha512-oEV2IqIqM5G+Oe14/vXuHQAnEYcIj0sdaTDQeWn1s+ZbWiRQlADwP5F2kuqK86h5C3x4OKiLtm48bptVcRzFlA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-oEV2IqIqM5G+Oe14/vXuHQAnEYcIj0sdaTDQeWn1s+ZbWiRQlADwP5F2kuqK86h5C3x4OKiLtm48bptVcRzFlA==","shasum":"957e7c6e607b37e6edbde2f8a18eaede41d8e107","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.0-dev.tgz","fileCount":50,"unpackedSize":8144672,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/wtQzXDUo7QLmCjhgb5fG/BwWGEuOQc6Do5v4KOujlAIge+O1kCnQ7rTBiGtE+0m5qZ6yf87qA5d9KMvvmgC7aLg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixTGfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmorGA//VG1in5njdA5uXjrfPwf7izSAgdDVWwYIGaKMH6PLl6kdfSDJ\r\nJc2VYzX/MrTKDHr38OHFoy9viXOkljllEYKgZCPcr12NOcTIlj7DUOOO3//H\r\nvwF6oF8jBflTF1IC3QFYJlllOPYW6NQTK2LLpaLPmjizEy+doJjtJa/TvROX\r\nZw3+M4N5ohN3JNweiSgTnC/yBCRSaw+dn7IWRjyqqBJQqAW1sHsh1bhp32uz\r\n0MgOAjEn532NT1BRYjAvuDQDZP2084Vwyhazkao4OuESm3WoTYd29xC5jYpT\r\njJ6cg9JNn4aY/O0nxefH7vKCJh0aCRckbVPfNW0zapG3dc6rdbGs8oK1eO7W\r\nRpXEKZOyfP19mbHCZZ5CRHS04iFfyiAhj5tkXLmykLlvXIfhByMkSUqDPYrE\r\nke7MDwashLnUTy5Ky1sdhQycj9Mk+GZc4AS12aWQJqGqoVmfNNSLJ3Tz99Pz\r\nDxm2gnA0B08Bgkj4/a5c/lY1mLPLyOMoxQw8HGRv3P10AhF8jrN7FXv+ntUF\r\nbBBsOs6VfzQ7nViTfu0DHQu3WBWwZdVeUdUaBCx9a+C70+1Pym5hdZ92fig4\r\nLpq1S+vZ8y7mKOS9NVhLamMvCrmIjCqJCclV/Ap9wC5fssShBxhZCCMt3w6T\r\neceKoyZZVzcIPsYHjPMMt5Ip/Aku0/O8488=\r\n=tD4E\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.0-dev_1657090462775_0.9016368093461262"},"_hasShrinkwrap":false},"2.7.0":{"name":"parsegraph-viewport","version":"2.7.0","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.17.10","@babel/core":"^7.17.10","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-private-property-in-object":"^7.16.7","@babel/preset-env":"^7.17.10","@babel/preset-typescript":"^7.16.7","@babel/register":"^7.17.7","@types/chai":"^4.3.1","@types/jest":"^27.4.1","@types/node":"^17.0.31","@typescript-eslint/eslint-plugin":"^5.22.0","@typescript-eslint/parser":"^5.22.0","babel-jest":"^28.0.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.14.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jsdom":"^19.0.0","jsdom-global":"^3.0.2","prettier":"^2.6.2","raw-loader":"^4.0.2","source-map-loader":"^3.0.1","source-map-support":"^0.5.21","ts-loader":"^9.3.0","ts-node":"^10.7.0","typedoc":"^0.22.15","typescript":"^4.6.4","webpack":"^5.72.0","webpack-cli":"^4.9.2"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.24","parsegraph-block":"^4.4.17","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.29","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.7","parsegraph-input":"^2.0.6","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.7.0","_integrity":"sha512-BT1wjv6VyMDGhJJrMc5UX3A9zBZOTtSJ3xsFpkQ4GOqVBNOpkPNuPs9dqHThDQ/jkCiJXhztHNbH/DIh+tKrtQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-BT1wjv6VyMDGhJJrMc5UX3A9zBZOTtSJ3xsFpkQ4GOqVBNOpkPNuPs9dqHThDQ/jkCiJXhztHNbH/DIh+tKrtQ==","shasum":"ecd81dc01251dc84f362e2b78732aca38729e0a4","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.0.tgz","fileCount":47,"unpackedSize":1351902,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXxynYYrQkALmeCDnOiN6zIJIp1YuhoVilJG4A35V7wAiAk5PZO0KLAgY7+bKSwSBlEc+sqyr9upfLJeg2wkJHt/w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixTIIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrD9A/+IXkUmzP0HTZ7VJGkQT8XXlIk+ItTC3au1pZES1n27R1AxPXo\r\nKR1FAcT9dbfbS3HXM1TxxTMbyW3fiy/xiq9Y3mOSUPh5c+yV5m3TXqwgixMf\r\nCHmzemLIErw/LKRyMzEV/jO70HK7R5QSv016/Mgaxa6A+VcAZMZnfH12DHJ/\r\ntCwdQuZXScMul2RcQk2RUbT2Fw03+HrhmHAui2RDFPYvH1j9bybhvBl2TDNx\r\nGjIyynL7S3PdFjPsAVY7nFeVCIApR6z3QgKe641fs81WO02XwOC73hUKok2o\r\nXa++Hotp6FCTs0lMDPo+wptjpcGsCeD6ksxLRZI7jeQEthoUX9qzWqd7mIK1\r\nh1jTSGJ1qFQSr9TMHt3pARwubRUbrjIxzPY41xafbpE3v0Kd3JDn6fdGBef3\r\nJB2HIEPyL9nK8HpFW0xbRd6jZgvtUTXeFg7q2MMUOyiFaesPtkOHoFiYCn1l\r\nikdTi+K5cZQgYKoI3BphXW9OJWdRy492RM/FGtOR8xhdP5mysUHgBrAMNy7r\r\n25m3mN26IDesJiBnBvTm0NgilWjdK1Qs86tzjVtI3Zb6nAJ74KFR8c6M7zC7\r\nDrc8uVHJAxMvsJjxU6amo+bAmN1h+FnXrw8TbLwI8OavvSZ2nfNgxtd+pJ+M\r\n6xKOAYUIuR1rRlkrvcZ++m90YDpzCnsEDJ4=\r\n=PpVq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.0_1657090568542_0.5301316678451158"},"_hasShrinkwrap":false},"2.7.1-dev":{"name":"parsegraph-viewport","version":"2.7.1-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.9","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.0.6","@typescript-eslint/eslint-plugin":"^5.30.7","@typescript-eslint/parser":"^5.30.7","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.20.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.8","typescript":"^4.7.4","webpack":"^5.73.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.26","parsegraph-block":"^4.4.19","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.30","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.9","parsegraph-input":"^2.0.6","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.1-dev","_integrity":"sha512-jxldNMleV0lPfYnPegwn3DZ2iI10/JCVTGPXREIfOKn4P66C67KpFqd8Db9gWxa6/y/AZ3ev2LE6apZHyn/OKQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-jxldNMleV0lPfYnPegwn3DZ2iI10/JCVTGPXREIfOKn4P66C67KpFqd8Db9gWxa6/y/AZ3ev2LE6apZHyn/OKQ==","shasum":"a8e3305bee2d89c0fa2ece40640d17cc2fdb793c","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.1-dev.tgz","fileCount":75,"unpackedSize":13182736,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFxfhBd+HXAVIgC588ZtdhchIU+XRKOiaBCyPiyCyHnDAiBv2u/BSEYjnOYkuXuz7NkfZ310F5n6nLkEub/ooJuRHw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi29bVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrQCA/9HxeF7bknLJeJZiuxeUR4L8d7cX68IWp9UJO4txPqspTdq9E1\r\nJHbbj8TaeslJJbCd0pPmmxowX9jISjqRzLgQOrHAnb6Vm7cQ3+A8OX3YG434\r\nLT2l2HKMpcNj81uQjjps1HP/DRcLb/WGHIMpUxmdIta3OPf82gTThfwBnAb6\r\nyCemKKvSatLrXtLeITjS/NNgvjWDhj9nOIASodNsHtO+i3DOsmUSOvvNgK0I\r\nrdDf3sZA1IBNIeuPhEvcvD3ksg7QpoblZhdLAv5vdPcb5BWHmH8nfeysoUPO\r\nJXUf3PcRvx2zRJYhxnrWsHSIaoSgjGo88KqGGFfz6JBu9yNb0RHmWQJMGluP\r\nprSOekY7a4kDIxL21qwmYGJhYaYvRMu6y+aML6ukYCJ2yXl4g6FY12P5TSB5\r\n08U4GS6cvCEbQZgi7RjdML3J/JFUohpui4nJVg7sYV6oqAuXrqTwyBEz7L/a\r\nqj8D4kjNzqtWT/9L/mBkVuagXuJqkksyLDpjUX3l56xbm1Y6+dyaxG3JJECw\r\niEwm40rhlknFiapHrU9NWNRVPyx9aOxSDojkBrw3MvnKC0DXbVop9KZzfp44\r\njDi7LAKkHD8R0OCdct8Y6R7ESiWUg/x+AdktR4EAvQJ6C07KuBcUMoa/nlmR\r\n+6gM9RNN1s58EnabW/1H8sM0QHKLQzcZQJw=\r\n=L5Qm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.1-dev_1658574548861_0.47058396778073885"},"_hasShrinkwrap":false},"2.7.1":{"name":"parsegraph-viewport","version":"2.7.1","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.9","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.0.6","@typescript-eslint/eslint-plugin":"^5.30.7","@typescript-eslint/parser":"^5.30.7","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.20.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.8","typescript":"^4.7.4","webpack":"^5.73.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.36","parsegraph-animator":"^1.5.8","parsegraph-artist":"^3.4.26","parsegraph-block":"^4.4.19","parsegraph-camera":"^1.4.18","parsegraph-carousel":"^2.3.30","parsegraph-color":"^1.4.7","parsegraph-compileprogram":"^2.2.15","parsegraph-direction":"^2.1.0","parsegraph-fuzzyequals":"^1.4.9","parsegraph-graphpainter":"^2.5.9","parsegraph-input":"^2.0.6","parsegraph-lerp":"^1.5.9","parsegraph-matrix":"^1.4.12","parsegraph-method":"^1.4.22","parsegraph-projector":"^1.14.0","parsegraph-showincamera":"^1.7.4","parsegraph-smoothstep":"^1.4.5","parsegraph-texturepainter":"^1.6.11","parsegraph-timing":"^1.4.16","parsegraph-timingbelt":"^1.7.11"},"_id":"parsegraph-viewport@2.7.1","_integrity":"sha512-I4OtszRJal3WUdX3ObI0q8UIt+5X+yAq3PmvdbgG7KNeNjChivHxMRzyDHiBLr8PpP+R0mB9o2dEBAv7BgJSBQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-I4OtszRJal3WUdX3ObI0q8UIt+5X+yAq3PmvdbgG7KNeNjChivHxMRzyDHiBLr8PpP+R0mB9o2dEBAv7BgJSBQ==","shasum":"0f70165d26a339debdf7b450db079a4c89065328","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.1.tgz","fileCount":67,"unpackedSize":1355761,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6OmSsOEOTl8ll/dKrgo110Mmnu9nVs8gh95WEwKXiKgIhAPv8t1NKkGRZEhB52PbAj4eUHOqJj7lmk+wLs+wov+VN"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi29dmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrXbxAAlb+79PJ+SP+9A6HpUKxhcx7ZkrGD9ehUy0SYENc+IB9nq2MJ\r\nU4IAf/gMr2m7SmzT8PZwbaCvC+zk/Iidh1wi/e8yYW0RQ6LNiNW44UcqWWcm\r\nwLoK5bi+LJCduDg95CShTK2leuv14qc5cfcw+wbeAaGvHMGfkYU1zQloz/Sw\r\n1+Xrna3LcAHZ8RcoqBcGbKKEVxoSwmJWaU7AoiDRDuhSBnkBkq045DRD+iRx\r\n8FM9JenK6vxenut+Ol+FlU/T/HhXjfRb0m0Ax3oue8Jo5Nl/H6Pr0Ib9uZJe\r\nM1pwON+zmoQZpb3pmw10+GErbneIpjwvrBfOZgoKSz4/hjh0UrrLSax97V6z\r\nTln2Fvbu5Lud0Jxx9FGjoRr8OprFcnbnQ5/j4sP8YlnIAyjzzh5Ese04FY1a\r\n+9pmusjYXzC8wzpN3TdCTKdYpvhb0xZReQnAhlZ+cbF9sIYnr27/cQtv5tkn\r\nUFnIakeHiEb4Z9+J9QXf2FRBxrm9qbCHwOgOW0b+7NGj4vHCUg9r+tpSCgvK\r\nTATHt/2huSNaIhfv+mvAKF/9YVIxYbRcsewSSnF98/Ztv1B9X4yxhywYpJjK\r\ncYENsp9YdEfBo+Bxznp+UpXj37RzTllcE09t1TOIptQsP90gTvsiIwVF48fx\r\nKF+NuVzoNhGChQob9hQ000p5SDvHaJ/GW+k=\r\n=RVm3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.1_1658574694040_0.4071361516845744"},"_hasShrinkwrap":false},"2.7.2-dev":{"name":"parsegraph-viewport","version":"2.7.2-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.2-dev","_integrity":"sha512-AeAvppbO7SHb8yFH/ro9Ps7sfEegAgOExEk732edJY/FeM8Wk4q9rPl5T9S5BxHL+u0lnJxDkSSbK/JJFicDsg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.10.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-AeAvppbO7SHb8yFH/ro9Ps7sfEegAgOExEk732edJY/FeM8Wk4q9rPl5T9S5BxHL+u0lnJxDkSSbK/JJFicDsg==","shasum":"790420ce221752bbf8c96f15fcffee4ad3af9c80","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.2-dev.tgz","fileCount":80,"unpackedSize":17719738,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGr02GcEVCmm2bsDEmMhU+M7JAO3Mp56aAZZ/N58XMfBAiAenI2VjkZxYRmUHE7JWuBJ4/dHvPNfp4OZt1ZdIb2RSg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjT7HPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqlag//QxmeonRVE+eWO87gMdR7GUGY7UkAO1EihmnLElozf++Nnc8x\r\n8usiT7KG3iDJNa/Q9bD0o05EW1AthfhhS+qO+S/R1fCrTW2GIl4ir4DlUEQB\r\nIPCXT3MaFolNx0aBzPS1CWGtVybaRbLOOkIObZ6lGoDj4dDd4PZr7Ro1XHiX\r\nBeDCNhtGvry+Esjdh76HIjkH799zgRXiQhYW7w9a1ZI0Tz6vXO9GGR5O5qen\r\nSe4bKIw5vqhndBHquxRD5oHk0tzfL5w60s/xfQFMWeVXl7jxeWm+isWIE6le\r\n7o5ADuxUjc/pKqUcSmod/35soqwMeYjxd+b0RLt4r2AX7q1d2yz64gWdZ3BM\r\nJM1rL4pE4+4w7jVKG1PusD4ogMB43+19XkEpaiooaxv5z8RPzGezD5K3YvIn\r\nMs37elnv7ln4QCAAoSp4W1f1kpBATAcF0TLcjTzOcRtGYmRwAysLCQe5rxTo\r\nJqdDGlCbqBlZjFFDS6Gzy3AFzLpjUxjqjUo3fhzD0l2LB7ftT+fKcZoErVdK\r\n/XY9neKiw5mhFgm2MX5T8UzzFilKbWBJFpzoJP7ZIVCWFSBtjOuuHiAeLHwG\r\n9RGuAuGUjDZpo6V76lkIG8Q9OTxgFQ9dFDyrD8KYL41ZcNyj7zVgQdO8iwOY\r\n2JFaUAimVbjHnWkubYDwjGTcfvhlnV39ZzA=\r\n=4jkZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.2-dev_1666167247205_0.7544836011167677"},"_hasShrinkwrap":false},"2.7.2":{"name":"parsegraph-viewport","version":"2.7.2","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.2","_integrity":"sha512-zDt1F16NTwOZpAnW8inAuBsuFAA+EKHHVJMbjqmXl/ibbBvvTxEx+eRwJAQQt5Ox+nH7MeXdLzjpv8hWbQ2/gw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-zDt1F16NTwOZpAnW8inAuBsuFAA+EKHHVJMbjqmXl/ibbBvvTxEx+eRwJAQQt5Ox+nH7MeXdLzjpv8hWbQ2/gw==","shasum":"d40538e12dae27babb17747ab35af35fc640e988","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.2.tgz","fileCount":69,"unpackedSize":1358698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCod7qw0DxSbZVni7XFXKirQGpTewV/8lfcMcaKApjwZwIgP4sLoAUDYK0Re4pX6T854Lbh+MjIYjha+yyTcguwEds="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjT7JIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoHDw//cH4DU7boEfdN76VlRx50Km5VO2RhtxwdyRZLD2KbFmCgwea9\r\nMLqvpp1i0JmbF60oRdVhE+UjRa20CN7fwkpx0p2EqD6x+O4ndsF8disltjzs\r\nZifBfA2TIBSYtCbYJwe9OKMScJjGBOI2va60ONRzlFciUDxzfcWHdTuOzn8b\r\nQ7H1/DIeBsCn6udL1jWGzPTivBQBhP12/kqpOJMz28fDOd+vFB60dO7cbnWj\r\niGk2BbgdxHkCWrLId+dos/8SMRqhutXsJlEkKMcXJSebeZ3TVCRnMWsex0EL\r\nVUw34BuGeVsiiJsanB4lS5Ocfy7+X3uVcnzuTMGQphTtJJQOkaFGOAC8wcBU\r\nT0JPOACa8DEmFMqWOZ7myr1FQAO8+OumuBmUMKaiMEih0VlnUNqBbU+37grA\r\n61EgfQ8C9bzIih1T3v/cHDgRbvz/GuLe6I233UuNaYGAOvPcVomYYitIAEic\r\nUPGeJdKPWnsnFymZ6IhSB6iTC7houO06Y36g4MMORaRTUTZgwdERl9b1qlYu\r\n6/zjfo/vhY3BDFM/BsAwNy86g1t0nL0S0nNTVEjpiJxFvZgcD9S0QIIq5SLY\r\nkilYzQDgpGtLeZdKvhd5t1aVQXmSTuvdbG8rP5n/HaLV+bASYha4zfaFdgED\r\nONj9HudHgqF+3kwijWoFAq3n8nqjxhvp9aU=\r\n=fBxR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.2_1666167368060_0.17862407283870474"},"_hasShrinkwrap":false},"2.7.3-dev":{"name":"parsegraph-viewport","version":"2.7.3-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.3-dev","_integrity":"sha512-I3JDvaGiPi5uZp6kfIJ18VcfR9aN+2r5LXqPRkyBZOW3kX9DOHh0xLEdp9zAK0hQRZSjVGgzggiA3EZYF2syGA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-I3JDvaGiPi5uZp6kfIJ18VcfR9aN+2r5LXqPRkyBZOW3kX9DOHh0xLEdp9zAK0hQRZSjVGgzggiA3EZYF2syGA==","shasum":"4c7ea46325656ffd317248daa053d3b7d4a645ad","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.3-dev.tgz","fileCount":80,"unpackedSize":17736367,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBQYiryxdRXgyPag2Rb5zCrfVkxYvCVC+q6skMC3ytooAiBifTksSm6wIPUgYE+IGCIqwom29Bj3z3STIr0i0DBBjg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaFPwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpg6w//bC1mHiaeKFxL2mkU2V4k7b6wS/Slgctr9XczQ4esaYC/mPl9\r\nfhg2aUJWyxh2F2BD9OKtMdOprWlfMWqPp+DX8uBeCZvPrwn5DvpZTSdphkrg\r\ndd/0KZsg06oLv6xfPxTWPAEOuYcKYi8l9Z1vfL/ruD3OF1wegxxSNuIxlrp4\r\n5ci5lm9JkybtCdnfnhh6ifSmtBVLfNC8h+vUy9GP5Geu/2tIj8njH/FF101z\r\nn9XLsfuOG9s+MhVNgKY9ahPs6VbED9mibmKojfVDBNOi0V4iFzda6UnthF8F\r\nPOaGW2y31SjopXaWao/w+hjiMWuvVQgszIEiSP5t6sz1RBarqodS0YIaCBuA\r\nUMRevTf80CrawJZq/hTUdHZjZj7hAzOy1e0u/3BPLP81pIkEScehdxWLQQqa\r\nRiZu8UmDQlo7yC3yW86I2hk2Kk5PDX9xhNORbktnv0eXoYOm0hvVMs/e38yg\r\nHEyK8MJ2d1BkuisrbrKBaW06qaPhCP8GSF3EPwCeQoX7Yv58rH2PPSsWU1dn\r\neox7DigPVSeCP1lWGCcwr5uZqpPrDNsTFc1Z6NnKAgQ2jd6TpT8iRvhAsIwa\r\nJBRq5FaC+yZvr08LJPapxXQ+CDW45qWjiIwf4kIfu2natp4damRQ+RCdnxXh\r\njThNnOf84D/qWet9/2mczv3WVOyreChaH/4=\r\n=Ck7o\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.3-dev_1667781615854_0.5243634491826326"},"_hasShrinkwrap":false},"2.7.3":{"name":"parsegraph-viewport","version":"2.7.3","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.3","_integrity":"sha512-OZQk4tTH6QT/8AgVBa+WTmDw7avbc9MjUTSaWvpBeLzL+Ns4zmd52EppdNf/rAQYjy0vrI7XtDWsKBqvhf+Dig==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-OZQk4tTH6QT/8AgVBa+WTmDw7avbc9MjUTSaWvpBeLzL+Ns4zmd52EppdNf/rAQYjy0vrI7XtDWsKBqvhf+Dig==","shasum":"8903e25e024e963adf6c6535af87fca098223c04","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.3.tgz","fileCount":69,"unpackedSize":1359241,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDeud1Sul5hx9M0YVV4XmkMbHw4Bl1nvo0sDy8XlItP6AiEA+MrKe30YZG/qvsaRKlWDdTTqRpd0EvAQY/9lPyR+MTc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaFRkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqmqw/+P9Kli9jJA7iVife0eV40adZTBjQp+eDu0AxHzKLiar/TUlBf\r\neq+sI3ZnScFFqq5z/cE+NPbPJaGwHAimW3/98Q7GRYXNMMWqi4kOxOMkNaZ5\r\nwaGSLnXNJUNKarW/78SbYrzWnCDG9tc8JxicwTYDQQYnfrmtbzDJNTufLOWZ\r\njGWfQ9QUd/oX223icabVGgrKENCu+hGr45cDTiCFLd1psZcfjpDRc2sxfmno\r\nZihRZATfhBx+3MgnLvbPCP22Bj/Dl04QZGofjxhb81vqyB/HoPmpb2CmSTL3\r\nCjh0zRfHd4ChRdW6FClLIQ0/wfZKqt3U6dC/cFzGfB9PTRonlCeSvHRX7AKX\r\nW/EjgaGeqcRj3g4r19yOxSYL0lqcCyXJo7/f6w3uwyNp3lkDvHUVlB8O3Ogf\r\nVpq6+KRwUPBVmPsUFOKo6G1nrQcS5m19bvJGtKZpgo+I/eqGVP1nyAZUfaU1\r\nAMhMWMy3WEl3bqy32tJa5x6NgPRk8IDtJHFQoDYrteDcH9IiZnO0FGUBzmkP\r\nJINryJtoSmn0TnEKFc7BAJGAuRy4j+cm5iICUpq+BvzcnitY64SXVa4LM3dp\r\nz6O2FosWJ+KFu5mILYwG9PCqlSe111k2kvBAtg0O8Lqb7b07dqR2fC7uZdmX\r\n1VH+xfOsc/il5k+Ra5U3tgujmY9385VUOHM=\r\n=wSLq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.3_1667781732143_0.5551629255110204"},"_hasShrinkwrap":false},"2.7.4-dev":{"name":"parsegraph-viewport","version":"2.7.4-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.4-dev","_integrity":"sha512-4eAkKM5JRWB5qIhtoZP5PD8rXl+I39YWCe/bzJs3hPuyrfSgjPpyA1ju7EFm1DYPimSXp745agIkXE34jKHoYQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-4eAkKM5JRWB5qIhtoZP5PD8rXl+I39YWCe/bzJs3hPuyrfSgjPpyA1ju7EFm1DYPimSXp745agIkXE34jKHoYQ==","shasum":"d3d8056daf0deb69d515a455e48c112e272a2608","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.4-dev.tgz","fileCount":143,"unpackedSize":5156711,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFGR3JL4Kv6Meg+/BaHsvzkkebyzxJQvfnE2k21WpUTCAiAXGwsjOjbPNO8ZvCAmO9kONSM2YgwFuBdKaB0EMYPy2g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaHTIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrN7Q//cerVmReEZ8V7K8atUDRaezVHZenlt3vbl2gs/jOtza6x3Zpf\r\nJ91GDsbIELCqmdoEI5ZSXRkhhpIOLKHQgeuP20SR+DnlUJCVaMv3xD8KfsW8\r\nb4gBM3enB1Hx5r8Xwan1QrtO96fGtmNU7PWJBDYUwOIL7Q8yFIFUubjLM3O9\r\n3YQCpV4jSGxgn5fCCGHUyuMJLeD2/Z/9rDc3CONQXk+MgIVZ/u6xoNtMvOOz\r\n5XC4SdzZ4zOTs8Q9L2m3UW6+tJNYqSiBkaBOj5Vpam1O0HlWE/KqbC9PecNN\r\nmAdaoPb2NbOzddSgD6Tn0ByIgcfednk9XRQXTTnu9JYPYEoS32z6LhJZZU7b\r\nsQdUAogLPmdYqNmqD6BzTA59tCwCICyQQYDWTMWcstSvLlGdwEvZ1mVuwYa9\r\nDafsu7af7VDlw3wlWfPDyPK9bL4Rfzdh+9eMyTDeDguxuukd/JkzOTuxPeLy\r\n/h5zueowivzoZ/aaJt7ZUU/re1bPI89jRDSl7R1QDuMRIrZ5oOAbgPvXDYpe\r\n/0LI3u852dVnZyUFRxVJNJe4UlNPDRnojbf5J3XwIP69D6/L5Y4/ac9NH244\r\n5qTPNyltnEqe9ovPaZ38qnBddOwn3u1/ftMo3thIwnMxX2jEikB3KtHiaI4t\r\naN0U17BqWjkZQH7HUSN8ZQV8cHrX3SbLeF8=\r\n=CGjR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.4-dev_1667790024374_0.8843591694532467"},"_hasShrinkwrap":false},"2.7.4":{"name":"parsegraph-viewport","version":"2.7.4","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.4","_integrity":"sha512-pdaopoWoKuYcl+03/U26AGJXd5oqnxZ8he+p7CjQIQVnmbFmaiQrfGkcsrpdzMbkPynLvIQU+wbO7MFNWATyPA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-pdaopoWoKuYcl+03/U26AGJXd5oqnxZ8he+p7CjQIQVnmbFmaiQrfGkcsrpdzMbkPynLvIQU+wbO7MFNWATyPA==","shasum":"0cf3456fa0c8c91f26fba99fe5f4dcdec89e0f1e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.4.tgz","fileCount":123,"unpackedSize":1367078,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCChByt22h1MGke6FFlKmmaHEqbDp/4sfQxu2kaMy+7JgIhALkh6NGoyWSSohlA0HYi6ALKaBbelSmR2nJglWeRspu8"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaHUuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhYhAAjbBqNW77Gy/wvvbe/hWT3m7cyBCDKfd0v978YsY6k40BGpof\r\nmg3t1Y7h7qN1d42TFYKFJhaOl/vw6omzTukByTMSkLSuQwNfryG8jgtQkuNQ\r\nV9UHFN5p13XEVE5Cv/l4vaj9tM5A90xwTxU6Y+6tuBm64kQhhlv7Q94XxNfV\r\nFpsutOyvMR6vI292tshF2UJS0aCsRb+K6OgkEQs1yRcWrc6sytd0R+Lh7J7n\r\nGB6TsmjxlcBWquU7YJt6fS7QUINNtzPDPScL/Fyyg7fm7adbZAPh7Ge6kH3x\r\n7Ofz62DD+5AM5UkoShOM7YEH6OXGuUC2M+q19B1ymjNIk58h5U17VBhO5I2S\r\nYxUyZbfNOdl6KKyHDEQ2JEMXrXsEWBx6Yb0/OZ6ir371isC1yGQLoS7d+h0D\r\nHVM0b01AMIOLeJAHz3b+LlDOUa4uxD1rU5XYy1a0hND3s7mRV60U/nfMVsXQ\r\nsP2Rs8TqZBIz3xfCrnET9/8/NYoZ0LKWISRCutQv+fl4yuRjk3WVgqwcIWMQ\r\n2SQLGcg89Zqw3IyuxH5WYnQeO6PrTT7CPqXBI8a4Ct64bApVb+/AHMW1gqVc\r\n3v7fB/3U4KiwYtuPeQzybUDUUm4jvM5ZfLh0X+oKVMA+lF2oCXXNMqHsJkMA\r\nyMFsqZOiEdTBcex1fbREg8L+HOGCpwgDZ6o=\r\n=uJga\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.4_1667790126526_0.1897660552770506"},"_hasShrinkwrap":false},"2.7.5-dev":{"name":"parsegraph-viewport","version":"2.7.5-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.5-dev","_integrity":"sha512-v5jCp5PTR39IGSvsbDPt/6O+grcqtnDcUpjhGgUae+Qp6Vs6G6qBQPQfklrZovx3sobgLhdTjqEbAv0mygP0nA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-v5jCp5PTR39IGSvsbDPt/6O+grcqtnDcUpjhGgUae+Qp6Vs6G6qBQPQfklrZovx3sobgLhdTjqEbAv0mygP0nA==","shasum":"a0308f26aa4b09322245f5e3ba4d7093899646cf","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.5-dev.tgz","fileCount":143,"unpackedSize":5156711,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJsjVG9MheVDapKyVseIevZFgcYZjv+s4n0P8wolajcAIhAIe0Q+FqPThPL3n/QiZhWBELZXwdOREdPZfdzi18hZLS"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaHZHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpapxAAhC9QfnChS8hLtDylWH7Y9fpWZZ4r7j9e92xufxOTHZEtl5Cf\r\n20uHeSCQcMec2Zp4vOJUAyoDVjsxmVHbRnYUs3zPUjzr8pVs5CJojrkGPJiY\r\nCfhoJykLXuqtIpHiVJ+EaPrFNNpcndHU/oM/KQWby29Gred/5JlMXWp19N0U\r\nqqYksqvXnm5PaunJIFwjjPSt3UJyQ3iCm3T/ALBfKsvuz05Osxm6Q/7ykGG1\r\n6crXaegjCvBTajQWSf/f6GmNKZiruADjJ2E2543eC5K1LHehD8neh0zA2geS\r\nvJmQnkjVOtpgbsXIOdnH6Ms+mayBk4BrGcgUnnEkO5KYwROkXntA8/w7DivA\r\nOkr49aqTtkn1TWJqd1/1yXmCi772zlOQGloGbRvDMa40bvgeJRfNdODFJkr+\r\nQZ2SLDozQWtuH/7J9ppwmiGyiNgqddwvzEabMKAQ3Fh/SXYIwXlcPl245qKU\r\nupE9xbIZI9xofdsLdA6rHQCd7t2PgaXac7Xzds4bpWgABtPrEqbOy0hvg9I3\r\njnpQEGAQmb7P93QEzA+buxSQNfC7Tf8eHQS0TKHKEnSs2kgkWZORDmtFbnAZ\r\n+gFKP/B1l48Q2Eqxyv8/RVNCMSeDobljBafigdnn7hZ131sND5ekuFXEkDs8\r\nhnhSgvGMGyfkxlpKAcBcWBK+aD8kYSIVFXE=\r\n=IiMf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.5-dev_1667790406884_0.5694674177984005"},"_hasShrinkwrap":false},"2.7.5":{"name":"parsegraph-viewport","version":"2.7.5","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.5","_integrity":"sha512-T6qTvkp2bs05q98ftTadHN9koY8FUHoQ3J5yEi6EmabF262MZLXHm4GiK23mS/CIc/4v/+qiRdYN7Rm4TpKNsg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-T6qTvkp2bs05q98ftTadHN9koY8FUHoQ3J5yEi6EmabF262MZLXHm4GiK23mS/CIc/4v/+qiRdYN7Rm4TpKNsg==","shasum":"108d5cbb5bdaedfa5e0bba5709907d335c8742d2","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.5.tgz","fileCount":123,"unpackedSize":1367078,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGsx02LShKBjgt2L8EAf1rKMIOYMqqkqeSkqk0AVIrNSAiEA5xy5XZec6Cg3DMe4Ax2j3tE/HIPE9iGW8gK4D9r7k6Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaHbDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYTRAAl98Vp200h5QFhOSe9RTw5RRs3brRZQQ0AyXZST++b4EBwr2q\r\nSZ0jLbtw8JOQDiVDihf/sWRJqi8SrrKIJtj6in7xwEjhfgm7EPoI6zrHI2vP\r\n1v6KA0kjSQJo8PpWmJKr8F9g01O7v8Gs+e6iGfd195o8gx+8Brdu8vU8V/bS\r\nJmIDDemD1j6pcnOufbfITSraBICeyPYH3K40xhU3RB4vC64KKT0AiR+0E3AQ\r\nxE/Yp+Y/8mNVs7zciIqiK1uVp3ctuhGa6Bb2Gs1Fjirz7KHGzPNUAVvIBSju\r\nmpeWDEhhrSVMUmQVlPa8bb3CIgllkI6u00hcxPZ3D72soJ8DgSOg0faPwaZW\r\n32usE8O9RHsEA4bjerbsRCvPAAi1djoPvUgx55Vp0zVswKkNnaMbiB4+C8Zh\r\n1wrPUZ4qVbuR/gXcalIXE4dbNDpczkCKvilgEJfZSF2CSC9CkAzUagsimB5L\r\ntCD5+K1CMc4Hz3N+/ckyCHYhjBBGB/ch34DXKzovVdIkk8RgDG3kv7xrIVUJ\r\nt5UwtW0KaO/yPKewf4LMoCT34pOZtroOtRV4vQvSknFN9nHrmyUyYoyGCZLU\r\nxAlMNY9jlYpZRnThA/qAyRqvg4Wcy3K2Qqyg3MQTwGCENGrkcPmbtaui4pZf\r\npjO1hIvgHxovuxLw4rZeDeA+/2yiKgrNHn0=\r\n=dtDz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.5_1667790531381_0.0787259999601404"},"_hasShrinkwrap":false},"2.7.6-dev":{"name":"parsegraph-viewport","version":"2.7.6-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.6-dev","_integrity":"sha512-CGEwtYe2gI6Ag0DiqTqAjhN/Tz/ljp97MtcFZsHJn/lRnsG2sEHpWnSo+IJWsemcUI3qcb5Inz/1aOUv05eKwQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-CGEwtYe2gI6Ag0DiqTqAjhN/Tz/ljp97MtcFZsHJn/lRnsG2sEHpWnSo+IJWsemcUI3qcb5Inz/1aOUv05eKwQ==","shasum":"f266beb4159b75e681c7730aa7abe70978e8de6e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.6-dev.tgz","fileCount":143,"unpackedSize":5156711,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEaE8meJbCNBT8z2qw8l5RYb7aZO5s0oKfKIhrYocPewAiEApC0LAWLLK4r/b/SWXDk0YCfScOWaqIuOR1l+gieCQTQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaHg+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqOGQ/6A6TAYMms7dSxfhQDguksyOcXTUA1WIqJjcLifFIR9YAexOzh\r\nKSJ4qamnEV+retJVPuqtXCXRuMigS2oSj6S03SwNVrlX0vmMm4Ve4pTkBIW0\r\npVsTqsH1BDrAzuZDMKIyhY2q1dALxcuEshS3E28KdT69Znv7r1n1o486XxYE\r\n45DmIrF7t8cn27IGccFqMW8L7YjSI2R5WySG/yMtzOdnmRZMmHgAQYxOSje0\r\nFjBiy0U/dpYonGQ8SNxVpkxS3uf3v4c0kPgpjBhuWGF9VUFxQyBv/T3ne/HI\r\n/oetkr+sYqrOItcQvLfeEIJUJrHcnGkxqbkFu5Rb4HtmVpjNiLJzKalG1b2U\r\nS2gngwrfCqxZ306SxziYfflC346HG4U0TuIdRMB1L4NJ2kokJ9KDTKYFaZh0\r\nqVU5K+4cDVRyTZ1B1km0MfRG7o6gE5xO/zJH4t6NkZq4MBgBNKvomQTEW5F9\r\nE85AhcwiMLxeLJhTHkT9j5O8CQ5JXSYxoPwieCjGKj3kpzxouCrZZkscTaXG\r\nsCF5SzWM9kkTtY31E5/WAmRzZmu/nXYvpozo/IMDGu3JnYeqn0AIhK4CI+Oj\r\nIGn+zj+/SVJeHovhjdwz6vhBpzabOBKh2YJqFv0x02d7Q347aZCo+k0HpjfD\r\nzJUGoZd0iJ+9djIo0O3o53tNMa/Ow14a+r0=\r\n=T1Bt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.6-dev_1667790909930_0.8355716204761428"},"_hasShrinkwrap":false},"2.7.6":{"name":"parsegraph-viewport","version":"2.7.6","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.6","_integrity":"sha512-lwysZBpw+AICTGQdDOTdT9FQoESa9PQwJE3NBkxkAMDmymZOe3W6l5cUd30I5IPNLdkC94r0ng1LGGkUjaE2wg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-lwysZBpw+AICTGQdDOTdT9FQoESa9PQwJE3NBkxkAMDmymZOe3W6l5cUd30I5IPNLdkC94r0ng1LGGkUjaE2wg==","shasum":"829ced999547772f34a055bc8c8c5d3d40fca3b0","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.6.tgz","fileCount":121,"unpackedSize":1364575,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFTo4QTJzkJwH2+ylY+rzj1lPQLSeuvDIv/6LA38m7hKAiEAk7CZtezrKCm0cZC0c+zIfdBtgZ3qghwL/p2q1RFfLpg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaHioACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoyExAAl9KBu6DzRfYd6/T5+OjmL1SdqGxBf9wGtwCXd1PXCxCSicb1\r\nz3oVgKq9L2lEJo6G+gLd+IRJ6eCQ28jeb8FPCStA8/wZAn48MNOj3Q3IadkL\r\nLnvAfZhpO092skxhAyGpBdFSbxGGyp2XuecmAB4JOjo8KLQ1ueoPTAT3wEUF\r\ngBaJg1jg0HOtoJkTfPQQ+cM0Y6EzgD8LdqFuAzRmAoA1IT9NUJR5QnH1j4rp\r\n3ZDRz/zkNGWndsYqg6H6iu3JousKlI1UsALY5XRWsGfGTkwjLqFdLvo+kGqW\r\nvUbumyfJIpqg/3F5SM7pNWI3/VrPoGOErYAaITKufm9GDCpct07Q+792cCmE\r\nfR2sw9WVK+8EUl/os3FcnR4CjuiOaTBEyqqkeODLVFoNZqrAUzaiVblkda+D\r\n1VnwvcjDAx5IVuyBvda4d6fLehuqkq+5K+sAXDoMjwtZcRR3LpyOWHcK0+V5\r\nnWwt6JiFtACT+kHhlNH6eavsaS34Hq9Fw87s3F16cQlmPnQgRWf7/vCxHckn\r\nDeRWoWqmQZQuXWa3RR6Da6f/d9dbCqdkLjeWB8ZfV/aZSfSaIXVYTc/bKSg9\r\nr0ldsm0/Ushdqb2ZaNnXzLx9cjEcXoX1TMT27XbyiH0v6OD1SdSU/kAses9h\r\nURHsdi6hfxMgI2CYtGwWqqhwQk7LPByS7xc=\r\n=WU6h\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.6_1667791016665_0.8192297662353056"},"_hasShrinkwrap":false},"2.7.7-dev":{"name":"parsegraph-viewport","version":"2.7.7-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.7-dev","_integrity":"sha512-CBeZ70qvGXnm38mLsB+7qe241F5r1lELKKTA7/KDIeWFfiV/phA8JlrYcjOABkVpuqhIt0tvifpfOquceANCbw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-CBeZ70qvGXnm38mLsB+7qe241F5r1lELKKTA7/KDIeWFfiV/phA8JlrYcjOABkVpuqhIt0tvifpfOquceANCbw==","shasum":"ed56b4f6d44153f3f755c937a770f391ed216d5d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.7-dev.tgz","fileCount":80,"unpackedSize":17736383,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCS31MTnUXZBsW0i3f0vgCC8rmiB4FJ+dB8iP/KtfarggIhAJdSNDq1QCPj1R3XTyZ3EEKMyWLudC0ge5nRy+2qQn8V"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaI8UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmov0Q//c7z2ea5rJmN5PeKo7F5XQCIY9mExKs+aPK/Y7kdBAAFaAgJv\r\ntGMvIZxaRv2mJxdDb2KljClSiQCfgufGX0D4rZtnIhA70pm+fb1h6cXflmh4\r\n85ZwWEwq8bBWoVfge6REcrXH/p4W0BfJxqItzkhEhD5j9/jutW9l6gwQ88GQ\r\n+qqkMh3Dcpxz6IVOoCgt2jEMvpDeFr26ZlKFrkjZmr+FwTpB86oTFsj14HLB\r\nTTpSfu40XTgIQ7U2RnpvIdMdbexDFGA6MlUnlRQpeY9W5qdp2lQWVcxa8g48\r\nXJSLeiB/m13ltErRBFWQxSgzPLrpmQ3q+KUGK2mQ2GpQZt/hEyAyR7eDp6UF\r\nCxRfdaRGk5n5Ns/Wg8iNPhDLQ4SpPHCOlu0EFjjW7/W2LtV9vz8fHl/BMchG\r\nojBIHdaoWifbt+8dHBeVBr4pLn1iyN7OyaoQ3w2kzZ9WujASc2do1xATf3F7\r\ny8oVpXjpMXX3EHCRmozHgagAJWeN0i0Q16e6Z1DAPLp48BUikVOWYXGRm0bj\r\nTrUao4lga/okyAL0k4ewuKwUp+stK6TFbJzoMMole6CW2aY1drC+FAU0k8TW\r\niiU3GJg5RbhmfCXaxaiz0Zs93bcw0Yz748coGxVDOA3DZjfnPNJEJE5pKdSp\r\nBE7+vipRmjKDLBATi9ZNYPKQe48HJG/ilSw=\r\n=RRnj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.7-dev_1667796756065_0.20796223094223132"},"_hasShrinkwrap":false},"2.7.7":{"name":"parsegraph-viewport","version":"2.7.7","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.31","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.7","_integrity":"sha512-7H1DxXUEV2mXfvIfkquiws1jsDYaR6VIPpQrBKmRCyA5hEtYkFDkcba90eGmyahrXDR6UxoAVteTYb+z/D3hAg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-7H1DxXUEV2mXfvIfkquiws1jsDYaR6VIPpQrBKmRCyA5hEtYkFDkcba90eGmyahrXDR6UxoAVteTYb+z/D3hAg==","shasum":"584d5338d65b9d364185551afe7228cefad8f4a6","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.7.tgz","fileCount":69,"unpackedSize":1359241,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCS10tX7EcPnAqbiRqG/KIpEkkZxwfpi9oq8ofHOL9h1gIhAIQCDCSxiqXMOGbqAY8ZyaeOQfNYstIuatDFaFUSj6Ju"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaI+eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4Ew/8C9UnOXaYYv+rFy5DPHzwiIenGqBOxpm3ua7AbHuGxdvm7bf5\r\nZdLhFGaoiOv8vHD2AmCyhXOECLvaXlIDonGTttQT4j/bg9lBAYPbgllBqHp1\r\nYhun8nmVJE6pfBEtULfxAOgZ2B8RDEAanjWw37JAE9banRtIm+mjVir2DuFq\r\nGtA/SqN19lzBI4/yFl6w3f3pw581cHeLElT/RRRUBdWQsk7dVqQHP6hq84Au\r\n+OklsvGkW9cJv/dhR3+DI72COSoVE/9xDY1tPHanSIre5ntQ0ovj2aNh1uWn\r\n3VTDBKXB/DWrT2Z4BnDjQto2ZEnUWtnbFIppcEofk+aFcmwNh0InDKnCN6Us\r\nmwjvoRuF5gOeIwySJyXem9/gjbjQ7dT6YGOyFGwR/4HidoZRMUxCcs6Nz2pY\r\nh90H1PZ6eZBmiakk90KiVFdhw5qyDR6m26ReeRO5+D5VVB8FEVesrN92ByS2\r\nIfUvEsa5T6O4XZD5Y8RGelX+MQLI15/higZdIeJLAE/K2vpLALI6XsAasYuP\r\nesqXIqdUjhoBA9QAybJkxuImrnOczmc85B46hrHKKmcbMcJx4FP2IdeRNPYh\r\niMb4i8300KKU1+xgGm8qFL7WWKzqYapGq17NP8hHpKzcWwptXt88P6hQQmZJ\r\nQ5zjjQld3EnWAuJRuModuDSx4FYfZxtiq/4=\r\n=JwHa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.7_1667796893970_0.8506491986594893"},"_hasShrinkwrap":false},"2.7.8-dev":{"name":"parsegraph-viewport","version":"2.7.8-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.32","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.8-dev","_integrity":"sha512-13uCNq6mrZ+uX8g9yUFWrWqicIFRzIC7wTrFblsJfRMbO4o6nbwbLdV2iKjVSHdIzqKkGnNuiYeYtY8SpqRm7A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-13uCNq6mrZ+uX8g9yUFWrWqicIFRzIC7wTrFblsJfRMbO4o6nbwbLdV2iKjVSHdIzqKkGnNuiYeYtY8SpqRm7A==","shasum":"91e6734eaf3ed3d3e694f47f99b70aa0e006cdf6","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.8-dev.tgz","fileCount":80,"unpackedSize":17736383,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAHjcmQ3n/nwdBy0P3BGqkWlzOc/TsNGyrCzCiVBsg/AIhAO56sZlbgNZlUcwDohGhyEJ8eamtZm3W5UxZcEY/glG8"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaLwmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrzpQ/+KgC1ImVXjRhQUwcCb0fpVGEOm9GtaQCTQTsXUda1abN6HViZ\r\nzjjLRkAuU16Enp2h5vmTckcUZrvKlZ7ZgwHQllSuNcKdziBZGfuMtm7aIhM9\r\nKB0FcypKE7gDAnPLEAkFIRMEcPGleuN2Lph7gMD6xQe6XQMrLfSH33syhpKD\r\nGRUC4TN7I/aYCZ9Q1temQ9mFphcIYl74eZsyJ5MJVE5YHnvwvRTBkroIEw/L\r\nFSnYUAJ0HY2NxUzTNQYtlYTyonNFb4OFc78Hpn+GM6DS6RDcZ8VfAAR2VFvP\r\n4OwX9BJSKFQw7cubWWhMH9Ps81iex5BOcosRr8ytEV1zjgiH2c6ofyeYAuPs\r\nxSanXERrjILw4GxwBdsZQBrPGh26TJY0GcfZ8uJqu/aL1yAxPxUgX4oSZ3Ds\r\nXJPZobSegvXKng5Yw5h72HEnA0AeHN8Dr5w6Vl4GttE6s6hSg9EJGn3lRwWk\r\nXfZIOvdzcFaqsXiSkAcuKQ5t2c0j9U7kUlT6F4T9M8HoaVFekjPTJly6b2M8\r\nz0gHrkl1fL6zSIKyzzp7W4Z9nIJb94EZlcyCWr5TfnevycJDn8zKKoK5sMbS\r\nrCZ1HXWk6q58C0X1Gma9B49CTZuXDt+0WtvNOhVzablFDVYrIV1Ziu0XolwC\r\nr2A/jFUVjaBSH07BmE+tF7bwYg93Bua7kZc=\r\n=+pjC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.8-dev_1667808293821_0.2698081529322196"},"_hasShrinkwrap":false},"2.7.8":{"name":"parsegraph-viewport","version":"2.7.8","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.32","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.8","_integrity":"sha512-1R+czXwvrHgmvWaP85jD3djbRLxOaERqzBdX/a+vHaY6IM7v7EGf97NCJUVO3/rOn5xH/DGCNKl9KzDaG9zArw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-1R+czXwvrHgmvWaP85jD3djbRLxOaERqzBdX/a+vHaY6IM7v7EGf97NCJUVO3/rOn5xH/DGCNKl9KzDaG9zArw==","shasum":"1390b542640b661d7e6afa609b2b36beca7aeddf","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.8.tgz","fileCount":69,"unpackedSize":1359241,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCD2HpLnGtSrpyDH8HPxq0L/kA+/xXB3NUN/EKG+RgxjwIgFmnEwwLG5vHBbe/qQmnAyuwOsbqF5d00uEW8NHLiXy4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaLyYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqAWw//abkG4BYm9hQ3Jn9/9LcyZJFRehgBH0AUb1vwfoKe/cWMob24\r\n95SE4jTI8lRztHOf+IHdywnWc+MWMC6pbwbxTN5E8NUnPQpIOU6JiLcISJGs\r\n8uFp9r09d9yXgATI1X1sgdQQHcxEmd2ufyV9aF2oqi8kZnB6QcynvgUrfsiQ\r\nwTZaUjOKn7FpRW9GuOHG9eDcE6S191vC6b7QCKeWZQgEY3YL5J4Xz0dZPFa/\r\nYUHXTedvZV//bdOzbskbuq3NqMjpQ67CYJweXsIDkrU6kylYmGnrcZBeg7XN\r\nHv3URukmMNgGyMrvHztHpuyy/mcObgTxKoJLXvtFIJh/rq/8jQTdQXBQ+5vo\r\n7wK6Jgw3LXK4u2EsEo8PjCQLNCbKxxpizNg2W4p/GJl57NrbmpcB38M8boZe\r\nd/jJ/6hZUFFTF9E+d/J1hMR1JdNkP4wHHhoXg/VhdxSGe62+ZSBLWkkx1z7b\r\nF0POvCdsE86LQd9u7mWuxtUunoTdj6xmQwYvP7Dt+ZHu8LG/Dse2TJcLLXvi\r\n4q70/XrNUbhavQ04qv4eSpoydV6IWhdWlkCyjbmCtoYPmKd0U4IbIshmV/GP\r\n74NsWK59HKaUqAWZ7+EluSRLjbbEHSB2ZiUbdTvg42MYrgavJGka8WOvEM6r\r\nM3V1FssOwzUoxE5LmVjpTWFddudjkisQjWU=\r\n=/Qae\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.8_1667808408274_0.8976952324548013"},"_hasShrinkwrap":false},"2.7.9-dev":{"name":"parsegraph-viewport","version":"2.7.9-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.33","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.9-dev","_integrity":"sha512-+nJNRNN+T/64598dAG9fSw/UXGCt2nGfGLVvDrX1MsDF3/yTPXfqT4gn68iLtRHWT45kSmO2Z2Et/+TqQsiwuA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-+nJNRNN+T/64598dAG9fSw/UXGCt2nGfGLVvDrX1MsDF3/yTPXfqT4gn68iLtRHWT45kSmO2Z2Et/+TqQsiwuA==","shasum":"e1e81b0da2e526eb106065640089a1a18c2315a1","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.9-dev.tgz","fileCount":80,"unpackedSize":17734191,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHzeN/wkqZxGpZ9eOWFRb/GR2Ztb0nVOCJzBL0hqOSkoAiBtxM07jlrVyJg/ipotBZt4cZ2krzEexkQxr+rpoS0UTQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaMOQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrsGxAAj+GyBg89Rxgnd3MMY9rJPwaqwGaPZQShicIHw+u07CvTHhRU\r\njV6xvOaGGvCX+WuxCEJ9wII6LfE32s68g5E2M7GUb5P6SScuveqUjwS1MEHa\r\nNpWpi5JJO9QA2lyXq0/vitC6e9LNxA4OFEGlC1WiQEtW4nah0JVC+XFU2B1u\r\ndPGDI/doyE2f1mPve6BJ9oU2ZHDRNvMySgzudPjZKl7tRNnUTL1lWyS/U8tr\r\nl85hREvWhIDtAvfzjq4mQsHrQV2A/sy/KxwUwDQyB1P676VIXWW4MktIIbpZ\r\nV52ehs3Fu66zFouduZHcGcd44fYF5dfQ5XEKt8bJYQqQjqEIKs+fm+Gak1By\r\nA6DOacBLT2Ohd89lG8iTMzA50N51wvEZmkEtn2Me1YT01qbGRmimiKHSh/GC\r\nus/qDPSeljTCmMSgiYSQn/vxh6dRVKu8rG3/mRDfc6v3D2NQ3cT2LEynW3A5\r\njt/Lcn2AHsjMxfdEvZkrP9sW737qDUjXkdgV35/5inNZr3WnTQdztANBPA1v\r\na5S7YdMBNtRiUKweFhB9tEedxZWVddxVWnFNlV8N6gWz+nQCR5B32cF54r1a\r\nz7odxUJmizlDH8UFofBRvUfSnGW8ffvtjuSXdf0wUJVRgmhCBTMRjHN6LDQO\r\nZIB3E5oJo2bRUL0nGoiM/Jh5ax6a0wiuSaM=\r\n=v2BX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.9-dev_1667810192353_0.4308819968115061"},"_hasShrinkwrap":false},"2.7.9":{"name":"parsegraph-viewport","version":"2.7.9","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.33","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.9","_integrity":"sha512-yzUtGuji7nmHAVLO6b0NWjNyWcAEgrLxu998fIjiJa4AevtfbsV8uYJUZ98BjdH9g5Xp2aSpbkTG35/O8cnKlA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-yzUtGuji7nmHAVLO6b0NWjNyWcAEgrLxu998fIjiJa4AevtfbsV8uYJUZ98BjdH9g5Xp2aSpbkTG35/O8cnKlA==","shasum":"7f6e883085f597a9add9260da11c4f6add45066c","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.9.tgz","fileCount":69,"unpackedSize":1359064,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmqCD9lDoHl3sn2KrDdjBA5cAurDaVgWlSIE9QzZXZdQIhAO/Pftbi1c9KFwtOnNCbQO6tX7rbsNkX6CJxpaaQ3CK+"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaMPqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqihhAAm9ZWKXaDtF93ZOWY6ePF9U8w7pzzjWkmc6T6H9p0b8enMOiT\r\n0TWf0ODqZDvCJ9Lioq7YjW1dSLX5S4HzNTvVNSdLKHU+fweQ8UW2gw7MOeoV\r\ndv4GVJW6Gng4ayFv/1UH6ZGEK84Jlv/N+okySdphJk9DIE7b9Fw0G8lBjAvr\r\niufRVxuwnDKrcxRrZdbBrlvInYLNTEi2h4ovTYCLaWnkngLT8ttOFoc1bpCW\r\nuhsfTrK3ezRopsv7WA/s0ctCUmABhlj0DmACpcipkD4iHZPHYV86MDnjypMK\r\npqIZbIuL1b1S2IKMjNY8Cs9smLW401UJ9v143aGhpw5q4pSl53KgEuAGs4vF\r\n548k7yGyunc9YEFRooP72nXWZRDAz5VFOfl+2pNKyYZkouv23r5R/8rZZjNR\r\nX0wFfKOhxBqy/kQT7iwKQgPYHYbY/pNPBJJxMmSMBjqEzGdhPXav8kwuz1jo\r\nOQA3IaRSgDzfsTDveol8cO43UsGWukgDgE6SrAq2N3j/ZAEg2m/CgNG1jcli\r\nExXTs/3IheIYni6Skwi0CBdo3VIU3rk1pkpKLnjmRwfdvvgz0qtzk3VC/not\r\nZy/5b/7IYJFbl8nIxX5bQaQtpWp1PJCzi4BzwgHGDQv7GiwhOAjKv7EB5fxq\r\nhMvjzwGhqaq20X1pko3SKj1sPDp8Mn/UIHY=\r\n=2+Xf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.9_1667810282422_0.7071269524262704"},"_hasShrinkwrap":false},"2.7.10-dev":{"name":"parsegraph-viewport","version":"2.7.10-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.33","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.10-dev","_integrity":"sha512-0vc9WEqGIOaq+7MQo1iTWEF3tkW5DSyt3U8y9PwUOzgsC2vXw8HGsKgVWsyQ4BtLJmcGxC3jqPhKpR00SSLzjw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-0vc9WEqGIOaq+7MQo1iTWEF3tkW5DSyt3U8y9PwUOzgsC2vXw8HGsKgVWsyQ4BtLJmcGxC3jqPhKpR00SSLzjw==","shasum":"2444ff1b712576431942e8edabd6d9e0648e66a2","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.10-dev.tgz","fileCount":80,"unpackedSize":17734784,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHtqvoApKTw6duX/shCtFAMuwWIjQ8zU1N+yKJTcAubAIgbd/wQF22MLT/9/d4q3+shHyJflVv8FteGqjjrn3QE18="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaNdsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmon7Q//RwUummfobjlsz+9ojeWAtTv8CPwFQCouCcjFRWR8gDOJW3ep\r\nfMfjaZlBkuQkmxwkOhxzDkqtmuZD35x8K/smKzYI7zvD1PVgxRAuCZjSYmSY\r\n4WvoVh5mJHJ+oxswF53n9PaeR1L7Af4KJJEYdq9oDB9TkEc3edR4l//Tklt2\r\n0zOq3wwUMT9oz+WXTUjdqwPMof1vxBGThJ1I+goBJMiD2lcK8uYN1EesoKOx\r\nikn+WFepX/hGlyn81plM3+j0BQpE2EZMAR/orxdwpJUT0yeI3wRY4iMNlO0c\r\nsu0eI32dKmb/O3se1KECjfOfhHB22EpYfIYSRBs5Ky2r3WHkriGnHjudrbmk\r\nxIjwbQ7i4huVI7j/m3G/w6z0Q32n19uMEPeeAwMY9EE1jLBLa1+pBptUm6sk\r\nhfyvqC1EuYF2kRZyiTCPJuygaS3OjVTZbQlY1p8Okmma/DFPyn2fdjpLrnyi\r\nitseAq4OHatL57J34J9rrmhEMvDYGBFL5mhML43X7ph7+CKGXB2aHh9q6zcZ\r\nTg9aeuej/o0xy+NSYnrkGRrJoVXCPWHwIx3PSNlSO6DlQZ8tckMbrG2p5ZHl\r\nj8HhKjxWureakKtFzersSM9OjN2g4OQWb0Lr9CTos9WQAb5IqH+vPMn9ZkIA\r\nTe4HFKsemTCKNaFZBOPyf8LI5A00oxk4Ap8=\r\n=wvHC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.10-dev_1667815275758_0.09611762857726847"},"_hasShrinkwrap":false},"2.7.10":{"name":"parsegraph-viewport","version":"2.7.10","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.33","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.10","_integrity":"sha512-EPx/LKvs31p28w9mj0bqdTTX7qwcQexeNLES4Lh4MzR8VzYJedWLcyLkX4ol7NjH6xKAG0NCRPUB3KZe8bFw4A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-EPx/LKvs31p28w9mj0bqdTTX7qwcQexeNLES4Lh4MzR8VzYJedWLcyLkX4ol7NjH6xKAG0NCRPUB3KZe8bFw4A==","shasum":"7f5a40bd7eeed252298d33a946c236b1358c1ddb","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.10.tgz","fileCount":69,"unpackedSize":1359084,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFtmNAR6T7iSAAngqxXPeXnL//eINs26bG+kWHLYlVxTAiAl+go6eUVYzoPSZIavYtOKCDhj4B8vevYa4UFxa6jX3g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaNf/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTVw/9FjYooqBy8hBxAUSsQ9UZYkT4ZA36rTrNZaDJNbLB4KZvCrzH\r\n4wMzpWz42g5tRbm1YcE2ucjDjy1ywqjq6SjXlKH6SfS9SRqCVaMXVstx6R5d\r\nyFd1pgLUU5kH2L9DKS07Lj58oVEvciwEVVlWe9LdSfZ7kzlqWdYJhctHsDBv\r\nX3c3qbLBk2U23pi1A0oBj0jrz1lW5X5VNcew7nUAbynM0ejFwbeWfZxJw5Hp\r\nZrNnLNQ4n4kTd6/Y0hlMJ7ojxCTFRWcit+gnfAicgU6WHxle8grmO2G1sZPw\r\nJJC6v2YEvNauhdPpFUka3MZ9rp2fbks6SN7mUGZJJ/4jN9cBW/Tqygc6IwW5\r\nW/o2BurPR8IikCc+B9ZAk28m/Kn6wJCsG53vJulhWLZfyvJG9m1vjETRaU/P\r\n+mkIzwf5xX1s33o96C4HW0aCb1K5byIkKb0Homwf1BK5wir4p2I7XgLRMu1U\r\nl8a7ApoH5xH38Fkl9j/Ulnsl4YdUwuEhiporGoaNXqGh8qe6m9/XMWjb12RZ\r\n5v/zUvxseTd6m0hPYEHUicdzJZwbCTs25m/SC1Zm4gXm4pCmVklqbi7ONrO3\r\nigDrgh+WULwPjvwH6YEtkw2sXmv0kavW7uBJPWjho6EVV0FqZ89QAbnWyP92\r\n7+7XopoqUBLUyaKQc4IvlB/fn8GodoQhwyo=\r\n=S0TS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.10_1667815423159_0.7375739251846642"},"_hasShrinkwrap":false},"2.7.11-dev":{"name":"parsegraph-viewport","version":"2.7.11-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.34","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.11-dev","_integrity":"sha512-HyzztzY8n198U58s+YQIdKCFpXZ25h1tYto8FZBuQgIzRNuDxNdMXCzHVLPiIiwHyQ4JnvvvlSn6G7ZXXanF8g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-HyzztzY8n198U58s+YQIdKCFpXZ25h1tYto8FZBuQgIzRNuDxNdMXCzHVLPiIiwHyQ4JnvvvlSn6G7ZXXanF8g==","shasum":"b77ef38f38ecffc0c6ad97777937e5ac1589be9c","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.11-dev.tgz","fileCount":80,"unpackedSize":17736093,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqdT7qrP/8vboJE+uY75XKagR5sZVhZtDPehhxrn0DYwIhAIwgG29qbZRRoypewvP/m/HL0kbC6Eu3OgjU7aJ+A/B/"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbeU+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZRhAAlc4tB+7DR5k99PP/06UPZxgbXbb4+1Mne1zzTC7ci2ym7aRc\r\ngofAdgO2RnCsiWqnhgBqp1wTVlV0BEQ6IwHccJ3O/e+e9vej3n8uOJTlQF64\r\nXKOQevmDgbXeq122Dkv+TUhIyRLn09N2XRnYZIBiT+pjXmGi23/ixz+eznpn\r\njSnz6hzLg3iVwbGZu1gz++dUX26HfIQpMsWe0cdmL6kVO4xYysXR2qnj/txM\r\noNJ/4gzZVS5vdv724HUAWvglQdlhqHEv8mInw7GmU+LfI+UK6pICtWSZA/Va\r\n/r21lBckXOOGTt++9yu4Y2eAnlYkTKFekqMQVIB9tgJ8h8vVUX7InH3eRe3j\r\ntrWtd+huYoH8j9But3MUUHUA9yW//MpAEJNjpGzP8MXAhjq1/8pzuUUsKC3X\r\nQUIWtTqKWTfwzK12w2rBQl1/Lt6T61Y6QppIEDQ1V7688STDybkHdqPKdMOP\r\n4Hy5hW8QyCdRghXy0LzltIHvq7AD9eOGnrU3zDoLFyCP8oe2wDaJidX9yCmi\r\naJenBj746GZQsiKGiaWdYYWSQr3pLKXAogChYnrOKIkJyc4Bx8EUNwYe2O6R\r\nqOkKLVIIIjlNYkTub0/uTrfO7sV3aTBjwke/qWW49JFC1uGKRcrfVuv1L7mN\r\n5tBdYevuOiCqlcuSp2kwY2q8Cw/Ozgy23pI=\r\n=LWyT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.11-dev_1668146494325_0.6191505201646086"},"_hasShrinkwrap":false},"2.7.11":{"name":"parsegraph-viewport","version":"2.7.11","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.34","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.11","_integrity":"sha512-6dfdOBV63mr95ZtM2348cCVgdwxq3TKNPI10j8hPWmRneFZt3rzdNh3T7exsm2ZOW13xT5MeZnZR3XGKuR/n7g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-6dfdOBV63mr95ZtM2348cCVgdwxq3TKNPI10j8hPWmRneFZt3rzdNh3T7exsm2ZOW13xT5MeZnZR3XGKuR/n7g==","shasum":"1a0323d9cff853db074bf6155123ca73bc965388","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.11.tgz","fileCount":69,"unpackedSize":1359155,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCP8LEy+qUdzt/+FnFncxjJIb1zRgBsc6MuUbblkYGWTQIgFbdusdMyntS4zf6rDOSIXbKFI1gy9F3HGs18JSn3u4o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbeW0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrn9Q/+KbqStCW4tX0ne8jJ+vybgZizO5bKKFaKg4Rx0CZdRzIsZ5VO\r\nP6bNonIw9GI+Ynpi/AE4eG3DjkTamfvBsMgoaDHRtpkOSG12eYT9/hIiFDFd\r\nqSFEAesnzRjeE5CQXzAir0yXrOFR5LUERywgzdyy9wm/4+FtX3OeT8qXi/l/\r\n4r9gnstxOeOgfF11e9y8JbP3ejrAKQ+HFNYgf1wnnnggYDblYDPMhmzPlMu7\r\nmEFiB4pFO7UZuUTfJxpWb7ECbArNumzYNTXI22IaT1KlClpc4lxGlwpXfYHu\r\nCZIk9t1A/hfYRZ5KsiS9v88LaavdXrcGF8mBbkptqp1DAFvJEgmf6Let/huC\r\nTaFK+hITfW+NKCkwA6kDijITWs1JnN+Um3I6l3Aq64HU0LMvJMxebwxhqhx2\r\nO2MhSPjC9TGH/LXGgGi3rXC7X/ekIyf5uUN9hpA8sj6P3hJu6reCRRjj3mkZ\r\nBVtrsN2NQ3fhBP/JbnlQMA5Pl0nHx4T0PVvwPgF+TGrsP/1yT8Vk1VGAIAt2\r\nxeLN1RB6cOt95uCsuwt22Y0PWndnvP0QgvDNDKGwK1dsP9cxYdn5AW/RvJcj\r\nXL8WY22qhM0I3orpLrEQNG3Rr0BfNsIn2sWxIiDL3YkHL4iKwwxnYlChr0uz\r\nAncp5UuHHRyQnfERtF9/hJZ50KngbAmaEf0=\r\n=+Iy/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.11_1668146612503_0.8822258496639719"},"_hasShrinkwrap":false},"2.7.12-dev":{"name":"parsegraph-viewport","version":"2.7.12-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.35","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.12-dev","_integrity":"sha512-4JMZXc1OyR6Lh3EoDaNA8I0UYF2a8arfDetgkHJUhwoT3Pjt5J8MDaSrUcnLsc575C0PdD71CWUQW2ZqendPPQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-4JMZXc1OyR6Lh3EoDaNA8I0UYF2a8arfDetgkHJUhwoT3Pjt5J8MDaSrUcnLsc575C0PdD71CWUQW2ZqendPPQ==","shasum":"bb847300d45924bc570fb32a0a4c1d7d78b9691a","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.12-dev.tgz","fileCount":80,"unpackedSize":18634162,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcPPeX4jcEAC95A9lCNArvLCkGO1MD/818t1bpZi/VJgIgSj1G7A4gIPQh4i1VAsGijni7iQW8Hp41zaN69qc2zYI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjit/VACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmorWhAAkQ7yxnJnoJx6s4I7UIJRWOGsP8iZpf35KfRQ1mlFvKM+isLf\r\ntCPckT832ntsW81tkIL9Dr04GMt9Hf1e1VOnjcBXAk4uYmcVbfCeLKB2CuSF\r\n2NPvxAEcsmRYnZtxoZm+YulJUQPA91iS2yJSFKKURShE7LN/Ss6YtbN2gyEr\r\nOZyDYFzl41Dzfsv1x+1QEe4ReR9YFhxtHuooCinZP0tUlIxrwsEPBkj8xE2a\r\nqpeO491Rs756wsDq4VMsI1xhOJvkWUefmay/7UuvLicfgotXlbH5utZWb2vd\r\n5m23WU0vi8ZRqUIhzwwFAtU9i523cI36FFte/Hmor0Jj+TCjxowQTN/iDLpT\r\nqNjy/zb8Zs6hqNncBXr6lByCajbHyjdceHP9njV80H67WWVgtH+t9CoXrYuG\r\ncnIWd+K0/m/iU7RrjGFpKP9WOJcvw+uR9V/0xtvRHs2MH2FhmrpNdhJGSzn4\r\nN04SkcnqpVGjPXWPx04hjBUJ2D/omlcqOCJfyJyd7RrNUc8nR0P815yCQDx5\r\nYS3nZ70b8z7Qf4nTxQfHWag77QNuFM+zQz+hGVG3mmBT/mk+Rqd1HL3Mb8B0\r\nW5CyEbYmAb6tNAebAYd2IBnZmicNhv4uslamQNs1IOQrSjbandSYn3sRB/TA\r\nvcgR2XqMSIrbnuhn3PB3XEPg/gQXTPR6MJ4=\r\n=0vo7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.12-dev_1670045653052_0.5644280746705295"},"_hasShrinkwrap":false},"2.7.12":{"name":"parsegraph-viewport","version":"2.7.12","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.35","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.12","_integrity":"sha512-gRbVHG8ipC5wGgiJrzbG00YzNXbkWWRTm8fKrzUW7owxF7f4wzJuSwXuszkGuqAZ09OBNGmKhGg/IgNMQsIt7g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-gRbVHG8ipC5wGgiJrzbG00YzNXbkWWRTm8fKrzUW7owxF7f4wzJuSwXuszkGuqAZ09OBNGmKhGg/IgNMQsIt7g==","shasum":"4b870f44bf9d82360976f24a09d03f0325dbaa51","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.12.tgz","fileCount":69,"unpackedSize":1432422,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGsrJygPefvt0pocjTgufQTKUk7QFUoXq2bg+3niVQxNAiEAuc4bJamP+p97NWhp2aW2varKbyjWLKb5l4boB38EWOk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiuBAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpskQ//dSFr58q+pG9HjgTJfmAuny2fjYH6q24rktIhvvqec57xTE3C\r\nLIqDWx9kLQoDC8yvE27BwNqmryPhKUbG3dIDcZFttNpQBa/sMmCiiDuvRmn7\r\n1bCCdL/jVpxG/uS4fsht7YtOxvLTXM1b9w2yJPRDXXPgO1Dm5g0nkC/EdS3y\r\nT3QDqqfVP20f4uZGyDC3ksAZjkuObBFQ5GWNNze2urvYc3qoQV/m9upnMb/X\r\nLvQUTQYLfaGL+jKZQYV/3ywhFDyCxHNgnkKaZg9aTWBq740vo0n/g/QKJ1Ci\r\nDmGvzFQsGG9VRlloVzFZ4lOTGLzNglKXU2mpPW3CRMohhZQ3DD11vOdXBX9a\r\nYorG9Nmnqfj5Qm7svyLv4Owi1fepC01nfFLRyAMXo7Minj6DX9b4SqdMfXxX\r\nTM+yxcTGo0JzOGGRJwNkugL4DqxQFXmo6rJwcHaS5IhO+rVXTBo2RwgP7rHF\r\ney53LUJ+izeezUIei+dytr7QP09EVIBIG2bzY3GPFLdXaGBft1oEdNwZm+P9\r\nSC88VcVIoTQcmcWELQ/ckJFMD9G1L0ic0zHVJcILqOHI3a1Whg/Tm3p2iX8H\r\n+ibLvSDOQFcRsVy5EQCwD8djSb2+3WIFan6YvA/Fjb2/p7Cxu/lAojiPCAEL\r\nHM5YFqzzmfnJmVkPlnzC3v71TjH0+iRvY1U=\r\n=+6i6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.12_1670045760235_0.8329740221724702"},"_hasShrinkwrap":false},"2.7.13-dev":{"name":"parsegraph-viewport","version":"2.7.13-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.36","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.13-dev","_integrity":"sha512-DHnxpMJ6hyBVrVI55KtZRZ/4xG3DSBP90jWESytzxLiABRwXUOecYoA05lY4Crgkx7LqkI44n7YqaVqwgN7nkA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-DHnxpMJ6hyBVrVI55KtZRZ/4xG3DSBP90jWESytzxLiABRwXUOecYoA05lY4Crgkx7LqkI44n7YqaVqwgN7nkA==","shasum":"fa8cdfba98a2cd7274a5641c1a926cc727b5eb3f","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.13-dev.tgz","fileCount":80,"unpackedSize":18634730,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEtWgU1vUCHA4eskFLRECeHbIJouhlR82EOnPh+NepO+AiBRlOihd/0S3WwsLDaUiZzfnp8zlrUxBUzclSf1P8/2sw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiuMLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMqg/+K7VQQJt5d1iNSrTmJTZsrqrff8wHdbotxSt9I/FQ+AVcddtC\r\nqyDSWx4rKYL+A19Wb5QKhtJdOZxLMqiwB+WGZz90EwfuAUtyzKrXgysodfXO\r\ndimTJ65R2VcRuuNw7kgFn4g7zHYzIBNfM2blmHbOaSfIWXnN8VbwDf1jOx/o\r\nnMEctc5tx9xczkoWJYWq8jUSG2izlo62qjb5P3ItIuJxcY7eO/+4kwZjYVyD\r\n641m0nMXQhoZ+MLz5J7cw7MTzAgBekBFggYsZNETLYXmwv8G4zXH34B6WqiG\r\nJm8+aQX4hCDjsSRgnfIXyGrZr+Jgl20d0RvUfe/dMPdTWsN+s6FdKtUeSTvS\r\nqTQhPDQE2UwjsdISfTq2L1NSNUICF3yFtAKUx3WwF3BphgYfSCQMnDY+F3Mp\r\nhUXz9fxApVCOcsU3vSZpy2aEcQlS1fFnNcYw8k0U2Qht8KbbAePUlLo6EdjO\r\nOK8KIuj+HXRbFHq3APPrzyR70HiDy1GGUch81CzePGanXE9iyvbQi7VanYZZ\r\nMmOv8N6E6XN6+/ildExRaj1UMrOpubJl9q22K0N6Wl9wkqgyhBkXrj17s3P2\r\nOxeh26UcnMOm7frxz4akw6poPyw9i2TP1VPJX1m3aubFewFu3QF6URqyM/aP\r\nul0iUozgDqSLSpqlQoeUKv6NA68UI5LTevs=\r\n=x41v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.13-dev_1670046474722_0.5711382938705412"},"_hasShrinkwrap":false},"2.7.13":{"name":"parsegraph-viewport","version":"2.7.13","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.36","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.13","_integrity":"sha512-sEm8Q9PbFo0kbpGdG9txz1Kbs/f2nefe3aQ7XQ/RSUbNeGP9xzWl529HhhyZUA96Cj9CZtFX+GnN1+8Mgjdukg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-sEm8Q9PbFo0kbpGdG9txz1Kbs/f2nefe3aQ7XQ/RSUbNeGP9xzWl529HhhyZUA96Cj9CZtFX+GnN1+8Mgjdukg==","shasum":"ccd6791d314b90deaa70651c873bcc6b7d25ab04","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.13.tgz","fileCount":69,"unpackedSize":1432476,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjdHCBTRHOblZfCYqgS6AWbG7zJKLSzcOTW72+O1VaiwIgOXP74yfDGMwgphCHxjdaDc4AOhQxwb1uoeKdn5PbyIk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiuOLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2zg//To5fBuukrhsluL5RYQBDViDWjpOZp2h7f+haHYNrUw+Rik5a\r\nfKgGFkfos5cXqppoQMkHbvDYzJXshEoFXaOvF1wgD6DlXdrah+i2plcp3Yq1\r\nFUgOcsK5wTHq/5SGtSE9gBqtDM4fL/oM9hlfGPmC5n0x1dVNCp1/wCXwJNcI\r\nRbjJLfc9AeU6MFyTAxp0iAjpJACcne+LQW9DiyJcyvY29l4V2zaTIAV5Ct7C\r\nqG+RjFHjR5Hm7vb6s37KiBJWi+2ZrhJG79E/ix7/3kb1LU8WVQNYJ+OXCKwG\r\niZnZaYp0sHYL5An+KxeXQRIaq6HPz57DXQpmd2qJSDxcDJhinuAgl0faoMuC\r\nlN1HefupvBfJQTL9+SfzkX1o8AIELwYFZrXYLBu7nYomg/QI9zeO0AyJFxHx\r\nmHHNrlYUX+RK13q7zh7bNouGjSqx6Auux1MDTt7lpUiKStfLIh8cYXZ6FgIF\r\nd8qacXqVNmGfHafH40mw5pdWrYAnKx0G5zqRp2tRDA/o1Gs0K4O+ELa9fdA/\r\nrd6KnZuHsboXpcHLnzefHqf0L+hhIGQVfdB1T3+4BzD5IBRHL8HVqPSqfey9\r\nbEpFbIE6HIXmTc5r8CU9DMuGEsQtlGDCS6iVWIylqpqkHeb8jRUtDptgOcQ3\r\n7zy9y3KuUg63Jv5H2NmmH+yVZ23Xcgd4a8g=\r\n=NR1N\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.13_1670046602846_0.8827266385237609"},"_hasShrinkwrap":false},"2.7.14-dev":{"name":"parsegraph-viewport","version":"2.7.14-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.37","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.14-dev","_integrity":"sha512-9X6xnPRghtzpYO02iWbi9Bduv/+cJOxn7gvcA6FUZnwtz4K3XyztIXvbpn1PeQCU/0tG+Y+nJAhS3JYOcPcPtA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-9X6xnPRghtzpYO02iWbi9Bduv/+cJOxn7gvcA6FUZnwtz4K3XyztIXvbpn1PeQCU/0tG+Y+nJAhS3JYOcPcPtA==","shasum":"6642d430dbfc4bec84ee6f787bd7525dfe3111d0","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.14-dev.tgz","fileCount":80,"unpackedSize":18646061,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGOHLhJghH7T/H0LoF/hOb5VjbDARRyGl9nyN5cmupaAIgDnvG1loIw37q/DyaghVVBUJ7DcohytJER5W456Cskq4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjivw7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqEwA//V+YVOaz5B2+v0S6pXLhqiLEgpfMEeJ9AZ733UMOhRANHQT48\r\naI1AXGlGZPNgnspSahESyM5nBODUPwSQsf5MzUYmTw6M+tyyJ2W0gMi75iht\r\nE5Z0TZIo0nBe8HRJTQVTcAthTl9uSyhpxPHtpv8PttJjvFQ6DF7tYymlUUTG\r\nBpMR64f3UICtaiywWbFrUXC4fp7SmEVp2C/nkv6TJiTHRGY32TFvlwlaQw5K\r\npsGWHWepEyir/g0bx5H3+xlrMiBvx+SQSuPTn60BJ8N0UmvC2769/plv1QQE\r\nY1J9ofjU4kQCz9hSBZgwyy0zRTkkz/vke/JQyqpiKNuMfmO3Lj5evJmEqJW9\r\nb1bNcD26SovkyV1G/Ue+se3uaT3rjg4Zy6yN5Nt2JmKnAJQnwt4RvxZQu9bt\r\nzLf43KOYCp6q5o0v+xxFF0N751+YC38tXlbldH/ud0eHf31FQrwhciYiRbRc\r\nYA+fp1fQ0vMvGNIl5ITz6l0yOzKCbz5QJvavmex37zi5AyHCStwz/imAH/EA\r\n/FOmBB1H5n8xlPgx6lDg0FzUQBE/wRr6pFVfI3KQ1tHnQCIkhbrIG88pYT12\r\nt7bmjuVAJ/8+jbM7uRrBVfQJpRNHjnGUZm8Ul+ac4twzk3eluIW9RD9SQjpu\r\nvQaaBm6ejY2JJ/thMwBxGX9y+Urw6v4GRs8=\r\n=UjvF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.14-dev_1670052923527_0.6538801466035018"},"_hasShrinkwrap":false},"2.7.14":{"name":"parsegraph-viewport","version":"2.7.14","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-carousel":"^2.3.37","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.14","_integrity":"sha512-pL0Z7PimIaKLkBBZnfgYaHzlGQIasry3pyFuql8zOUAPBKGzvaXrQcOnAtbDmPpZO0ZVDE8LUx/NNjNBKSrc/A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-pL0Z7PimIaKLkBBZnfgYaHzlGQIasry3pyFuql8zOUAPBKGzvaXrQcOnAtbDmPpZO0ZVDE8LUx/NNjNBKSrc/A==","shasum":"48014bdbc0b05571030571f3cf38f13d0fd74889","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.14.tgz","fileCount":69,"unpackedSize":1433409,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/GvCSWzdLtvNyKM2W9rwHImbCxmSrjqXUKJKXoOjxlQIgUKKozkD4DDza5IFEaWUBmkzhSpAzrEMgYAxksBMnBps="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjivzHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpzMg//UmhsmD/drCLTk/F6Gov4EBNt6v57YMHWJxKp6csXoLMdi+ta\r\n1wgMI08lN+1IXXdeQ42R6D5CwGFmdGyNV7l7NwpDU9kmF9G6jv83lh0OLOXz\r\nWMcJFGtnsBuTtAmv+wVmp1JOA6AqqD7jyaZNrbO+/W9Z/m3JW56m5lZkpw62\r\nHctoDKYLyg6a+YBqygfhOPaYTl/+JaU72Qys7H9IQb+/IBnKqwwggY4WApD9\r\nM4mWaA9FXJ+8dKsb19h/GlVaMGEXEoAsjpWCUC7Z6FxakrVH6/7vcjbi3eic\r\nLX6Kad4RnPT/1Cda7WVULFfsMOZxgOZCY3thdMeDSYr1GdMp73RxmwbZreep\r\nIZw7rEQY0rNVa7gUX+rmSLGjsXz4lcuyCR+0mJ6ujVubqb+yAE84chugmKNH\r\nnx7PeutdQEyGfg0Z9kWWkUbAvlMW/iSL4zwHSbzrgAxX74Uu9SKxTtTzWo8A\r\n71eOXPo/3VZ8APN5cVw+KhUUsQxcWLszIwTUdLoZUyeFg9Lllyd3oQwe4gtZ\r\nUMno3Sc+Y0vvbcd8v8liskdHMu1n5LDQcl4WZmRqVb+psVh8y5kxhCTlYa/J\r\nelg8hqoXcmLk7OxxWWps76xMJv/wdNS2dxfVJdQisOAZdJYBONolvZV0rMyK\r\n/MSoqctTLar17buHMcgOR5xV054MGizFZ6o=\r\n=a+2C\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.14_1670053063361_0.5470519757292112"},"_hasShrinkwrap":false},"2.7.15-dev":{"name":"parsegraph-viewport","version":"2.7.15-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.17","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.15-dev","_integrity":"sha512-TQUVzyKCFkfnQz0EdmxMj/0ooQASPJCkLHi+gJ4mVyOyl+LJPJXyeB3/hAhq2QBgUXZ32MtG4NPBrogYxB1x9Q==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-TQUVzyKCFkfnQz0EdmxMj/0ooQASPJCkLHi+gJ4mVyOyl+LJPJXyeB3/hAhq2QBgUXZ32MtG4NPBrogYxB1x9Q==","shasum":"94352ed393448532c5c094647a553fb55ce26539","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.15-dev.tgz","fileCount":95,"unpackedSize":12391465,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBz5fiN7lKo6rCN6Q7wY6zYLz9WxI56eMELVnyIIDb4wAiAP1W1nzcCJZ+zw7QSLNy7gC0XiPryWdo7kPlIDgeGU8Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiwEfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZ9RAAovExExOlzs+Agcegl+vTT5oOm0YOaEhFgGTQSIK/+Zjr2N4S\r\nRlo6SMSAj+g+89WwpxnzfPCrd3wHnFiYtByzbcNvKi26zXlDWUHbX5eq2pOc\r\nTI5qll9eDbzZp9PF82cAFfTZpuQYUDhl0jICDhlV55B77hjKxOu+gdllLnr4\r\nj/HaIuU1KwkxECbqgvDK6/wPoTwnoy3FPQCX3QMGL/zZr5hT8VN9iBJcwW/2\r\nNxsLjoWm6ceybQL3aPIE4CcGg6fclcTRurbZtzYi68dTk6N4+ilrGYgqI7ld\r\nzetw5jUmHediQ4D+M85k3izML+tc+WhDQgl8HUTng7zejYgh75Y+mkn6ry7A\r\n0c93l9TOxWI8UM6kpKIoW0z39LLtjW5vvWskY/3ZVWUemi1pcx6t23tuxKoY\r\n8l6+Uds4PGZcjNhrfkpF7DlcUc6CykUtasFAi8EmJuRwcXg9tG5j7zrve7hI\r\n3ts126Rpm8FDBMkkK3fG3O7+gb/dNeQ/bhEJTNAW2/RCi+Jket4WpYvx+/hb\r\nWsnyWkgIMqvJR16wNxe3Lcn/GyLfSS//govktXkjT8+qyCgchzjT7FJ0yI76\r\nAnX1vEk9Gz3XCNA6isCUSMl269COMGZMkJOdghhbTVieIItwdrr2jCPZsoFp\r\nWswpDu/4+/G6URGf2HRcA1dODE4jqokc7cY=\r\n=JVmE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.15-dev_1670054175156_0.02578911982659693"},"_hasShrinkwrap":false},"2.7.15":{"name":"parsegraph-viewport","version":"2.7.15","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.17","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.15","_integrity":"sha512-Are5uTv8q4cgDdDRgQEGZSnZ4lAPz0n5zA4nyroFZWy6amVTK2RGRCPQKl9RuqNLy/GyuszJJx4t3zHy2YqgJg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Are5uTv8q4cgDdDRgQEGZSnZ4lAPz0n5zA4nyroFZWy6amVTK2RGRCPQKl9RuqNLy/GyuszJJx4t3zHy2YqgJg==","shasum":"80a91f407bf80edbf748a3518c61b6b0596e5ab5","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.15.tgz","fileCount":84,"unpackedSize":1059350,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVFaj/6SosPXsra+cjIIPTFj5StLXWE9N+DgFQAetxIAIgTnIK+lxNIO5q4GcNhoI2vXRt8tqkKELHdmUyf/bcdEs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiwGJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNRQ/+M2hPDrK3XN8OKiPjRZnpbLh2lzcOdTxsTM8ORPUgtm/ASxBI\r\nsXUOjI8elUxhsmFGIyF7LR933uZGn8l0R12oBww9Qi4whRV5Bha/uqvZAhFd\r\nTXGC8cwG+adcxEJ7Qgj6fGZciSdr4rQ8DMOD0k0ADagC5imi1E7W75FXi+xf\r\nOH8Z4cfAzWLHfkXLWrJs5hR6ze01yeUE6VwmreGUKdtg/+W13rGEgjZweWk7\r\n9lVHtUTbuyONCUmCBJuUaFObIA67ZFnqGMQ81jeOpwSCqTnd+E0X0jEZAkfr\r\nmvGCtnJ/ujQ2q6OeF57pr1hnLBFglJsQqYW6+2dQl3ZLDJ73c9V8bSOf4c+y\r\nTzzffAFpPddLrnsgaGOJI8bX1ziq4rYNUf+8mVOg+CJTKg9aahdIWOhNM3Qz\r\nYoi4p8StuaWDAtPNH8mqXj8eG4mc5Ox+T6zAscp9pjWAbBWixraz9sHKilXN\r\nlnzdePBlgB/P4HqDfKgK7o2w58ph9ALtoKLyBMFvY0XQDAb6Z418tLVbuplI\r\n3GY3lr5ageRBMWgw8PY+lNGz0fDq4tcMx21wm6VC0sw+9gPwLv0D8gI4iahC\r\n9fA4Axm/mcq/dvpQn4w6I9JaAg+SmxRYEYOfTPaO0y2BtosYyBhg2l03VX6B\r\nvuJUZqOfMJVZ45Iwq3INoDbfkCTs2DNnyxQ=\r\n=nHuL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.15_1670054281171_0.02475607971030458"},"_hasShrinkwrap":false},"2.7.16-dev":{"name":"parsegraph-viewport","version":"2.7.16-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.18","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.16-dev","_integrity":"sha512-FkCSOsfnrP91W/F3v21naC7t9aIZD5tPs0IfsAGtqxEoh4pNIocuCC81iE/+GI9WdvwuHFx2tPAKITGK77RZnw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-FkCSOsfnrP91W/F3v21naC7t9aIZD5tPs0IfsAGtqxEoh4pNIocuCC81iE/+GI9WdvwuHFx2tPAKITGK77RZnw==","shasum":"17796a0edfe08a80be6c65d782c252e07159ee9f","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.16-dev.tgz","fileCount":95,"unpackedSize":12391601,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmKom2jPbyD/V+te2eVY3+GhP4zpNpBbgiJps9+wR4GwIgS+bXbjvLJsX4sjnAay1iPMMMQC9ZQg0gR3AsQ/iteUg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiwSyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQoRAAjgd9kK34dBqMlNtaAO99kzpoSg8TRtmBnWnod4KtKAlZt1BX\r\nk21flR9fQ2pjqKd4kvB7KErILAuOSjdCDXP7z0I3VK/7bawqz8Y5HoXPYyhq\r\nEJDL/WO4iuaRc/Ko6SL8YKF2Q/+ZC2ya++iv6XwVKUHlv1yEyfoMc4JNA7dm\r\nyckHb6IxsSYinmZN0RE2KW5+1c+LvyZpQ39QJZt2uo+kxehKCmdSKt6j8fyK\r\n1TO4QVHhmRBj7nSNc9YLZiYj9+ulqlMsEwiAccdOHELidtx2KWaYQZzKQpT6\r\nY3aYAEewr3hOFGBHJs1she2x1ZE6Sr/lZS2uU0qa506IGp6T/hovXFlx8ArY\r\nY3+GUoZpV6ulIFFfuDTMPQm7ZOH7iwUFmNJjR4RcL8FRXj8Bnp5/sJH7QcpE\r\nDW2iZtSTDtWSh0yoPYha54ZPJilu9ndDzMZLm/KNDIXFMSH9Eelpz+psprdw\r\nNdyRWg+/WnuMdyQRw/L6ISywYuSm6amP8h15qwxdx80u2NhgJX9y1hPgBujF\r\n3uniItczZe2Ts7i7FQeOIfaSleBHJp+kOvaI+ajld7ugFArHi5JILQIEjhz5\r\nhjSzx5NfNUV3PvL2KbE2CsjWj3RQCH2c2XnbQhYjM3q207yIy9RnV/k5+so6\r\nj2TvpeFlKtjydcNkayIbv71HLInn0KSQfqw=\r\n=MB7p\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.16-dev_1670055090014_0.4823627486672408"},"_hasShrinkwrap":false},"2.7.16":{"name":"parsegraph-viewport","version":"2.7.16","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.18","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.16","_integrity":"sha512-M3rdnlV+PVuz7aB4Ne1OY/xVI/hKd/FwYAeu7i2rYeMzAn64Kov3SqyDEhGSbXZVEQubJGaVeJJFkGg7vbs2/A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-M3rdnlV+PVuz7aB4Ne1OY/xVI/hKd/FwYAeu7i2rYeMzAn64Kov3SqyDEhGSbXZVEQubJGaVeJJFkGg7vbs2/A==","shasum":"6d1b3f7329a40b20e8a224eeca8b219a7b0b747b","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.16.tgz","fileCount":84,"unpackedSize":1059364,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAeWDuRuNdTfD9CUeSwiDMBbzVQG53sC2h3l777FWWHAAiEAy7ocVgMYGsXXy7UTgN7tZ4seZ5/lnOM23O0TD5kSgW4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiwUPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoS7g/+NRnJ7jC1N68/57WHe4Rfi61ZI3fRWA+2O/DKz6G9akoqg4jn\r\ncOXdyEwQy/OcWESC2tSq8RMOdccmlbhVIRCvnWEkmW5LkRpOtM22Q1j+3lX8\r\nl+5SvNvCOmPJz2mwbaCwlm+c5ePQtjx0cQ3s3II7pji3o5XcjWR1BWyFGSJZ\r\nVnmTHvTaWoBXl2ONSzTgtSxyevsqqwhZGCivGxTQN7WU1HvKZSBAQAhq28hK\r\nweE1n/K8G4D3heKCvKhV7XSuFcnhjWMB2mV+kIjEdhzE9p8/CaLca03T/IT1\r\na/sgng7YLGhDxSr9AM07pHsnzsE8p/sxvi4tlrNvFJ0FOmI608qmVxrdH0DI\r\ngzB/YC15fyqiShskZSVUW3otALJqRWeFyffKj/TuqMm86wn04k+NDtMIWmpR\r\nYzVvE9cy+iTewSNVOy0JZXMKkWxSn1qU/oQdL391NCao5zKAMQ6LPtTVFTFI\r\n0SZKJqR8F18sk2bkyY7swKlEi+M5G4h/WCGslRCnhFUTLys3AUdiBT4J810k\r\njDYqK7TQnFmR76TmPVH0yDAK0o/tTVR6bZMQgIYLA5zGiSlxCAezCdOoh+UA\r\nYnLvODvyychX1T2a+tXrTqiY5V58djMIilwlHAWoXY0Y9o+KIYKJyuceKjN2\r\nPxzV6sMKqXEnf84AP9xVsEgkCkkliIpbJ1A=\r\n=SvdO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.16_1670055182982_0.21874893234417203"},"_hasShrinkwrap":false},"2.7.17-dev":{"name":"parsegraph-viewport","version":"2.7.17-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.21","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.17-dev","_integrity":"sha512-JNhvdna/I0dPs1S8OHsAHKr+JZBCcpeAYWWlrQ1bI2nNOkKeUvJbDkKH6H3DKgoA3RUjKYC9/a9MUcuJ9d2caw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-JNhvdna/I0dPs1S8OHsAHKr+JZBCcpeAYWWlrQ1bI2nNOkKeUvJbDkKH6H3DKgoA3RUjKYC9/a9MUcuJ9d2caw==","shasum":"a0570f584623f046878a6793afe6c8a139c70614","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.17-dev.tgz","fileCount":95,"unpackedSize":12061120,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEvOMqpTmVsbNNiC8VppjYqLmQytti3fPSq0cZXu57UgAiEAxPyPZ8etaJMJCrUCwranww9lPD5+qsCUXyiKTJlW0p4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjixHuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoj2Q//eaw7sLdMJ1t4aR87BxcLtj5KKMSLua9wmJaZL9vrGa0n7uBu\r\nF2F3Z+fypCbABcI/mTl6w8qFU3D9odoAT235GYiWhsChy6LvMTnJEY4nZ0iS\r\nHkLZMfDjDub4FYMEiziAJ/okRh3uPuwhbGUoVEMNot25fJYR+tvIlfdRs9x6\r\n7eSAg3LuAuKiUXHhzg++4AN0sxUgkw9Nhny7WK5v7JC4eZpOgycqjC/n7W88\r\nbA+r3EdC242BzrpoXMv5KzLAvpT/fMQ1WzeFMhI944Chp2EvSxuUyO6pC/7q\r\nSeY5noB9rsysHUZxDDTlANkLzYXjSRehBJ5XdwWYvEkQWZSlEdu1bLSXCClW\r\nKKY1eLFI7lLE8GTbre5HprdOWFKOpmez0dp1cbwoDhHopZdTHdcTxYQpoX+5\r\nCCgqE04LjUvECX9nejwXA7Gk5M+cTWjAM4nS93s56mGLBD2L5rlmylvFMXiK\r\nkO7MN/2FTfbOH4dfV1d4Z/jaDkt1vjs1XEeJ0a5huf78HXiQxAWarM1ShyYC\r\ntRToeGKr344J6cfjBMdUYL3uQSm9cZBJIUxKQsZz38hOQjXRU8a5n7EPGaTy\r\nRLEPPvrBDhlV7QfTVC82GP/4wV0xgn/qEhA7yKhwvt0ycEb2Ltw+Td7o0dV6\r\nSimMblhVFxSMW8vrpkO/J1NpH0BSSBzP/2Y=\r\n=hKa5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.17-dev_1670058477785_0.6077195254062593"},"_hasShrinkwrap":false},"2.7.17":{"name":"parsegraph-viewport","version":"2.7.17","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.21","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.17","_integrity":"sha512-mdQHuxn6wxwEQAZ2WVNzRarL/9TYg9BZYBaCUwl3Hdkvm33+aVIVhCTzrpF1NKmRYHjz+k9Nv0Gx8cj/d69s4g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-mdQHuxn6wxwEQAZ2WVNzRarL/9TYg9BZYBaCUwl3Hdkvm33+aVIVhCTzrpF1NKmRYHjz+k9Nv0Gx8cj/d69s4g==","shasum":"37bad55a23bf48a6395a16cd2e6548425458e6d1","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.17.tgz","fileCount":84,"unpackedSize":1027280,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUJuCyLWQNHUVSx5ca8VQmRzJdof7nGH49bb7XXc7Y9gIhAOGkLgeWN1zhiG67eOyCRPB4d9e9Y+FFcgu1iSCPMr4B"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjixJVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqpZg/9GeZbUTJ8C+VcWByQf1LSD4NgfMjgMikWNOBVaytRKPbVRYWb\r\nLtTTqPNSZhmgnAtQHWlIallK4HFzgk1LOESVTWn5XtvkMsQFXeF0mrkiUaLG\r\nBcgCFb5HcY2LAPg9Nt/1YcQljwDhoCmMJCtFequCOEvHS4oZZbS8SECur+hh\r\n3c+nW0prMT10dmK9XtlOlkFyzFp+cMGT+VrL0PNszq0egyfxcJbsNbjzxvQ4\r\ne8iBQr7Byrkr86lSwY8JE2/1IQAdkNVk+aNXZfnEliJB5LgAsALar6NoSqQg\r\nKy7Y5lco2ATgBIwI6OuxNpSkxaqJNQAMex/wofId83GhfwNOFMGmQ0z0PhjA\r\nt8oG4Sq1qNXK4Tnqsha0YYddUmEkw0yN+dAdm9w+sPcUHSKtc71DcnoLlIQP\r\n8cENh1Arj4H0LzjcGl85b4tCCgHpvNrmAS1B/wsGmlA+ZoSM2mptpRqIyqVN\r\nAa9lqWwpaM7TvTaXG0rXayBwQ/B4PU6f8Zupo9eIG1pk+PYlJJODfD1N8U86\r\nPDD50le6naYnk+GZIjxA83/5sJDIx0t89BSyYGJCQKQSnkL1H+zs9HB3LF/z\r\nCfBjpI5ecpAfnOiR3YLCTNBV8j2NiADNn1E5p9K2xaHl5SGhoUe9zm2kygXq\r\na6z4pw5L33P3woaSICRJ4I3fRFfEPbC5P4U=\r\n=rIdc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.17_1670058581652_0.030931608633790963"},"_hasShrinkwrap":false},"2.7.18-dev":{"name":"parsegraph-viewport","version":"2.7.18-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.23","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.18-dev","_integrity":"sha512-s+6XAiYrp0kKy5dXSpTn43B++ntAeWKXW0hPHAP7daPosiDEOKHVdq6hPZjMZs77PxXzxNKUsoD3ypUj595pjw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-s+6XAiYrp0kKy5dXSpTn43B++ntAeWKXW0hPHAP7daPosiDEOKHVdq6hPZjMZs77PxXzxNKUsoD3ypUj595pjw==","shasum":"fb8ac6a8da5d176b557eb29851c5c0bc0eb05db3","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.18-dev.tgz","fileCount":95,"unpackedSize":12061326,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbCZGMx8iJ8AJErKLm3idgnQar+o0nmbL997psuTlcHwIgLueIi14Bfvzl4IMjdyayLSWT6kfcXGEiwfU1HpmkyU4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjixgaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqsFg/+I5jQp9PGtfnfSduKPmTnhNq5jp0qK43UIQfXKb8T7227zmTg\r\nFB11WDT27QYHorsrMd/CF2ewNmtQFrN546fzv3FRiFOGnars//7XnQnmA1AF\r\nJ0uNU3GRh/96+2/v1htCzo9Y6RFC/wOqUxHnxOCQ+32x37edzQfBqfrxNx34\r\nPgNyEWNqFPnpQOqEE/f2l9aVY/XnMfH3m+fXcUhl4MG+t9fUBtaXWWs7Gz7p\r\n35jCbs+wviC/oDOFVgrCbX0FG4VGk9o9yugFulIJ3dhiU3XVukdArc3cZ1EM\r\n571NdIujQanCRhDxuaEMxWuY03tHEX9KqGHpSyYBdWJP25OpkenT6CJwYz9g\r\nJ4SZ9VBjQ1LcgKjVx00rHRW/4M17pGQ7DAnSWsTA+UUnWqx6xgfdywsFRR+M\r\nkyVpIYmaN6RWc+Fe3rlyXnu7iqbjkBCtHpzpiAic+lWTJuywAhdKk/4A4ffb\r\nNastXtNtTHx7GdaBpCyoY71vbmNYy/kU40G0jGLYodpSl6mgmzS07Jg9GmAp\r\nLmF+rzCZ2L9QOOZUIgkLbz3EEYRdROzBbZqF7mnJky/W4vkYOfV//RuRYpFn\r\nQzsNH1+abZb4sjVk+QYazwLiiqCXC6FWd4118nBL79GrjRAmGXhpoCBxRRn+\r\nsvTGCibARhP8eWwgTYgrDQj+f1BMtJ6nf2A=\r\n=UyY2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.18-dev_1670060058589_0.543431518247993"},"_hasShrinkwrap":false},"2.7.18":{"name":"parsegraph-viewport","version":"2.7.18","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.23","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.18","_integrity":"sha512-+T+f31ImwNXjw+pfnhOBq7eEf46E7htSkfJ4885o6zcNtiWnuqiuGfwZ5ahs1PKAoQjNlPp7WMTmOjKAkdqy9A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-+T+f31ImwNXjw+pfnhOBq7eEf46E7htSkfJ4885o6zcNtiWnuqiuGfwZ5ahs1PKAoQjNlPp7WMTmOjKAkdqy9A==","shasum":"aaa380069b790c0bc138052b410c1a90dbbbe3e9","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.18.tgz","fileCount":84,"unpackedSize":1027302,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFdJqpR0LcnS2QmEF7rJcZ+/xTdDqOGpZ0SWGg/2Ed1OAiBypl0Iro1duqYbNoljR8OfYc6EJhcCc7kQ3YRPYo+r0Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjixh+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqr5Q//Z6cO8cTvS/0n7yRpZl2KWPBVhArHt9hqRBLw09r8VNSefigm\r\nTkGlik2Z/Zgb6qwbGyCymeHNw5gGsLIKxbEYWmArBr8gbTIeP5tURQUx+n/p\r\nqkgkrE/1RElhVXqM4OYAhtJ65+02Sf7BnZGUNDh3F4FKaXywZf7yaTlV9/GJ\r\nqS10BsNh/X72jweudkfQ6I2Zm7oR6wLTHeAGWKDOTbgqM7/Bxxb4SoIwG0+y\r\nN9j15GU6j45PZarSiuYQtWvmaQW6gWZzEw5znXRsa9RR5jYHYYFxt1i+30N1\r\nPCAl4pQsxYkiMYYhk/ViL9qSX08qUt9G675aXEUDIqXF2/aG2nNbmck6PHhb\r\nA26+gjvdbH7sAcZcHhWH3aLSt5yXyG6JqwU6zUCQb0BKxJVsCqWkfvl//7be\r\n6I5zHHMAGpVJVzQ9U5KvX2nWFls7bzMWuUibc1k9ai9XcYbfQ6MEOhtQbuGp\r\nntXEYqT8qX9cUG0I7jqZXCDM6hVvAUVlc8vP/eEerHOF/fdAS0WKOqDiohJC\r\n0B7uKh/8YUf6zVafnAQeutH2JQgRvpAK/T/5D3QPMFA1S7tjlaJPsRG8ypjE\r\neToJxZQXwjt6JMTnAvTFFu0Pm/vkE4nd/y5EtUhi+a13q+S3Pz36Q0ZLvuiY\r\nDzHqxA5TfOGCUYGp+pPTeUd9vxq3NJkIRNM=\r\n=aSVD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.18_1670060158344_0.8683874297517367"},"_hasShrinkwrap":false},"2.7.19-dev":{"name":"parsegraph-viewport","version":"2.7.19-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.24","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.19-dev","_integrity":"sha512-Hi5jH3+KFIXAgFEy4Ca0cOX3QvZ3urkuudS43ZBw3Swf2tQC1W5Ci6Pcv/W7H/uTGTmOpkGyGI97B3bEUPWKeA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Hi5jH3+KFIXAgFEy4Ca0cOX3QvZ3urkuudS43ZBw3Swf2tQC1W5Ci6Pcv/W7H/uTGTmOpkGyGI97B3bEUPWKeA==","shasum":"8778bb78e0a597ea2a11ebfb8a96db5e3fdf9cb3","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.19-dev.tgz","fileCount":95,"unpackedSize":12061498,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAGePHAKiStfGEN7rD6dPkzqbbDCFwz/kb1PtJEQ9oAAAiEAuvg2K5gjc25MOhwJsBpryzI0oC9gq41z/8yuMJCQ6iw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjixtHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr62Q//Z/GLlMuDwMioau9XNSQ5N4ICwq8on/Kkkt9MNd30pUtasmEF\r\ndXWHtYimvpRY+c2oQCG5HsQQxD588/iqTzG38jMNjr8ZzC5JZkP0gf8DE9Yv\r\nr/5VOcW1wgjGQoPbB7NSQ42VI8Pvn+/+qocHTleEkPohl57Tmu5LPRdpFEzp\r\nLiT8iH+gx8IkzGn/YnaNq98Cd9RmFxsZ6pzi5ns+IHjEqOq0GSwQvTkFzRIi\r\nNdgNdCnyguJM1ey1rUwVp7ARTjdiqnoo7tWkIUtqJ1VS5CAQK+j9vDVsPHiB\r\nFkCJZ6ZQCFSDOUQlDD8cywl+43zFkEHTrlHVRMMiaedtURS254jnpSctdBMQ\r\nLMPvH0H3ty2mQbZgw0u4heh2zqo2PPvJQC1oWZ+8g8Ze+vr+LTZ/Jpc34Rvd\r\nziohctNPlzAnKmYOvRyDdFWUAW5Z1KHkEao/g/7NmFoiWEzkOV5U4UEXHKDl\r\nvBms8NKuwEAfVDNlVFjOJXVDnCvt8l9MSuyemMcs1x/VEc9V+FZ1udNdGgFd\r\nAcMef2ZwlsEzHiqxgLbauZZ3pCgFc0YrM69v0e+aDFWDi1TFIfED+X0KrQOr\r\npqSsjz80bzSmHX/LQk/ZbhBNMgAoLrhEzzcw6JzuJpOlwhE/fLtIoumJh2ya\r\nGGOFt2Y1nlK7hvnUbMREIbpMh/p8AyMCuq0=\r\n=6oJk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.19-dev_1670060870810_0.7489799361626008"},"_hasShrinkwrap":false},"2.7.19":{"name":"parsegraph-viewport","version":"2.7.19","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.24","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.19","_integrity":"sha512-p9N+qj7J/CMuaHXBkhzk6UDajko47AJvKJ/I7MYOzDKdzxZC/U8udH0p0Mnp6VwXIaFVjsAHGMFhEiE0eA9Szw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-p9N+qj7J/CMuaHXBkhzk6UDajko47AJvKJ/I7MYOzDKdzxZC/U8udH0p0Mnp6VwXIaFVjsAHGMFhEiE0eA9Szw==","shasum":"692cd344fe0ed7f8667ab29947147ddd8a69a540","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.19.tgz","fileCount":84,"unpackedSize":1027321,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCRIlg9gdLLuz5LFhEAHhq25JMUcJeTX0BReR8xqo3UwIgboDR8cLiswG1FV6uyRxQjZqmBg4w9GsISeXAK/Equ/4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjixugACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2QQ/+MQgh2s/EJnsJK0NpNIJTrvN11vTEMhdMSX2DVx3bu2QAqp8t\r\nnx4CJxC/Z2gXkTDG7ffV6vt5zL09Y8gmMewMeOGTN9hv4lXt0v5xCX1Xu3DD\r\n0hTq5d8mOuuSbN95ZbWlwbs2cGb9wUblHf2yXv+K9Re3FeDZcqJD8pu+eCYe\r\n6kYutv6AbzJrzmg8mXq8Nnl1v0hAvHRgAvjOK6Hy42gFMruDxmPsUx7BP620\r\n44+Ojy0C52owCXo0/l8YiXLXuuqyhhq9Mxf11NdWmNH/OjVg9mUUxatXS2q7\r\n1axiGumJlBaCsmJGXnXcaBtZGDHkTXkfmeBECYl6fOuIXLKchgJ2NEwglKAH\r\ndCWAr2emtWui1ci8fMnn5af0dqP7w1X3BP5BNJdIBMT1jxu1mrn7dmmKmdNs\r\nHqDQOMd6WKSFLqTuhYVarTD3ULnbSS53RtTNPvX5FcwMH8ytOMf02zCSp/DE\r\nBwfHc4ufvfGJ4XJ9RnZZtU7BIFO1w+ttSvcl1Y0t2nMQeV5pooTpaWRi59Fs\r\nKdyhAz3nEEjb2S0WZ3wtMhS+iSfSOiR7xyCz76N6Q3MSlPF7Pu/CRn7z6SuH\r\nE08VbMo8sB+ykUBqvIIToevYPBNUhOpGszwOoXRvxKKCG5lTuoZxXCcY50Lp\r\nTyhTq6Jo8lMgiAM1vFYfxcgVG2eItdbe7dQ=\r\n=OB0p\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.19_1670060960236_0.7918672978878789"},"_hasShrinkwrap":false},"2.7.20-dev":{"name":"parsegraph-viewport","version":"2.7.20-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.25","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.20-dev","_integrity":"sha512-4MCYIbhyzh4aW9NZY/M4FSV57K6TmEcoNAYjLIttogxtT1D68/abhI76eUDGg6A+XNs3emI4Ia2B0QO4p9qFEA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-4MCYIbhyzh4aW9NZY/M4FSV57K6TmEcoNAYjLIttogxtT1D68/abhI76eUDGg6A+XNs3emI4Ia2B0QO4p9qFEA==","shasum":"2f2035b5ed3ef19936413e306d7120e30abeb9fa","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.20-dev.tgz","fileCount":95,"unpackedSize":12061862,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2tTI77OKJ3HIb/hKL7Zsr/ZUVQ4U1uixRh+DLAwi/EwIhAMZgUk2/W11ez0uKP77NOnYs6n9QLi1aCRLGGzkoZQXf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiyUMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFCA//d9OjbuBqjTyZGO3KWi3FkVAgLOImQKvShoGbl/wpTlTIQG4K\r\nfuNeH0PEgRPWyLNuQ6YxexYonug3TsRJA0qTpCF7vZLo2ANUxX77Zu8oVNZO\r\npsx1lZDgMCd4GAOC9NDY3dTQyFiWVP1NO3yxg7ZVM+3oITV0f0H3W7f4mbuP\r\nx03S1CAUQ46kXACaKpoagKlvgCZ+87sMrcdIQL8kWUzG4J0/+ybd/z0SZq86\r\nXBOwGCjNLucHLBaZJAESXCCY8/AASxEiaJIEwO/jMpqGfWlEZnYQoEDACdko\r\nqmCGwdfxCXe+6M+waVlJsVY5Jq/anogOkME0jiU37/oD60mfZ8Gglu3pZcez\r\nFzDHrWHi69iA1GC4CSMFQ8zU3PhSzElx0uPRksVppT7+ShXaKn20QA6iu43x\r\nID7mEOvBiLyRMPzcEn6Pu01jXKxLBDlaBM9430ad8jq0BPHsGyYKI7Oyw1Qz\r\nOF5ECoxrLQsKz26Ltq+nlzg8jJs0PoghY/FdCUw98zBmejprmEDc89WYNaI9\r\nT3W1384Zo3xiV/AjdjhnxkdnY0MQCRSHE3P97M/weDfiAbQmgqjDm2LoveCN\r\n8az+NQzalSW2SH46ptWPDRvdFMMNx6psPXrelg3UuqKEuDX09LVeXViMg6dw\r\n2P0u44NWN2A3r4xFXXXMv29kGEyYxWV9gvg=\r\n=Qa5A\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.20-dev_1670063372211_0.2285931086851396"},"_hasShrinkwrap":false},"2.7.20":{"name":"parsegraph-viewport","version":"2.7.20","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.25","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.20","_integrity":"sha512-Qs97E3keC9juhiRw8v/Y98l6hRyPDXhfRDTjQP5+uUqIoxjsXGq8AY2uknAJ9P4hV+XF+BtskB9PGVjtYehDGQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Qs97E3keC9juhiRw8v/Y98l6hRyPDXhfRDTjQP5+uUqIoxjsXGq8AY2uknAJ9P4hV+XF+BtskB9PGVjtYehDGQ==","shasum":"e62475129c5805c5dac4652508dcd01db364de73","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.20.tgz","fileCount":84,"unpackedSize":1027357,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzMDVZaMtO/btokGjt46V+/JZWl1HURTCqTVzFPUgPCwIgeipIDfv7m08EK5S8usktA98e1dPaYQ+UDcKIBzzbcq4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiyVnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqf/w//bt2NFIkT7EZMx+o3A00SXz72vW/yueMBJHB766gEiqgKvqLN\r\negFSQ7ib+eVpuT7Ak0oPw1sTAVJ7hcA+wQdxbnil28SvFDxoiSdoD2idZ8xD\r\nuIUIMWiGUX1TjdvUZYOLhhm0MeW8v3zJF3qVSPZMeAQffTke69sYh6wWNrct\r\ncv+ubAUAO7POTGVQsBvlJMjCKV1zqNityJsAiZeITg2TgnNQqlxVURn9J0RR\r\nr1PArbDd33AnB6vk4t5JJRbrBJlgApnSTFwy4C70zqpcBaWFgNRX1mRzQBhx\r\nSgO8QYcv98qbWw4YInyszCs4WJPx0iP8S4pVA76I/q0BDKs76vQSfb3w1F8k\r\n8D4voqSV47KyA+nRJSF8srGiDSKdofH2NShODnxQVB+RFP+MS02knZmWag+x\r\naQWfPBRpGStqrIG2S3+DUQ81CeL/XyKKlwwFWr77f1cW+hX8+UXEoqBxDvlr\r\nUbQVpw953lpssIE0yK5Pbl/kBFODGBnzVJ90oEg8YwvHBZkV9q5hBCvkui0c\r\nNzNfbotCcU3yVqB4+JvWybjcxRf/JdxHmVUm1xRRjSsb5wArrmUJxPhXy5k8\r\nXAfSbWYX1Jh6t+EiINKH9aVpeYImjCxMJpPV26KXchHChS56DBA5Jaz+fG3i\r\nnJ7qV0pFg3sX+Linvw0wsDDDEnWzfqcIijo=\r\n=npEe\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.20_1670063463509_0.7198687395198802"},"_hasShrinkwrap":false},"2.7.21-dev":{"name":"parsegraph-viewport","version":"2.7.21-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.26","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.21-dev","_integrity":"sha512-82zoXp5n8Zc2HijVbJYx4YnLHcN8me1GxmhKd9Bd/xT6MUbtbLZO27axAj42tVxoP6o/q1S89RURWFafgBb1gg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-82zoXp5n8Zc2HijVbJYx4YnLHcN8me1GxmhKd9Bd/xT6MUbtbLZO27axAj42tVxoP6o/q1S89RURWFafgBb1gg==","shasum":"5a4bff20a39bf991b5d7e7631c21eeb8ff405b06","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.21-dev.tgz","fileCount":95,"unpackedSize":12205711,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAyg01RSt3mpO0SFWgZfSYS0F+PUFShQJ8lAz6UJX7s1AiEA5Qtsayq4THINBkjk/jkWXxLB5TnjJj7MzAyRlzRMi88="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjGRIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZlg//bYl1BWgQ+1R0swcTXOadPxQ62kzi5o03vdhtOkq7K/dvedbQ\r\nboHvSHK/fOypqmsFTC6dN3yLubQABbG7bSdCgfgzR6L+TEQRKzvu7ZLt9JpB\r\nfBtqSjiePd88DXyxFUMdvuGOS++iE/PY7wAt52SwpMKJ6Knn296WygJgXSZ4\r\nO11gmdhfEF/9nFGbpG8v1C3yFOj4+ULtpAGWGUqxR3N4/VRdDEbwX2YAFMtq\r\nJzifVA0iFANJblp3kHmf3ANjq98Kckh7EZex79ROnnV0iZf4UpW62dLCySzC\r\nMMP6UskqJ53Us/BqJZZ2L6wMP0YG80NgPL9G3oXXyfSq46JsnEIq0Mpgge4x\r\nKuclCCLthzjQshnqRp/GFp0CZGmOR7uZzJPzF9N2wzLoii3rarw4E9RWYDCg\r\n7MYQwN2uPC/2ZuNafz47LUvou9sh6B2RKY29Nx9w8cCqAayyN9bdQVHOtjfh\r\nGecoxk1TNmN5dkks4Pplmtn6Bs1YRhejeQNrIAnk7MoX5YIM1peV0JjOR9ql\r\n2MXBmIg0hHpZxa5a5Z4zE4lxq720b75GVGSBEnhP9S3aq57J1BCVQqt9WSwl\r\noat4XDwle4Mfn3HhMkBh0+A0TD/I/W7jhs7ZL6qWsGr+QxMKPjxzKMYv+RSu\r\n2SN+qxg7QGO9hAePI6KC/EXgpQuZs+n1t/Y=\r\n=T5xc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.21-dev_1670145095737_0.5966358187210734"},"_hasShrinkwrap":false},"2.7.21":{"name":"parsegraph-viewport","version":"2.7.21","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.26","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.21","_integrity":"sha512-ZuG8ec28UgEt3ueHidNVzZbXNksd1cAGaF/6qa8DHrGZyTjnTR0O+TXPB+FShZLRFLX32Fmm0l/05haLVccvKA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ZuG8ec28UgEt3ueHidNVzZbXNksd1cAGaF/6qa8DHrGZyTjnTR0O+TXPB+FShZLRFLX32Fmm0l/05haLVccvKA==","shasum":"979810a3cb65bdea6a5ea09dbc17fc27d26c094d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.21.tgz","fileCount":84,"unpackedSize":1040405,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGygcJX5GxMHIj/7a96DFFzxfKFIpNOVDm5a5ZyprJpsAiEAmKYe6s3kNCOaicHIBFiclNjizsQMBttEkcbVEeKWH+c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjGSmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqcZg//ZnLFCpubLcudToJaNio/1F+XZElr7SiWm2plZMfvyeG/B9yT\r\n3Gg7OF3Zq0TwXT6f05ptc5mR5NQoPItKuzxnT0mgSQQ8Hp02EIYLY1Iq/etd\r\nYNI9bKqoqp6oY5x3AKh/WdNSiSGkh1+o04Wt3oSeu75OCDRVBus5pd/BkiiP\r\ndrWo0dmoY31vWJXFEBaKxkNyGQVi8q6VB0ZrKVJb6YkbJfLrhWZmSLMDweR3\r\nl+OiTQRTRQubQKTBGpfh9qYAlVpwIQvY9fy4//EqatG4aMQ1tArFHDzfdA2f\r\nMJpwU0GbimP7/uwGCbOFbuNb+mBdn9wzTx1CE0bGk4lPGX9kMtEhhkVL/axC\r\nTota1NLtkOuk8RfJ1Yjc9VR/+N3GH9QuSIdbM9xIMZzNK/bZ0v4NsFLGWoiV\r\nWfl1M/IL3XN1giLv6aV871a4Mo4xmvidqw5NkhWMYJCJrMTb6wWG0qbKVAN1\r\nSDtYpjn+YB8Dq4qGr0fKzOUSPnc+JmHmG6VJYzYe3e6a934SjaqAqciOgOSN\r\nMzlPJRFuOFmX7a+gOa4GuOa7Bv/esuh3C7q+5PWhBZex3puSV9/Ks/H0sPzI\r\nNHV8kW8m0QOxKLk3P/y8V3V2MuyZhM9GQGPNmnW6u53SgTYDaQZ2LrWNldRu\r\n7JwZCYr2G64ZUGiCAlkrxsGF1CtLGxy8zME=\r\n=m4z5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.21_1670145190134_0.4823928028145834"},"_hasShrinkwrap":false},"2.7.22-dev":{"name":"parsegraph-viewport","version":"2.7.22-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.27","parsegraph-texturepainter":"^1.6.12"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.22-dev","_integrity":"sha512-JXhQYJuGIpyDK/wA2GguyAio01PTnVm6PfkGj65kVfQ78oBVxTMPeiibowY+oJ2L9Jd14r6ZDtLIUvYZDCo4/A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-JXhQYJuGIpyDK/wA2GguyAio01PTnVm6PfkGj65kVfQ78oBVxTMPeiibowY+oJ2L9Jd14r6ZDtLIUvYZDCo4/A==","shasum":"63bdeae52f2ff4f7099899e709e4b80c06ab7043","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.22-dev.tgz","fileCount":95,"unpackedSize":12209364,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCTSPZGqGv8zU5Wc5xY0jjS5owi6zuPPWKIjL74gkjCgIhAMEw/hANqNyod8tcyGky/XQtJRtNJCnICT3YU1IcNOD1"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjW87ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaBQ//eGQ+D9KsbM+dnCntgggDYEkDlHti+lriMUzKWEgVjjQdXej+\r\nd5VbanB08vONkQ0Hg+ffnQkyt2q5CK7+ye6VE69WNLRE7ZCan+WjFsIjIwxe\r\nZqMMu6wGYtINAhdy7E6bukbzmlneIPlZdbIYwwvdky66oMCfizLklvFYK5WB\r\n5J5Uld2MhiLiKhxrK9RaaQDDyqrKtXCqYypEuMw6Orou4G1/AaZfQOxd3QjM\r\nSWvminO424NHn2DznbmZFp3aAo3EQzz9jgcqxe1O2Pp6vP5Fd4SU0Sjy7vT8\r\n4E0W5HnILhQ8r5d/eWzUzESL1I25eOO3vq4x37GrQJrYuDXB1FMchCJSLdEH\r\n7lVp3P9hFp7+na45Xc3wvh7ti8KBmY7Aa/1kRXu6AU2oKE/1j7fyw8lWRoZe\r\ntWHYLD6qtdMeuuin7RryJ/ydOUTFYvi/9hiZRqo3RaSYRSzKuIg3M4ibfx3V\r\nFt3JYwpCFW7046BL9Hs2H4xpKV2cqSayRphz3Jht/ufcumZa8cs6BMNn0cMv\r\nM0BPxvHk7pO3UT7GVBD8w6VfDCTonZ1T4dznccSmQc66eONnn/+5rVX1X49k\r\n7fuwrCf558TJDaSF0ppALm5Y3eiqtvfJLGaSN9qGfPbliytSzYZw1k9zBLq1\r\nD8zYUrMZAbxrWk5rRKHJ36stZfl7gkEKpVQ=\r\n=8O3+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.22-dev_1670213434862_0.5811336280091801"},"_hasShrinkwrap":false},"2.7.22":{"name":"parsegraph-viewport","version":"2.7.22","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.37","parsegraph-fanpainter":"^1.6.13","parsegraph-graphpainter":"^2.5.27","parsegraph-texturepainter":"^1.6.12"},"_id":"parsegraph-viewport@2.7.22","_integrity":"sha512-mUW3+3zEsUhNXwUuKXYfV/5+rvHbaoFsmstPuOCCGDEtJWVmM3cc2q9FvmsJTvLYPvM+VIOdVxl916El0oxb0w==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-mUW3+3zEsUhNXwUuKXYfV/5+rvHbaoFsmstPuOCCGDEtJWVmM3cc2q9FvmsJTvLYPvM+VIOdVxl916El0oxb0w==","shasum":"be44137ddfa752e33e82b84c27a6db7ff91e04ab","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.22.tgz","fileCount":84,"unpackedSize":1040744,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5ZWkfBTBjvtiD+2VUq6nm7iTvZz3gp0rUpI/H1tIWiwIhAK+RUVlAasC9Vj6jizPWmCMYj1N5SyS24xpwJv8yBp4s"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjW+oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp1Bw//VUvKm5g0nuBc3J0VJbR/nDOFJ3OV2PqDAdKXni9v7PVXYPJA\r\nTKE6fCkBQjBHlVdadO2elg0EJebHFFtVZpL1GZ1GOQ4mGsTTMlUlw4CZiSt4\r\nzWSk5u+c6Wq0tvX7ot2ZkGYCZ2wtVtanSJ/16ppVtk6VE/ZXlh3YGMUrSA70\r\ne+kuqPC7vi+e2lg0u6dCbO4yrHhQdDi6PxTd1mUacvTNxQ05VGUlDtNrOQle\r\nc4RxbtdFDyiuvMtX56veL9/fhODYSN0M6U/5wMu+O6MqWbWPhqeWF62evYuE\r\n2dEPJGYVnd0vXszpJSQjgDsBq6SSVfv1DnnHLWbtkvSIAecHjvl06vt/QPnn\r\nn6mE9Uaq3UdOhYzzKAYacl+WmmZE69dSoWqqVbhgPuWW1D3RttrpBg7gV99o\r\nwAHX9R/3Idq+ZWT/Oi700h88MSLThegZigzzWKfn8+EHgJ+ggsq4nD/zA5do\r\njs/OrK7Bz3LL1IbmJP88V5MvOR42h2z8aYpAiqTrVHx05mjE4XxSHmzP3vJO\r\nGeX/GEsvzWR78SzjjwW2R/Q23nXNMn2DkZ/acj/hg6wjzkcNjlDJZBHcjv7u\r\nGJu/iOHZHtqgHlD/NA4axxHbVvkvatRaDlryQM1hkklEdTP9O+xqUE27nyvY\r\nkKnHh7icgp/0JLqTX+1opUQ8aRBArFkx5m4=\r\n=h7nJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.22_1670213544606_0.8149817924689986"},"_hasShrinkwrap":false},"2.7.23-dev":{"name":"parsegraph-viewport","version":"2.7.23-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.38","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.28","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.23-dev","_integrity":"sha512-UYMBO72xGLWwpMxOHzJCeW1Pyq6c8omJjNCkgMLHwOM+iPyuYXWvKmAAymtzCOIQxCIz/hx9oD406h5VLsRRQA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-UYMBO72xGLWwpMxOHzJCeW1Pyq6c8omJjNCkgMLHwOM+iPyuYXWvKmAAymtzCOIQxCIz/hx9oD406h5VLsRRQA==","shasum":"1fb0bef9d9fa83263294ff254786836bf810766f","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.23-dev.tgz","fileCount":95,"unpackedSize":12209856,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICiPUMF9o4w/nBO2LTek0hOffIhT1iTsP4JdVAfZej70AiA2C3AIU4WsV8tlHIohN/AfsyOFoWYsPeia7pwSR/qEbQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjcqkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaiQ/+NZeV3RZ6eaezq2LAzCPU5X80oKmHDpMod15hSG7pbWSUs0as\r\nLlXHFPeo/EPKhHcqwB7XbypshKl+eSbPah6kY8sBO+6C9OonSlsyy7Au4Lo7\r\nNPjdyY1YEzrIxeqKoNlNpRTSz71ey95VePSaOv22Gkfa/AD6kC2JpOIDgim3\r\ntwW7v+1X3EkmhQzxDWw/czpbdmEuSTAAtTexUvKPT0yy9tqeMXiyNzkie5mt\r\n6oRwwOH8WTmgviCfKVzOczbtrmOkhndfzYRge235X1f+F1EdRK1ucqXjeW/K\r\nxu6+dCQBuRzDVCQGkjm/d8XPMFjWJsyj6cNQ7VKYv5D96lj1mJ13eXW0qOtk\r\n813AC2uWTR512bbDMfjwtKG0ZI+1ckFFkxMvyzIZDCcTTuaeKHabiD+MqOO0\r\nhLIkAuFlNeDxqOA53b3vpMKGxxhjURyz7LbQo9xzy+Hj5UdNBHpcKUzDGsef\r\nhMMZnZFF+p3qINFov6UhJop0UpTHsezk+rx6HkrTuzy6sG4FrLFE7r6KOXNJ\r\nGe+GiU8yMDJmvY2bPm2bCMLBv4ublHjcnw3Eh9cRZ00g9JNT01riO2TuHfq2\r\ndUJiaNfD+U5nPvcaL3xmB1dorS4wOmNApQKWcaTmrx1hBEysZAFRABMW+cgb\r\nXlGlLFmQx+GFUvjsJSIMk6mvDzM2/g1V6eU=\r\n=zauY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.23-dev_1670236835843_0.6335945742616014"},"_hasShrinkwrap":false},"2.7.23":{"name":"parsegraph-viewport","version":"2.7.23","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.38","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.28","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.7.23","_integrity":"sha512-ta93Y4RVQQj82oiecj56EjnWI7yi1pbvMJXZUBifxQ1T9vhup2kW3+wkfOBMqwXUoNwp3DeZXFOo7kby7o+LJg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ta93Y4RVQQj82oiecj56EjnWI7yi1pbvMJXZUBifxQ1T9vhup2kW3+wkfOBMqwXUoNwp3DeZXFOo7kby7o+LJg==","shasum":"baf915894825c66d91eed49f0d2c16cf7d557f1c","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.23.tgz","fileCount":84,"unpackedSize":1040767,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMHUB7QalOrsSVNAMJNMQ8bUc1sIl/OwHFAkaHCcH3ZAIgQIzNQzlMvHbWh8tEDX0NT6glvJ3OvPMXwF8vi2ZMjso="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjcsNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoqCg//QCHwm6tMQGJoWxXCQ7Yj2RuAShJ0px5ZxpX5/H+McCpKeiMW\r\nis7KA+pBDfq4iovxFGIN9JHLXqaL2QdMl/c7Be3I+TWBsahvg61Zfu8lnNCS\r\nR8f+bDPRAkzzs2sY6ihgC+SJmvMpJHll2vhEtVHgsMWwqqkhClqFSIt2FrRL\r\no7NEAlI1kuUUb1iDpGdbARAdsv2xgo8DbMsS+1cAXS7kvz2zZIUnr/KUYIwg\r\niXQ0wWeWworcKeCkuC/hIPDejvoIYqW3fpibkkICWonBIwJ/TSUWRuUv+bJT\r\n3tOGb2o6XldwaYMTyOLICeiy8nh5gutchW1B29pId4h/n24RFms7jDAwU4v4\r\nlZX9Dlzbx4Zbgtz13zUyHHYerRKw4N9jemqCTSGt1R24L+3s9espUQUNROiv\r\nm6BwGake5T2uA1wGdA5cpzdTkIQKnq1MmX3idBZwDgdjFIGvGziNwPmTG6aD\r\ngHznbYaEacLLhxlPo9JMefLP2pARGYZ8dGomEsm3g3HHOsTuclsDY3WkG+GW\r\nDLn4egxAsqIwYXNPwixiNFsLiTngVoq6bta7qUAbYfdmZTGDSK4FQHCjOn9A\r\nxbeUQfQEWxyfDyGSdZHOpsX1g3crd1MS2uKE93NScV5rtct0zVu1IwcEERTW\r\nwyncsip4cjcLYkJN4rGMzbYNlrPmucu4V+4=\r\n=3EfQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.23_1670236940771_0.8889507985815011"},"_hasShrinkwrap":false},"2.7.24-dev":{"name":"parsegraph-viewport","version":"2.7.24-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.38","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.28","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.24-dev","_integrity":"sha512-Z0FP99+yW9cwLtUMXI+hyUFi5Bc0IG11pT4mEpxUU2nA/u7FfJYyvaRqVc5vVzi/LaReupx+Hmaqcq6f4z7Rgg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Z0FP99+yW9cwLtUMXI+hyUFi5Bc0IG11pT4mEpxUU2nA/u7FfJYyvaRqVc5vVzi/LaReupx+Hmaqcq6f4z7Rgg==","shasum":"212b6dc3afe62d73df7bf58cfad41004c85f7ab8","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.24-dev.tgz","fileCount":95,"unpackedSize":12211294,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6rpiZyxjfnl3irhyjevfc8RWPSDNd9r5m+1bWoXLBzwIgJ20X/h05QBFmBbA4TRavgjuwhc0WEZg7POVtBldSaFg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjcwfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJ1g//eEscLKnE4KZpeXIlG4cdbP9LflEleyE8YcpIPh7Jvz+LvmHv\r\nC7icYzLToMuASlWtPyxkjBwRffbOuRJtxawsbHZh2fFOZdGaxV/P2CGMA/Of\r\nM1w1PN6fHsFaC/IzVxywxKZzQAxIx+Z0vAq8jM/lAsAzDkLAlElvcCkwqx5S\r\nI4tteMxQkt3XqUHqM+PYlrPbJgyjQRZ4KPgyLsND96gy4Hm73PJG+ROBnhJL\r\nPG5ajx3OeWzKmiQVlEDDFdvgPHKHP1qcz0NyyzSCsQII7N7TMunwzu3B7RNB\r\nFs6xxdnvrepA+wXjvCl4LbysDKT1ucva3MVIS1By2supLSWpgB5irMpjUb/u\r\ng9q3I5geOI/EXMvbYf8ClBf7YgRGFXRwWYqW5V0zsmjiPYGj5GRL0ugXmNBk\r\nOjSCwqAv99xOSO8AWc5CKEJOnyRmSleLsP+IDxKFmEYiHFz9WqNgbI/6FGI0\r\n2i/rlRGAcnGHALuVJT1pSWXYoMO6LnUZ3TSm15tkk4ktOKMxPRO6yXmnfWjn\r\n0j45wscJRFdIlw0/cq/a9J+HKAwFw5CugiCpzj2i+FqS2+XaFE4ILh6iJHjX\r\nraF2paIQ44pULMcSVPo5JW3ZAwFUY6A/ZBVpzQOWFa7C0nUb/qbzXxbDIWVm\r\nJmObU5M/TVT6Kq+PKE1mrPzmZAxVAY4qOcQ=\r\n=CFhI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.24-dev_1670237214770_0.44650319554820905"},"_hasShrinkwrap":false},"2.7.24":{"name":"parsegraph-viewport","version":"2.7.24","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.38","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.28","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.7.24","_integrity":"sha512-3dFx67XAmuDf38pQA1jyREbiBIFj3DvI1PSF6gb4VaVYfNg4g3U2zr7WhhuSv2BW9QQ3ceFvhFvhgBadl8CdtA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-3dFx67XAmuDf38pQA1jyREbiBIFj3DvI1PSF6gb4VaVYfNg4g3U2zr7WhhuSv2BW9QQ3ceFvhFvhgBadl8CdtA==","shasum":"09fab16679359c62d7500d59398fa700815c209b","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.24.tgz","fileCount":84,"unpackedSize":1040785,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvbL8kqr7yNpGH7/2dnFeYIjaOEvF8rhesfduhSbk/XwIgNnlAbIhtvk9jYnEFRAcwoQ0lBaykPWzlf0ICxafepcM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjcyRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoruA/+JC4Go4HXOMgU5mxC68ovRIx+qkkL/ZBL3YqONQ3XDLjlw+gO\r\np2f/u4BcpClwJOFkCmEO5lq3EDjkCrufZJoLOWAD5zSVbdimmqT2XGIknT7o\r\nAKSx7G1J+EixQo/6LPmUjhu+mt6BVhcLiPUlxJMSdBbNCaw2usvDlXJZ7s2d\r\nNFjCtbslJ9zcA8Skhv4nOjd2NQTeAeU5LelfDPhgB5j6WROgyfr7vpkUyaX8\r\n2At/uKHfgt6ZoG8yBTjjb03vCsJGXP4b7VpqDplj9fj7kS58uCarK1oD8PVf\r\nXPQ8ABNi/xcvzlruTlCgFsfJW+qTbeY5ylBnY6Ongxdl+Zpz/ise03SiBRn0\r\nd4IanuIZPyCYUMuydjLO/ZL3e6kxH0JGdTwZ7ed5fu4ynYvvtCyMPN6jIrLR\r\nVckLjpkFCiddukHH6pQdXBaNj6OrXnuYVbe+JkSDnTPK/WcgN7MkJaUstcNX\r\nfJDZ5DxF7rwU9a8UweG3mHN4WJy7Mfb4+H5uoMjdNQJTuutBM1Ob/WKb2ChQ\r\nSR4cxqRwdxjkCs1buHo3cyrn1hScXvkrh65NcPX5rD/7RsLv6fdsc7Y2jJ8Z\r\nLZ3UWTxSvyBLCGsh7T+UUeb2nUnngRt+lQrVW5NCMRVCqyj5X9w/WVN/kFgf\r\nBtEl8vApjNMw0ef2c0CmrhQRRXeZBMQ0ICc=\r\n=Zr4o\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.24_1670237329080_0.29015963181865523"},"_hasShrinkwrap":false},"2.7.26-dev":{"name":"parsegraph-viewport","version":"2.7.26-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.29","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.26-dev","_integrity":"sha512-0O3kEk4SMnj/AnvdcZgDkc4TSFaWK4LlmRJUocTXhtcgdvhaK6J4SSOs7rt578TJcswfaUqemBk6CwUesb9tFA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-0O3kEk4SMnj/AnvdcZgDkc4TSFaWK4LlmRJUocTXhtcgdvhaK6J4SSOs7rt578TJcswfaUqemBk6CwUesb9tFA==","shasum":"78a05b0775cd7fbe9b7c8f5f2abee43716700ba8","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.26-dev.tgz","fileCount":95,"unpackedSize":12226553,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAiZij0fUXJzsI1P5zPzfc5P/LK4i9gXbiy4IJyESrG1AiBGUHtgYgEomzJI02JizECtGoe5Mk4fORiQfC+m6n6t0g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpX5BACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovwA/+Owbkfug+h7pm306ciM5/uhdYa8Y3k0kZoHYuk/Genzr34MhH\r\nxV5Da4zDT04f3OtLCIeGWRpNXla+EFwWDaR4lXMIBr0DKffGXUp/DFi2KxHd\r\nC9L3F6v9gQ0XOKztKLMWbXTWo9wxOPg0FlodY+ka8i4XG1WqtC5KwVO2o11g\r\ngnNGMGcCBnrdDkAIDCmA175EDhkpBEB03CrRBS/OQ5a+akSqKEUML1oGd8oc\r\nrsrG5GzGeyXf6dpL5Dq+k6S4itEeTDvDbsPTTRbbeVVE/asRXKb7KSPH9b5F\r\npgAcGoA0kKC0ajqXFejR/iGnVQCY+j0Gs1LwHC8TBsXj338ATqxWG4SASvJ8\r\nZB3YI+k4m+e/BL/1oOniUzD40ObRhCKc7IwTI7O6drg1/VSoWfpKV/r9oWmN\r\n9WBEuhMBtm+CPEg7D0LQ7voXzIWA2rOkt0fFHON34wQyTpTxGQ8U2CXO/fR1\r\nQ1bN29hTS+Tf7CO/xH3d6jeds2/BC/s23IlLD48CQC+/FyhECGzTckbDZHOO\r\nRY/lB1WStw+Dnt5vyqxl2c9x1ycaw1H2QRagnaOnoO9AekosVsQj5Da/t1Ic\r\nnnQOnTiwJBBmxroU931AuOdKDhLJY46L666xNYMFCvLqZBKVWJ7vvMSGzHzO\r\nW8pGOhquQ408gh6uZZDRyKSpKukaC7jnxJ0=\r\n=H48D\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.26-dev_1671790145650_0.5932716706096826"},"_hasShrinkwrap":false},"2.7.26":{"name":"parsegraph-viewport","version":"2.7.26","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.29","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.7.26","_integrity":"sha512-39zIO09skn/sW6XViOyAVZrLqW3T4Vp1zMYwkhQeWlSp8Q92qcVJLmNzoeu2YZJ+w6WUdUMvo3ykbpE9R9xejw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-39zIO09skn/sW6XViOyAVZrLqW3T4Vp1zMYwkhQeWlSp8Q92qcVJLmNzoeu2YZJ+w6WUdUMvo3ykbpE9R9xejw==","shasum":"83bae9034a45f4088882f36547c2d78012f4bae5","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.26.tgz","fileCount":84,"unpackedSize":1042111,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCe/DGtsb7SUNT1epYR4VFTE14hf7It9s6X0nWZTSX+9gIhAKIS7dqHYnbIrySxmMKWOhyN83zojLtnwp7kR32ryaw4"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpX6aACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCkw//VwrkqHCnfGNqMtukAHOKMZfV7otDHzYGbI4spxM2VujBFcBa\r\nOsMp3XXogbNxzp0GCqZrKytjIrz05G0gNMuz0IisJwTDywakvzG7+R6Ryuy+\r\nj4AF7XR31rfMKY6rp2/gRW6g+OUp74ThNK4F4k3LlpCFRAlElwQO5wvlg/ur\r\ntKr4+xqs9oe9qeC+5SG46Yn6zdhHh69ysv/W69P/8WxGgmF8MmRA/St9EMWG\r\naSlMbcVVy4xI+8bcAggnKAeL6r3pmyWRXSod2x1Kb3I4NOUBWtPB4noWsvQL\r\nq9GZSaEhEOxaawCVQ+hBu9qADwxPzhhkNRQwDiml2nPlUsdJNShN8FZYlaR1\r\nVuAVLntGJVhOx96y7340RQOSK/ITiMHd4Iv/lE4j9X8S+ughZ0QK8eiRrl6q\r\nfIK/nXo/mg9pB6h4lhP+DwKfYn6aEOUya18A66DbhlXqaOG/B4LtJJMLWqkv\r\n7MCuhHGZ/k5Jd+yBWz6SU2TLYmym4cbZpUjYVGleqpTkl0yRGpplcZ956W3j\r\nZUv6Ie8F4QgsryOZSbKW53mXvUqzhleaRpPMj2MAUTOqbtzYx5eSKR84lwmP\r\nQXJKc0PMWN5VSwSllh00dmm/zdyGe0vf5wHC3i7NwEj9AowM1RDlSBchBbKw\r\nNIiVYlAnV1CLYYCLQWXMnEjUe+GTWmgCafE=\r\n=RXEn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.26_1671790234678_0.13374957842861335"},"_hasShrinkwrap":false},"2.7.27-dev":{"name":"parsegraph-viewport","version":"2.7.27-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.30","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.7.27-dev","_integrity":"sha512-Y5SzJMci6Ge69LjOIcMJL3nUD0rI1UU4bFxW80cJ+o6k6/LG9uiNux6Y9GW1yoUUpY9pyZ4o3xI3bqkcDKZs9A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Y5SzJMci6Ge69LjOIcMJL3nUD0rI1UU4bFxW80cJ+o6k6/LG9uiNux6Y9GW1yoUUpY9pyZ4o3xI3bqkcDKZs9A==","shasum":"91b0fcfa3c699a92112d066f792fd82392a00506","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.27-dev.tgz","fileCount":95,"unpackedSize":12227525,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyB8rqzuKotp4Ri6sr9FVR+7r9SZiuvATpgPbxK7BqEAIhAJR4rwaBDyCEUMTYy2VPZCRdI9M714+RmC835/5suKNu"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpYUbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpeFBAAn+E906+H+Mz9wxZrWHc1PEV9985YT3sR2tQI5CsDbKCq/QHk\r\nIxQtj072dqmEQmJj7c5QcNbcDSIJOWQZcdVV9yvIA9IZyRQIaSVJAIPErgPW\r\noybIMOfMRb4R5KmBf1GbMytcz6py7/R0xt4kJRAC8s0uFOnD3jve6qPvcwWr\r\nOTyh2rR45NhQki2DtwgVzSkASic0j4f9070sYANhfmbJbJwS8igsCK7c0k4w\r\n3X66fF4TkNb0Jw9PzHWZJSkC6bm/K22nI17tN99/z+ULlOEogM9pm+SmQO70\r\nzUltx/VKAkaE7W/VaSRnFOf+puPlllAuDwfsTIvY98uNWzgSynVRT5Qm9VTZ\r\nyi29YgvUNrMz+vEUXifyVVJc7IBORE2UyxcuVwQeTRPbpxuiBkowRtu7Q/TD\r\nTBDXBlPBskr94qi1C85INUVyGjgd8yV+84auY5cO8Q3Z/J7FpU/4CUNZ1MRJ\r\nIAiU93MHL4KKAkH0N8WY0iV5mnBvNrmlz2NRqXJAygytLYP580P1F5AOh6Jl\r\nVX0YZylLCmIgTAEufzRCJdIMFcjyUDL8C6pTSIIMzSWpCw5g0XyUqVHuMa6K\r\nC7L36SoTT2yKOnVVlYJnJoZ7CCfyUMA685CD1mia611KtclnO9lhLDQwm6h4\r\n7kogx9liBxUph+GgTLPeuEXcqBSNyhMcjqk=\r\n=/unY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.27-dev_1671791899299_0.7802228751953995"},"_hasShrinkwrap":false},"2.7.27":{"name":"parsegraph-viewport","version":"2.7.27","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.30","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.7.27","_integrity":"sha512-4ANGC+Vn3rxLMvjIDH57NYKdYLmwky7/OfpxFimdPhYxjwXk9V9FyBMjFrtDetQmo4NMHz+8142VRXG46Rsg/A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-4ANGC+Vn3rxLMvjIDH57NYKdYLmwky7/OfpxFimdPhYxjwXk9V9FyBMjFrtDetQmo4NMHz+8142VRXG46Rsg/A==","shasum":"9bb51493b69c63e4babb8044cc0339ad375417ca","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.7.27.tgz","fileCount":84,"unpackedSize":1042214,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG77dU7JSLvBkreeET0Yymm1bhGvo6X1LsxNOZQ7G8q/AiEA4E84ispelX6qUqHpdjxJiOCKPw/U4+LPGQ8yKuGQ0Vc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpYVyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrAEw/+KBdqhRhy2jNP6tASz+8GFvh1ImbP+KQu2v7gXxkrOW7zZ3Yu\r\n9ZlKz6Vv6KSsX+1sTqSDbIpFrBgIrkVoqKc3ttsqz9D+MhurUCokcu3BudUk\r\nQUOaecMrO/1MPEkbE+w4buJtPoKCAR9II/B+k62fWLhH6wh/bG2Furi9g3mD\r\nHpD91Gw+ap0tJFSK2qi+tjlS5XkXuyswtnHwSvOODnq41CY/UpzBOkEIcuni\r\nk3Xbj9Rzxq6jiO7+xlfqhF+XTvLZrS9U80uxTT67vu722SC4sV/hSDRslKbV\r\nLQwftkevJGy7HcOxs/AFC7+xPIWfbO9ax3FffMNgxdlbpWUaY1TASRT25Mpk\r\nuPA8sRBWm6rJKjv6UlvD9mg61IjF0C8Un/dOevwSHcldRAn5ZKyjiHDSPf37\r\njGk48T6N3fKVsXmCtlVOSz+p5cS2uBykapy8kOa+3znRTMdJ64KXsHkVu13w\r\nPDgCyfhR7E0tyT3SivuBouWedl+PDqCw103VkPLkELPyHqFW2xjDfEhXpwZx\r\nnuMM3taGNscbMU05ruyRYRMtlDf4+bIud0GSVGOvOus9DJ1/CCrjhVkVzCvX\r\nShldjxMxnz3WhWEN+a3vZNbyqDX7hrRIqGe6xqKKhg+SuUWoNr7fJHj2ghHb\r\n/daDNsr2cs/fYavKyugFKgGNaHa/ATmeFrE=\r\n=WEql\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.7.27_1671791986312_0.3821576772148372"},"_hasShrinkwrap":false},"2.8.0-dev":{"name":"parsegraph-viewport","version":"2.8.0-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.30","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.0-dev","_integrity":"sha512-ZoSbyhLztZHwEWm1udftuT3eqc/ohYzISwvjGEE2KHxDHebQkOTp3QuwBs3ybj5zb0+sUSztkN2r7VpgsbiovQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ZoSbyhLztZHwEWm1udftuT3eqc/ohYzISwvjGEE2KHxDHebQkOTp3QuwBs3ybj5zb0+sUSztkN2r7VpgsbiovQ==","shasum":"e77e9c359afed20216f68b595cd6e0bdb2d06879","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.0-dev.tgz","fileCount":95,"unpackedSize":12228878,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2Cy9q++RwzF/efgEBq+Qzxs/A+9CIwAY11p22ZXnLQQIhAMI/IjEy/pcQ5ueaYgTEQ5Zy/A/un09/xE/8BX5L9kjJ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjptFdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJow//QgN5mCiY7cMTzro1cO+CDu4lH6JhAq7sVUP7CJXW8vFWpzDz\r\nlukM5WhlA/rSpx3MOIxNB2mYnJ5OQSAmEUdIub1U4PG6cbrFPGmLS4nMNKVd\r\nFeaBFbYHAC9omQsw3NYhBg2U48S4tBEvYeFk7zAC78NKRuFa2EzjGfIVwk8d\r\nB0ODrrSE/TrBw9wWCxAjSQrIlPdWSyYuShZ7Y0+y5g16xvj9yU3bCNVFugh4\r\nQDjAPbWo5TMEvvajVObEhDQk81lj3MU1QKJ+EhaS71Y8VFu6cK426BKJ3w2m\r\nLllO50PF2LnRBdBoI+4n5FBnQVwoW0wgS6ei6gEIm1MyUhAfVsYklc8BVlSA\r\nA6NXw99uT4cgohYsB0lSAwEx7qiO4f06qi6E2fkJDZ8QR07q33Zr7m6vvlwF\r\ne9olO0YPK7PZues1FuOb4cqkec7mGdThnPVH+3AGCjN9ZEruE+8brtfN0In/\r\n3O0VAXKJSUV9phoyk5p/IO3pcYH+6qiwQ8dL9isK/bpJu+x/CeKcNuvNAtUD\r\nY7+teOoRxZQaspv9yx0Ar4TOfeBV9V7b0HUOvc6elk4wRlfJSlBc02Bp3Uw9\r\nVMuCeqK2SRol9mPS7MVy74RorvP+b+qII/WYxA8GCDFmP+3wf9zfAUQqaotZ\r\nBk/rerxw6uoe8GbwUdG8wDv//kuUvuUfxfc=\r\n=xMO0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.0-dev_1671876957335_0.6849821164613545"},"_hasShrinkwrap":false},"2.8.0":{"name":"parsegraph-viewport","version":"2.8.0","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.30","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.0","_integrity":"sha512-ih5BLWBMadSgXfLw4E0v9ggjuTsAT1jpy0V2otcP4+Ap2YifzvqiOrqo+sy01VETvrDnccW2y5oprjOPSMTC7w==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ih5BLWBMadSgXfLw4E0v9ggjuTsAT1jpy0V2otcP4+Ap2YifzvqiOrqo+sy01VETvrDnccW2y5oprjOPSMTC7w==","shasum":"cd9bdaffce9d2d9465502e8763b578acf90beb58","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.0.tgz","fileCount":84,"unpackedSize":1042427,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHsgvuverK1kDUbclOzqAlTe5WnazNWnctc1/Lg3e6VLAiAjbMpukGXHkusNcfiQPWG6+95jl6E6bPacH12Hf6v3Qw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjptG4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrK9A/9HWRUCfTZPV2BJIWmw8K+4W4L8R2vNum6CeUd3TEmvt3BNuKz\r\nQFIR9TX5haop+6no8WOWEykdWyx288ivXQCocDN66qQND4cJAILTVjd3UOYb\r\nm24iJ9jH+fBCMreZezeMDxJGyGLqlMzwDWOA2aGES+dVAYuWBQTdzPteGYct\r\nnI2b8yCb9KLIVGpF7j5VGVqqt/rYPM7e9FupHCknCX45mil8RMZRJDwlUshI\r\nu6tTQS5RzfF1OUwUB+VzDFjM9Dws2b9MYtAgZctLrftKguWT5iHgWP/UIIop\r\nTmrE8fnncqa52fvLXoIc89m0EYgpyq10RBEGwPAP4JnZSnnFxJwZsBCNs1ao\r\n4fk0CP7YcJIMQr5T9u9ZIWKvdfDbfJzpyG96JnnWRbXjoHxwxcVMySXr2yGt\r\nmWrqsVhay6LmU8P4YWvwLruBXtaOckyhR5SfUskdzHFEcvrunbW33/ylJpWg\r\n6KCK29hRz7POzQGQ5EmtknzUJol+vevzvLO2iZH+hhad513JedwmavWZgx1n\r\ntEomwDO/hUafshPyHXTeen53FJSR1aKiYX+RBX75Z48Hf5pyqk4Q4Gn9PQ8v\r\nQcWtwg8etmnlC4u9eBE3TdWN5PcSSKlH2SRTu33qGF3wyY5N2SIj15rJzTWf\r\nMGSVHEXz8FYR0bqK19tNBGRhvXEa7aXV0ZE=\r\n=KZRm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.0_1671877048028_0.2190182122238078"},"_hasShrinkwrap":false},"2.8.1-dev":{"name":"parsegraph-viewport","version":"2.8.1-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.31","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.1-dev","_integrity":"sha512-ekAcPZ6z28XGLoXkTPdBV7MlvAeCHyYyJC29sIs/2gl5xn5M3UsRozwxH7rELvJbuWHujKsrf3Y2A+i1k2rCMg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ekAcPZ6z28XGLoXkTPdBV7MlvAeCHyYyJC29sIs/2gl5xn5M3UsRozwxH7rELvJbuWHujKsrf3Y2A+i1k2rCMg==","shasum":"f17f3a231c1dda0dd8bf8e0c9fe8157b3627ef4e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.1-dev.tgz","fileCount":95,"unpackedSize":12229018,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAxpzFE+nvrU0P3h3785omfiqOMkhx9h4s1GqNNalUEuAiB2rX18kIZqKof94cmiK/Lono/e199Oiwh2vKw9NxVkXA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrUqiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpjXQ/+M5LLbJrVvtESjt56tTF6K/PdUfPHIp/F7eNZUUTx5ZU0wTX7\r\nPdj/aJUdX80dsMIfVXN8HWArvaAf02gZRYTHdUREgbCmKPLHaR8Prfv8lArM\r\n0qrAgIBs55dOgjtzIe4zULDpcwGEc4tNoUTrHrVGpe8SIHLKqGOOWkZ8PfSS\r\ne+VEiWlZ1Yrt6zv/d1mH4Ee54vFJrSsySYn6Mn/9qR7u/wrn5/Ocv6KxNd2c\r\nGcSteETN5FULLfABaUtxVOQZbQvSf9cYIfLlGjKQvBUQSKOqNoqxt8ycSNCW\r\nvemFfBOrz9AQFKxNhwnB0omr47heFvGbBa30zK2tkIJzSPOs/fCoO4W1lvdw\r\nUvA8wp4vTdXFpFD2pWmCL5O+4GKRqJYV/UY5Y0DFj/IhY7y9jZWA9a5tTigP\r\nYm6v0fMBeEON2VlNBv3nS28DwGrFfRtc4fvoOgZSCTVgzsKiYKsZct+hplRq\r\nprHsS7/CrWnHW9q1qN6WghVGL6qCp2xo122iC7Di42hYv20EmxiID7ade6xh\r\nbuPu8T/nTd8NHoQhoBSmu+2W0IzvmeX0l4d32plymAYeWCQXX1eMIkftB05Y\r\nDoJtpIOwWF5HYpBC1q9y9I5ulkkSBqAe4Ma4wXK6K1fdjcuaUXHmWCx73neA\r\nmuJjvWVtBVcCvbIhuF5sVXnPDOCQjOiNM3Q=\r\n=q4FJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.1-dev_1672301218221_0.3145963012341815"},"_hasShrinkwrap":false},"2.8.1":{"name":"parsegraph-viewport","version":"2.8.1","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.31","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.1","_integrity":"sha512-0eQevVzJ6aoviMqPD967pK7obEjDnH464jmGemiP/xcr2WNYCp0StKyxPTPV3ivstSnjJ+2R/NpmJgVdjEsPYg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-0eQevVzJ6aoviMqPD967pK7obEjDnH464jmGemiP/xcr2WNYCp0StKyxPTPV3ivstSnjJ+2R/NpmJgVdjEsPYg==","shasum":"bcea10d3a1c0e8e45ac948f0a2ac0fb04060f4d7","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.1.tgz","fileCount":84,"unpackedSize":1042442,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAdvvQBP/m3o93wTDtEvJeLVkXwum/2XXkeJL9GsETBEAiB3olyneVA1/kujrViKASRZ+oKXnN3QVqVW+XiNc5Zvmw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrUsrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrdPw//ZTO5finijwRqRZxM06K7fS7kwlwsyZD0tY0DQTfKk3gTxDhe\r\nD1cMwSNtsIDnbl+ebLoDLiidQXTye+C5LwPD/MBEkQKkxmOpVN9B1E4XdXFx\r\neBP3cf89U7bZ1SvrCWV6FuR8XbJheHP+l7poelZUiB/5QINVl7UuqOo7pYE6\r\noxXxx6sg+CAY7+Nl0B01JDYxpjid8xlxwYDMFrT21bl43X4oFKIwmcHJNt8H\r\nXJcxicF6dI4mV7G/LtJj9j9SMoAmmctd2bGcx1IWs411BPTbqRCnb/1rsTbJ\r\nEPwS6JvkHHSD323X5G+ByFansJjJ71Kqmha/00qQl4eV5ZE3jwmFbcOFphwR\r\nty8uaav0NkX6LwUnmcyrLBibbEuGXMZcxBPp3sfrHFHm6Rv6lTLiuHqm5S2K\r\n+RncmhtTIFF3/Sb511RqD694XzCcb4B8lTxW8jXxnKAt8dbdBYpFViZnwxZS\r\ngvUVZBaNywxwVZo1NjK4rdDXN+nVuQjE1GHGeOzepJJ7Njm8zy2DV+LJ/nmK\r\n4RnhxFBSH28qY3DeHbLngNd/L7pF2St5etE6FGnurexnCuAzCbabGZY+FdiR\r\n2MpWuYFcXNPzaZx3UjwRV4wvGn1eIkF2q39hYsdCLb1lTDZA5KQ8DPoPQQRM\r\n3e+Htrem2ZHHxJZVI/7sIDRguBG2xkJDEes=\r\n=6NyL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.1_1672301354746_0.2822272842591953"},"_hasShrinkwrap":false},"2.8.2-dev":{"name":"parsegraph-viewport","version":"2.8.2-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.32","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.2-dev","_integrity":"sha512-TRdes1/A3JiMZ29wJy+RTA6jOJwLpT38qUeAArqQL8IS2EajH0284WX8I+0Af4ZOhCPsVGoIhOx4ptTVYIivsg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-TRdes1/A3JiMZ29wJy+RTA6jOJwLpT38qUeAArqQL8IS2EajH0284WX8I+0Af4ZOhCPsVGoIhOx4ptTVYIivsg==","shasum":"6386e4e89d8c93f65c448c3285349a1b999d27a0","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.2-dev.tgz","fileCount":95,"unpackedSize":12241958,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEhVl1vMu+ab12c2bl25CJ/xxqjAayFLCtGxBvXqWHulAiEAwe1HKUiS2NDnLhO9gY3arEyqHELse+b157+W9bWy/pE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrVowACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLBw/+OnOFmvj20z8qQ7cMpnvNdOTPqkFvXu40dkWudHaqobPMf/I8\r\npfUeooBYrOB7uRNZBNqYQy1JOJ8OZAxWBqetuW2pE2q1kErMk1RXVn9/AN5r\r\ndRo9KlyT8CYIetKeqA7vlDen6mtenzoE9jhoRLlb1Ppf+gZwK+WksJzmjPwF\r\neQEb3URRn5pDawV3KtfXV1NWM2pFiOSNBFC+7Qt8N1+O2jvUp/WmFvYSXDx0\r\nrwb04LPPlVNXiRnO6G6Q6LxlkL9tFw5gFeCyRrpfEQUpqfRYHlfUAYaYZ5mv\r\nKtDmsHCOim36zATUIahhlO16tJhEZNX13BoRsuycceW+qYh++oaQGx95l1j4\r\ntL+HcRNJKizBQ+OMFnx/jyF2FqgOSQPvTvIqEfjfL5nkT65xxR5zOV21f1Tt\r\nLT9BhLuP6s+wFyNetKjECijjs/hKlwCO1AUpUVJz5YWuNcmL2BGiviQzlz+K\r\nsdB9NmQlqqppuBl/wXYIkuEtVlfH257PguUICKR3Q9AD20ZE4vATFztQMeFF\r\nUesd1In2olK9Jhr5kMBpTQbBdTw+fdWwPzgyyn0ZEMt4adSaSjZCHvceEU2U\r\nQJGI4DwW2a4DRUZCE2HVFmLbrm6hwaAr3+uRAanYPY/VQOZ9tIUTyvGkQxMO\r\n6HXF0HBKyemB+K1LB/ln9Frl7xqg13FaF7I=\r\n=beHv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.2-dev_1672305200784_0.09435538459804582"},"_hasShrinkwrap":false},"2.8.2":{"name":"parsegraph-viewport","version":"2.8.2","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.32","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.2","_integrity":"sha512-7excQbvbUahqE6TjjEOcedRLlRZOBPQXH0wjx/9D951ETrLNh62UPTWPlnw/gKYmo7mFf+QlWqBGzGBAl0S56w==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-7excQbvbUahqE6TjjEOcedRLlRZOBPQXH0wjx/9D951ETrLNh62UPTWPlnw/gKYmo7mFf+QlWqBGzGBAl0S56w==","shasum":"d1f38011a850c6d76796d05c88c19a7355470780","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.2.tgz","fileCount":84,"unpackedSize":1043158,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEbeZxdJjYhG+yjMr0IF2i06Dzzda3e2evD4lgUv2ke3AiEAlU1wtjqGf6wHrD/eWD74sQrxTP11BjqcJDk1PjKUct0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrVqhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqsXhAAl26NA7BHfRc96esqejYwdKlMj9zOrmaX/Xu1uW481134FyBy\r\n/vchiuXcmHIn5bx1GE/tDTuQXAQdNrMM3zVd0SBNhiE7KKgi8kcjxbVDh/v+\r\nQBOWKOTm2EOhVkWYbZ0fxrLToTMV6dy5CHSVQ6dTbl3xDGQTI6QpmohuQZaj\r\n+CwNdoTp8miCEObl4lSgHaLRNQhpVbdo2//ErwY2K9nHDhQOuprSgH2r7piJ\r\nbI8337z6waSliUMny2/9/be4KWuLqEVQ6ooMV5UJM5cpFQwcxakGOKMVKqmT\r\noneqZc1Q8Z0Bbg9uU49uHDvSGAmD5msdBrhGTbwTJvBXDhmWmF+ZZdG+kBWz\r\nM+qpE8wdL0CYGflHMIyEJG/v4jNLW34CiQhkheR3YdpgAbp0vxrUhaJ7h9oh\r\ntg2UoK3WSd0aH4vVPGTRzKFRHzlIDQr9WisWvz7i2os76w5+AQIUzIplBLN+\r\nu7e+rB6z4QRtmOEK2ITrUwpk6aS7ahn3cudRMgIDD1LRq5sfL/fxJtUMkek0\r\nczlqWn8GqdHhllMEtEblmRKaee53c3nw/vAGZhNwDmgvAdvLogI21Knd2xjd\r\nnG4UXDjXnbneK5Qs+Nu49TmaZxsaILX8IfYyugs2IuQRIvd58UC40P7GJ3AP\r\nx6kZ5+9MtlFJr4Hoav/85xFzDFW0dCPejY8=\r\n=nBAV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.2_1672305313476_0.6437197047153302"},"_hasShrinkwrap":false},"2.8.3-dev":{"name":"parsegraph-viewport","version":"2.8.3-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.32","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.3-dev","_integrity":"sha512-Jh0wPQ+Cl6HRW0RVAGmD8gJigYe5/bdU0ewnYRMZVtouQFDaPTcY5FKBjO0R2k6UWRib4SOGlbbMYPR+WPHJ1A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Jh0wPQ+Cl6HRW0RVAGmD8gJigYe5/bdU0ewnYRMZVtouQFDaPTcY5FKBjO0R2k6UWRib4SOGlbbMYPR+WPHJ1A==","shasum":"c23db71354ea7c5f81ddeac69b44b967c8c3f339","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.3-dev.tgz","fileCount":95,"unpackedSize":12247102,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDMjn6q0RIylMXhRSfs/QfWgj86zu5dPHZz38KGkY4v/AiEAyHrhBYmDZjMJNrsEeIg6kQRCJT/aiR2UBblUixlhskA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrWBjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrxoA/+L/x607u5x7iTfcwrBgAbnhZaAl7i39j2eBtUsEuYlkKz0f9V\r\nzMf1qkL4EUjvpHVU1Sf/G8NRZwKHlF8jqVrkoLWRN6TBwr/QqkjjKfjU6K8L\r\nyS5G39Cy3Aq0dUrT6HHeUhLWtwXIG4F9SEZwG9k+SjNx2vX8eiIMxKLawNK5\r\neXBBhkjELKHMsB/CAK0k7Co9vaT9GTXMR/iNnxWWjsl+INXk8NnmzPduORlG\r\n4XqhkPZJsKOehjqFWZTkUTuXaUzgrNlrSwedLM7G23NrvH9OSf//Ha16SpZJ\r\nfUce32IX1YZClH6CeWsnco7jVTe1E+rBoSoik9pnm5plbDSg6PJWmG0w04uD\r\ntJguOj5pAu+O1kCn/xy1/qAxDaCyVj/KLFyE/+pgaEQqZIzcnzAtxgrIr+/i\r\nVfM8FGzwJpx591BOoP44Ac0+GpHH6pfp+iR5UbtsJaNJuz1Vj/oHpejL17eb\r\n/MZeFqXzUw37MleuLD8TkTtlE88BFf/1/5wRRewyyUhLk8nt9JRWYQaoxL6u\r\nH328iuzGVFyXkbGyR8txtMnMR7V71Fi/TV7tyw2p249NUNJBw474LJ8meTHM\r\n3U3YoWiVhf0WgyoIF1JJT5LyHFjGYtckFB3AjmQ4J5GcESlmVnC8SG5NKsJB\r\nQlQgY2GYhXvKiiKdu3mC9U9nEe/dli/H9bA=\r\n=k4Mz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.3-dev_1672306787071_0.9677597477941275"},"_hasShrinkwrap":false},"2.8.3":{"name":"parsegraph-viewport","version":"2.8.3","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.32","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.3","_integrity":"sha512-9TK4vihqrNejqmtYkkW5zoX5oQkDSro9WzxrpUQagYXBKm683GCnEwVrx5A1Q93VbDmb9cPc9N6O9WISTVxmnQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-9TK4vihqrNejqmtYkkW5zoX5oQkDSro9WzxrpUQagYXBKm683GCnEwVrx5A1Q93VbDmb9cPc9N6O9WISTVxmnQ==","shasum":"fb88755161cc1a04d694a431f562cae5c8508230","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.3.tgz","fileCount":84,"unpackedSize":1043440,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIArP4ZHU9wBO8TAOUDWBYB7IT8AYqlsLvKwAeo6pSLXhAiAm7SHlEfsbypZsBuM5PoEIgo9uvgQaMBR90zLTGzZenw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrWDLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmomQA//Ti2SxxQDBly8GoNxGmAivqwVfUUFcHI3WsXVpMCw2H6voXY9\r\nF3g1JWObUtAQYhQCOO68GriGithPGotTzfdB6OEV+8rmNNPavkxcKws8E+MO\r\nzQ0foiuDbd3l7Vn6+GFKadL/igyzTsHCbSb2q5sVMUy7Uc7KGl2nqAs5Qv8p\r\n7cw3uiozmkLINmhrkao1tbRf1OCeJvf94sLTYhrkWBMLe+LG97l0EWW216Uq\r\ntcB39FS3M+NRORdAPnadiKKZ0myrKpU2VmM+aDkPJZ2X7RYdDSBLytt6nNYu\r\nWapWpoaAtoNkz8nLo6aeV+fbK+Edo4RoEAU8cx5wZoNglElIfdgYaT8iGpdH\r\nkz6r33FAnsJmblITnrcjHyskY6jlWcT7qkfRRIyCQsDq+log5Iwup7j3CymD\r\nFAXl3f58JaIRsA8vtQXVQoWByzsqBPgUD5uSL0IX/rlAtn+SFe7wzHOWLw3I\r\nH1S1UMcmRTzlWUnlOdkM53ADUjRCww2kdNlG6XGkkBiYQkzxql/8F3RBGMDW\r\npb2XzsV92eZRLoTTCCCRboUlRandNPeRkZ3caLz3FdVf020boly2DFsKIzr8\r\n+iEr2C0WuSX26J4RiyJQzRe5TqnE8mRxDSteliI3S7qhuiFsHCbegHlfyint\r\nOSPLwmD9LhnAvDXgDYkhCeOkxemWOzJMIiw=\r\n=sfxR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.3_1672306890855_0.2722810687288415"},"_hasShrinkwrap":false},"2.8.4-dev":{"name":"parsegraph-viewport","version":"2.8.4-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.33","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.4-dev","_integrity":"sha512-YoSYP6kMZ8COCbSskTRh15WzWZgt1tN4rViQunNeVJxrKJAEfePCQ4w6mwv8WNgnQfHpZiqy9il6nnARCiVPVw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-YoSYP6kMZ8COCbSskTRh15WzWZgt1tN4rViQunNeVJxrKJAEfePCQ4w6mwv8WNgnQfHpZiqy9il6nnARCiVPVw==","shasum":"0922e422877b4dc618b11565f789d6f575f2b895","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.4-dev.tgz","fileCount":95,"unpackedSize":12251389,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCpquKscOnjb4YZyBGX3ExuxtzUCJl0wotVB4CEfd+nAIhAMpv9+OMB/KUKLCP6qPvfrmJyHUfhwPO5dDru2Ad92qt"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrXasACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpoEw/+K4loQPoNJUmOEUVdab/Wx5YypWolCwgLyIbeKNglWO75v51a\r\nInsazHdbpM79JMKJrieN8iSn99b9mVttnpIoPDl9khfKtJ1ZHOLQo5ujAImx\r\nDLWafG0FvUtY1PJTX6cQr2sJNBebEcqVbuZfCj8vAybOf8h8DlKnUMCZy9bb\r\nvQsimnukWZdbX8/vvgcZ8k8rR98FQq1uHPw5A34WFtVW5Ijd4BTTa+vAZbWq\r\nS4+FxBnTXk7ADsg5Xc5nPEwoDFnnvNd6vLWBEjhdgBk7WgIa7ZyCdWAM0yCx\r\nZvmKRptxC0cdKsjq/cHjmAob8XEA0wooVNXl0jKZx0c/S2s/xsXwLZ/00B+d\r\nnPuSrlzZ72/Ty26JeN9HKm8eHgi956VGEsPSgtMoRc4PFQ45bBGm1VOXyiS2\r\nYLNZj2R+vZ5SxtUqR907xI3vE1gGrJENOCQI+G0iZe9MKjXhaTd6OtcluueH\r\nWqq3Ai14iyFjHJ3i1BsY0+9X+4YCKuiAkksafE4xF/DmZwE+/C3Rj1k1rTcf\r\ntkn5px2xiVzoKKlAsmSWGQwNYByb+2x7MPI7Q1EDl1aeCV6KlVq4Q7HQt1ON\r\nu4yX/V3V0l1dlklkrtOrtJRocNoeM4O8qelCir338RJtTmQU/T9nJXSbZCsU\r\nBolqznDdwwu81/cwLoC+7j91inO833b6GKc=\r\n=NNZ+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.4-dev_1672312492412_0.35620784891242274"},"_hasShrinkwrap":false},"2.8.4":{"name":"parsegraph-viewport","version":"2.8.4","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.33","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.4","_integrity":"sha512-wBn5Yx2fXzDE3riZlcWrXzbzPJ7liP3MoT2wpGkLQhoxxjaRHxsrMld81w2hDPaRGFLBICpHtBXhQpSeklp0Mw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-wBn5Yx2fXzDE3riZlcWrXzbzPJ7liP3MoT2wpGkLQhoxxjaRHxsrMld81w2hDPaRGFLBICpHtBXhQpSeklp0Mw==","shasum":"6eaafea6d8f871b6c6774188304982498ede6f96","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.4.tgz","fileCount":84,"unpackedSize":1043695,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlvUpZFGa9BzHG3lejFw3NCQi9BjP770V/wqbJ0kiv1gIhAJoq2yhcFV7SYJZuneVgvO8rH9o9tiw5WaEJHTZrGB9c"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrXcFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp40hAAk0eIi4V5yf27es2/9nDaita/aChJYSFLtBeSkeHVV2ldVEcW\r\nGe/kqePRoKA/xy6AaMdi+L9ZhKFzdaBlL1rUliymQLqlSJj7TdkjBE6uHSnu\r\n9e3j705kIcWoGrIqtZJ89oSrrkRREHyZLAwPL1GJiPDXAUaHyvdEyCDq4FwS\r\nA548ePef+cPzEdNYrclT2kqqpB9G6EZ4rGnDMqCYQ3r25sCWMOJNzTBa79c2\r\nC9406wjrdfLFWdQWlfuEVhqHG0DPd7keBCCp71fUr+lTrKaljW3XE5dHc+cB\r\nuTHBeWhSNyS09NZ3xdoxiyU07Mqjr6P7wwc2KRPxQrN1C2bcyX/HpdtjgtBh\r\nAWsxZWrsTfGO7NgbDAeVqSzW8dvlveYdttdacHp587d419omRv9Aw2lNVIEM\r\nsz8/IVJB1NmqpnFw7VQAB2LaG4sMSSYOjdjDKpEbIl5Zmd/AV5uvRp0kyAZc\r\nu27Y+rjRMKCZqiMkQ30Kg/36jH9lzKAQ1HvuT3aJ/b0OMr8bzIqH80b4w17Z\r\nfP0S4GzLLN20L+4g7e4dgSuFqQQDxtiF4K65xClRP77y1/Hq9m/QcvUFXlZS\r\nnamYOViVNdcs/BxRCXpA4G9KE2V0oMzfFlaJx8o/ZhUkADvOULL5Cj+tkG/g\r\nJsf9R0/m+Fu2OO2KOjelfTEcmsIJhV4dqXU=\r\n=YLdQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.4_1672312581597_0.2655556423038239"},"_hasShrinkwrap":false},"2.8.5-dev":{"name":"parsegraph-viewport","version":"2.8.5-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.33","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.5-dev","_integrity":"sha512-o2Nm08si9JFu6aDONksHEep6EjSn+kR1gnxoIo2WY+TcdgzbX4gLEvHmvFT5THeumEkBG1Lw8NIhPq6ENvS0Yg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-o2Nm08si9JFu6aDONksHEep6EjSn+kR1gnxoIo2WY+TcdgzbX4gLEvHmvFT5THeumEkBG1Lw8NIhPq6ENvS0Yg==","shasum":"82f5ca258ca223110b8712e2f42b108e715d9366","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.5-dev.tgz","fileCount":95,"unpackedSize":12248029,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQnrmWw0zpE5kI7h+7CSAGRGgXdCjyRsnUu4gmhu23AAiEAvDvrxcj0r0SuLAumXApZQ8/jK6Fvytz2MN2vXnKOR+g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrXumACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQ8g//WYFrXVrbJ3Xukh7VzmYQj+vaxEL3y5N3X+atkkZJHfDNOMEp\r\nUqAmBVW6Z9nb7buGGPS5KmBpjSSPG7XL3im0cXBBQbAdgpmDoTAvvegCtRdC\r\nqEf/5Mdu4T5Wyuk0ylg2CIZ6g6mTxDLwYw0l9C8/yRJg710siBmjnSv2Pt4L\r\nywXX4uUU5Ygp1VGbmqrwsjjuwXJbzrccP6NBcg3UdHFTWB+dq6GSUsMc84Zr\r\nzVhDChV8x52FO1nKvy4tt5ukjUGzrdCAVQ2Kt9fLMBStJ4DHEHiL7tpmBHbu\r\nxnqysCtlZzAQbA9DFTeCcgX1LxoOhW6lGeFR56myiMexdxLU+0M7ayq7/Hjf\r\newLsHrM+dd3HMW2RzhDRqnH1EhjQlcLho2+Jnp1QaFWQ6b/l9NUS9S+8D2q7\r\n874JF5xG7Mv9z2Gvb/iLP9yEDSrp3baiMxmIy/Xue64PVUnZg5Q+Pz8EzdVH\r\n3PrVRD2E1PDWOW/s3AIwHgBtX5LXZGp/0GoyTTNhKxgbOJzbtHjm14NO2uGt\r\ndRDhABIcMA9DWZSk5vaORCAQbe0cs+Uj2BSEXlv3c7LX+i+U4GBfJcAgtQQ/\r\n7B5btZKRVJtDxR6qsG2SK9ZxeWEBThX6VCup1yyWs6zbP502emeOmZy4+ttg\r\nIM6M8lh3+ZYp3M/VVav4JbuszQaCZn0pd4I=\r\n=eCIK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.5-dev_1672313765856_0.2512243434191208"},"_hasShrinkwrap":false},"2.8.5":{"name":"parsegraph-viewport","version":"2.8.5","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.33","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.5","_integrity":"sha512-pL32fR5L9DUtX8GCYIVDZsB4s8X1OlI17oKDK2GdZKxUjPcxCmDEM3xMkUJ15LHSntj8aoHDwYbEd+Y6UOywGw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-pL32fR5L9DUtX8GCYIVDZsB4s8X1OlI17oKDK2GdZKxUjPcxCmDEM3xMkUJ15LHSntj8aoHDwYbEd+Y6UOywGw==","shasum":"4098724c2c8418901a20eba1cea0780985e5f4c1","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.5.tgz","fileCount":84,"unpackedSize":1043503,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDHZKitYZi6PIg3GTGmTN3wymxHkunwr266ftwKupjlKAiEAolJ13fgBEM02J7njw0cMpdlrrJ5sKet/u6di32Mys+k="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrXwIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqcRw//d2qhe1JfWYepm3byL6c67jXpr/WeTkTjUduVp1NAU2tKx4Z4\r\nPgWPIKm06Mm3aHBkmq0SLnlGFRJR6LF50GKNrUzltJAxdmCqHUzzjgVZdWud\r\n9/wdoQiszulPpHq/bL9DVnwb83mDJ598vJ+QDzqJ1ctbU1IkYKlKU+Y6unve\r\nfYEIv7SX+ePtexybAUIFZBU9fMdLHJdiyLhCKVKgAirE3XqY3kk2RYmTDPSy\r\n/s1sZ6Ar132bjYNBzp3EXYthi1a3VyqwIES+ujUFIll+7gKxm9oarcTh/s+P\r\n/G2PxswAwSFmKi/7iKMXGevJLwT3wnZHhz2pOnH6Frb2+FAOE474rV8eISIT\r\nY9hmGKmXcQJgDCv0qRif4lSjQYXh3fBpvNO3/AefIep7EpAJ0dXDyWX+0T45\r\n8g19tCexa4m0uAv6yYFEj4SMKtd+C28qFEe9vo5BsP1OV7t+xby+vh76u/mR\r\nbV8oYJuQVN0CbScLhZYV6DK6ug1PEwgl4VrmoJAhEhJ1IsxvP9NqZl9SX27R\r\n6OARK0YoRZHZaPGAM7icvXdibHM8gESRcZVz/PRAd5m7L7IBfoxIufXW49sp\r\nF79DqNPVG3NmDxuYME+rDaJecOGU7h0Tq0EIO3yA8nOKlHo96wTnVqM84k4J\r\nqxuG4Rbk1+1BvwLIxt4oprAlRgwD0HnPRrM=\r\n=mLKW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.5_1672313864398_0.2184180037989345"},"_hasShrinkwrap":false},"2.8.6-dev":{"name":"parsegraph-viewport","version":"2.8.6-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.34","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.6-dev","_integrity":"sha512-twZkc/IlWckuG7RIMlSfE158NQyMUDcmDgu2sKtKcZri8qHjdaJoSFFFAetSpLJ0bGEXJM8/2WMmkEbsu5//dQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-twZkc/IlWckuG7RIMlSfE158NQyMUDcmDgu2sKtKcZri8qHjdaJoSFFFAetSpLJ0bGEXJM8/2WMmkEbsu5//dQ==","shasum":"436d82d9380ad664b2df05999f00bf5d72ada6f1","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.6-dev.tgz","fileCount":95,"unpackedSize":12251810,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEE1cX0lbNCFln28FfD8c48DFS5kWCESAf+ECTqsKWawIhAPPuSlNz330dx6BNpBjhJR7nnwUiOAfnVzgxWVAXPrTt"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrjvFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqXQ//d6L17aoZFRx3h7MwOuHa5pwqJcb2i6iXMzt58I29Yu7QIQt+\r\nZ7N1MKut6cl8feXnwjcLYIoVdjlUu+xpQ8GlwaWB9x49vE8xgE3rOMRXhFZY\r\ny7+EoBRR2tGoQ/Batdgm19+gyUQVZbEM62o2zkRCY8eNVj+xYAxzOAA9l0Cx\r\nrXLDbS8GYJKjyUU4chVnQ0vrt4FpWa1PrsgFeGuDVp1cS2EXO6OLWH5uFiMh\r\nLtfvAtZ/LStH0Il/PHfBTgLhGTodQIrEbXvdO3deb72JWgkU2rCfh3CDahBF\r\nx9FMLP95vYkuLFfnbdmaJIPGi4uS+8d+Y3JIJBsDS+Zn7EPBVGRksxfLRUul\r\nVqx9J9XrDFKRAFvzK8qWwIyK4arNEzBX5VDA4D33wb65988swbcychGJKQLu\r\n6ZEhpcintz60R+R6nHR38jrbF4IOzprg+8g9aun5eHb3poMddD3FPQsdFQ/J\r\nNXjz86aw3ENyugxBvzxB0nd91Y/POiVIL5xmALdpwk+WhWznWhbYB5bpsZai\r\nP8CEhsXcnm7yGHIl+xENZSOgZNoyM3ucM2JeJ1sT+j+npXpTWadNOCtIsX6+\r\ntrX3ct4b8JPnf5uAHWqmg/atl2jakK1W2yQ/pcmmoqLnz+kBESVXve4JmQXo\r\ndQiP601pEAQLBiwEtj1Q1coO5dgGmST7p8E=\r\n=1F5k\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.6-dev_1672362949232_0.07132824926120684"},"_hasShrinkwrap":false},"2.8.6":{"name":"parsegraph-viewport","version":"2.8.6","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.34","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.6","_integrity":"sha512-0/7g55MSbbhAajlS5Gk87QMpF2nTXoCCOhzhQoiRj8NELB3ggFTza1IxRT98UgyWoBUromapdWU5A9T4AaZ6ww==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-0/7g55MSbbhAajlS5Gk87QMpF2nTXoCCOhzhQoiRj8NELB3ggFTza1IxRT98UgyWoBUromapdWU5A9T4AaZ6ww==","shasum":"7948674ce782f0c7c6f883d3c78a7b3a7fab82d7","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.6.tgz","fileCount":84,"unpackedSize":1043848,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDu+e+Wrgn9i9yHlAdHHP+K5njdwc2WG9Xx0CQ1ezbXoAiEA1YO1JdEb/tLnMm8Uj2wtTPeRlagEdaRGHDqFYFaKY4w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrjwdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpT3Q/9EOUYmFqVuAMeRAKQQcgMn4O8O+Oys+zfq8Fbd6ElsCEICpIi\r\n3FQVuJEWUdKYLgPR2vCSlpLLwHSf6lml7TY8Fa1jBtIMUqozVh6nH4OFS0U0\r\nE4+XJgVquwcEOO0bRewzFHug7HJsBTnBthj1tvkKt5f+b9EKXhMCLcumYkB4\r\nr1jw5PmflaSZB+TtRR3tczanXC82lJDyq3zduZlE4Z1WI+uMBlDzG8Gn0ZTh\r\nL5AFbCKemWFfyY5mYxTyVvAPpLUHWeJHYKJXOLuDWa/hw++qYicUVOBbsgLl\r\n3Z9oUKnMz1R3wC0E2Izm6IN1n3avfWW6mx2BQhGvMmwbm5NCL+u5F7z8KZEN\r\nJh4cj3HgsDnnheFpLTNuDtsZxkyUTlq56DcI4zemSsXo+6bfz236sFxYss4T\r\nTs3T6BpBHt9ES9+HvNMrTWWBbXG2WSZO62o4KtG66Wo9GjJGGJx5rzo+wnAM\r\nzvD/EsO9fXuiGi/w4Z3oalR83CU2XhXG9T/tz3Kspa7yv/wKNj2Pd4g34T9Q\r\nGtj+sYzr94c1PZF6uPrxExAY7m3Zq+RHVz/XsvHog29OXFol8sjAWFrP6TPZ\r\nGvv1Xqgxyd4gk+a4Nk6GBfMmEusW9wq00Sqo9+Ufsa/j+FRFXVsSr29r+bKv\r\nGEzGRp5q5aHcA+VmvfWTDPIlhv9KZOO5pkY=\r\n=GT2W\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.6_1672363037150_0.2390702377873899"},"_hasShrinkwrap":false},"2.8.7-dev":{"name":"parsegraph-viewport","version":"2.8.7-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.35","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.7-dev","_integrity":"sha512-jbp5pc8kRIow9GcGZeAY4y7JubQPBZ+3ZpOlFR+xhVbUt7BPnHLaSLmJ/6JVHGigx0AEfHoL0vxH+jxfx0iE/A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-jbp5pc8kRIow9GcGZeAY4y7JubQPBZ+3ZpOlFR+xhVbUt7BPnHLaSLmJ/6JVHGigx0AEfHoL0vxH+jxfx0iE/A==","shasum":"5daaea35750454786ec764b70cefc73d091e437e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.7-dev.tgz","fileCount":95,"unpackedSize":12252482,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJ2eQQonv8CHpRVgc13v7fS9kIVlm8CpPkFovSuEwV8wIgAn06jIU0XK6fOAwazx5OngbmiOANaB7TgJ5vpxn7vUc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrj7XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq86w/8DnV3gGOk0BDyHVSAwhDD8mGGSS9/z6m16rOhfnjzNUp6jmou\r\nj9JvmZcy2iBGiXwmyeaRTcSBsstLo9T6qjFBL+PTYquR7J7Jmkd0KCxd79NM\r\n8yIVuRJNni8MPK6V7/T+rfDfsIJJLge1/0cPZcTe63tlWjq4OlAAW8h29aG4\r\nbfAbUNSLbGL/bZ4L8B+H7yRsn3V1H+jKI5j818DBzJFanExVaO7BViGLQdhB\r\nFrYcDkLbM/03jjkrasJVg5rZ66ZfLMxFIrpnRDDfTzNd9f2a/W+bQ2TbZNiC\r\nT7Cu4TPglnheqtfiuonk35y4v1miM73Su6l7/mU4NrjDim911+f3fNLO9UoO\r\nCWwsvH2fPMLkBCK1HePXmki306e/2VHauNLU5WkQMiGaCej2IfOT0EgwiV7G\r\naUg3KSb77IACiL7nD3Xdrh0CTyKwc8YdY/i8V7EMZLIW1x72mcKUwPkf0jJQ\r\nm0SVSLtvdNlbDWtECV0bc0A9kh6CX3+TrS26nulRhl/M00cG1bRh9r/pRf8/\r\nP3GUl6qC5svsKW5aAIYJA/wIkrZHkCJHzSvdwrZBvXJGA/ANrM95Iefm6ION\r\nYWBYWALyliK1CrPYLLpnl910MdVflo53PcwUMzR1wC3HXTteWUhOj/e3/cPs\r\neP+aRndC+mC56fi6cXRpGzRY2iLSDbO8SAM=\r\n=giAQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.7-dev_1672363735409_0.40558673478106244"},"_hasShrinkwrap":false},"2.8.7":{"name":"parsegraph-viewport","version":"2.8.7","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.35","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.7","_integrity":"sha512-8sPmkHUf9Vd7e4I7dOYlObU42KVXGbLUHhWf2buUsBm7ciVFYS9AtivoBjxiRXvdHG7/JeRBycCvPYk8NP7pPA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-8sPmkHUf9Vd7e4I7dOYlObU42KVXGbLUHhWf2buUsBm7ciVFYS9AtivoBjxiRXvdHG7/JeRBycCvPYk8NP7pPA==","shasum":"3032d5343764818cd71eade28a5f0edb0f84dd53","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.7.tgz","fileCount":84,"unpackedSize":1043920,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBIZK5NOsa4nG53qbRooW9W4aIU70U7kjIqRWYQ/JHesAiApDfxauxMCikaMMJmNshz+4uzB4IcAGJylPiWIk95+kA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrj9PACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmob0Q//YwrecQkqWYXXRY5Hjm+fVa8OrzL5qCalXha7UAF6gGPuVrk+\r\nGxLTcfR8i9ozw+yZSPKw+Y7aNJyGw5LhOloM7f4MDjofCx93mIQbueWXX/Ns\r\nbtgNvNbzpunj8iXCXWHvPZF8o90KbG1j4CZryKkO1GKQ2S7yGMKimY3DtDqQ\r\nZGoD8yO+DhLs2SrmLEBz11to7I91HxnIfNh95uUeHS7hFTwm1lDojdl/4HiZ\r\ns8YAWRBGiwvFTpklbWJFYArKcKhmGQek8biHeZ3BtbAR3xoVsZafBKxq7HPg\r\n9yAkRdvUF/nVd2BkQxn/LX4mSF3RK2DkDkXeasPx+wd4YH4BKlqWK6z7l8NO\r\nvpnvA3AAfq+Gg1//VkMK4Sx8yiVu5unvk6cS9EckLVCHIvyggh7M6UUK+5co\r\nLlDZVDMhU47dRHG0H5j9fwp2Q5+cpoGnTNtDehElspDg+toOB45Y5nLEIuA1\r\nHzDVoPbQxz5DA3kpmr8aiq6s2Uvow/rWGLLhqt2Y3kqpLlABHaLSz1gAgzTf\r\nTPTfbGoHKpMBg/uuVjF7IN+HyKvluSSJ+EnQJdIPGOjWTe8wdGAUu0/Je3iA\r\nbM+YKoXIDV+B/YhxZIGRZLN+4XqJcie8JY60PgyRJivxKJKxdn0vFnPwcjLm\r\n0xvpmLxwR8YUsAgk3tZW8clwPP3V7BEEiUs=\r\n=SgzH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.7_1672363854767_0.5888273402625839"},"_hasShrinkwrap":false},"2.8.8-dev":{"name":"parsegraph-viewport","version":"2.8.8-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.37","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.8-dev","_integrity":"sha512-wPc+9tkH1QAIaCS/2udNjhnV7JSpljQ40Xv2JoMR4oMQfuOmRomOXdE9o1xLmQKakmDIjGCFjj9f+U6VNPy5hQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-wPc+9tkH1QAIaCS/2udNjhnV7JSpljQ40Xv2JoMR4oMQfuOmRomOXdE9o1xLmQKakmDIjGCFjj9f+U6VNPy5hQ==","shasum":"3a2868dceb023b50447fbe9bd063f4349915da8f","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.8-dev.tgz","fileCount":95,"unpackedSize":12252810,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBmRTCmq1grjS0HOlnZk7UiggkUUmSWChh3Lw9HFIMaYAiAULvEaldtTcwLioHa3k/sqZsGJjiPvdteM2ATCdBUvIA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrkmNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXMQ//XjeAE8GbwnxWfmV9RtydLQO3+KSVqjI3e9o8TazXT3hn1hFn\r\nezsU58z5tF+0i3Ua5GNlrBal4mVzQmT5VyfuXZVPsAa9bH9mIRV9dlxYElkc\r\n5xUwxO/SaAHbx4HvLGBTh5d8D6BykoBU9VvrWJwG9F63MZm3qPBbWlCdV79s\r\n0+jX7eWY7M50oAV4H5M3UB3kJHJLzMg7Gqd6gmFXuMdKvDZJJcBYmaBI4pLu\r\n31xdH5C9QTJ1FD2+dWZCeyRDoy4nAPXT5cbQu56YlyT88nOhtibscXmXTXSN\r\n0DhIK5X5Kn/PepaqygblftTi8uAsoHiRkxQY24+9TcFiOIT3eX9AMhv2zGLa\r\ncLQKn0LRSVsSfnT/+hSjZ4oM5fsMk5OplJUsMtkoTm55HnNgPjxgZxkoFZSE\r\n8QXB4Z6p1b0VXQhCqp/MR9FdYhI9qUz/msbXTCsLOdxTNYIKJE2qAhAu1Lpq\r\nx3BQhLvjCMGzygUxXOOEo9BAhNhk6YItEkVVa2sYvWt8/MWC1koBISvaQQlh\r\nsp9VrjWWEPtVOiIn06f/Ytn9BLNYc7Fioj4TVhfcT19L/qSuFcNUqsU9rE3r\r\nC8aznP05MYr4yJcP3gAr6ZMxBfvv2qNJeuIEvsnIjrIuZLq25Hr1oQvgG8r3\r\nH8pN56y+t1UdBwLeAvW4AGCW1OX0wQIKORU=\r\n=TTuZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.8-dev_1672366477364_0.4130913711025521"},"_hasShrinkwrap":false},"2.8.8":{"name":"parsegraph-viewport","version":"2.8.8","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.37","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.8","_integrity":"sha512-uar4iAB6cUS70zo47c/dqAYeT0KfrB7jQ6gK2IeORFw3mDDQLyC6/834dx5+4OpJyRKL6BqJ1IhKp7JaLMdNig==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-uar4iAB6cUS70zo47c/dqAYeT0KfrB7jQ6gK2IeORFw3mDDQLyC6/834dx5+4OpJyRKL6BqJ1IhKp7JaLMdNig==","shasum":"512e0d1c369534321c5376e6593ffe9273304744","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.8.tgz","fileCount":84,"unpackedSize":1043946,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFxv+8MJlRHsCwfNQ85yGg9Jtw4J2NIheTvmTESl+xIXAiAdCL3Ow1dnx1IooCYi6QYjngjb4qfyNGnTVmTlwkX4mw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrknnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/zg//UusFar3RNaEL+uRdLEOb5dxr46osmrDfwoy8M291oMnMlrgB\r\nydzEiAFJheWC8Ojh0u6Cel+i/Rs1hUSaGFIndBmoB9hQIxWbmZ71Xqj4fLF8\r\n307yR/LypGAWFolFFT3dwCMa74LuP78t9hd/zmuzx3lHG8XNnCQl1Nqr9K4+\r\nJgpQ0i5HOZ4LG+S4JuOGdNm87Nozaj8fKres3/8oJE/+J9rIgsZWISY97Z1t\r\nL+qWtrP73CRgsdEdVMLfAztc3Ew8dQFquMgfP72/XdEVydVKzaRFW/LTPWCw\r\n+fn1fqvTEBcdu+awWX79KCEHROCsB4ufsXT49AfZpaum1G3Vc3vogM3K+kGT\r\nLpS46V8jOQqZYAlsinHwe3nBW+1Ti2PjJqToJGj4usLaTfpCylruEL6oP4Kn\r\nqHUSqBfqaR2AiDwzlUEsys8X2p2rpHq0OtqjSaZnPIzbLR5G/4ZUaJqDVzLe\r\nqBSmboWNAihFt8XIkJWAkSd9Su+KqiEckMzOmBXtdubDacdtJd79So8eL7jz\r\na5qOCXRZGkbHrZZ4rDUrRlngxzl822O+WPJk2FiZ8cx3+KpEX6J7Ep1lGOmH\r\nSwCVAjDYs962d+dLhaOwZhsspCgussUhV873g4dzig6yKcCY/r026zMgSQk6\r\nPqShfR4k+UgAU3Ui74z6aYGty6kfOxwclZ0=\r\n=CW9Y\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.8_1672366567060_0.8060664537728139"},"_hasShrinkwrap":false},"2.8.9-dev":{"name":"parsegraph-viewport","version":"2.8.9-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.38","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.9-dev","_integrity":"sha512-QvzcJlFoCx8pNYtk1/OlPm1JsNILsVrcerWSXLAsShF6v3MYJh/nuA/mtLucSF/rg1lmfGvERGY0eUYFOjam5Q==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-QvzcJlFoCx8pNYtk1/OlPm1JsNILsVrcerWSXLAsShF6v3MYJh/nuA/mtLucSF/rg1lmfGvERGY0eUYFOjam5Q==","shasum":"04195e8471fc79ca172704da89698c30c7956895","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.9-dev.tgz","fileCount":95,"unpackedSize":12253062,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHhysApv0imXsjvryBIg8y5st/jfL2MUGWr+fR1b9GJgIgdvW+4Q8AHIkR2GoeTqCqEF9DA/h5GhIQPNSCqMFWaq0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrk+0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZYQ/+OWgZuNNx9fDt4NrQPbnPZc0Lv2bFVoMjFe38IU5MJ8nPoGrX\r\ntjIGBpRTKWAZY2bqX3aTJXXipmRG6IhXZg56+PgDkHowxeauNqjWjMlbT/vm\r\nZXijI4wI32q35x2pOTUGtGXy9kD7tqjQYzhbljc9Gwz1D9+HdBkUYzO6lkhG\r\n1spPGkkGyXjOoaznEaluc3c5O5hMzO6egE0WSEJFbR4uHvdhEQcIoSW7q/Ej\r\nUexcR4t6VUOGJQsMRiDzyTfI2uo4WCHmSnW9m4BtQiH30VXCkodwfzhO7nrT\r\nxb9WtxgXQZuxPod6I30Od+158Y8Ho+pvC3bSnZx3zkpi0ZurBU1RLV5OU1Kg\r\nnM6zO0RkAKyQxran8tTLW16y3C6cMX3SWVT/mr6oOBvlKiVgEzBvG/KQSJCG\r\nm3sAwD3YlwpcHLjAful3UrArJYQ7idHHJGjq2FE8njYQZkaKY4KbT0FEaDWp\r\nTa/VqG3NoOo2p/GeR+xBppTAh6k6vKN3Y8YGjARy3Nz/6n/AUwSy6pCMUceK\r\nFXBAhOw+euQFqQJLhk0eZhzBJV0VqDp6lHi3MdsK5Xf9+08vUIDCAngVi2Dg\r\ngw9EhPt/Ns9A7OdT3N6hFV21zi/JcC770+IYK8zYPmAg6G2kalttixgkY2lv\r\n4T9gc1/EFzkVvBSy+Q4m0ysp3s6Hx3uOmtU=\r\n=4+8x\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.9-dev_1672368052536_0.6695382166999837"},"_hasShrinkwrap":false},"2.8.9":{"name":"parsegraph-viewport","version":"2.8.9","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.38","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.9","_integrity":"sha512-KYGFr/Ca3IDZWUlluhdPP+k67gm0Jxwml1pOxoYO7Lgz6puLVH7VXY5l/jt7O2mFt1gl3yjdKcdXx0fDntwIrQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-KYGFr/Ca3IDZWUlluhdPP+k67gm0Jxwml1pOxoYO7Lgz6puLVH7VXY5l/jt7O2mFt1gl3yjdKcdXx0fDntwIrQ==","shasum":"680d15dd654744228c34a395c8374ff4172ec1e6","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.9.tgz","fileCount":84,"unpackedSize":1043975,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJKnCNHBq3VfO0ChFpJsMdektKmixMogIO8RV75t34dwIhALym9JbISVa1gIxqXXrUNZZaD2DsLWj3ACp8goPFZYVU"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrlASACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9EhAAmdHeqwecjHrbpLIcJOAPQTfiAkxg7xOpRYpdlJ8jl0B/Ld8t\r\nWvCHweHgypnZsrAHYrjxe2VeTrMct+f12YZNorBBfQkCXEfd9GP1HbLg7WPf\r\nWbzf0zSxwYSLpHkDCZpLDTAJZRe3haxu18uKg6W1NK0mTeraVaPfLPbSoC89\r\nq4gEW4hGDCOMRg7GZqeGCCxoaN5OlTGlVYQ2A3dbdLYQubQ6OEGQSklQY20H\r\nAsX2JejWUKWFblLcWcR4a7NdalXUJ3hdX1eu9gpIWvQ/zJDY8KZ00BAkSNbQ\r\nvaKxV3AD2YB8FkXuHT7vpJreIIUF01S/ZPPepy1WIIA0KLgy9zori+aplmVv\r\nfLXDfPIrTOtsiYWOfJ8J7ZzBoWCncz96N3+8GM0edWba8n2U6pc/pr4NplaL\r\nkCbK95iIJs1W+64nsQCtuJR+i9S2mq0cDCXfvRtcrA51naWSQmVc/bcogDgQ\r\nb/Rvt+25t39rgLZA84CefUmkRE6GW+ZpL5fovik94KX1Ptp4zJwKum/0f2Zw\r\nqCFSmatOLjvGris1l/cTX2LBpPyQjcMLm/sXWB0BwUiH+iTIy2ayCTog1zXN\r\nlxuDFzZgnZRBd1EbwRwGavHlug24OtAtdd6QN80iqYfhAB9nYODXWtBBn8mL\r\nwSmhICp3vgHgBKsQcwOKrx3GXy184FzzDKY=\r\n=Stze\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.9_1672368146440_0.04040918493942547"},"_hasShrinkwrap":false},"2.8.10-dev":{"name":"parsegraph-viewport","version":"2.8.10-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.38","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.10-dev","_integrity":"sha512-1M0yn9mG1Sf0odrPXR9IskApwuonGGRqVlJSG+TIcTGRPtDauo/an6em3C/zfkHdmBj6crcztlE1OqVH2VA9Kg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-1M0yn9mG1Sf0odrPXR9IskApwuonGGRqVlJSG+TIcTGRPtDauo/an6em3C/zfkHdmBj6crcztlE1OqVH2VA9Kg==","shasum":"8d1eaf71e19e24ff19f022704a155da98e15dd61","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.10-dev.tgz","fileCount":95,"unpackedSize":12254022,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID7RL9RHi8l/x1NoPYLcsjR7wROU5ck69ecnIA8+H1FLAiBMLhuFc+YQwfgEpXvafaLM1YuGrD2RO5wwy4ZcB0jdqg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrlGWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmohOQ//eQphoLpnmf6vro8AOHvM6sZSb+eBLfarmBhorXjaVEDhu7bk\r\nBgNAB2eQZC5RQDtMlUxJZWiniYhWPgyXwxZKSdqlVwRws1ZUIMsHo7FcyQiN\r\nYbJCzAWkcmSBn7+//2JFbOo+1BRFntaCiZzjYdJ25ERUovajSDJaZmks8JOV\r\nSJDqceUnMgC9neMUd9DJVl8istOA8oX5Fz7QWkCk0oTUzwzuxDqDG0jB55Em\r\nU+ZD16j/QZ8r+gls5B+xhnq2bi2/RQ3XDfcDzJzGEfkaEJPTbbIqKDX5VxC/\r\niPKfoLHK6D+ZKojV0VPs9APqLvFj5kInCLwUEW2jwIv+Ndnn8LUMFDKEjOl4\r\n7Z+5JZkwnPYYG+lBm+ilo7NL7kZ+PPHT7Txkq9Q/4XGtIwhYp0RSCWbZbB2O\r\n0qPbnXZ7jKSTH807cyr9XwZSLJ0GG8hmlNpP+inegNEVy/oUAKvhfNEyv9Me\r\nGsbkNXh2SGbPRCuNg5WUo06RIsPyRQ2Bxs49U8A8lVvs4WkDC5BlA8qnZjfI\r\n2bcZ+MaQqz/KaFJXf6dhV6Xo2uVsJ7gRwgJyyd6oA1Ej8+nQmXGqy7Qp6V2o\r\nOQ9hcyW+ugL6wltFMTL6UOG3xRsYOIqDycP5kkv1jf+MXzV+Ugv8NdjFfpeL\r\ntu1XlRtV3/zs6Myh5vZqsPsSJRdbxCnN2ng=\r\n=P/cO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.10-dev_1672368534281_0.9060072506505714"},"_hasShrinkwrap":false},"2.8.10":{"name":"parsegraph-viewport","version":"2.8.10","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.38","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.10","_integrity":"sha512-ryjLKn3i8ETuTqzhyp7fLPgGSAmdXkpHhXsujU57AX3mXda2W3QrAyGrK4mXaQ03gCjnNtpJNuTRKBpx4+Y+2w==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ryjLKn3i8ETuTqzhyp7fLPgGSAmdXkpHhXsujU57AX3mXda2W3QrAyGrK4mXaQ03gCjnNtpJNuTRKBpx4+Y+2w==","shasum":"d9c30a7be090c5b7d7d91077e9bb75fbd1a7ecdb","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.10.tgz","fileCount":84,"unpackedSize":1044012,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJtM7YpAGYpWLnV2+ihjs9xKoPZn9JhBHF5gCBqXqMCwIhAKgDYzKEjDFAUaEhiPapWs9SENeh4fv1RnRK58jGcuVm"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrlH0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQqxAAk6E6dAX8vJdCAxpcRbnWYQpXqUOrlw16o+PqaG0NUolEQnGS\r\noe5kyB7l4NcabPp/pm+Q3AZI6tEH/lxnmuignMq0ljeuvFAZI8lAyAhRCc05\r\nwgrBIg3NDBAhioc2rrtxxRLSoVWZ6PhyPvewhROm4IOLm+Byjm5p2vxvw5FC\r\nCBiUkJo6AgjkYnSUqTl+Tzpm+YBTzFL0l46cG/lazbnhERJx8Rk8yAKLWLPv\r\n0IpEoPJnWzBmQfcrJ+Ltw/a09GHJkJ81cwasIa06RXDrHUy1Welia3stobCe\r\nVxUzJ/S+sB+OYVf6heW8rD7iJUWMSqbPMjKhr7f/LJHBlV67N+eYaRS4AXNy\r\nekgkCuIsSRS74Va3enHch0Ls/QR3yJ6Fub4/dyWdjJEsoHo1tn/xukF58XhN\r\nrW9KEpQgIbtW9Ytv6xbycghVyaK1O4n4cWmgsnfHgQhwLZ96M2bB+oEgwFNl\r\nCy1zpEnwG5O+b1PqsXGfdjWGohIYZgYJBs8TX5bKl6XIbhDWFSshcya4rkkW\r\nM7mZdTsltuq6AzZgr4Aa+0wJTKtNnBytjTaq7okfxF1T69Gxv/+HMUnOO6F6\r\nnUFRRYw+owFZ0UXIViC6zKXwLjBAv37V1/+tOUAYpPD451EQIy0nvD0Dd3cr\r\n1MZIFRTNwO/fKALpVTLURkgNSV0IFeMce2g=\r\n=VnqI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.10_1672368628763_0.7617073948490694"},"_hasShrinkwrap":false},"2.8.11-dev":{"name":"parsegraph-viewport","version":"2.8.11-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.39","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.11-dev","_integrity":"sha512-heRUUKRXLWFiTX26D56QK/bXv3wTbJCbwArUHP9lp/dMnZ/uQshfheUC6FPCBjqDK7CtxaLz4+adObFKnLc+KQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-heRUUKRXLWFiTX26D56QK/bXv3wTbJCbwArUHP9lp/dMnZ/uQshfheUC6FPCBjqDK7CtxaLz4+adObFKnLc+KQ==","shasum":"14d3887098eb88c822f2fe3ad8938261ae80d1b6","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.11-dev.tgz","fileCount":95,"unpackedSize":12257635,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC68biz+GCm79KTgeKPHBvizZKHGDWkJ2mLZm55JBrI/gIgGyueKxiLkz7Pig4+lif7byuIBanTG4qt5I26dd8cAtk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjroWkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqmGg//T+L76PXa8sxXvVAAHiO1DEqZ1iF4mRxMgkMg4qQYaiyylzJj\r\nDUjyls0fX9HrHpeQd8KhD+ltXDC/kWkNtvPyN3PhnNVamu0RV6aOpLyR6GLh\r\nMBPkn4IWg0zzUY2cb9hdonStOL9F7W6OEnG+4mO5d97lZ4134RHx0B2CQW/W\r\nTLPZkAxte69rIdzcWuqVU4SEQdubudYWz7vpo9h34ehIbw7+Cuo8Wy0kHhan\r\ni4L1tjdYqFAMhS+o7FHztmng1BcyVKSSRAstafupF1OS8edbDXcpr0bvrJsz\r\nNhTWXjnTlZZl9RZUnbv8rQ2KhW9PAhvpTYKroLkqWS64AWCMXu5dkx0rSfdk\r\n4VFnmzHcY691QPal0zXmcmFUcWfZ+XZsgUvEB+XKiU0+fTVdnfe1otSUvdXM\r\nE5UViFiRF9Aks48UOgqXU2RTbL2sCX1ZlpfnJaTW8tQ2kZN4xISDMRujXfsn\r\n89Pn9Ed0cISQXclGmnf+j3fbG689KnQBLO7IUgToHexP/vx9809hruvrXKGF\r\nebJjbBIM15KTp4TSYRYvOrP1SQQy8rzhFt2CDsgjKpIlTpwpiZNGZqG2/Gf3\r\ntIhEej2O1niKO8mipoxOAVaSLPfGWK/o3565d4E3WZJruB7ERtkjPs9S3HRR\r\nnox6qi+C7tQ4SWTeKDAkDgd/xvA5y2fUc1E=\r\n=t38Y\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.11-dev_1672381860274_0.76655760993116"},"_hasShrinkwrap":false},"2.8.11":{"name":"parsegraph-viewport","version":"2.8.11","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.39","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.11","_integrity":"sha512-gPhpnTLGqDDna5vQnlHBBF+jeLiIomGODb3qxdk4wAtU0lIkhUhaZ5CwFzfTOhT2eg+k3j3HjXK2ENK1MMVPsg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-gPhpnTLGqDDna5vQnlHBBF+jeLiIomGODb3qxdk4wAtU0lIkhUhaZ5CwFzfTOhT2eg+k3j3HjXK2ENK1MMVPsg==","shasum":"e51ee167ed15d76c77265e9c7be6cdce6ffadd9d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.11.tgz","fileCount":84,"unpackedSize":1044326,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqaPSCz9PFMvQL33GF7Fa8zNeaA/hnAc9OXRG31heSpwIgHJakVeLl2hfMvPJ1bs0e/O5iKCaF8+afUQjMZiJkrFA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjroYGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqtAQ//fhfNtYI95ZwUEgH1rL16IqXqCL0OJVUNQF3HTf75XoBuZLyl\r\nPZ6qtuk7ZJ14xgTQsYtzQBv0+cH4pZdHUY/WMoveXGi9lav8t3WQ43Rg6z3Q\r\n4H4qL9EyNKJ92tf0CvcGoSGZIiq1uQOJHsPypDN91f+RQB7AHVz0PM8kjhxt\r\n+1SPVjv5gfGTcup0TRyNpktgHWrTka5+9OXZkyYramxrC2nocp9SwccLnK7r\r\nJ9EHT91Y9fnnBfreazOctksq0Jnr/k59QURxCa0qHXYOMBrniuv/0ZlaYTkT\r\nlT5ItobljvU7VN1PriIoO9O2r4wOjgsoxgtvxzm3yFactVnMcoITsQXHV6NY\r\ncUicsNGNvgy/uaSMVrLYa4AtJA9KXvmTyj6CSlTxQ6uwvhm+QmsY1hWHdmTo\r\nOTcjJywPIUANwiGsY5LOVTSGvpCw522O2pVZPy+vBgWfFSYoNXoP48ROPy/P\r\nFSuiMbuLk8tuFDIt0Vc0ewtcUxck7Cm0ixTvyJauaYPgQzu4vRYc6Q3HEthV\r\nUnkJyQtXIJDQ/hoHR9YLRMrKEgcH4TKDWyj0cO+ZsrkFjp8cilazFmmDQudm\r\nfykhyDwR9CjGeiDaiRrr9sGm1EzAkgryC4uhnxsmCqmQc7D5n7tzl+tq5G4L\r\njLBjP/UTgmMtOjFf47a6Yn5QPX5DIWa1TUQ=\r\n=n6+Z\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.11_1672381957714_0.22361548326221636"},"_hasShrinkwrap":false},"2.8.12-dev":{"name":"parsegraph-viewport","version":"2.8.12-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.39","parsegraph-texturepainter":"^1.6.13"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.12-dev","_integrity":"sha512-CldC3vb2+qXJ3V2kfCc1hXKFMwivo52dra65b+/8oQ8I3Wje4Ebkt7bnEi8n25jzr0H4GPxbIPQpWU19NwiURw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-CldC3vb2+qXJ3V2kfCc1hXKFMwivo52dra65b+/8oQ8I3Wje4Ebkt7bnEi8n25jzr0H4GPxbIPQpWU19NwiURw==","shasum":"ea3778e4751d1b32d0296062c73c2773993e5ac0","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.12-dev.tgz","fileCount":95,"unpackedSize":12270034,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGJMWuGnoAFuw957pKLKJwxvfsYmfM/iATRYnbMVwk/LAiEAowluQpVXM9JTmD5ViZmEx9i5KoDrxfDCgHjdNj0lgB0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjroo7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoEfg//eSuyQrPVOxVEgBt96CLRFZ9y1YhL1xNy8zp5uMAFCSfz8Nxr\r\n2/cmp5cXC5Hz8c4WR1dpUajVYt9K+OIloeSGkS6DUwXe8y0TzEER7na/r7OC\r\nxgUC6lAvVz3FWRg3VwAx6npoawmzJ5/YMryj2GBk7qDtgeikTZ2RCb2K7t+F\r\nLvYBzrXM8CjeX80107PkJxSx0w6PtU7q3QdE7iUtSDgYuH4XoiVpUHzrLLn7\r\nGhjt4eRYeGovd03GlKKIiJ/5/lZMpepH8CBL714W+2E2YebRESXzZ2KNeJ7A\r\nSp8+KQoNc4fpdpT4Fdqrt5ejEqmhxtjzTY5XkIPZPkRKlw7Wsej+94pXC6VF\r\ng2DJa3+J4wpxPzcPj7QzhUZIi/OdW1juaEpdOHTJIkvl6PLuiN2PZeSsuk2+\r\nYVbv4x6Y87xXeoHK/SVaeo+xnLlErOR2utq/so/3PynpVUFDf+g0R+FlQRuY\r\nnx9523BMfYfxQDC+PM7Q60HpjD3v6pNgpKds1ggFLPe4p7AUIx15bXGmwPO8\r\n5xFt56OfVp6UNb8P2Qfwo8PMqHNFSqCPi1QjORuf4Ph37uo+gnNM9NP05xqn\r\nQ6xMCgGk340T1pj2esrPmGHJ++F6LmnAablF/QbLjnyudIyqWyV5s3+ytC+z\r\nhHzikW+7q8wOy1Yae3USO7lsJeb3qWfeUpU=\r\n=Sp9H\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.12-dev_1672383035013_0.2220075769728962"},"_hasShrinkwrap":false},"2.8.12":{"name":"parsegraph-viewport","version":"2.8.12","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.3","parsegraph-log":"^1.7.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.39","parsegraph-fanpainter":"^1.6.14","parsegraph-graphpainter":"^2.5.39","parsegraph-texturepainter":"^1.6.13"},"_id":"parsegraph-viewport@2.8.12","_integrity":"sha512-1ylDxsTHrC9/Leabv083rnPL7U6SaxqsSv1nT+hMOL/sUyN4Sk0c6JE/Q3Gwlek8IYBSp483QYlHCMN4tUmBgA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-1ylDxsTHrC9/Leabv083rnPL7U6SaxqsSv1nT+hMOL/sUyN4Sk0c6JE/Q3Gwlek8IYBSp483QYlHCMN4tUmBgA==","shasum":"bd20523479375db6b14bde61c73ec0882b954c1e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.12.tgz","fileCount":84,"unpackedSize":1044772,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC5czsbs9nYD8Qtmk4vgey6YeKLX+dylKFbiQA9o8NOMAiEAn1/qFST5O9gOSsQSzVKmhTuOwfrsFN0wvVRL/Xrua/E="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjroqXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+ew//Rk7N4Ol5hERH6iDFGSdlK6SOaTtL8AbXLAx3IZQCHZ4cQYjS\r\nPan5J2bkO3Q5cRj2VBWlOGXfXOrcvKZwUkF5SmN5ok16vw8YlkQDrdcW+TdV\r\nKSYLGdrNIX5rSEWVi5j2XMksAiLc2WnqqLXgV6+sPYzGJNQJQGPojSaA2b3B\r\nGS8RqTmxKpUgWsqIETt93VScemdPCFiVzI/U8HuwJ41HgALW5uK66aZj3uVR\r\nGM3pCvty2MrTsrwxZyr4xeHiXIuMSMShJRRwXSThBo7vNwlpEYDYunrK6p3o\r\nun/xQMayVHLDCFmqCRWCuxQ6/+YMvhH5QHnPtFWdADjKbRGXNlQcWer+HfE8\r\nK55O8xYVOB0eVtT2g0PJnJwIxCsl0wj0e56WfhcOLChsl/CD6Y1IPXeb6Cco\r\n/ZpGBFWDDqLIx1yZjBLPp3ezOBhlt3DvPMCGbxnBKvaC/UqI2YvsJk6qUcF4\r\n+MO7CEqp7Cqkk81wUtlvCzB2klzL/2MMCB+VNnB3JoUmxtkwXXpEMIp2REDb\r\npKDkTTXX/I6/V0vF772Ovwjly05Sv3MfBLrRl3Myn7eFYZh0EiB3JXVvXv3B\r\nsPs9RU/NfDW9cOldzxXXHi7Ndiqd0xX4kuxCV64wH2yw7LO8NLmsISv+1EBs\r\n+0ntSR3YdJPddsyYbhWtwqitq6cRaw6c9d8=\r\n=MBWJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.12_1672383127516_0.6538787923507188"},"_hasShrinkwrap":false},"2.8.13-dev":{"name":"parsegraph-viewport","version":"2.8.13-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.40","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.40","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.13-dev","_integrity":"sha512-/s86hhBNFbXynQ67+cFU3kP32FMFPPds2ky1SU4c/wxM7Xc8oeay+9+CbDaVRyTKTQN3yGjQviTKRy4NTedy+w==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-/s86hhBNFbXynQ67+cFU3kP32FMFPPds2ky1SU4c/wxM7Xc8oeay+9+CbDaVRyTKTQN3yGjQviTKRy4NTedy+w==","shasum":"64c10d1825c08f9527c6cad5f1c5c0027775ac9b","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.13-dev.tgz","fileCount":99,"unpackedSize":20436946,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCf//rTivPEF2mRFlApicvux4Hyc+BN/+dds/NVIrAOQwIhAPkaAQGqCLMK69JL3jZCXk8hQw/wn173K/ltJMN6HNAW"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrtwnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQcg/+LJOMD4ZT7bBvOkk13q93pV72BQqDrKsY+FcUuGlUaHfsbHC4\r\na6GyB64SOPNys8hBoRtJcK2zDk9jfTxJvGyUY0RvuFIlcrGDsryfmu0o3pJ+\r\ndQ1Zv46hoqG/P8IR9yObvB5bveSLuE8rOzYCfhChumlyevVTU5WpnzMORgzj\r\nXRumbV1Gj3FqqJ4PQBHVC4HCTGG/quZnG4jcrJ3kJDi64vgftuU4Cnr4kP+m\r\nmCkdGF8e4CxfkMPHloszB/dyGeDsg5+/rpnKDhJieA8UJCrTiwg6ROYlYkkZ\r\nfOrYjJtszOuaC4f1VuvXaCa3wivbI5iVqb/MkZG4frrG+bpTiMkHfMnN/JvN\r\ngn3f8rEMCQ62KQ0RiaojBBJtoWNWYKyrLvnTiWSzwTKyuf3LdBEMUJ7+HlAS\r\nsT+f9qIBv+zghbPYAAZTZT0sBYP1r9OIDMufp4lMeihgFOVdBUgWYrb5/aLf\r\nyzU5VXldOCR2CbTVAKui1nRLCfZSTJf+YWTkdEz/omLNZfRjqBNoUy0ju5hU\r\nl8JIB39cNTvqfw6kkN7O4tnOB21sWml+Z3HJQPcjS1lChwcrMKCW+q5Xp5Yn\r\nBCBDmxhncTOguBFIXZnwLWy4sv57qP4teYbyIzUSWHgNkxXdgVM8lkWSy1B3\r\nbPsdgdPBVLj1TWCjwIGDM/1iKrAWA0vuff8=\r\n=LzIL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.13-dev_1672404006965_0.003357711554707432"},"_hasShrinkwrap":false},"2.8.13":{"name":"parsegraph-viewport","version":"2.8.13","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.40","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.40","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.8.13","_integrity":"sha512-tFPWIQOL5WREyIiaLCFMhltepMn4mS81wHrYUoHh4pTAEFmQrC0eN5ehkGv+ztJ8GHRFTMrlRK8B76bC5tjHTQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-tFPWIQOL5WREyIiaLCFMhltepMn4mS81wHrYUoHh4pTAEFmQrC0eN5ehkGv+ztJ8GHRFTMrlRK8B76bC5tjHTQ==","shasum":"55730c89ab19f71f325fdbc2d956e82d9ba4a13e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.13.tgz","fileCount":85,"unpackedSize":4683637,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuD7N9J6iAxQJHl9stvYo4RuuBmQQGO6uILxOnRfmrjAIgKuS+K0eDlf5ydQ9SAb6Ve67nTyi58ONz1DX7+FgTV4U="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrtyaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoglw/+NRfjscYHf/KeV7XFEuIZ+gL6c6sFhalBgGgyXviAGRwKtXxW\r\nhjt51FRtL7P+Ekxc+EZbMFCT0BgPj/kAIj2R1ufSp5aesImz1J/+6CP0cbVG\r\nriJFXg4/UGgIiZPULi1+nJUsDVOcX/8d+9eL9YiIasrW/rlSSXT0THvGIYiR\r\nQcvMgUbHI00uOWSByQ3Fnpc/1WIO6s+78Mf5TyE8x7tT2y4IhmPqRmWRb4uD\r\nZ1/vDsxGatxIXM9fYM/fXqGf5I0zBek8kURgwbHp7flYR5cYk6hXjWaRbAFo\r\njmuGMoY8FXaj1LpaOrPpodT4a6lKIe5t0XS6m0rGn4jFgQA2+syBgmnuTT25\r\nFfIFpqlCIZ1TheQRthUsfmuwlgfK+mQ1s6VhGtrGrJ1ZfOiT3YzFw8fJybdZ\r\n+KK/C+XgYnVLbeBtOP8zQTRsjmdGXYgYidODBTbPp2m8FEIuGE0ZPa427tTg\r\nOu+ZKDFBkHZ0cy7awQuUf7rm7ZVzt57c7sh6zp54Jk3aEyT3txZCJSse+0GY\r\n9Cfi9eERh4R0neeKp52Lx/0xFj0jDz1HQXQiBxire0GKNWv2Is4M2cacanUT\r\n2kZ3m4HW+r1p9EBTxB1OGrB6csulZRSrZdGVQXQ31g7qGtkMAo3ylxUFEITc\r\nrs44hCNZoYbb5hUSy5pv3a2kKjjjaiuAOLo=\r\n=POdz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.13_1672404122612_0.28350272933623"},"_hasShrinkwrap":false},"2.8.14-dev":{"name":"parsegraph-viewport","version":"2.8.14-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.14-dev","_integrity":"sha512-Nufi9fDR/mcjGlhOIJQnyj8uUWOzj8tJG2hdx9YinWb9uRMuvWcNIleNbzeZH2689geSU9nChwnUPvIBmIGR0g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Nufi9fDR/mcjGlhOIJQnyj8uUWOzj8tJG2hdx9YinWb9uRMuvWcNIleNbzeZH2689geSU9nChwnUPvIBmIGR0g==","shasum":"c8ea6b9b61aadf1cc422e3b3acc96a0b2f57a921","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.14-dev.tgz","fileCount":99,"unpackedSize":20992456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICODYFAFLDjVY+Igx0MiYBCSbkm5cXViZ0dWK7O5KB5SAiBGvyM5It57KBDw7i6xZdHztUFmtHYyxcy9j3SftfTdnQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsWzjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmopfxAAoG/V706Y9uZAPwghIvgQ48/WWIW1X/xTasPLlsP8NoBoDz+A\r\nYBJM5tIo8XPI5FbqkXWOFHgQ+OUC4bRss0DxZNullT+RAWwaMq3C2H6X3liY\r\ndfnBEmbQenpSHHcJQLLCHyPS1CwNifgcutt4jdHBE4b7/yTSPmSa2St1vELq\r\nT2W0VwNL32bnfFo+6Emta4z92xJJTFAH5ZQ4YeeGUhe7lUxZWj1w0jzvCI3E\r\nxXwhvdi1G18pd/WvP6UKN0pV/s7g5YBHnRZKrAq74epCkCNCM2xYHkn1bxVe\r\nqybwtdOgXQ3YGj/GDK2p5i2IL1Q6uyPOfi0Q/i0AnLSuP9q9HCWt1RIe6W/j\r\nVJxxBURtT+DKmkauhg364cDlpd0CYbNiNixZrob+yK5V5I1/ZzucxNjM26uS\r\nuOjKLBstKoyAnJ3ZYR1PizNioHLqN2qaryaYCeCj1ylEhfZj69VRw3Zs2dlM\r\nSMHqpMxgIYiy4i8s7VrLNyzXJ3D0FLVEBW3WRcVkpZtRsXYJT2iD7wHannDo\r\nrb0DNTUerV02q1H8yJEUJlLp/AC2+FWXp1qzEGZSCWJpOickmm1daY7h9XvG\r\nY690ZiqOM2HqJoQM889/IhyTa+Mr9wflepMbYHqu3CQLDJO93rgCZHcRYuC4\r\nR1HwMLZbg5+pU1FKOF8/+c9o0iu5ZCpbdg4=\r\n=ddgH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.14-dev_1672572131393_0.01148000357678769"},"_hasShrinkwrap":false},"2.8.14":{"name":"parsegraph-viewport","version":"2.8.14","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.8.14","_integrity":"sha512-rhxWHLMHyXfWIYqH6b2WgzpuGLUX5g3ssOzSMzULCbBWHtFoJo8TzazKGKHtzC/jdOvYccBssij3+DWkiz3ABA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-rhxWHLMHyXfWIYqH6b2WgzpuGLUX5g3ssOzSMzULCbBWHtFoJo8TzazKGKHtzC/jdOvYccBssij3+DWkiz3ABA==","shasum":"9c3968c28d96e8d5022980f939adcafe27972587","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.14.tgz","fileCount":85,"unpackedSize":4813185,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEoFleftiFUEwfKfYk0r/J/YrU7CFqzuWwVJ8hAv7PSIAiBxGv4SxAubG26E0JycHcMD/RRI/66ru1TkdbP326DW+Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsW1rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqjPhAAj9CAfvJZ1jivWOV+GZ8viaTMsMpbrTUeHjjVjc9yVvlKLJFA\r\norWcw1cRMItNGqDNDjHHB1wFRiM0JtB6oJCvEN3C4XuNFLdq6HmhcNoAh+MY\r\nCOIP5Nf0bY/9PYc9i6kKqn6ujyDSIUYctFK4DXAA9Tss1AwUZSv0p8nKAlmA\r\ntRahSDvrUNlwZ2kL5OR3fsLs3WcPObRMqONuNCQ3R5PZ6LHIcuJj34wDOSV+\r\nwv9zoqf8Nr/BOcRq51+niPCoHLBr0UiEq/51H5Bn7JezRxnBcYMpJ2kMXoiN\r\n7oxPAHWxn9F6NrTVCt4gwg0P7B3th6kSvRY+YFbvX3Sj0ObjKKK30TgWHACV\r\ncTYMce0Erf/cK9qcCqmeWeLOSQiqz8fk3iP1SUSqkFm7TdjDB1y9XfB7upzH\r\nPiFBQRc3agQG3cN7WhaTwUEDZGqAZuyih+PvgIU4DVeJYzOG9Lk5n+qtBg5t\r\npWy97c2DVpEC8hOp3caUkFgc75R8R66Tn30Vryz4C66isOtWCKEERZnt2cy7\r\n7Mtd6HyQgMhcrqbbWMDPjICYNqndt0LtnMk50+b/dHYRB9IrlAJYVGxm5UtZ\r\n2VdOf7UApAK+F+L18r3ZIY1I4IwHZQ3O+v09TioytORRBzltPCd7vx8E1Ixs\r\nrTC73sZdixVZRl71Ck93lvDOmTQFbiaf85I=\r\n=LSIw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.14_1672572267506_0.4031108078657153"},"_hasShrinkwrap":false},"2.8.15-dev":{"name":"parsegraph-viewport","version":"2.8.15-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.15-dev","_integrity":"sha512-tGqZO+U7ktNy9PNbyENyCVkBdUOh5FvFNWst9FMnrq+FYxyIBzEclGNm+Ej3tX7gPcIADaaF2QXPz+nySAdfRg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-tGqZO+U7ktNy9PNbyENyCVkBdUOh5FvFNWst9FMnrq+FYxyIBzEclGNm+Ej3tX7gPcIADaaF2QXPz+nySAdfRg==","shasum":"05b0e46439dbbf2d1865c2bc0019bad036378983","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.15-dev.tgz","fileCount":99,"unpackedSize":20993388,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICAgPnQP62w4zRd8E/wMvqg4oRlmdYDIPCi9HzEIvOryAiEAwTfS+dp5jtJ0NKoa9g1/M2Kmp9h94CLc5FOxn/9zevI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsmdoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpwQg//VRvr4sbyOESDcGiGjA6QNfpcyytCZrUKIbsdTU7atQyAh3mn\r\nesOF6xe6Zok0vh1ESm0EibZMg2zYf0GLMdacKPZh6BcMs1SvwoBSsk1iJ4rC\r\n0yn48d1iwV3sE60xDErqQ894pVPgvA+eCS6t10sc9pE/aSJoOVns9dZ0WsXV\r\nK9bLpBmAgP01RZSA25H0N8O+RbD/LGhfjkMxkqcdjop5a3E7/+mLhkVBeYJ/\r\nddXj/8C7h/aD/a1BsgAKtLq272DMcJ6EGy0d1vMfPd2Etr+m9vmuPIYhdG5e\r\nmOc1Kva8/NX9xONV4HmwWLKUQ/7PHO4EIcsAi3Q4F1VFn6gTi3IsWUWwl1GO\r\nViq7m3+XTUHzE3u6GUuHiLwSSXPry8EhXf3GMynOa3nqS007YkWbVXynAkIE\r\nEw7UviK+LyJOomE/v5m8sRZoJ1k2shRB+BVi2skGIZqoy3fmuGnw2TkUkKJ5\r\nQSfX3JbFScnY1asFpDhxOzgpzKmJMveFEWG7Tjm35w8m1mjUByyBZndpTqvp\r\nL0779dDCCoNzj5khwTskwzkqz9URLHF39/pcRApt2unE592yNgbXllNXqJim\r\ni7aJqG4TlFBe0TSR5A6wJ84Spg4I+n/jVpO/EB82/y6ON5PYBUDA+GZCMWzx\r\nx/Bx+U/lsTdhFa2qIOEK9nGRz5QLkK+79Fc=\r\n=7bal\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.15-dev_1672636264403_0.822172382052464"},"_hasShrinkwrap":false},"2.8.15":{"name":"parsegraph-viewport","version":"2.8.15","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.8.15","_integrity":"sha512-cQlmEefZxkUGfLzs/yXNIWoauEGBCXX3GMmSJl5wbtzUPL/hq5x/K7bKSVwdYlOugZQPYutyZNjNwXTxT6XNyw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-cQlmEefZxkUGfLzs/yXNIWoauEGBCXX3GMmSJl5wbtzUPL/hq5x/K7bKSVwdYlOugZQPYutyZNjNwXTxT6XNyw==","shasum":"293b4dd7d623d908d48c8a58484695a79919ff79","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.15.tgz","fileCount":85,"unpackedSize":4813345,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH8qu5jOArQhxbeJeylyuWQ6Xm6KVNRxKyeYX9uKrhf0AiEAoM3wBtkMOPltOM8TsLC4OhUQ0g3D+hXuTFeYrNPxd8I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsmfeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrrww/8ClvDrzLTxZfi4THAApiwXgMF3ogeDKoAeF9cPoLyhuhpUzGi\r\nfjV8u2lFyEqabcLJPCEjnPJZzZfvCAYFz2OiCKSsKF9GY2NuBo/tXCiFjv3C\r\njYOhLeAdB0P5j/zzDVkcdfPtLT4TaWlYTU5PQcIJRkFUHX8P+niOMCoqvCt3\r\nbTCgYs9G4txM2KHOcYT4Q9yblndI1zL4m+7K5y0ZXEMLgK9SQTbY1U/3bAly\r\nDs6oUzqDF8hHJNkPvqM9c2VWZjc7gYVogfO4jMuJ7p0snBAru94nXZwJsrSA\r\nJcFYQlOGCvQdfkqsp6bOIpRg7jZmM88nsqiLgfUG+Cx3aPig/EeqwkqqMtgm\r\nTVhFx4ol6Z9cM4nwA1qefKq1DUdbqHQZ6M5GIbi03zVd1kqZX9xSJKgXLSLs\r\nOZeLgf7VwlgpEUT2CLkvWv68sdQ8f32W3EwUsd48Rvy36dKuWHsGFCiLVDQq\r\nBIFKkOa6pp1WVbd5uxhsWG2rLjKUwWBtxefS/1hLNq/tcKt8OvHzIW6aw32c\r\niIWgD+8ywzYmC8nLL04XDD6PuPGmNTiWRj0/BSiqrz1vpUOHaRw4JHOGhvfr\r\ndDO9Y4QzFCpIWgw5CD3PCUrovPQJe+qLlwwtOrEi5lII6sE9OP2JlbaQJmwv\r\nwsjE0Hb7OHGZm4oV/0z/M3Wk1IMmKvn7RPA=\r\n=mRy+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.15_1672636382487_0.8919952230450288"},"_hasShrinkwrap":false},"2.8.16-dev":{"name":"parsegraph-viewport","version":"2.8.16-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.16-dev","_integrity":"sha512-rDxMd5csJPPMfESCkrTopJ0NR/4pLZvA24r0Yf9LPbAP9cen3PsURf6l1fqyZLwqV7W8KHOiEsIMX9O6drgMdg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-rDxMd5csJPPMfESCkrTopJ0NR/4pLZvA24r0Yf9LPbAP9cen3PsURf6l1fqyZLwqV7W8KHOiEsIMX9O6drgMdg==","shasum":"5cca450cc9c6c2eda974739f143963c5edf2bf9d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.16-dev.tgz","fileCount":99,"unpackedSize":20995312,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4t5zi8lUfnY2lIdu07uXyE9V4ZLMf3/HarPfm9rCYPQIgdQSAFFhGcBvDo5jZnBrAFaz5dz/FvxTLdXRg82cROko="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsoQ1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5eg//Wt2tC86Kj0v4SWP8GRB5RSRT/B6lSe8H+vU9YgZBOzBvm/KO\r\nXpGSOkFgAOCHiQtpIYE9a4XoPutLW9NG+1fzYe2TDdL7eV+NBaLbiOn/2xz8\r\nNryK/gwxZYikB2Y/xXNsfyua7h/V+BPlwPwPU59Jg0FTlbvuk7BIQIP2m8gd\r\n73TL1ct64j4DhMw+jkRDDja2Z/54d3LDQCv8WetDysX1Cio/oks0rnJSOLIF\r\n7qsuCn6dyCdZBXnlwiNYKWvH69ciMxI71SEH+O7UR9pNQc5p6b31PIyv4Hx+\r\nGPGYc0g6EQpbIUiF7CvX/k85lKLpFN/bEorgLVvZp22geF3ACTrTu3asYiR7\r\nQ9AkfH6fB+eqNKK/BltjGeAK2r7JndRULbRtJgZugywpQuG03iOjbf7CccK3\r\nmXoSa8vJ5l7gMjSIeWJgVF1xF0O3EIvWZedPnIkKMYTq2qYZdGxdn8YgTc/B\r\n61Ow0O2QIEVfPw0LxzNN76EsHSlANlQ+4RZAob7P4WVyCAdhFOE0BpLl4hkm\r\nHw0/KfGnENpXkWxooUN3sEb16XMXh1M7tORNSZbXA/W6LjTPwj5C2dw/qyjc\r\nRt3vpBLef64mjBFS55o97HEqvlkCYTSaHphpR2r6sRLyg/dcK/ZqAjUY3irs\r\nodQARxSiz38NqXwaZR5tpwzEN73f4PUYDlI=\r\n=1bIm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.16-dev_1672643636841_0.27405844930949375"},"_hasShrinkwrap":false},"2.8.16":{"name":"parsegraph-viewport","version":"2.8.16","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.8.16","_integrity":"sha512-ZExGgzGovKmcmkhKLshn3xL8HhxEdiuEkdNDGOQ8LoMPS9muwI1SPSX/Fb2HUEwcEZ4ddriUNpuiij2HV25JQA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ZExGgzGovKmcmkhKLshn3xL8HhxEdiuEkdNDGOQ8LoMPS9muwI1SPSX/Fb2HUEwcEZ4ddriUNpuiij2HV25JQA==","shasum":"4dfa355d52376ec07dc2b5a1a9e16eaed27f3f5d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.16.tgz","fileCount":85,"unpackedSize":4813679,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC94o5CqPlq5B64xY3rpNrMRO024+s/zwrdrW3PXg+L8AIgHRhYHxdotKHhdkgUSwZCXFlIlVmrXWC5GPoCziLZlhk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsoSwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo8dQ//enVoKd5YSebes/n8NY+/CgPWmF61D5n53t8O7S/V4qc0IGuT\r\nMXZB4EBazy1rFBc1wxXWX3oKeyy2elW1ccyIm1V5GMcmlzZW0IsCtTYzpFiq\r\nNB/Gvz/wl2X8xxyCxtvv2YCpoxlnM7h1CTQi5A87QwD5xk8QydLB48TCtY5H\r\nS3nJppjf6nzaR/GJUsY1d6xuwLR5sHfU04bq1NknqlGxZKEVK2ZIyvIyCH+V\r\n2vGzmqigBqBm/iutRm1HnFxkNQoCSEamnGT2vXSiLdfuujj5H6AAE6kd4CG4\r\nE1DIWiMIyKpAz5grXV33pFSi95soEUoWwJXPpRLB0S9RVdBNCjw4PEV/03v+\r\ngGuU7r5NgbHPSlytjYu6mJuJ1Q1HLJL7QeAMkvGZG4Mi3tNkmhnWQgbfU3Og\r\nAhI6FowO/RBm4tCaktGlc15UfdO6FBwiOZIK9i15TyJqZRQ2AOfsTXGLua4G\r\nbHvWr2ibrkkQ/uDP78hcyML9MXSkJUYzxM8YMgz/B5xviafCufpk5LzA8Bq+\r\nQBnExbcqfO1AZp8+3lHfi5eQVbPlT6XBz2+1gR2zJQTIOH5Wz57oLo0rRlgK\r\nouAkkI5M2wsECT/UnYmjDhX/yxcWi74u6rqROe7m5Y7mWW1S5dlBQSjbnw2Y\r\n5vLCICElv85DHRQlCmMSqsBnbeUYcLfaNbo=\r\n=wDqA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.16_1672643760350_0.1560368633300786"},"_hasShrinkwrap":false},"2.8.17-dev":{"name":"parsegraph-viewport","version":"2.8.17-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.17-dev","_integrity":"sha512-FcUoTUyVDo7xSfUQxnaf01OPe9X5BmliPBZVrncfjtZBvcde/myyWtUPMgrAwF+WJwS25w8v6ttdpE3lSpnJOQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-FcUoTUyVDo7xSfUQxnaf01OPe9X5BmliPBZVrncfjtZBvcde/myyWtUPMgrAwF+WJwS25w8v6ttdpE3lSpnJOQ==","shasum":"ca5f438534a8470af5195fdf1a72258631d1bcdf","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.17-dev.tgz","fileCount":99,"unpackedSize":20996501,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHEjaYxQfLSi8zd4Du1k+tWqOvEZjTgsdfRzkC7pqfenAiEA+Y08vXS0OjwJ/7T0YuizzxYc3Yj3HS5ikxbn5mBaBNg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsr5mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqXGRAAm/KAj7fhEjoJDz4RgVAPgdtfkMfAFmIrmoWgnqJ/tEFRsss1\r\nbjPaLHix6y3xEiUjOVFk02eu93kW3Fg/uEZ1Bv8llnB2JA6QQB+Estp6pDXU\r\njBh+cPVOcb1k+kTPFfHbIhYWTlSFH8b491sOwde2bMu9Mt9rZOML44qs1VfS\r\niy4xtF+1mJXXNh9V9bMw31hSVB+2XKtJiFVV5emSsDHdACfi91pCRwqN/iA3\r\nkGQbk8G3Rj8ypDmUVKVyJU5O6/xYt8pNzVMHge7pjbvPV0JM4ZOwhO0vtrKK\r\nbWIsjCRo/rY9z3iz8PHhFKIVwvC6sYhZBfgLvrrOx1XNvNWU/S3iGTj065Et\r\nptrQTPBf55FlD7PnrIBzJJtMj5pBr7qVRjjZMn0Z/4jPvAOyiXf79KhCSM7p\r\nCSUk/IV7NThbWhbtvoRy2aU8jweywQty+TLbr4CfNJZmZRgnjqVWCPJdBnik\r\n1uuacnUSpiAKiXNF+SyHUf1zLjLUXWorKUVKhmqHXA7Vgagy+ZUtJvYi9zKJ\r\n13+r9c/uQwnkPWziVPMpK26NnhGUHYqOpanpDGmfhAKF3UVnrl/V8jivB0wb\r\nImxSD1a5nU3Lr9JVJUvUGKF8GQx/nVjcdu4x197P/GYCZvWpwYD6gj0RFKAw\r\nk/TlFgbpCkG+qBr92QIhtYzk+oGR8ccaqB4=\r\n=n+EV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.17-dev_1672658534096_0.5057452040287613"},"_hasShrinkwrap":false},"2.8.17":{"name":"parsegraph-viewport","version":"2.8.17","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.8.17","_integrity":"sha512-TrNaOUIbAGwt9OeEDoSf11788X88CFZUt8rzM+Tr5qSSDg6fYlB40fK2J9Pj9ijtzBx2GbvaiRmY6gAnpanFwg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-TrNaOUIbAGwt9OeEDoSf11788X88CFZUt8rzM+Tr5qSSDg6fYlB40fK2J9Pj9ijtzBx2GbvaiRmY6gAnpanFwg==","shasum":"5298b6ac169f8ed009c14a49bfb8c3b4a93e2473","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.17.tgz","fileCount":85,"unpackedSize":4813857,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICcC/RKrSJPjf9C2C2rEVqZvjdeZRDUn0h+nK4hZ5Q/uAiEAr9bdLMRi4THnB+frFSksUHvTybLY50g0lD1cjTT0xrw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsr7lACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqoDA/+OT12Y/Z4v30/1wfh1Mj6HP6D9eequCCzm3BBJ7nWOoRyCwgK\r\nEfAoSgJPxcM0QxSLLapQDUVX0rplZ6Wa2FAp0wl+JfWpg975stqPt5j+aG4O\r\ne94oFHAn/hv1w5+GkaaCa+Xjv+mxz3AWxhqWMK3fBRinNQ3F2iGWg5o18qIi\r\nEXTui/9+Z5Of519AAJudNpPinUbF5rpDBgoJ+cGgX+3m/O+anGrOM4xrKtPn\r\n74w+iUDyC5ae9+zTRX7nkPO2H825Sf4W5I3E9YKwpDivXNYCaYl9Io3jDqHt\r\nSDuANIRZhzEe7wsAB0WtKZcPmUCdBhk6pISOFQE2If9TPK0Aq2aW7WM2sTvv\r\nGSaXaeZi4vTuWlTHUASDC7bWlmpmHqjdLtjBh60VynouI8agWXgPOzL+EouP\r\npmwADA7Kt5zEu7RFhP81VGvEeMhqK7O6WtyejIY8e+FMCUDOKKo1EwdOKV7v\r\nkGWeHlk89/0FjFdaLA2SrAWI9Q++GnhVUXmb/KQaW6i+q+ElRyZptqqGFCSs\r\nkQUHT7zi3e+B16El31ba+DjlqK8gRCZVWhCGViWMJVA2fUsHygcH3Bx2SJEA\r\ngHDH4xvwuZYczeqW8Jiagl+codBXSCaaz5Nn0yQbDjDdIV4BJ7yVxkh+cc7S\r\nUu7oyxIigKU1N+04amFUuzvbUMqShiXt6lE=\r\n=BpvU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.17_1672658661168_0.015246362522578494"},"_hasShrinkwrap":false},"2.8.18-dev":{"name":"parsegraph-viewport","version":"2.8.18-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.8.18-dev","_integrity":"sha512-3zZO76tvNTtPQbMG2Pfif//fI3VqxhbNgNvo7IX9uMkwFdtR4kJva3O4Zp5v8kfg4G1wMzevgOn9E+kHMNWehw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-3zZO76tvNTtPQbMG2Pfif//fI3VqxhbNgNvo7IX9uMkwFdtR4kJva3O4Zp5v8kfg4G1wMzevgOn9E+kHMNWehw==","shasum":"3b0536f1ebebfa9753be7d1b8b686601f18bba17","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.18-dev.tgz","fileCount":99,"unpackedSize":20996877,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLsMcO+VhC+pyjp47JlPD/yflExKAFbpFjSh/hxOIhiwIhALtIXAxxsNSR3EkO5SGfVLdaEC1NBaspelbKn/3cy/B6"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjssDzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqUsQ/8DnoDg4bFuWBhUfJ1CDG0ITaCDCivR4ESHwBCrCcQBrsbWdWk\r\n5YRNDB0DQc+g5KHrX2E3tvZUGznHwngUnro7iTnlUnYJssDJoVJohGzkZl8d\r\noyN8ayRn81QsTX3HjLjrFX75PN1VD9i6lCzUJpWI/HCpMo4uiviJmr5ZggdH\r\nd19L6Xip20TW6jYGTKyEpBigft5P7SkWgyxOQc9ordOoaOzqI63eWiVAOwBg\r\ndCm94RhV7CbbCBm4vOdstJuN9R3fQYxoiqKaQcdVplESbtJWv7S2CxUM8BYH\r\nNTTBdqM8l/aIFidBhjVCoNOD9QI379bxkMy8utw4M9S3DHYb/rtoxTjvZXj7\r\nL3pWvBUgi3E4MNaaziEucu6mkx9R6CjHqfiBe0PSKnxYmpiLf/XtsFmSP4yU\r\nPtDDqpwwPKBC1bjPJ05Yo5DmwOrrs1Fr3wSSYjAbZi1X17Dsei8c8Srl57R7\r\nyN9YKoZwTGCCqgHzRN1Sba6cXqM/08mwHXEPgOSqxfP+VRU1qw7AFYdeQL2j\r\nHvJmo1GhEnShnkuEd1uIfhKYWpkidmAK1JR22EW9NEZSuf9cp2fE19SaBH4j\r\n0uWS/kOe60ZSWbTYUY+6pNlwhlVVNtwvUwclrJOxuvEpX7FPJjiAk9aYhi75\r\nnw/x2fL070DgoQ1g2it9JyMdqtEDMMTBufY=\r\n=kf/p\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.18-dev_1672659186790_0.19717848615681044"},"_hasShrinkwrap":false},"2.8.18":{"name":"parsegraph-viewport","version":"2.8.18","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.8.18","_integrity":"sha512-G0sKJjU0KOibCR3+4j3HUtqYb0Lhj3//dUSdGnrODLJfhq/WiN6jx77E6Mr7cmV/DeHYLqSxbNKgEb1bBFMjxw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-G0sKJjU0KOibCR3+4j3HUtqYb0Lhj3//dUSdGnrODLJfhq/WiN6jx77E6Mr7cmV/DeHYLqSxbNKgEb1bBFMjxw==","shasum":"42120994c14bd3bc9e93ac98955c19999f21e85d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.8.18.tgz","fileCount":85,"unpackedSize":4813944,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEm0FWLQTsaEE20L5lowhPLx5T5b814aWRXD0wE5NEb4AiAXWeMsh6rIqNQXJ9G/idGMYR0jucanAlNP9tQWhOi/9Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjssFbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2fQ//UVYCeTm5melFIZ7fr4f6+7Lkv0UDDwvX4buDGJJjrxD/U+hi\r\nJGbJz8hbPtWmvRIA2SKIZFuy/D47429YMvOVU7D7Fmsgd7mLJV0XHzX6aJ0L\r\nn5QuILFx6Pm+HtQhNvY7SxX/ToW+zH4zIZjtESorUnHdXxgaDalZGYS/cAVI\r\nh6wdWUQK+qvrZikA2n/vHEJ2bQsK8o3Tp86W/WDkxECmKxZDlobzSgplp21J\r\nbUaBs4FDtOvpJQ37VY8Scn3H1LAVMH/8FL6X4wn75dbh2u3A3q4TksthWOPv\r\nqD1NuqNinFnVfZ8xiuOiFE77Yje9lzsXHWrZUEzf0+Ziv3t7FZaSwJwVsgRZ\r\nnsz+ND6fF0xYWU5/B6qmm9ayqBwhz60husEHeZpPJQey8FTGbZ77qe/TPwFF\r\nMoY+VwYUw9AcVMHhDQHuVGVR3n98XZ6HW6k1gVD07DtBhNik2cDT7f/yLCX/\r\neDSI3i+A2hHwP8MkCZNgiAW3bzQdxryTpGDvIgoB5L8BDbHy1mdCLA/uMShA\r\nG4rJdsnCZ2+H6n4FQNZm3EP1ZpCFdLtRQCDJ+6zwyg7QAOKYwNh6CVXbIVqe\r\n59hTglRGXTC02pkR8MggKGtWDWgkIzrBZ62fgGUTvCdOFBFEoYAbZ0dK/VVe\r\nV8PkKghEk5dZwzuiY/GERkHVc4IFKcV0VdU=\r\n=1jeQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.8.18_1672659291069_0.8749226310831604"},"_hasShrinkwrap":false},"2.9.0-dev":{"name":"parsegraph-viewport","version":"2.9.0-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.0-dev","_integrity":"sha512-M0iQrK8ijMVojvr9gEWJfBVJymne7bLOeNwobmanpoAjRZ/xAZKegef+3sPq8kKFenvW/0ga62Jt/uNfcvoe1w==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-M0iQrK8ijMVojvr9gEWJfBVJymne7bLOeNwobmanpoAjRZ/xAZKegef+3sPq8kKFenvW/0ga62Jt/uNfcvoe1w==","shasum":"b16d29ae709e139fa2ae7caa0794e2a7a0726c99","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.0-dev.tgz","fileCount":99,"unpackedSize":20988546,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaxfixNJv2h+O81b6fhf+92dmH34BtlC8838DDrxde0wIgM9w39me2PP5BwuXh7svnVtNrOB2Nfixv671oRoKnxP0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjstLqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqx2A/7Bgf+L+ZPR/vNY60P93Atijhqb5g0uPwH2co9zx/8Um315oOX\r\neWzQ92I3iXRenrt722ol4x052u5vZimWUB431dBrKMe2kizFdSfankOj/ZUT\r\nrTjFnHKArl1axbzCb9gyDSWlWgXcHdn1XvHIfGRcX+nDA968qgZuH9wWxjcw\r\nE1M7jLbMXqOx6PZagDukYozShHuPcUGtzNPlIH6c4mmOdDjgWu2jQ5Uuznur\r\nAcKeTtXSUIypJRlhXwI8gO6IVyqYjz7hPmlprZgLPaKfnyVevwDPn4ipbJYo\r\noM1owurU2WLLR3dcOVcU2dCQHJmdP/hXVxfHLyNp3I3tYZYcCKRLJBDRvxQN\r\nZkmQGVynfA/2DH+NBF82NnMl8YTema76i+MXpBfJiFdoIXH2LTMss78b4jxN\r\nxvN1CMe+6TBEgcUf5NBTNfFx55iWLKTksC8qBrwe177NwnSVZEONiBgKkQBO\r\njfXymbDSVmoM2GsxzZswHj8QEjFTPy9ZIzivx0ZCW5fBePJfbojPcjcWVf6V\r\nyuHUA+5lmlZNq7UVKDJFHlNqgVl7ST9+jeLpFELjJZ3Kkjy/yV4NNs+RydFz\r\nLirK2b+8jp4uKS0HF0yWh3jAzKwKsVyzmVM24XxWUg48nfnU337D/yY7zJJO\r\nM8GKAjrTZSg6fKTKNpjBTdhCJlaJ/hUNQ9w=\r\n=2wjY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.0-dev_1672663786411_0.31621859343342007"},"_hasShrinkwrap":false},"2.9.0":{"name":"parsegraph-viewport","version":"2.9.0","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.9.0","_integrity":"sha512-oIyKwyrAhK6AQ2v87nrN6VSGqXK07ig9bRKai/XDAIKHgpvH77IELgTLoxTNPCgT4KTzOWGaz8eXIVMhz0Er1g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-oIyKwyrAhK6AQ2v87nrN6VSGqXK07ig9bRKai/XDAIKHgpvH77IELgTLoxTNPCgT4KTzOWGaz8eXIVMhz0Er1g==","shasum":"2d00d2464da6d0c9adbe3655493c624ed5c8f79a","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.0.tgz","fileCount":85,"unpackedSize":4812426,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPs+ph3GnLcB4IUnQjRqXL1CvUX5I4yqjX561yAexKjQIhAJAUnMe3tcup3zWxZZQadVAE4dhwR+6c8TdnESo+feBz"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjstOCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoyVg//eQtr9/nRfVgvgBOe4w55wkZOqnXI9jSZWks07FPnVczt05CZ\r\n+i89gldBs80ankcB/uN26kAjOuL2t7J37PkkJ1E6VoqeO3KVys/EFACirmuS\r\n+yECVcFp9RdCZIRlM009ZQ/A6Kt8uPdj9S0MprOgch3p8nkFPsq9slMMG9Eh\r\nCP/Wh3C1bVohEzhC3P1TUSST3+V/GYVe/INovaGkULRA9NmusT30vmu2EBwt\r\nIy1PumbZNAG29C7UleyGwYnV7fORR7DGa/3SWeyIk6+2C02/Dyb4gzPEVuOo\r\nBv+Z5I4NE0y1f1x62Eav1rklmFiQ9lkbGenaQCUBi18tAY3OMEYV1JD8uSDH\r\nzzG/cJI4f1P4bmRjjViZ7X18DvhtLvLiMGsjDEyTC1nl0xkEKDeR2NL+CKTS\r\nkQdtuHRR3EOG0OZNJtpV+53VFkI+WLs/A/c2iYhiCQkMdvRPhHMBRH9TZqIe\r\nxfu92Si147hNXDScpHJVP6u+vMafXHyAJdd/oCUpg8b9noJUlDlyhP6Ky/3h\r\nw4zXU5gx8MT79HLjT7Y3T8nI9IwQUyY0xAPUzHYy7LnJL38Z4fpGcXQtr7bs\r\n72RmjuI1VYGiKbPCpSQtiH7C8rQdR6SV4HdOO5OEpbKceGmLAt2R771v5+8y\r\np69MXn52kFomtwTrIy4IlPCLASxQZ1R2cWs=\r\n=zBlf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.0_1672663937877_0.4730883193586717"},"_hasShrinkwrap":false},"2.9.1-dev":{"name":"parsegraph-viewport","version":"2.9.1-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.1-dev","_integrity":"sha512-skv2cVVWV1biWMc+/A2ZliR0uZNP/180ijx4J8+hwbru94t42as7nQAIOpcVFhTnEpHyXNmqjzH8UHQY6zniTQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-skv2cVVWV1biWMc+/A2ZliR0uZNP/180ijx4J8+hwbru94t42as7nQAIOpcVFhTnEpHyXNmqjzH8UHQY6zniTQ==","shasum":"efab8da88eb3c33225bbedb743f56c327f3e88d5","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.1-dev.tgz","fileCount":105,"unpackedSize":27112021,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC0eJr2hidnZBZ+7Cot4quOegn8kvXLBb3KoofitFPdUAiB8LeEDVemRQpkGdGvN4kMzQhGzvmQMCTYe3zQcEvslOQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjuUxMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrbNxAAmRbuKuiIOeHSbhag7DAT1YZyzelqOh2mV5tg+B34hqHjdgbV\r\nM8FGtXohtAPtRHzPLaDRC5pw88wsLoi3BbQk1On0sGuxcTwhSrlwiu5GkfBs\r\nUrDUB/vGe1N9KKifV4uo16kG9BnAfPtEA6e00R/C71WbePW21YBCFX12Mez0\r\nXJZO5MD89jbmybYY9oG/By3VS6E2EvLBLf0v7IP8HG1bRYiC4GjVNAqfblnt\r\neOGL2k8UmeikoeH5KwisbfNNvL6+XZVA0iKGpMOr25oLeH6AhW3APu24eGct\r\n+tImVRoxD/37LMxacf6g0PgTyUFAo92VVouiqmas8jOPoimOQ5UISw/nw+fj\r\nmBMAwhxgKheBQDaWij9/9hTtJiCubwssxkC6vbrnL/QjRRW+saSyQS6ulJtk\r\n5g2wrQ/pjSH8f6eFYWxlnbIMl226SZ+jNWvjY30jrWozoGbq7qh2wmKQOiHG\r\nZJNw0UFZkS4dd9MyThoHLcVfRJnjTvQ5z03UD/785Fl/IvPmFDr4BcRpTudr\r\n3Ha45wP1FPkT7hoY1omDGejqccjKn6hs54AlvXnhWKfWyRSlKaUfEWuukQ6t\r\nvoZCktqmH0Nl3PTbG8nW6YplqqTteKPBGdD7LbxbnVPP1ZV5SWSQVNPuJ6oF\r\n4enRYPD8KcOLt4WK0wC6TqAZGjFwXy6bfW8=\r\n=RsbH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.1-dev_1673088075796_0.445441638532335"},"_hasShrinkwrap":false},"2.9.1":{"name":"parsegraph-viewport","version":"2.9.1","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.41","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.9.1","_integrity":"sha512-xLK1/pqKYs7PPYoY2cphc9YY0UK1kfgGX4lF6AQMgWpqPw9rX3xUQdl1yneS2Ab0veEEq0Rc6G7gut6V5E7noQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-xLK1/pqKYs7PPYoY2cphc9YY0UK1kfgGX4lF6AQMgWpqPw9rX3xUQdl1yneS2Ab0veEEq0Rc6G7gut6V5E7noQ==","shasum":"0c2a1f3db224f5dcfa0247f3df0905f956d8e7c7","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.1.tgz","fileCount":87,"unpackedSize":4812713,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDP/NQTbmVNMnPpO3L2hW6ckEZGb3+bbKPR3Gl1xX/1MAiA3zPOBugnnEfiaLfuJvy4dcNyWbmv3jOS15s4Hwp53fw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjuUzAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrE6Q//VOO2P2MuDUBFrtz2iAvZNu0fi4Dz8RgRZNrPbRXsqk+4/yiH\r\nxa7eHzQqC5gbwj7fcGmXgFpGiAUt019kFnQQ6Dc9AdxtZXeu8yySaTSY5URu\r\njjXH/lGA3IV0l3qzwu6sL/jo4GkqqZM1PbuxSsT5V41KcydKWlREj6aDUXSH\r\n+xTH/Xt2V3TpVhtiuBWd5IE+S0/R60hr3Br6ZRBb3kpWGKUfGB2UhiMdWMV3\r\nZnVxkcig/Ey6xPGvSTiUy85Z4TOBgTbK3cd37yI6g201LVTHAQRqJEKx7zC+\r\nX6+GvZ1rkUVJ2RLS9zuo2r0+8+CxlXQRMDwrdALhLjhEErS7WyBQAn49paqw\r\nSV8hJTlAFso2e9AeyFjPFjkJLbuH7vyD01xwtqOLZHEH8610iKWYbmqqSp6O\r\nz9tuUotTL2POGgFeVLrm8hECWIjl9NYgKTcBtfXhPd5rWTm3+qbf59TEV+7a\r\n1a76ICjQy3iB5EcGxyYXfUbsZRbpgRZ2UJH4JOw3gBQximJ0/XVORTIsF62X\r\noWmwYivflhrkYxTcaTY3/oW88Ox7BjXboPhlsq6YTxovNo7SLv33wHprn43p\r\nvaHFMlUirSF12m3vHQLmGky2VUT/2zMfGC+WolFx6gRIoPD/UVGNBsOZ8shO\r\nAnS8qsPQfT7EYUqZTEpODMNV6nIBhEl/6aQ=\r\n=9h9r\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.1_1673088191949_0.7649876958145501"},"_hasShrinkwrap":false},"2.9.2-dev":{"name":"parsegraph-viewport","version":"2.9.2-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.43","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.2-dev","_integrity":"sha512-cSIG48wBs4fE2P1wdb+Wev0o/mCd03m35cTdUJswdw0FBWG2vNOZOA7/76sHdWCLrXP/5eZK8o8r6ztKR/rw0Q==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-cSIG48wBs4fE2P1wdb+Wev0o/mCd03m35cTdUJswdw0FBWG2vNOZOA7/76sHdWCLrXP/5eZK8o8r6ztKR/rw0Q==","shasum":"a354ac9a4d31863c5264f3d8350e259058163e23","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.2-dev.tgz","fileCount":105,"unpackedSize":27115712,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICYReRyx3kz5HDyD20Y1egrCq7/Zc73pgK4oRemf+l/UAiAt7PWl+MuRmPldaf2Bdj889Ue4VkLwZSzbTsJ10NHZcg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjuWRgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTDBAAiCg6cA0NjCMOLbQMmXCnooS9QeTrMYeyhs/eGyfvXNkDAIbC\r\nmHE44MYcVZZyXTwrjAmfyZyqwGxZKtOwtSmUBKWUF4cZqL86THf0GTnSrFTE\r\nA+ZXOu6MFXadbonxdIGfGF/ZIaG8M4JPRdNHFAis/6q9fcQymNTzoikzBXZq\r\nvRbn0iUC+n1YN69mabPqjVywEIeBu1P0FUGASmF8H8SnLzdGKDy2r17/SE8J\r\nWW4K3LMQLS03fw6pPsTyGe1+3ax65XVQ22CRN/ULWgzJt7yHv8yiy3K2KSQ7\r\nf3Ws3WrO/rOQ969o6bPMxGdTsthY628xtU6BZpVruxrYgV+wPMwDpQNqNxFr\r\ns0u+vmeZMEhpYUeniDfBx83SaNVwczAfr+GP4QFA9KPa8/CdNxmbD7Z8Hgp2\r\ntZNVN+ROfh2o3s8RLksknCawQFN/fIm4P0yonOoJ7yupqX859x+h3PlFDhPq\r\nGVjZGPXONjeXWWiQhDGu7ihgG1kNOOQYgRRsd0quyC7Oj849Y+T0JyABKnir\r\nwY4S0uFplQxLPBpz0804Rri1FkjfsQbUNObFe8zOlgi7FAYSjIaJnwVAq2HH\r\nIqNWnYL+6H5mn1hghTiEJWZx9ffJnhzh2yVlYs0kqqwrOAqM5y3ZU2ur5lB1\r\n3r+c6iu/6OZCYsAPY+N3Dccb1Ozrwi/RzaE=\r\n=XkCC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.2-dev_1673094240688_0.2632593917989172"},"_hasShrinkwrap":false},"2.9.2":{"name":"parsegraph-viewport","version":"2.9.2","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.43","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.9.2","_integrity":"sha512-q0IsFmvEJHMbjYRLB+V5LWe9fsPRRdEfs7msB+8so5HujMOASHqRWnYXwNuyelqse8+LSYUt0TvcsZUKDip8DA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-q0IsFmvEJHMbjYRLB+V5LWe9fsPRRdEfs7msB+8so5HujMOASHqRWnYXwNuyelqse8+LSYUt0TvcsZUKDip8DA==","shasum":"a18d52d012c4c940c7007191004a90fcb6e506d5","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.2.tgz","fileCount":87,"unpackedSize":4813358,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC5q7eIEZU5SOXjqHdnU8+o7RxciyzM++TBecRlPaiM2AiEAlxnJ734eNVQHGvloP93qEm+Hc1biW/9F0eqUlQGUcJI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjuWTTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmplQw//f47JSMXToCRIZadLs3Pz9zOxYKYMUppjx0dcpQsnQeza6Upf\r\n69Rt96rUg4reS8Lla/Pz9K3ecg1ZC3BwsyQJTB5YmLFGCpIt+YPFSRFT6qYn\r\nUxpqweZ1B8Pe+pq4F8FPEFvG3MCqObZPBvlAhEJvnHPr4i1+zEg/4wXIDOhV\r\nxpuuF7J2wnTbKsh2qUziGOrv6FSUfLYaWrLuPvvXVLZNVncj/iEvWdey5yvH\r\nwGtz2eacWzQm0Ry3X/WiOxjT/1yQ+Mfd2LRNi77XYm0cY5IrkG+fPoKIBKtE\r\nambGStBjh/DTPY5R1gMKybDm1ZUqUyuiAZbrAeT+P8m37NzsQgJqA9+6enei\r\nPiqz0oSRWApy+ZKRPvAnRDwhiiuEWagpAEDTyCBYsJs9Qm3xCoWbzIVMFfK+\r\ndJUGJbLscl8WKjBZf7EdV1fhGfFzRO1o+rYYZsAFr+R0/wTXXtPxjOjZ8w1+\r\npPQ3TirirBe/HwTPhCydi7G/ottS/y/S/HwYOBQS8VtJfFI+eqCuES34jB6T\r\nri/5JFV8Iohjfa9g3PMBSrPTfUJg2HC+VLVUiSmJmqdYW4vw0M7zi7gUUM7P\r\ntF6SBoRb/mqCfUlqN6kSf6tznX1AxB6Panw8Sykuqmkr1LlvBFrEDQsZ9v/x\r\n0ZlIfOZ12MS5odIeuamWvB1WgKmEYDhwZJM=\r\n=48bM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.2_1673094354932_0.05197012418046265"},"_hasShrinkwrap":false},"2.9.3-dev":{"name":"parsegraph-viewport","version":"2.9.3-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.44","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.3-dev","_integrity":"sha512-SI8fjnwNPBRcmupUyDzSS5I4VSsYqGhViWtt/yjwtHwJneN051zT9bCo5NFWvHTv+4dbZAzugKDhcNzJcafULQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-SI8fjnwNPBRcmupUyDzSS5I4VSsYqGhViWtt/yjwtHwJneN051zT9bCo5NFWvHTv+4dbZAzugKDhcNzJcafULQ==","shasum":"6983f2eeb61243d25c2768f64c6d96b97936ce2b","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.3-dev.tgz","fileCount":105,"unpackedSize":27129878,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnEQjeuOXDc9Pta103XqShxr3aFtriczpFgv3sE37kGgIgaTyGAAOMqv0KTnxBohdu/TyV2AXTBN6xtG1kCyBkB8M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjume6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqtog//VJr6IuTg666rxgO2Puvwmo23hrD/eXIM+0VAbZnAlxDZEL+z\r\nAzto26Hem52KAOTUEjR+x2Z9EFptbSlqIwTpAkzvBMnMb+juzDRpDQidNxVc\r\nucYae+mc5UEzQZ+pfHyDGK2nrEy6Xz1Km+Gy8kZYiF0MXXPxnxRZHjOoCB2e\r\nM+dMB31aCG/tYKvns9387XYffn2D7xsrXDXLywgfNeUc8x8hDbfHHwk0TnIN\r\nGLDkxTARZpo6mkyvIsY+3gKKYzYbC5Kuk3wjMMn7bn0zYT5ise8GBoShm0kT\r\nN0/bgRCrsoFuk18oTzhyiN+wDiKCbJYHoFc8jvxAVRrP0c0+EBa8rT8bJX4h\r\njfZDy/u05l6zsFKBdPnftYyzCPjEABoKxBRFPQZyY5KLBPvzIQvgTyS/+Vw5\r\ntD90SvXbSGL2goiXysfSkxoXXQ+HSpd/YzuL8JluU3GXwsMIlloibFy7u8A2\r\nWsbaWNzAKs7kYo0PM4XOc/frD87fHMVNMhCLy3VU8oVyuO2R9011qzwwKBuk\r\nM0DhsY9AM5TFJKJbTh7KdPO/aa0quOhd3cW3D9iadlNfzlrxrFb64lQ0PKv9\r\nL0kAxb2vyh9wF7L5dys2nY8XBV9At0W34wgOx9yfkuoKU7uSMCo/74VllxoC\r\nX+C3LhFaejvBXDOX0QnQ9KR7FQ19Op44ybE=\r\n=/Bwv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.3-dev_1673160633770_0.15475277313426772"},"_hasShrinkwrap":false},"2.9.3":{"name":"parsegraph-viewport","version":"2.9.3","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.44","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.9.3","_integrity":"sha512-8DEKXtkyWNB2nyHgD6WaiXqi60YVowp6fPh2W4bpl/SdJFsdC80Xr/KExZw4oHYaMSGHDZpLpLSgW3w2zymFWQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-8DEKXtkyWNB2nyHgD6WaiXqi60YVowp6fPh2W4bpl/SdJFsdC80Xr/KExZw4oHYaMSGHDZpLpLSgW3w2zymFWQ==","shasum":"96bf29aa211f3cc64dfe66c856ffd7921f38fb2d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.3.tgz","fileCount":87,"unpackedSize":4815734,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEJyDPSwOElJZ6XKF6QSUjtqTSe9aU56ck7aOldRAEyGAiEAqdQw45rDGjHfKRhsVL22DEmz66rKTWf1pWVWLUwj4Ps="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjumgzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQhhAAlr8INBMhFHwI5WygMdRcRVXuwTbOag69IP09kbrdypnWldAV\r\nVmsMS5wKn7e4Z5t7DYDfi9bOC1Ga69tXE7xH0qAUxN358Gx44+nvhTUOaLGV\r\nNFVU0WnstAdpZCMa4bESR79HGASinV4Um7b3Zak6lNuFJ8Yc7iL5eTvZO1Tg\r\nLNL22lCn6gOkHtpnYksLAUJ6C5ayqbzhJwhStLZWsYGaXMl0u60inCKZe4iA\r\nN/SPh7jQmOwS5Jt57HUABncmbs/yYMedJDhGlmNme8D0DouIYVAwkGXCyoFp\r\nWeHEccui25aKyuLbSGTRHxeAAgkSt1yFczhTXY4KfUEx50q0xaVF4yeDRn/S\r\nt5SZVdfV/6W8lt6YNjZqpRIKUGF/x4uSL6ku1Ww4/KJfsz6jmWPZp/Yn1ecK\r\nUg5iRr6BWeMDC+3XRJSZPUFVadIRWmyleDiBqR52G64cQj9fc/uDfPWchZBj\r\nSYxHvQzv7nujUJv9YKm8Jj9iYLK8oFnQ1/wkKAMx7U/KYYsFAhZvzyKPjost\r\n3wUIDBp5Vkw+9nYgfViFLuTW2vymoCarBUP44W3/E6ldx16gKk3a7g5KCyY3\r\nckEKOU8JTLrzg3weH+DI3SZjc1o7p4xNXm7iBPoReT4fo98cMsGN9xzAnSlj\r\n5yiIuV1LBgC5G3J99bDhOGNK1KTRvHJrK+I=\r\n=wIni\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.3_1673160754913_0.006387737972388452"},"_hasShrinkwrap":false},"2.9.4-dev":{"name":"parsegraph-viewport","version":"2.9.4-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.8.0","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.44","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.4-dev","_integrity":"sha512-Qo8Nk7EFcOa5fvhZEiHxV1vZxjjsSOm45H6tvm7kB1lBhxf1JEHM8GPNN4ERenr/fbYMJRfJ72ZG5Z5gowTTSA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Qo8Nk7EFcOa5fvhZEiHxV1vZxjjsSOm45H6tvm7kB1lBhxf1JEHM8GPNN4ERenr/fbYMJRfJ72ZG5Z5gowTTSA==","shasum":"e4deb63505756d7faf44ac5f4d6be34c88c0419f","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.4-dev.tgz","fileCount":105,"unpackedSize":27131067,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/34z50ZxYjPKzoNNUV0hAf6E9k5265SbgmeUV3j4jMwIhAJBQeA/gdueFvFzAOAaORUShmU6BNWNE6UTZ/F61BhBl"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjunLtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNAA/+IuJ6ICmIh8piiINLEeGmTvMUeHg6u/1m3vW1xUFphlbjhTgV\r\njKYAYfcAa75izTJDLUg3lgBfppj6UAfxe/lDXHeGzviltNq1KICChGJOZZJT\r\nt310VOoySlyrVOX0CyQXz2/NhsexeZ2ebizhstmMahnBNsio6ipJNeRdm36+\r\nid9M7q2JItNtWSDBN/i8rAy4Jt0uwvLMhk1LZV0b586aSJUfZ4C0XvIexi+C\r\nfOyFCBYu/gEMNUOr1wGS9FNfSgQIXs7+seV8Oxspda96AgIrzKXRF7sOkycM\r\nmlAtZQ3KnQS+4vPQiqjrfOElLTgkzrP2Il6rzZP2pggWtCfrW6Z/mL/vVOMA\r\nxTDwG0iSQcdlYLjFm0ftjMB2tq9+CVP40FXMMGRqvlEtMXad23boNxRyLd1H\r\nJQ45aMQCf5rIql73cD5O/imjgOYMwXABlsrzOijqbkVUUp5vRd51a7VKEjqn\r\nda5e6C2klvB2l8L8AzS955Bk583oW6FtDVoO8j3YwuTxpzlmOG0DPnzXlkMg\r\ngh4hY4g4Vj7M1d2po9aSfFxypZyu9BusTKleEZ8No2WBQD+bk8C63nkgavWC\r\n0Qjap2wEh2cSvMqhUBXExLtNyXK41a3R+UmYw0Aghh9SYETYPhWTMCdDpMim\r\nDetW9veoP5HVHHsO98eJhs8YQit2Dn29Ksg=\r\n=RPqG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.4-dev_1673163500852_0.786884235233996"},"_hasShrinkwrap":false},"2.9.4":{"name":"parsegraph-viewport","version":"2.9.4","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.8.0","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.7.5"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.41","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.5.44","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.9.4","_integrity":"sha512-zI71HO7skSm7wFemUlPD5R4gMTyArxVUCAQ2TtBdSEd8hHM9sbsRpsVVz83acmAHkjUahl0k7dto8D10gZ9xTw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-zI71HO7skSm7wFemUlPD5R4gMTyArxVUCAQ2TtBdSEd8hHM9sbsRpsVVz83acmAHkjUahl0k7dto8D10gZ9xTw==","shasum":"b5b5379f841a3d945a8b3182c8edf04638554c02","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.4.tgz","fileCount":87,"unpackedSize":4815815,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLEObOQyFtG7kb27Opi6LkVs2XbRHMCqu5H4AmO7e9fAIhALyMsM07YiWhL4OnETTjX3907thoe3aU9GZ7m9AMeu7C"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjunNwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp7XA/9EsDX1js57SPnHaBWkxhN90o9/tk73Xh+z8FYyslvyVxpK2fA\r\nZHhf6oLqotu6LixvpcXeeskU4IRXl1h509DtDD7dXrbizyatJ3zBsiFDtfIm\r\nyB5SsEOJKRNIaA2cHzBNX+yKIl1Vjr9NxrXreBAnm/HaPbatmQOMefU0HiBw\r\nCA4mrck/GwfOyoPnPJrmaVhtyTR2J0vScmSY9kEFCU74yrWoXYj9m1v8imR9\r\n5S+NmsHcWBaqy28ob2Dgfn/+ODZwxB4auhMU4qqaKpxhm1dOEYZ4SobA+MeF\r\n240uunCmcYm5394vG1tC3+fEohBDb8d8qgfrbb4CvoRM8rt250wfHepVUP+M\r\ndYlluxe0g3fU/yiCBVWRK/gzHBM74XFHFwzqyqkjFUPUlsoMRwy7EYEVX/5F\r\n3zA7hMiVjEqqhmRlHiOwWaIXCTg6N8Emc2rtGZ1Edym8Wb1T8yXPU/Lz+fck\r\nR5uTVTrcp7W4NMIZB5YeHnUGfaiocnsHRAgOPPY5UDGMgUYjjHfgcg8SedI2\r\njNXWvnWL6ijASkNl8oDrzCuO8WJ5XPHvdzXierteMK1gSNKtP1fp7N/f0n8X\r\nxrcUQQ/uxeVC+4pORayQMY4m98NOJWqyI7gu8uMUkGs4N+X4QfzZmmPxJe7B\r\nNBcdte4lsJpEkoc1lDPcZZrdQB3ErQu/uV0=\r\n=Yses\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.4_1673163632393_0.7646775005528512"},"_hasShrinkwrap":false},"2.9.5-dev":{"name":"parsegraph-viewport","version":"2.9.5-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.43","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.6.6","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.5-dev","_integrity":"sha512-Ffrw5hfHtZtdprD8Fo7gza9mIIURg/Aqs7pk6SekZRvejTDsmKPSZgMlH3nqZcHTwGNw/kAmF0tbIJwZ0Otr5Q==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Ffrw5hfHtZtdprD8Fo7gza9mIIURg/Aqs7pk6SekZRvejTDsmKPSZgMlH3nqZcHTwGNw/kAmF0tbIJwZ0Otr5Q==","shasum":"78880b8d92fa395d4fc65b3a6e7c6a58ddafd46d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.5-dev.tgz","fileCount":105,"unpackedSize":27242494,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFbPZs77OMf+EB0iOSRVqGl9FsatlUM/I/4SjAWjOTsGAiAoesswqNvryIGH8JvpTLFmB3IdFMWQ8YANB6OqUDT/Fw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju8ZlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr+FA//ROyflL4WEfCPMlEW8MbCJ4AwcjRoSsiy40SoPXBlXMOqHlpF\r\njhcqZHBZc/QpaWqd406zZuLgbL1P2RIzinpcGmo7qAytWK7kfnTMGe4a/8OD\r\n1MePxYTYW7d6NIHih5XF3TPognaM5lwTibvgEjN0aLaH2cfnU6pOYzp052FZ\r\n97cBSz7PAthxFKfayt5gcyWt/HvrdgZebAK0ONmB1EDFkFx0pnK9q8bvKMS9\r\nUwe3JnSWNpjXqQ8Ws/QPcP48Rg9Koms3+1ZpMcNhAYAjDTcJJi1fugGaKMaP\r\nWLkk94RWLxrFelGz9CSPRpZg/zmImeOqtOJz9iHMB+TvSzMdRP2TACbfb/T1\r\nUkcLfKMQt9jKecEh1Oi6HDjb+OMxt+98l23vXR6MwGfaxRl7g6VxVyz4vg84\r\n0t/slQhDP0UUSWh71+urNlFr4hp02XedyZCUcyjjgy03J6gFoGBBkm0dsuD1\r\nFNDRLwohspe0/tgvCfJ/zSbCQ4bhnHhdaTWX3AHHijA9QIst2b5sWSUYJHrq\r\n5KwaohMdiBYtMcxfn2IbxoxQiEAnaRQZz+wvqi8HJDTx9t+q/Jn5HOI4tAKZ\r\nyinK65Mm2TiWZW+W8u+ZsgKpG95Au54tgOrHeWhEG31EI0dT8VYO+K4Sd5qK\r\nBUVSynmhR43OSKpexzqAQXdVsDhB6KoxSWg=\r\n=5i7L\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.5-dev_1673250404738_0.7398774983356975"},"_hasShrinkwrap":false},"2.9.5":{"name":"parsegraph-viewport","version":"2.9.5","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.43","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.6.6","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.9.5","_integrity":"sha512-OzhrBFDlz/yedqKB3i5B4qTnGIEtnJs63RWzJA6s8tjwsQmyi4RA//c+PpwuuIbvnHvU+/ll7kclYZahgjGxiw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-OzhrBFDlz/yedqKB3i5B4qTnGIEtnJs63RWzJA6s8tjwsQmyi4RA//c+PpwuuIbvnHvU+/ll7kclYZahgjGxiw==","shasum":"44ab495488aba5d264e5a3eb0ed103aaf227be44","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.5.tgz","fileCount":87,"unpackedSize":4833632,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClgbbIezHYoUFxX1x8du2pe8xijrHA8U1JfQkmjs5QngIgIZTQq4yib2y0NncAXA01l8u13GO+qZN7jKL8H779ObY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju8bMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqztxAAkXV5iSTk+iUHjbXcyyDzgCg+WxEGnAD1c7SrHIEP6fa5fRAQ\r\njE41Yt+j6FOKCFMr5wqp1wV9CejJ7cuU/UWtlU083ndgB/5BhwR9goLQ+OaZ\r\nR8aG6WQCj8tUVFAo1dzrYPl+HYd0g14EAVAVhGsNbKEi7EU47qjOhntV3xc4\r\nwp42O83LbZEZzsqXclkEVWmsPFvovecuBjRJahUB5uOFKorhvnbeIuk/fMOC\r\nIKsS2IZ1/dkqfx1bOgTWO2o8/Y49XCUWR9he86VXn3we8R1ybqTFJCatQ1Jr\r\nJIWyZoiNrWFmWaUqdSZaln36swDa6WLKKAKICquM1ZxxXKrET5kfiXwhSpnT\r\nvmRnr9bD8rJF8i/ZFNHsHW8ME73emcokC2lVHqNnQuzafDklGNhe32HjhwA4\r\n+ARNNMCnR2PjDbMVDUKXUzIMKcpAu+YgfG2b4UwI3mZGYMjwN2tWsN/hJKDx\r\nTy8FILeEVpOh4wjxwGcdRObyO1X/UPbrJ2cEsFDrVeDMkqDaX5BRw+WmXboV\r\nbOKlp47R/8fBESs9uFLhXkOFDWB7GM8xOuhBUrIn76KVR8Vfwcy3RvuZr+o+\r\nv71/sJogZ1K+NikGUzrVozpfuLW2Yt1rfr0lE4g4oS1AEgWuJvj/+i7c5WKh\r\n9UNZvLLUOypvDT31ZRTFz81W/30DNgHJTdU=\r\n=AGBW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.5_1673250508397_0.9020503255931607"},"_hasShrinkwrap":false},"2.9.6-dev":{"name":"parsegraph-viewport","version":"2.9.6-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.46","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.6.7","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.6-dev","_integrity":"sha512-JIeGWKKirU+JGI/XrseEUXpmb0MYvCyVZABQhZX7p6553Y9I8jrJguIvqleNeOmgy1nv5PA/X6iga1gvJ/4p/A==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-JIeGWKKirU+JGI/XrseEUXpmb0MYvCyVZABQhZX7p6553Y9I8jrJguIvqleNeOmgy1nv5PA/X6iga1gvJ/4p/A==","shasum":"6851d59f822bf97261cdbbedda66124428f6657e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.6-dev.tgz","fileCount":105,"unpackedSize":27247728,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGUQeZ50uqgol+TGUR4aiwjPEDxUz6FiE9MGSqBM7LNoAiEA0QKaZKmSoXhtI6jx0YV9TlZQhmGpn+4HKZb7a+As4+8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju96OACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqgiBAAoscOG+CJsGxuQbvnlPUVaDXcfHQn2ZEO0FQR932fy7Nw3P7/\r\n8PscYGxZWQMFfb0W48tHvtxs6gw0z4cJyZ4/95yWZZLlTfZ0ZBbY6I3yzTub\r\nLErCQ09QnzA8KUNLV9AwnrGKoi1yRnAF8D/9zcmC5bb8ijcIUrLRWwavrLTV\r\nvWQTXYVm2mE6IRxqy4AXi5dZJvRoE1dvwswr7NyE6Tyzdc6Rs1TBEXTaebgP\r\n4frVb53NMZAfV64Kwv4Ir5K73KQaEwsRiWcYwZydjv3x2QjkiMEVuevQhVy+\r\noEgRKfy3o0QnUGY52gAwFfcD8YR3Wr8LS8j/tOEwcCTBcSejmduEyRHiQTe2\r\nX2bc6drj0gbx/PyPTSiGxuKWcsSDgZLwF/PvSEEwOZ6S2XmonhyoEz9jV6rj\r\nFK1tN9xNMDWb/Yc3vcXucEYKoaZXyH0JB3PZLdxMNhMO8TNDxNotjomfu5W3\r\ns1Np4k46q7V6CQnUxlq7t7gce/92Hdbgadd/GPjFIONK0CxBVPunzAFiHNgz\r\nuvvFuNyRsM63OfIs9vA/zLk82EDjIx/0L0fsdb6hSAbdLmy1nyEiKPKcy20d\r\nN2P4bVGkbBxbFHE5W43hl3M+o3Sl2s3c85ySNPMtCPiR7qglaGjTnA45YtvX\r\nEQkaAmSVA7AoJV+gF6PBk33QnI1dZbyuD94=\r\n=OIhI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.6-dev_1673256590340_0.4292447192496496"},"_hasShrinkwrap":false},"2.9.6":{"name":"parsegraph-viewport","version":"2.9.6","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.46","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.6.7","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.9.6","_integrity":"sha512-SHqetUvmN3m/V5eiEqlnewgLm0FGUsVzOEuePh1mhRdoNl/vFvSxZo1dNZvLFlLU8ZLO3BMN5EHiVY1YhO4rJQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-SHqetUvmN3m/V5eiEqlnewgLm0FGUsVzOEuePh1mhRdoNl/vFvSxZo1dNZvLFlLU8ZLO3BMN5EHiVY1YhO4rJQ==","shasum":"f7de9b9c8bda0f1660c44c0d947f09fe390e3660","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.6.tgz","fileCount":87,"unpackedSize":4834558,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChySoUt74vPIaBzld4WD88qQXu+WBQeuXwWfyZMGdt9AIhAL0SC2P0s4Rgp8ssFqGi2Q5zTe+iITLlTBj5puitNAq9"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju98DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLFg/+NyhOfRK6YMYTA8KNGVh3guNWriYbIIzXfmUto6oiD/15X6xI\r\ngtSFx6Vj3zxAjr+GVgOrQ+Ro9p/fNEbR6ovitGwlvV0B2R5l6RjmprXa2OFG\r\nNi/uMvUJiiDFktBR9fBqYrrjsHxBgBCYyz19ZhvhxJHMuY4OJA1GOPt3rfqB\r\nJw4+ErJo6BD4F8kyv5Dj33EFrXJcoeeJqsvlre/MoHsEmrA/RE8Z6++G9irZ\r\nvUIQDvECfmSg+XVysUGcrWjzOWX4Ewtg0MYPfbC6XwUBya1BTyUN1mM2XRio\r\nMlVXomOwAsBptCqqtwHnhqc12cfY7QvCg+01oo+8oMbc8bc9G7DL55RSjT9s\r\nzB+syYgI1pKOZGDZu4z+JGiu0viBS2i8Ak6q6P7lbEGbZbBnbTa0ebCpycVq\r\nBKTSufKLrua0vOS5TFx6pJEPfmWUGtXF2XxsswyaHBUHoRFFgCiXpRClsbqT\r\n4aZP8ZGhTL5DvdACnkVU3H25tiEJe9rxJJGg5VEH2ufSpF15yOmvacE8Ucxn\r\nHPDE4bIS5Q2Adhqr7jioLKVJ8CcFroQoQmpMMggM3oGnBEcjGnKzn6JEcqHI\r\nGjyJJLeFrQ1DVS+aSOIsWFHZzMPoQCmA9BKr/9xGv6+Q3QE2Nw/fi9Si0DT5\r\nEgDsKovJz5APLBAo7mNL/aVSrrD/br0CWWo=\r\n=pKpc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.6_1673256706790_0.7753241980731096"},"_hasShrinkwrap":false},"2.9.7-dev":{"name":"parsegraph-viewport","version":"2.9.7-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.46","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.6.7","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.7-dev","_integrity":"sha512-ZL930hIyopfZ8kahp/rR3A6KMNRUMbrGAfo0ul2o3Y6rDEsdlhTw9cZ+6ZCwezdcDf8tQrGipbWJT4vzU+AZeA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ZL930hIyopfZ8kahp/rR3A6KMNRUMbrGAfo0ul2o3Y6rDEsdlhTw9cZ+6ZCwezdcDf8tQrGipbWJT4vzU+AZeA==","shasum":"924591c75505f1e82827bddeb2a50d54f0a7e23f","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.7-dev.tgz","fileCount":105,"unpackedSize":27248243,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBKQJu9p3HwvDaNAmpgN74qJ7l0A0mqZFB8BX5f6xYCQAiBVIbA2DTJpDVvVHsX3dItYSOoESqi6VAEQL/Oj3zzYoA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju99zACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmplVA/9HmOKBy3vzmilL5lEMaKTWk0ObiCXLtw71DAD1gclqQy/lqBL\r\nyWa8KUAFdX7o1VgRjWpYHOxrEVlHQtVWfTPEarQ+37VIQ9VzexH0d7HymTwL\r\n96zaMVosQ41PDi0NAG3Om1NLWK64LSTx4FaknIXoS+8uTj28FYc7XYIi8ZOc\r\n3IiddqN5GgKcHx4V+I/n8mQD/vOrf2s7CqvibxOmNY//Jm9of7ZI0pASCTVJ\r\nm4r4jkV9hRvZFSnUoQn+XxjmIBijzlKbYXFsblb4wFzh9nVzbNTycEzL/FNZ\r\n+yyU/u5uyZO5ZQy1qPt4I1sZb5z2L8EXUdd1J/u/y+maAHvjUz2mAfwPaI9P\r\nDBOLGw0/IZkWFnrJAzjOhMQy8oJf/XT2SYDzbxXYkid/Q1SvXwsXGtXZ/a+Z\r\n7H97R2BfWxpHUPcNOfXExGvZ1URgrIeUAY66wDBi4aO6fy8wR14Hzy3I8B8a\r\nwx0QSu84nGPaupqUhfLl7sN/LpIvTIP2GJMMV84XgbNvufayja0O7fzceO0H\r\nALKIFVbW8RIjPFWNQHlW5CV2MnL/V9kB2wgaGy8MEOA3fLn/bHYqBMFzebzz\r\nTdvyJAj4aUT7pF+jrextTPaagHI1le2iNf6jZmG7y1sofvy+ABMUbLOR7e/i\r\nswZvOZLQGI++peTZIaV05LkW+JBmtAOypXo=\r\n=26pD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.7-dev_1673256819426_0.8867085010990385"},"_hasShrinkwrap":false},"2.9.7":{"name":"parsegraph-viewport","version":"2.9.7","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.46","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.6.7","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.9.7","_integrity":"sha512-AlcVOcjPECjijenEYJWCfz0a7mxuxKfQZ46BbqpcJyANDzk+3gKrBBYCZ1zmpeX34MVQqQ1bVpcYpwBsE0SHSw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-AlcVOcjPECjijenEYJWCfz0a7mxuxKfQZ46BbqpcJyANDzk+3gKrBBYCZ1zmpeX34MVQqQ1bVpcYpwBsE0SHSw==","shasum":"a69a5ed5daa136d243cc982435d4e4c6ac9ead24","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.7.tgz","fileCount":87,"unpackedSize":4834637,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIApoOwc5+yA+T/4DF6Kn/k+8SNcj1M1fOPp3h4QR/lP4AiBYJpMya14lV8xbS78Do30CGebY5/kOws0wRfADMElh8g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju9/dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpv1hAAnVSSpqBm837tH36lZvAiGW2s/g/LBZxCRgLCu4ceBYsEZa3I\r\nCKDA3mq8OklPRMcgekrurjHn5THvwMqPlvLYKxp4I37V5XDnaoAlg5uoYvXk\r\n1L1D3/HDqFHYcwfNBKSKD/TA7u9BfCizyI+eiOgbgdn6+XEb60/xcKg3evZb\r\nqI0MfaEQ79fpY9bXuX5FipRe6SbTnAG9ve+Yl133arXrjGkaeYx0IqCkOvRz\r\nn+/H6kR3DYd6D/zowoar8iOC9fasFOfQPpM+dx8ZXXdjyeDBPZs2XUFD9bWp\r\nRiaq1wikfUKsT28KOb8CL7i6DxetOg7+W54/XLqbwgOz3XlEQbFkaG+8dXhL\r\naYffoE1IknYexlh2Gz1v5qohDytxU4qdqNckQz1MlHF04TckWI2Bc9d3DNHa\r\n6XwQ9FC3xSsDwZQ1E3bmKGGF2cY6mcIvo+AkooABIWFemhOvkqAyPp7dM8u3\r\nivKieqUiLQ2QnY+f80PzPz1GayJoO0ZIc1QY4BjA6am6JadZhKC7wIbe8TrF\r\nufuQckVWv72lFvV44C0RVuNhoajCEXosMFQ8LGJu30dz0B8A0i+Fr59fHrhm\r\nlhBfhgsTI8430iw8UjPTOldOHQgSdOlH/KZU/Qw9Rm73UWYJb5bNak1D9ZVJ\r\nj9N5U/9od9qN2F6xQzc4Dy5TxH1NDcKJxpg=\r\n=Nq+k\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.7_1673256925534_0.9687794058479944"},"_hasShrinkwrap":false},"2.9.8-dev":{"name":"parsegraph-viewport","version":"2.9.8-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.46","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.6.8","parsegraph-texturepainter":"^1.6.14"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.8-dev","_integrity":"sha512-zem6haYRvVoqDXE34+3xhLgbS7mKZvU0NkniDZi16vUKH/yNble1ipp7iEKwe++CdNJVV/GF5zKQ8YZMwyg1YQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-zem6haYRvVoqDXE34+3xhLgbS7mKZvU0NkniDZi16vUKH/yNble1ipp7iEKwe++CdNJVV/GF5zKQ8YZMwyg1YQ==","shasum":"beef2ebe1264debb0cfd7769ae5e8b7ef0519bfe","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.8-dev.tgz","fileCount":105,"unpackedSize":27249013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfwvZQJIGvM2/nkD5VdpMC1AP5HpwQhWMu64V0zEgnOwIgUYYusm9oE45H4AMRxGyKHoUmTSUl7kA3gJevsKJKyhY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju+W4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRrw/+NNRLc1ofWlY1jbGY+SPCmJEiSwV9iLSPZ0djQxzC81QtMyj3\r\nJuy+1SLWn8z+q8CEPaNaXV88hWpX8aos3lviAayH5P/vxDtxhsADEAehmhV8\r\nGEeFuFKJ/xosMGg+F9f+ucvOpPufHbomqIP9sZk38yO8msMbn04Z9o26fbg4\r\n/NXun+fl9fd3FIu0gm2lBAlaT8OQ/HzirSUdBonKloZy/Pl8fOYoSEasi5IF\r\niVWOf78Dbjyfr1jvGhzI3WqSd7qeQYzEBj1qV8W2sP1+mWlFbGsFzJjzQt54\r\nq5ZT2ioi5MjHWWdriovlZZr8RPeGzlATJT2NbWcMeQ8H3dyUIbHDomWTIgO5\r\n2cYJ60Mb+4OwZalpM12V62Wxlx8lXd9bwVKrUHySIgC7gaGHn2SMYgWuAt0U\r\n1s8N3X23wazCFByso9noUJ7lMgkMy4ZsLZSdrpVaLCphatA5JEK3SdsPB98n\r\n+k6AhHotOx8Wo+UAIrxQR+ns2xzkCTptKfFqQv9rjHOQmg5UlaMSMt+eCDZb\r\nrHJUyZ+zf7vwSZOPcSZADe4RP2Josc2vvnVjKRQA0yVb9SXxkFzSaVR1nY8e\r\nUllI01HmIK7UmF5r3AHOsWUP6/ijGEGaTOQ/yHObQYdtT/piQgfke5j0EwkW\r\n+rAe0ioA1D/jj7uuJFtlu0+IysowY+6pw1I=\r\n=jGfQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.8-dev_1673258423805_0.7466700787167961"},"_hasShrinkwrap":false},"2.9.8":{"name":"parsegraph-viewport","version":"2.9.8","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.18.6","@babel/preset-env":"^7.18.10","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.1","@types/jest":"^28.1.6","@types/node":"^18.6.3","@typescript-eslint/eslint-plugin":"^5.32.0","@typescript-eslint/parser":"^5.32.0","babel-jest":"^28.1.3","babel-loader":"^8.2.5","chai":"^4.3.6","eslint":"^8.21.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.5.0","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jsdom":"^20.0.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0","prettier":"^2.7.1","raw-loader":"^4.0.2","source-map-loader":"^4.0.0","source-map-support":"^0.5.21","ts-loader":"^9.3.1","ts-node":"^10.9.1","typedoc":"^0.23.10","typescript":"^4.7.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.5","parsegraph-log":"^1.9.0"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.46","parsegraph-fanpainter":"^1.6.15","parsegraph-graphpainter":"^2.6.8","parsegraph-texturepainter":"^1.6.14"},"_id":"parsegraph-viewport@2.9.8","_integrity":"sha512-XsFe+ZL9QjSbhnrfwSjf0fSaQlLLB8gQ4/JPefAqylxteX2lfy8EHkM2Dgz5pfSCUP+NPOpcwhIj9//bHVDrOg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-XsFe+ZL9QjSbhnrfwSjf0fSaQlLLB8gQ4/JPefAqylxteX2lfy8EHkM2Dgz5pfSCUP+NPOpcwhIj9//bHVDrOg==","shasum":"ad495ac330c6c7dbbdc770a13f05f0bf97671b08","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.8.tgz","fileCount":87,"unpackedSize":4834785,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICmmLXF+dPgRtMiKRTNXbr2kBtLN24k/07WV1QTsmc8/AiEAtY52i/XS9eOiYAsJ/fxsiYlwKZA/JaLQ2+Cq5E7WWpk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju+ZVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrh0RAAjLvVEKBEnJoUG/xaf6oJQ50TKLHyM9lB7tqnXT1rHDtLy6RE\r\nP5RwcTocR0LPOg7kpbV/7YYUr8nRQ91JflYQX4tMvpGNvS8wUUT/v4DXzaTy\r\nkrnJ5RpDNX1MuIho90VUPFiiqf0UV2fGgdQYeWaHXOgi3D+2nM+KOpctnGey\r\nvimPQjedrg87YqihiUHAq8kP5UmJC5A66koS5uWmN16TzR4nKNQw+IrRdGrR\r\nK6XF6R6pEVrr9PvHUTlE8y518+Qf3NKsoKoOHPLrXvQWTYExHhqhA5j4QJWx\r\nHyJ0jtgG88niA/GzIov21R/U5LdgH4LqeaHxKxrmZlQhWhu6qvdJOi6JAwWi\r\n8o+mGOC6V0FbSTmFe1twPWV4AcZ1MOAAhW2jysZWy0yxyCKGIX/PIrYgkDEW\r\nrgHSVWv+eqhX1ORo42Rso3p2xqE3/Vg1WX5/zJ21r8d5v8165QGkV5ppSltG\r\nHUQIsptBjWvFfX99VLMZMgmQKMtqg5GwayqFCF4AeZbkX8VI5/L3mYUJpPZb\r\nh8uiDPvGeFTJPWPUtj9DsMBCzXxM9F4idu96HoZd93n+UKs3wLtiSJ+/bE2w\r\nbpgbf0g/lkCu96jO/1yyg5wqa5SxysyLDMciA8I2fjEb3ogcSAsc5p9G0Iwe\r\nlMHEQNXRCsWj7BG045z2pXWu3JdUXdqkOxc=\r\n=eEOo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.8_1673258581319_0.09814756611692022"},"_hasShrinkwrap":false},"2.9.13-dev":{"name":"parsegraph-viewport","version":"2.9.13-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.7","parsegraph-log":"^1.9.2","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.7","parsegraph-log":"^1.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.50","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.63","parsegraph-block":"^4.6.22","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.20","parsegraph-direction":"^2.2.4","parsegraph-fanpainter":"^1.6.18","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.13","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.13.17","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.9","parsegraph-showincamera":"^1.7.15","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.16","parsegraph-timing":"^1.4.19","parsegraph-timingbelt":"^1.8.3"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.13-dev","_integrity":"sha512-eRjo9gLEAxAVm5MvckYmfl2hGgs9wpzcfIpvmEZzSJzUFPUFMKyOfFp2DlEqBGuCKfrWJwpxEY69Z6nY2juFGQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-eRjo9gLEAxAVm5MvckYmfl2hGgs9wpzcfIpvmEZzSJzUFPUFMKyOfFp2DlEqBGuCKfrWJwpxEY69Z6nY2juFGQ==","shasum":"14780c7e78efb1bdc7ca7cf518407428c7ad1607","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.13-dev.tgz","fileCount":79,"unpackedSize":27934479,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcE4/t4KQR6fSDCV8TWyx06amupHT8+GcHZFtHyDPCdgIgIUsO45H37K5vw+AgMNaIHIj5VvoHrw/pkPQtYNALwGk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjz5JMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRWxAAh1ewTgbEwrX8g1bQs37fSvP1xAN1n75K6c3h7i4TYWXUXpHC\r\nrtcwFzV82A+bjx1x5+g31RRkKTtHSyNUhf8iVolMaJlvR3iDrKjtvNsfctAF\r\nAyD2IoQVKF8vdow+jIF/UZnuK0iNdLK5PXgd65W1OY45Tw65VICDeXvxoE5h\r\nKDP9OqRhHbzAL/rlY5KzkEOsc3RP9T2Dq7J/8+P4o1GHZm3wbncbyiMtsSkY\r\nnCKkXKLJot8YmBQGt+sSHc95MMR3E5feOFVNML+15yRgHEuvghHr86ewdtVd\r\nqB2Ti/q7zROF/uNEtHAXF/cVYfLeUKs0a/FS9e+73i0Vi3zJHNJMxYuyZ04J\r\nyNo/QuuhHef+d3Y3r+BM02wJZpY+korD4jKkPzPwJj08hdsJsbGXZMbOlBtQ\r\n00QjIEv97oF5ghc/I7TqVUxBu6jGZyMTCEXpknndr1P3oQJxLf2GQvi1/Cw5\r\nb7Amwsg7RQ6+OTdI9CsgD+jiI0tP2szX/t9OPETmk29XXVjHgtFQDr/k0pUW\r\nx9xGOLAk5vc/T50j0oauF16QVVUVtNL4aTawLBDcID+1fIFZGHzdP4/Bp6CT\r\nzW4+hSsc8n0oOVmktxJglvikGU041mbFVO7uHH7GdBsYl504suOmLRFYVXKO\r\nYk1/2GeoOwGbFAsZCzkNTvzWumUkn5uJzSo=\r\n=ttzy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.13-dev_1674547788353_0.8338776017819203"},"_hasShrinkwrap":false},"2.9.13":{"name":"parsegraph-viewport","version":"2.9.13","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.7","parsegraph-log":"^1.9.2","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.7","parsegraph-log":"^1.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.50","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.63","parsegraph-block":"^4.6.22","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.20","parsegraph-direction":"^2.2.4","parsegraph-fanpainter":"^1.6.18","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.13","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.13.17","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.9","parsegraph-showincamera":"^1.7.15","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.16","parsegraph-timing":"^1.4.19","parsegraph-timingbelt":"^1.8.3"},"_id":"parsegraph-viewport@2.9.13","_integrity":"sha512-RQ6vkq58sFBOsiMd44Gzm7x8mVZ3OOnozTAkpoIwoywCIXVHIxKNJIzAO+lwZjCX95a7QY/13nfdTuR0M/MPHA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-RQ6vkq58sFBOsiMd44Gzm7x8mVZ3OOnozTAkpoIwoywCIXVHIxKNJIzAO+lwZjCX95a7QY/13nfdTuR0M/MPHA==","shasum":"777c7b958b9a88f5608e0664cee947d6e261eb4e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.13.tgz","fileCount":69,"unpackedSize":4938230,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcEhKcMLaEcY6lNZc9J2A5fbXgxf5qDZ6IrKguCKNmpQIgaflTCQgCFcSNXYnj5By+0foCZF4lyeBT8KlMP6r/o6I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjz5K1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrptw/9HX5M/qzIWUr9BLqu5n4dNUK10p4SG4DcMViZ55xzPY3EMWqp\r\nNsd26j02dujlkzZrk3h44PBRXvELeH8CeknQzMXGwRR5TjDRpVKjbLFCCKRH\r\ncp+dzbl+6a7XWi4IWafliP5Mo3fXauccuN7MkWdzxkT+jOPjz7ImET3sBD3u\r\npzaFArLEZiEbxemAspVDUg+fgKiy5Il9dNOX0TOb1fbF2Ue/Tl3ontybHhkh\r\nk8325mKs64nNBL6igRdHfgbaJNQflgefhxz/92pjR2zoQI/68KKzSCnV4el8\r\nfRLJ+444xlPnJWm59kBSa5iaSRf6PfxB4RVqxd28WuMFTU8g2//136CgraT4\r\nEyDUhkyYdqo279cvOGR1g6Ba/wVOJw3hvbZlFyadEferS++ny6NfoDFROSvM\r\no1xwUH62taBpqG4zHmaiwkAALyvZiEZl8rUdSNIxgFTOA4wGX8MYNj5GocKX\r\n7MkafvnIkSViy4834mS2h4oNSxs2ghiOk1q+FUvwRo2SbQPLFl8tMbKUY3cR\r\nmFbMb+fxFIWK3MYezAGCP30UTB7+moJUkBBvJr1OsxOG89EMl0oha8jCre+c\r\nLoOeaHbWacs0QY0FTsymnWvw2rC1mLwePLM/JdAdm5vX+pjjgvBzXANerR92\r\nUVHP1DIOCJdoonOuSb31GrgqG3OITNC99wQ=\r\n=OUMs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.13_1674547893244_0.9937728802093841"},"_hasShrinkwrap":false},"2.9.14-dev":{"name":"parsegraph-viewport","version":"2.9.14-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.7","parsegraph-log":"^1.9.2","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.7","parsegraph-log":"^1.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.50","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.64","parsegraph-block":"^4.6.22","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.21","parsegraph-direction":"^2.2.4","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.13","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.13.17","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.10","parsegraph-showincamera":"^1.7.15","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.19","parsegraph-timingbelt":"^1.8.3"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.14-dev","_integrity":"sha512-k4Ac66D9lPvSZcHdCqTTXW+kRtlLi6OxUB11u2shOaTCwtufBHvSy64ZKY78PhAuIFoFA0Tp/revkipJlSFimA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-k4Ac66D9lPvSZcHdCqTTXW+kRtlLi6OxUB11u2shOaTCwtufBHvSy64ZKY78PhAuIFoFA0Tp/revkipJlSFimA==","shasum":"bf19dd372c3e599f26b99b8c32b91a84ffa0ddbb","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.14-dev.tgz","fileCount":79,"unpackedSize":27934650,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIByzE8LEH5tIuuDiGIRXi7LuHhLV8FVs04YFvLCNyLXjAiEAmbve3pbejS0PrCRoRx4cGSNxDFh3yHL1APMDAClEtuY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjz639ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqdLg//ebYBRErcCp42vs1x0hEpHg3AUrsw8iOfPuokY13RYtkKyLHQ\r\ncawKxbxPtvhEHXmy7eGbVkFjbyBrKmTrBhH9oBoGsAKI1vzOEQ+ouNXQxKqx\r\nBioTOBuG8OQuFKpVP3OBJo2uF09YhFGq9gnZI/gLrxYnPVIWaFg3p7933XdS\r\nhS4UoL4iA+AFRnE3wrkMFX6z9crvLj5uV3LTOYahOUkv5bD1dmO4k0Hw5Czv\r\n7GivkyJWvVcA+WwXeK7YISlbkNHXcN6e89qkPUf30RA1J2Q34Qw3MjwxsIay\r\n5RZh81528+TbpLGLg1HjwvyibIirmTeqR2hgeVTxAKCYDVLNRHDYL15Uu3vC\r\nyGE3a0KhLsZs4wKUT5on6n/6gnIlmZDMZH0kXp3r2dasC2RMPBFE6o3M8G+C\r\nB8/DL392qIJNkd1/q8PNi1Wh7828Kap8flZ5YT5a0OarCog0bYLwVofIlhLg\r\n+1nS7OIL06QmvZKSm/0/Izhtj+c3+JzICcRxIM1+8Yf9LX/gYTUV0TUCZMbV\r\nWmECr8+6LT2WINdzuT5II6j2oSNGd4ZKxvvRE5ww7RmF7xZhFeFoCD7u+APE\r\nJ7jKNzrDFSrn0eXAykmALLD3gkrXJUV5XS+v44Xdw4hC+F1FEvdo4zvgpTPJ\r\nnR6MBrr/lf4QTmQZhkR3UcakeSwOdQZO3gE=\r\n=0Qa4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.14-dev_1674554876954_0.13914835019132288"},"_hasShrinkwrap":false},"2.9.14":{"name":"parsegraph-viewport","version":"2.9.14","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.7","parsegraph-log":"^1.9.2","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.7","parsegraph-log":"^1.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.50","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.64","parsegraph-block":"^4.6.22","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.21","parsegraph-direction":"^2.2.4","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.13","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.13.17","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.10","parsegraph-showincamera":"^1.7.15","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.19","parsegraph-timingbelt":"^1.8.3"},"_id":"parsegraph-viewport@2.9.14","_integrity":"sha512-2Rd5I7uczTOGmMUxydXwEjxtRFNgWo6GZw5n8KDu3DFoR0i8egQnzRwkOaFkcyITrS2tW1MatdLhFRtZZ1c8oA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-2Rd5I7uczTOGmMUxydXwEjxtRFNgWo6GZw5n8KDu3DFoR0i8egQnzRwkOaFkcyITrS2tW1MatdLhFRtZZ1c8oA==","shasum":"8ea34261f1f72cca833a87d2d77f4e4ead20c528","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.14.tgz","fileCount":69,"unpackedSize":4938264,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfE5VYq6aFnDgjCbx+WNqRsbEQghrlqp7LRvegs6PKawIgf8J+BWWyspKmYRzk+PKubsiKEjp4DGYzlyFkqbIgki4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjz65iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq9xBAAhssFIQ3EiO+z52lRe7Iq91mYrSx+4XT1LWmBvKdQojXh8lLd\r\n36FRNiVFnog3CZhlHxPgkH1PmYPbNi13AIao2jB0nEYWfGczrIvp5SYQ28x8\r\nLS6aQvrH+XJX3eNjHDecQAp3x+n+QAyiUu4+6ilkK/5APrxyX2CFmvm4eSt/\r\nMga+LLaIT0PVHrlqKCrnh31EtqMusK3NCBom0oiZKUvP5Yt2UPOKuy5Ihv4W\r\ncHy0LuFAw7IPxsptlAVPVhBcyEG+uvW04iyIl3ZkFUeu7PScYmABP8jZixG2\r\n457PfVPwfDZZ5MULC2JKUUeOulda+u4IkvWnz3jbGhdyf4htSRrkJE+PdY9q\r\nVweLngBtOggkHDk4aH4ubgL282kTYXgHY8CrY/TEve3lguUk2Av5C3OQeHIR\r\nWdN+npH3R2LlX5Fqb/WCldCxrMJUKQ5VEMCq8Wyd+4MCbVHuz9aO3nW/qufl\r\nzDBAOWm+1xyZcdOLbOYGXGaMfo8dyfq6J9RJZuAVAmfTs0AwSe/9pcNnSL+a\r\nzDHmU5Govb6V/NXi4/b2CjbeoCLndzZj0ySeb9HJDnCCqwtgWwSYO6gO210H\r\nzyFEBGJGA9VGyUd/yVn7jBc5rnOdOGjQHRr/pFEyTI25NeYNk24DcBfBW9Mm\r\nfm731faZgqzJrYBpiiRbbv+o3ESAJrH59dQ=\r\n=99M4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.14_1674554977855_0.5630538441688575"},"_hasShrinkwrap":false},"2.9.15-dev":{"name":"parsegraph-viewport","version":"2.9.15-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.2","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.7","parsegraph-log":"^1.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.50","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.64","parsegraph-block":"^4.6.22","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.21","parsegraph-direction":"^2.2.4","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.13","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.13.17","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.10","parsegraph-showincamera":"^1.7.15","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.19","parsegraph-timingbelt":"^1.8.3"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.15-dev","_integrity":"sha512-PUqBR2S6VnSd8BwGKik1JM2equu9UEZsTGVut97f1iGM9au2Lb6XKhc2hV6iyGB2ChIU2IiqAHICKJGXBjDARw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-PUqBR2S6VnSd8BwGKik1JM2equu9UEZsTGVut97f1iGM9au2Lb6XKhc2hV6iyGB2ChIU2IiqAHICKJGXBjDARw==","shasum":"d453276dc3e02ec8a8b01dd53f46708171ee671d","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.15-dev.tgz","fileCount":79,"unpackedSize":27934661,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5oX0aqspCZn1tJ/2r3rqcl/sVJl3eCJ4ahrZrl/TV4QIhAP6ZaEhsHdt0Eb86SF60rwQYsxW/lV7lx0MvwZWBguBG"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2jWUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNdA/+JuEuYIezzGAMPvgtcUQYlW7GX2hSNBg/LQ3569egLxGTlxf7\r\nIt1Razxa2gi51JRwwVsDNE4Te8Jf2rwZ+C14HPjHSI7zGxaRIBoVDge3SFiy\r\nT3qrkCIJfsUJ8FG6oRHHDiHa/xHsdCFHl2hsbZrPF+PrZI00XCZVcYuxHSyH\r\nX2hSZjbpC6rFYPrn4KJ3QBqpjLHVfok0m8dyKHZFMMi0MSnOveMGnWgtq7Mm\r\nwCy/3MoLzmxmMZveEv43EnVlM+gQAvrFAGUELPItXg+CdMlSquT/UOXSgiE5\r\nhdG2oRGI5L+48w4hwZH5TB6HN3cq9LJz+EpcyPtQLtDsqoB8q6vBqFwj/p6L\r\nTkt+W5uPDdHF3Yv5ejvzJRxlXOEmGUzwtCMfAN+kFtI9mH6vzhnqcE8RtcF4\r\n0b57SBdj1E1CUCXbFUmJvRWAr573GxAI3CTD71kVnNEsYSGKxzj+QW8mcf6F\r\n/b9xHSTuH/TMcCgvOjI+7HbEg/XYVGvU6il5iD6+5Sb3MoYQdlB8uCCg0vkN\r\nzCdHCT+tvDQk721BScyxnV492udvIOFE2RAZBfnr1Opf6WmnzT+qnaQyQybP\r\nkYLUGDY8UgHx5cSn9Kg8FLUmpCf1pAK5eRSPTTvuYUM9hlpxqjfkmTzg2tPI\r\n4ZOljxoFmo9/xcukS/Pu6D2OGH6ico84/ac=\r\n=/NCr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.15-dev_1675244948430_0.025012559950808866"},"_hasShrinkwrap":false},"2.9.15":{"name":"parsegraph-viewport","version":"2.9.15","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.7","parsegraph-log":"^1.9.2"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.50","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.64","parsegraph-block":"^4.6.22","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.21","parsegraph-direction":"^2.2.4","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.13","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.13.17","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.10","parsegraph-showincamera":"^1.7.15","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.19","parsegraph-timingbelt":"^1.8.3"},"_id":"parsegraph-viewport@2.9.15","_integrity":"sha512-0dLgjRW1MkLF9AKCKHRdut0MMCIy92ekBptbMsO762iT8VOVe83q6uBoxL00RH44Kg1VEAsmfB9i4pDGMJ3O4Q==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-0dLgjRW1MkLF9AKCKHRdut0MMCIy92ekBptbMsO762iT8VOVe83q6uBoxL00RH44Kg1VEAsmfB9i4pDGMJ3O4Q==","shasum":"bd9af644ee48c55a742e3da03b20c807e5fa0552","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.15.tgz","fileCount":69,"unpackedSize":4938315,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHpJqDSEH0wx1+OXlhnrI2V/SwzC8n8bGXOZJ3CruxYHAiBUX3g0roM3pC1x5+qgD1O8dZE1cVsYG2pLuhVksoc9ZQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2jX/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6XxAAoSTLh+gnpxANBxr2Y/fQWV0QvrRvt92yR2fnmYUqPWf6XBFm\r\ngZPGB/b/zggadvkznI3yPPLZ/mJs9hlGyfj1nUnR2ah26yzEKm7dveNTt34R\r\nmrAK8aBkKDVXs7fvoCFkFmTgr7qHfjkptn8W7iGpggoIfCeoLhk/M1EQNMHt\r\nns15hkdX8pGebolAM8rTt0OnNj59D1Hh5tVaqolw+v74aGNsQ+Jhl0WYy8li\r\nY+PoGP0CfK95hdu2beXEfSYqQ4tTgH35s1QTDl0ev5wCMONq/VgvMbnSNW3k\r\nsox2ck+R1hFjuw3y7KU9+nxFHK8gArHR1fKzsGZlIFgknUcTsSUy2oD8Cjt8\r\n5VvZqVsRpTjzoe1GO3V7N5MxmGw0BxOsZD2AmY1Kn1j5fn07dZGQ/4SZexe3\r\nWvt1LzI1ZGmhfAiejgkHtYrEKoxHdAi+Jy5wbj9M8u3ha9EDDl/Y8rCaNqyq\r\nhtADCXNX6ZkfkDwlq9Z1r9HC8sIQcZAuqRluIAAoMw5KfXUixLvXCahx5THp\r\npQjxt397IqzuInWgYHvVDjxqjI+BUC988zjMx0QWhDFgptFWCKUCqb0ovrD9\r\nN7tc8bmKDOfK9oGJ+gDUcipPBSGi4YaHTNX21mHLFgq0UIHDaXQKj3GIceeh\r\noB3ZOwAkgNVCSEgYVdtnSKmAlMSVPlUgG/w=\r\n=d3lV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.15_1675245054961_0.5012982435599764"},"_hasShrinkwrap":false},"2.9.16-dev":{"name":"parsegraph-viewport","version":"2.9.16-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.53","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.67","parsegraph-block":"^4.6.25","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.16","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.13.20","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.18","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.16-dev","_integrity":"sha512-uMuyico+TEaFfzjlllBbZpDzKX1j3HPZTlr1qUMRzpkl9nJ9BCYIlyPfLWrRhRx/ji2DZJckLLQSmF7mDVhuoA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-uMuyico+TEaFfzjlllBbZpDzKX1j3HPZTlr1qUMRzpkl9nJ9BCYIlyPfLWrRhRx/ji2DZJckLLQSmF7mDVhuoA==","shasum":"4205b73f7e3cb07269315adbb515b7950bed2018","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.16-dev.tgz","fileCount":79,"unpackedSize":27938427,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZ/EWUv3gwjCwr6mKDl/Ch0J9rVOCxLp/2Ks06MjEDjgIhAKftMHoEjnRRiMbGu6CDctCRC3ppAHcjob2aU18EQ6zc"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6b9QACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoCrQ/9GAW2fw2EXe7xkEmMDl9BqmP282WaTd8Yy8lSccpjJ9MPryCd\r\npxgwcQ2UWrAIl6KYcUFtosrJ3SkXkdanGBKPT3HQAPjnOI2PbRt9IzCb/Rns\r\nHzLYjn16ihsjrTtVv3KTKKR9qUn+azX8SkYNs+TMkUcM+AowbEk2QEqlos7x\r\nwD9MqVVYPoGu/tdhndsDUsXn3ZpdCUsOUkSEu8bgiCCWxdtIBUGCRzJyZA41\r\nEQh618igV0t0rS69W/4BVvuEQ87XNCBheJRE49LUeWAOuvXUCnETaNLLtxWE\r\nIc4/PnSFRYlceo+MgjPYtjXEPHLxd+aujkEchNjDe+EH72jkZxcy/jTAOhw3\r\nEHwExHRSpQEZ38D6OQJb9JmXKodfD9DUC8ddVi+YNf+xFiZ0ctl3aDpuk2Wp\r\nCt+3A+WBpwPNZkM5bS7hWiQBJFhm46048ylSR3JGoIrd1EfnFv4rYUhKB2Lk\r\n+uLh7myFJCG2LiG/87U3JTXFv/nyg67QIn8kBed6RCjlPycJYXGbjRw51fDI\r\nttvWziWrSyXvo86BPxi6l4CyuBqgkNVVejv4nquYwtWRsofi7AIw4HPDSQe3\r\npta8Tl6BnCzG3h8YkAiPg4iClDonen7AqXrBW6Uum2GMUAxI2mnMZFrApFHJ\r\nSHtjiklRPjzBVQF1ZWRF6cozklrFEFhDeAo=\r\n=dgfY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.16-dev_1676263247751_0.46350445913939087"},"_hasShrinkwrap":false},"2.9.16":{"name":"parsegraph-viewport","version":"2.9.16","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.53","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.67","parsegraph-block":"^4.6.25","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.16","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.13.20","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.18","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"_id":"parsegraph-viewport@2.9.16","_integrity":"sha512-XJwFU5aNSINl+yOfvd+QTW/YHYCxWtJrvPyNq0kD4DSfrq6KElVWxoa9Vd6NjP1DYfS4oRBBf6bi3AlnzEUgYg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-XJwFU5aNSINl+yOfvd+QTW/YHYCxWtJrvPyNq0kD4DSfrq6KElVWxoa9Vd6NjP1DYfS4oRBBf6bi3AlnzEUgYg==","shasum":"18271b1535d29d0bcb0efa5c99bf9002de8e0b1e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.16.tgz","fileCount":69,"unpackedSize":4938985,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEJLWaV9KnABKECQmXvN/TACPNg1c+N1rAITCDAXA1fpAiBWVabT+37FFKWc8ssKWihyYPGIacj1Lbd5Rzrw5TnXIA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6b+9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpiCQ/+OpN+zVFgSlX7YvmPJO6Dfpup8rWYIEYrWGwhsgFn2Ves/OIt\r\nxpiz69aOkBqBnxYbCowizWj96zcYv/xw61eWYWgkrSHEu1TRurv9xW6SLlDH\r\nleTmbs0qLROYKBAYb2rOaMGYuMasC9HKL0vK+znYIJX28J903e8szdR4+C8K\r\nIKk1bGPgyFEdQ2iJgQZltzjuWubiUlrc7yvyMlI2OBH8S/vNpAHr3+f80uFn\r\nI495smD9kvxqKGvbIynwgoj8HXeTEjNIVW1i0Ea1aYwXVBjWHP45HvB5VUcP\r\nmUhoEqly0/SlqYcaGAtmdr+zbQ5UyQHekQO0wOeXAsjwZMifDdIrctP4avEn\r\nyhYnvp7IADzAEY4sVDU6qvLluQL+S7VzEMHxuj27d8dyAV0yCThY8k4esDxz\r\nNDBXLBYVFE9/07F4i3bT0TS6oUspoJOWaRDpilCJtGjK/zNJhzUX+zkwmWOO\r\nJWDHMSli6vrqozfL2sUPqrfzYU9b8zw+QdnnxMXzCNZHSx+sKDnhUpRG/Dj+\r\noeVvNTRgbw81OaKtHGToSb0mLq0sg1gJWLYb7myAd+Fu1zJ83LvlxZEjhZmd\r\nBzAzbPqoeZa7mJpsxB0AOjH0Z6CFx7wpq6XEQXjjFLKHKlxuAltjGUQsz0Wu\r\nXCjCBCVGE4NR9tFrg7pG4oV+3OsYwFnHyjw=\r\n=aVaC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.16_1676263356800_0.03342463412901897"},"_hasShrinkwrap":false},"2.9.17-dev":{"name":"parsegraph-viewport","version":"2.9.17-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.54","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.68","parsegraph-block":"^4.6.26","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.17","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.14.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.19","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.17-dev","_integrity":"sha512-aiZ8mP/A5VhuNZ1yx2sNO2fhqBae9y989/z6u7tDIV7YjjRvg3qw/ZffdKz/BrN+kiFBrXopB/5Lovq8tjr3qQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-aiZ8mP/A5VhuNZ1yx2sNO2fhqBae9y989/z6u7tDIV7YjjRvg3qw/ZffdKz/BrN+kiFBrXopB/5Lovq8tjr3qQ==","shasum":"20f850547f1e093e639f14d8d545704a37475bac","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.17-dev.tgz","fileCount":79,"unpackedSize":27939398,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDRlpnR6B28qk3Aea9dULF0fpI93F+j6kCRsU7MPXk2GAiEAjJqfUqnwjyOsfVdupXdiSdOL3dI/m64CcrUnVyY+Qbo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6dy6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr77A//R2tIqRJPOB0SlAu+qj9GyYt1bkhyo4nrpMu8IUgT8j50e15p\r\nKyzIo90xSsjYEk3CetVCkUCAncjMplvZ/NCMoEzx7YGc3aJtJjQYcRKsy74D\r\n3Q5XSmJMkRjoIp/cxx6Vmy5VoXbKNOj7UZ5psBeVqg6Q95H+9kPff7Xg+RIN\r\n8T/1mF5QE2GWwzOARMijmr94rgI2UD1LsICffPSb2DC/mGQc5CctB+ZggXdS\r\ncUe3zD2GXVq6NS77FlmQn9PuyEivW6Ue4k6/Q7PpHDskKNJTwjxdPzzFdIUq\r\nxEHuUmJG6lTXnHO5wbReOuQY73HCklt+BMBFA1Uk0dkwTV07vcfQLrxEzVHB\r\nxGivGuKc8igQB69A/kgZi+vwejDqrr08dh2gj6ORmBc2klHngoiS4jxoOiwQ\r\n6/S+K0iwwD0axmu1FWZqudJvrk4KsOuOmVRRhRfN9N57/oZg+OrwJ3khYY5i\r\nJPa6ajkxcStUjWvE8L1DmaAlBO8RzuJrEQVXaTWTIHZWHHPzmWmuHO3SkrMF\r\nUvfG4xZbw+S5dfVmcXj6eLbE4CY9fwt7yd56p81jsGFTOFrLEQKEh21h1TB1\r\nGk0MQAHVNg8z053+XHFXEYFztD3axDx5SawdaZ4bhaH2J1/7jDJSSjGKxM6T\r\ncgUrBNxthSwLLhESz0ivF2mRSGXNTiMo52Y=\r\n=J7ij\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.17-dev_1676270778055_0.923014864327909"},"_hasShrinkwrap":false},"2.9.17":{"name":"parsegraph-viewport","version":"2.9.17","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.54","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.68","parsegraph-block":"^4.6.26","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.17","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.14.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.19","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"_id":"parsegraph-viewport@2.9.17","_integrity":"sha512-vGEUWqXCBHCCG+PxlLWy48soV03yrin22I3hu72yOQeQChgdAwl+Fo34m2YG3VciPQR36NB00QePtwhrJnivfA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-vGEUWqXCBHCCG+PxlLWy48soV03yrin22I3hu72yOQeQChgdAwl+Fo34m2YG3VciPQR36NB00QePtwhrJnivfA==","shasum":"274dc01e765e4143844b1d9430756b6869929804","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.17.tgz","fileCount":69,"unpackedSize":4939142,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICYFQafhXIO+x4bffhn+P/tpEYzw2ppNAXWENYDx3NrEAiBFgAaEPta+dkOzdEkLtVYdd9WzItQkjn1Rc2IpIgr+ug=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6d0TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrt6g/+LtynDa9dVhxyJmcUiCGVldVRP+LmMVONw591suLnwks6OoWo\r\nVMbOohKWabZshgIEM89D+xwjWDCzKFCIkQ7Rhc9JO6rJuzxz5iRZEUxtoQIw\r\n9Nj0g1V1TIuUqWd286opm9qDB9rqUAxcQ2HPVukmlrOV4OaAmLwx5r6BGUEe\r\niYNUn+NiTZ28XE2OpmSG22UyPwWL+g/NJPXnwh+0JTqPivsAiJCLhZdASnxS\r\nL1FvpgrXVrlCQNXdSiDpLFuSvU3LjpjPJQOxoqIV2kp2+3wTM6BXLblg5vE9\r\nDBfJY5dLH7iTj1e4tWpNyDFY4+pL9f95NtMmrRVsk4a+ykNIt7EWDqWuGyj0\r\nG40IaaI8kyxzbjXQ+jF7nsVPe1v8ptbwW0EO5/GeLziVLC98dUctyThgPZb7\r\nGP9xW0m68Og/nSeWCDE7RU/n3lTPuV2UbDDqksdS38bZHCwpRzwi1Yfwvn8d\r\ng7S4RdLlZL0UjDSZoET91gJGTLT4IYlf6a1T2s8U9uF2iAQxxY7FbC/Pktd4\r\nR8iDmzq1MuddArSKiYtGNfiNXLkL+xfPaY4v41wV2ngAeytLKOUo8UbJS2Tj\r\nNXgTH4RHhRVOYAyrpSMe7uBiY6h2XSerhXRYhb5kspe5KwcB0y/fj9swZGOT\r\n0hwVsp0n/jBEoEk22ZpXrmo0N8BwlGkb57g=\r\n=/JE1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.17_1676270866747_0.8953477595878643"},"_hasShrinkwrap":false},"2.9.18-dev":{"name":"parsegraph-viewport","version":"2.9.18-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.55","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.69","parsegraph-block":"^4.6.27","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.18","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.15.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.20","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.18-dev","_integrity":"sha512-5UDpo1lqB/H2VDwbyGWIJsIVAz/4AYjWGxxp545OC73NziV6hzOEwOSrtd/isJXbdbHpzaGRorUGpdBFaRL3Cg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-5UDpo1lqB/H2VDwbyGWIJsIVAz/4AYjWGxxp545OC73NziV6hzOEwOSrtd/isJXbdbHpzaGRorUGpdBFaRL3Cg==","shasum":"f934c3caf11d361b298664dee794f91f2ab41b2c","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.18-dev.tgz","fileCount":79,"unpackedSize":27939422,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7jARr2q8UJ7aLfk556F/xI0WA7LocUZVzDw8oANKnSgIgD7VqxoFrtRC3R18wkxjDvjDkVAnyYGPHkOMH7+mYDSE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6fQPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpfkQ//aZJwcrZ0Rh6/5LtEfeN3IuQTI3jD+pY3QxoCmZA+S3bfqWHO\r\n95SJo0//Z7N9wZvGDSEFcVOQ2fyOwuB2yuLZ1IVJJ5yW4nUJ4tRboHcl0mNM\r\n0CKmVVGz3O68MffDjnuAXzl3CZXft7uKnM3hToTDHD9i7TH+zQ8V/gY1QzSE\r\nRvI5NFr3UpxjRDUpgl2WQZbpxNs4lWzxZ6j4wq+8ER1uLQy6y+q7F3C1Whbi\r\nCpjPYfriffJEDM1uNtDqXEU58VjJhRAdqb9+un3O/s19RfZqwRWlMn+Sh0i6\r\nFGVT5orIKJcZxAZY2He+QWK3Ua10jkI8ggsapsFpHcoZ7JoQ42g0f17QVDnA\r\nQbpgZLMShxpFeXEme2+NMO0d0QW8OmSDLsrHd4tyaW0tOK3n1zQsfYMJWfGD\r\nx8AsJx6burrTZIdO5nnprB7EYeIB5hHfal7wLYxGkZZAUMh7Fa49pc87KIFZ\r\nt2P0MFK7nBAs2TAMFutG2s+sG+j4KKGFt2ttoWLDKM61hVt8Zj7o4NoZI3PF\r\nFv7FMC5tvWUsMKAGoqSBg9gHjdVzieMQ6A+ynMu0CApJLZ3WtA8gbuJE/XZV\r\nEuJLwznVNpJZOAGreRDiRq+dvpQmLI2pbK7kGNVvCW+lu27LLSweW59IknPc\r\nZVM6nE2as1phnwxMMMjx+DH8Ta/WdYzyEGc=\r\n=rpQT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.18-dev_1676276751412_0.6524032422491515"},"_hasShrinkwrap":false},"2.9.18":{"name":"parsegraph-viewport","version":"2.9.18","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.55","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.69","parsegraph-block":"^4.6.27","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.18","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.15.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.20","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"_id":"parsegraph-viewport@2.9.18","_integrity":"sha512-tATQxUz4yVl0H0ageogt+fOHjIiyqGgngrq2Vbzk6yVLtmEXGFmT9oLt/59vEpyOGk8jZ9EinFuKC8bnCaximA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-tATQxUz4yVl0H0ageogt+fOHjIiyqGgngrq2Vbzk6yVLtmEXGFmT9oLt/59vEpyOGk8jZ9EinFuKC8bnCaximA==","shasum":"755f206b083725557530723069c7203ee01d534e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.18.tgz","fileCount":69,"unpackedSize":4939146,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICZx8tfG1lVAnoTckjcQ9Opd6yTrZslDnaSjw17G9yibAiEA8ILKDSSTHD+hQTHKeBPJOAh41UtBY4Echv1sX9uXCYA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6fRwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqfiA/9EF6Pw4IBHJKEJcHsxAO69BhbE+X2QCWUznNXPY16JRpdWpCS\r\nebXjIdAa6jK8HBW/8xstQ3/qgsxYDz1wNHSreQ/PKiBzBD5VJIgRqq32sau/\r\nA7LbjJr1TJUS6jsAdDrELz+VtZ+VFV28PWoakc08WNZfOb/mkg0+iNDblqjO\r\n1FiB/JpVYmhoh6IiTgi3HXi2Mp85OEJN69I0xD+xKlT9Otoks9lGUu5u5dXL\r\nX35YFjz8sOrg+tXouYdw6AdDf7Ne4YzzD3sA5whdw2Ic3O2cJskFImyIDrmK\r\nxoRbOqMNMEjKsTNxsRhEKutfZZeT/6HfTplESgPcFkB7vrSIuTjVTi22H9br\r\n3ZwCd8BsLwdMcUKWyIDIKdzSQUnVwCjDHyhv6bUecFih3738gLOS8FPtKTZp\r\nSs3hlnBvlmWeFuSpg9NOFGWZalX5FWFFaFYLomLE4w2HEkd1+WR73ddS4otv\r\nBNem4si2yCoHNsPgAoXXwiHc17MtbapdBJnNZ54b0ov1kt6IF8CRf8ybvXvI\r\nLy7V96DcuYc30GIwc2gZz1FRodtVKxN77YEGdIRwUhjLjGbnb8XUX3zzKH38\r\nj0GJKKCFVWtbht6ntyY0G6ZxsF0x8F22B/yUlLEeeZ8cCO9+VAjaxgkq4cJP\r\nam7LwNBt07oO9O9GVZc5oTrZQK9TS0DYolM=\r\n=Si/8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.18_1676276847986_0.7379805909450647"},"_hasShrinkwrap":false},"2.9.19-dev":{"name":"parsegraph-viewport","version":"2.9.19-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.55","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.69","parsegraph-block":"^4.7.0","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.18","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.15.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.20","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.19-dev","_integrity":"sha512-7Uf6eTdPlwlocRxVoEvpevuTDR+d6nT+6WaaWFdN66jteSVPKlJn/roM0Bo50WxFdsk3OPJH7JSpgARNLcsvPw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-7Uf6eTdPlwlocRxVoEvpevuTDR+d6nT+6WaaWFdN66jteSVPKlJn/roM0Bo50WxFdsk3OPJH7JSpgARNLcsvPw==","shasum":"8e365317631e261a1126b7d5b5aa480821d7aadc","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.19-dev.tgz","fileCount":79,"unpackedSize":27942226,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG/DVbuPcWFy97njIwVrf/MmGCtKjsjpAPzDeCYTkBBmAiEAgNrlFuxUGm4TKZ7Cr6K2qduH+VB1PrIhcCjdHOFxRl8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7KWVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvfA//Qqak44xV9Jl8/4ueMAWoWOb3v8V1Gd8Y4y5cvhCkSgR99qGj\r\nYAHuv4w2CJ42RtsaenEVggkC5z0DStSt6S8Y1h1a5FgHgIGi/Hg2kE3dNz6/\r\nlNEgw68RkUl+hwyJFGOLeZcryVAhn8AO+i0qKzjYjzdL9KulFWjpXTmUGHsK\r\n8UUKfDkDh1JyDOc6jB3zYGldH3DFsZ0J6nIHQHbXbB2pABk1VbR/4MzBQbUO\r\nGVmlFYwvvQYrWSUlKn8XGBEjSkE8hjFGsecwD0Skgxar2OmQOayjo0iolEoO\r\nTMT3OiQJ6Xd/FT0/1cImRMGenikWLHseCewuckCx7BZpwVBpo9FL3X4PG2fq\r\nT1jf8SCug6RXCuSSeSYO/XoljRtLDZB+FfylfkEFg2SoW5W42pvczZlKP/UV\r\n0vFJNATU93QWb1nFU32CXiViKEWOECvk3SoG+U2OTxNVPfZJ+ZNN2eBjUutE\r\nHHV/L4kpx0VqU/ovCyWMd7Pqn+MFa8SWjIrEwL8TeBRcIMP/agtoRvwzOI3/\r\nRPBAWlztVvyBBc5sJiSdfUQrYdzswzvtLfZrFPi9pUwGb3JlsebyrIU+dOfB\r\nfdvxp/g8rCfME/qi56mxfTIKGrQ6lJTWxqT+xqbofZfhRqfQ3exVW8ixbWLB\r\nVJO/Cg9RMSMQQeO+F6qKIyO2D/Q8ulZfjKU=\r\n=td4h\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.19-dev_1676453269223_0.17052491739802056"},"_hasShrinkwrap":false},"2.9.20-dev":{"name":"parsegraph-viewport","version":"2.9.20-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.55","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.69","parsegraph-block":"^4.7.0","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.19","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.15.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.20","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.20-dev","_integrity":"sha512-k0ZkmtUzbQG+m9tVcEfyXc9TlNbMpxeLB3cqLleFvMvEY0PzCqgUGM+PxDUt2dQJXQWCqiTv/xruF49swTMfzg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-k0ZkmtUzbQG+m9tVcEfyXc9TlNbMpxeLB3cqLleFvMvEY0PzCqgUGM+PxDUt2dQJXQWCqiTv/xruF49swTMfzg==","shasum":"383ace6aa0c2d55b7db817404dca2cc8a5a6dbe0","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.20-dev.tgz","fileCount":79,"unpackedSize":27942226,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB/z09dAmV3CAHLox+ckrWTzDf8PmYneDKf4rTk2SyKNAiB/WrYSrReTAaTlZp5CwPd+fJFLzxFvLWnLJ7+I5lAjYw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7KX1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmotXA/+N8EEtsv5w2RjKHINTZV8RJ21s3aLlwqa3e3T/UUYb/lBNto1\r\nl6Ki+HBkBTXjXntXBdqG8RbWGEFxYF5q1mXqq2NwOf3diiKlXtBEe81LtFS1\r\nGoq8ZBeHOxYJE9lW21mOWWV2phOetfb0N795mX0Kg9i65jTXewaCNKI+pjmT\r\nMD5GwF8+IZ0URf0Fh/mv2q1RMXY77LWt/aDq3VoPGQXJkgZ5sJ/1MJU1C+jP\r\nXAN7d8HC1oz08bFiRDQJZ/g/9Fx3JIGK0Xm4CN5TpGb0Ztm30kOsjSCefVk3\r\n6epe65TdJavTGDpEnk8OIvwfHoOHSL7T91zkRADPn9TySgXBsgHaXXsmULzf\r\na5zb8eilHs+Ozw1UPIAwU5WM4MRxjJEF/KeftQlmr0rfKr2t8uiduORzIxTC\r\nzbWbVTIExz8AG6Y7JtoRXLT9lcOCCnIkorNfy+nEcabYVQjFLNgpUw/RKDLK\r\nz/edGjMcMpkyO0Fk+C9tx34FheZg8RANSJ97FP/sEq3oJN8I9gZcmx71XVhs\r\n6MORjToWoM5fJe4+62ri1DJKF/lFmbMJ4ZWd2aG5NQYD9TtT7wk7N5sdQ6JK\r\nBDXZl9EK56NPgsORjsdgyahZyOwwjUTEErjr+Qey3nGFUQac5narw0T0z+RV\r\nx/RIqssPw8CAAv0OGE3YyVY92PMhEWY1aTc=\r\n=UGRM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.20-dev_1676453365120_0.034511963178502914"},"_hasShrinkwrap":false},"2.9.19":{"name":"parsegraph-viewport","version":"2.9.19","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.55","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.69","parsegraph-block":"^4.7.0","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.18","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.15.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.20","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"_id":"parsegraph-viewport@2.9.19","_integrity":"sha512-JuHcWlUmh2MPoNHKIUSj0qaOtzF+EGtUzmKsnwRA/SJanb8LuWtbdSyvuK5HeOXPqzs7Q9IVjlKKfh0/FetTCQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-JuHcWlUmh2MPoNHKIUSj0qaOtzF+EGtUzmKsnwRA/SJanb8LuWtbdSyvuK5HeOXPqzs7Q9IVjlKKfh0/FetTCQ==","shasum":"bb74aece85c70e2377c48637549ada460116c370","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.19.tgz","fileCount":69,"unpackedSize":4939708,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEQ/bpE2P/TDbbMVu1SW+ggNVXiWD+NOO+O/vIGsYg2VAiBtUBWmWYmdOXJoH6yg/r4FuSBp7MDNdeHt6ot4OI4b3A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7KYuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoq5w//cuXwoukezUt8RnYgQrf9YD6no864yI62SkwE/IajHl+ioSNr\r\nRWvTY4jYKce7TSjtp8ThFmfLHEuQtlZxxP4ovcSifqtNw1nLRLw4PAqPl/a/\r\nJ2RZ94hOCeCYYntXVfxKTfggP60lyeecr885WED/5zGfIaMHTlh9ZgkF8RVa\r\nlLDEMrsZhXXyf2ENatGbZ5Mc9c4myP/J8jD3jpHn9E8tqbeLf0k2BpU6fAa8\r\nH4XXrBANLftjBJxpPGSac2R583re7EOnwoTAEMQgZ+tgNDvo999yxf8erT1c\r\nBWpoQBkYxaI8g95ZxohZQfIGK/zuOc8+EVanM2JyBphpHM1oRIE6smH3/DsT\r\nKdnG6Nn+9kiFdbt5MqJWgELXYY864RuPZ2FlEGrNrMw0YX9AkFtvJZJZgXnt\r\nU9DaB2mZm/2rEzRec6f3KvjS5T2ygkynfSsV+cF8w6zJZs23k/lGxnDaEoIR\r\nDQqttBgf8eBVVPUiPK+CaxnacsmHqMan9TBEjknYHaBVzdZhMgJN1HjbaF+v\r\nOnJvd7FUIuQiAyppKefp2wI/Y+0/dB8bvtzX5L3cdTCwl62Y+pv/23eRhexI\r\nlgYbJ7kKUHaVgHPk24UbLGq1Rcog4XJ6xDPN9TeV9V29G82a55fVynsQPyQp\r\n9KJUJsbMFIvAdudOX2mJGJ9MLRfJNFQh6C8=\r\n=xicR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.19_1676453422400_0.3538819744758903"},"_hasShrinkwrap":false},"2.9.20":{"name":"parsegraph-viewport","version":"2.9.20","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.55","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.69","parsegraph-block":"^4.7.0","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.6.19","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.15.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.20","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"_id":"parsegraph-viewport@2.9.20","_integrity":"sha512-fAZ89RSW0Ej2XhlG8tRf/We62XWkPVbt7ItZbCBoT7VbdbmsXaHkVJNooWAP37Ah/DLUZ4edNglrzcvYPH+xgQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-fAZ89RSW0Ej2XhlG8tRf/We62XWkPVbt7ItZbCBoT7VbdbmsXaHkVJNooWAP37Ah/DLUZ4edNglrzcvYPH+xgQ==","shasum":"ab251757083f0a43287c53ff2bdd83214e0ab16e","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.20.tgz","fileCount":69,"unpackedSize":4939708,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSjTpB2plE/skvCTDO7PPX19yxN6edOIERmSmFMCymIgIhALNLAPPrVUf3Fw3LTj2Leb+pnK0gl1t1ojpV40dGA36z"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7KZcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmohIQ/5AGTC1jNtbsRbCnAlBFqDcIgzT9kfzHm6w9CsV3kiv06zapG4\r\nDyUB8H0lzDBl5kbzbUgyPPUz0cZP49PlV54qbsi7oWaHimJEi/nTevHS1j95\r\nOEphWoCBVeNeLRDK8uSsYpjk4p51DBDrknfeAL5YPp4t+99/sUIArCqwmbu/\r\nV6jdokpMDTkHhGyceZX8xRwSK1bR6GT3zWlQwlzMl/Ybzf56tfAKEFT455RY\r\n8AbdvVIgLBhoA/V3NlaBlL3A/e8GxStH48N1dJ8jXeci6/6GmHmh+NW5bQn5\r\nCmmFZsCQeTgaUr63s+c27cQXelUyMOwvb4uXSfQFIdsmyQ3so+u58yPD2X5V\r\nneJXECh8FrBJb/fc/WTM9hSOKB7Mk3ZxjSSSHyiqwKoSQTp4Q6Rbd+1JCU1J\r\n88qNF9Crkl9+iYW7EQDHjAji4Zl+cjuUX06WwJ+ZKHai32Qt7m75w5zKRJCz\r\n8jYLhGvJO9r1J+KU2Hwrlkl2UcUkOvMQCKN7bRHxW9hYVbTVdyz5gRBZPewo\r\n2/lBI+j2r/fduXruH9z2jCmYtUUb5Nif0uZ5PC76+fGv9osvzMw2+nrboF1d\r\nRh9oFYLsqeDnqGl1eNL81y3cxgs3RAGudH0Uw3zer/7HQtasdjtAQOH58etT\r\nK3EEgk8kzRJq1+zSp+Yzc3e8eEsVmT8wju4=\r\n=zUqE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.20_1676453468001_0.8359829601748916"},"_hasShrinkwrap":false},"2.9.21-dev":{"name":"parsegraph-viewport","version":"2.9.21-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.55","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.69","parsegraph-block":"^4.7.0","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.0","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.15.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.20","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.21-dev","_integrity":"sha512-ZTnlKn9HLRxdTt5339PnA8u0/qkCzF4mPw4/FFPSu2P+kGrXZntn0c6Gt1ZyrTw1HCFQpCPHNlzvaZS5ILSLGQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-ZTnlKn9HLRxdTt5339PnA8u0/qkCzF4mPw4/FFPSu2P+kGrXZntn0c6Gt1ZyrTw1HCFQpCPHNlzvaZS5ILSLGQ==","shasum":"05b9df066b50723f104fd3ddef5a1bf2532fe3d2","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.21-dev.tgz","fileCount":79,"unpackedSize":27943635,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWNa7yzN0/TxOeNl8rcEcu3XitVk2yFqdD8i45pXASQQIgZE81qxGTVwwiLr9KgLNTGx+qEF48fcYapzEIThd2UOc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8erwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpu9hAAnJ6uYu3xhU4Uoaxzt+8tV7RTYRsTo06Ozc1IbnImUwa3LWMm\r\ngLr8fcj0JWhz/gfmBE1PIajVUt5CSABexFnij1wjuQHOezkUPk4iDRvCSrOk\r\ni24NvisT04kKo+BDcwZ+astqRTaiKfhCYwFGKCuXu+4uwonUVY4KswqaV5kd\r\nUWOF01tmRS9Ut4yQXx4bdkdEEY8+3/e/wlrBzK/PXJY14xSPuOG82mtR7tX6\r\nhSxKdvEQClWf1CBucfpCoeTW46D9AYzedYkPRLeJeVaEr9RE2+LSVVa7Vt15\r\nu/i9k41VJTUsgmZNJ+kRkvMFa04a0wBhZgI8UKqMG2hDqsqP074B3rIxNTKG\r\nYPvI8ftlXPYgTSHhBnKeggTpN/wjHIOna32btHJx6aCFpwwCI7J9W1g+anYr\r\nJKHlreq+k1K4ZYGUZstRmlsR+UdqEUw5gXx0Dc6TE9Yv0aYvVyLTmYjX3ieJ\r\nZj8fTqrjGMNUEmfnEUATuVH9suzozknF3CgrLreuP5hRsbu56c4mrgVupxJl\r\naHaJV3OTLfkYeUuKY/RqQVYPfMNMKRi8HR0KT3pwsRptslv3ulONJzncukJM\r\nj9PiDTV5/ZIUdKKHI6sBjy6LkhrUNj6yDs7nexHRtQSTHdEYPFph8xTCOxi+\r\ncbPuhcUvnGaGmtOceMaI+dZIhaB+Mz4iIs8=\r\n=3UYG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.21-dev_1676798704309_0.7611756940209933"},"_hasShrinkwrap":false},"2.9.21":{"name":"parsegraph-viewport","version":"2.9.21","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.55","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.69","parsegraph-block":"^4.7.0","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.3.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.0","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.15.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.20","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"_id":"parsegraph-viewport@2.9.21","_integrity":"sha512-RqH+iq/hvYnE8+Hhup+/rjP/cbD7w7NX3841V0Ph/3OTm3YOitM8b12YRNPahrmQvz1MfGL0ZhClfVyVzAWWyA==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-RqH+iq/hvYnE8+Hhup+/rjP/cbD7w7NX3841V0Ph/3OTm3YOitM8b12YRNPahrmQvz1MfGL0ZhClfVyVzAWWyA==","shasum":"c8c0d725c18f9553e7be0f6f4627e23b06f03226","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.21.tgz","fileCount":69,"unpackedSize":4940260,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBXVkwZWbi8s2i80c0cf4qZhinoCixChE4IPmuiSg750AiB0GjK8JgoBD+BnM1YxGIJbTGHhZWQgxrPpVOGilj0MHw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8etSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpjZQ//fIMU3qdyF2/3CInulvD5xFiPPpVDT/2s9wAOcDwhPyNI/fdt\r\nqVWJ3ld3qokKDaVm/Cue2LWdz+tEarU78w6zs2g5SksFwIM1NW2AQBFoEsCW\r\nBNdbWTnlPdZeAkZ5+3IiX26lC+dYjjGK4QNxQTCKzj/zLrnMeY3nMVJtFEd5\r\ns2BKKTEpd0Xvdttow3CzF+Cb/1DnZlZWGYYQV4jBrLy5s1pzJYoepscENMwn\r\ns5tZo+peYYA2kpT9DDf3zxK1GMZv2Tz9rct7xLjakoFVd2f84xazpBHjJD6F\r\nHq61duVf0phyu+Ij3+O9uwHZ0rYBX1g6ba6PwLn6UhUjASOJJyYflaS7sc9L\r\nm/OKLMnYCvS2OUp2gA5ESvaKsIdxhTur6Vl1vJDcDUkRW3oPaGzntnY9oBXm\r\nM60Sqjs1Q6i/z1B6NcNjWnTTOjQMh8oo6Bd767ngyPUx7kZ/3rvvOqvWVpqo\r\nwDZpZPfZKhrWacT85Gf1NF0huayBp2Qhwvs/2QTdIOg4QeSS7O9Q5ugZ1nFX\r\nkfi8Gq5owEwjG5bgFEX4Tgbh1zyNS9MKMNc4YMPMNS1cf/Gdjy9sHyy75wJ8\r\nb5qK2Fvh+527kE5HAXOIzcvxtt38WbNbKdwDAo6/HbJlGpoDFSxfPLyIZsau\r\nZzRapq4XZGR0HaD3wfSQYM53nqc1ZZ4mgrM=\r\n=xZ7M\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.21_1676798802487_0.014116559048106048"},"_hasShrinkwrap":false},"2.9.22-dev":{"name":"parsegraph-viewport","version":"2.9.22-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.56","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.70","parsegraph-block":"^4.7.2","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.4.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.1","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.15.1","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.21","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.22-dev","_integrity":"sha512-fJut212jq9SKILri3jJNhw9EOtLo6+D4hUKGlGxtGhkf23vqM8rScDX6bYQaZmoKharCSURzGpRt49xTI7v3jg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.1","_npmVersion":"9.3.1","dist":{"integrity":"sha512-fJut212jq9SKILri3jJNhw9EOtLo6+D4hUKGlGxtGhkf23vqM8rScDX6bYQaZmoKharCSURzGpRt49xTI7v3jg==","shasum":"6a4aa9d18e80943176aadd7a6d8d983defcd4d9f","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.22-dev.tgz","fileCount":79,"unpackedSize":28184781,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlXVPocsHiP+u65Lg7SDvbyuZ28HyqzsZIE1vw0IEpXAIgP8tHG5xsqDPT5iKgDinyABIQAE0zqINfDMuu8VKlHHw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+HbXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmptIw//U6QTpycp3NlF5I8tguzQSJIAHk+H2hDaHEIdURdQi6I91pv8\r\njz39eyhDqFLuXrNhnldF3aKpm36UTljMaK8PkUapIYuutHOja1ppMhMwF8N7\r\n5hdXIDRdLi3i+wa5RPgCTK3rtPqovj9C4Gq7PbfK6wlvMZvC4dpaOrpK9wHm\r\nCXke4mU91dmIhB+P0Tqkm4nD9P6Q6wDifMm5hifGqa9dTn3bKm6q0QdgycBe\r\n6LOEI0akfMysgsit/wAZ/YoFymfsIfCIq5ifgWHjgu4b0foRviiLA4iutiWe\r\nDKqBErCID0aSrW3/ldhrKgF4LKUWvAi2JPQ+Xy/kz4CQNjIErhxiDzUTn4hJ\r\nA2SJ4bSy0pFalrc/oVRbByjvFdqxn5B/qd+rSgWhBHHhnIu53MAgqYPyVDKt\r\nf/yuGFkDx5vFj2e4WTKAjQOhg66eVaQZtHhfUAjkINxCIJApsQK++0NJkP7p\r\n/3EkXaD4JYweZCWXBo0q04q/n7toPKk7QZG5aNmVv0Ox29ExVvFE4OnZ7cDa\r\n9iT9Pi9xaqL0sRxfRZzQAZe+v5pMOgyTzsxwZGKYUoariU5kRiugQH7dqiAS\r\nMdEXriqE2XtyjxPCiSdyit/VA5/chYfsHP1J8eYX9VjQlvg099mt2CHO4kIe\r\naZjRevfwJgO7U9RckceWSj3mNgqMlypHaXk=\r\n=rHG8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.22-dev_1677227735215_0.8697737387804869"},"_hasShrinkwrap":false},"2.9.22":{"name":"parsegraph-viewport","version":"2.9.22","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.56","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.70","parsegraph-block":"^4.7.2","parsegraph-camera":"^1.4.22","parsegraph-color":"^1.4.12","parsegraph-compileprogram":"^2.2.23","parsegraph-direction":"^2.4.0","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.1","parsegraph-input":"^2.0.10","parsegraph-layout":"^1.15.1","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.21","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"_id":"parsegraph-viewport@2.9.22","_integrity":"sha512-AZMZej6wjTKWlaAXUrkkvIEQ2qYblzBR0p+YkdH6UId6Condp+PRaF/e+ENcTN8vtRwgBspEpz71f2KQjd1Y1w==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-AZMZej6wjTKWlaAXUrkkvIEQ2qYblzBR0p+YkdH6UId6Condp+PRaF/e+ENcTN8vtRwgBspEpz71f2KQjd1Y1w==","shasum":"1ccd936ab9b8ab64eb38479d00fb52a46eb99cb3","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.22.tgz","fileCount":69,"unpackedSize":4983649,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCG85/xXIGA0w2GrSrYamA6KyquS40tULH1jlT7mBUlbwIgH9BXHNLSBVXCdiZ/K2/oySk1hgNL8A3xnjC7T+X6YX8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+HdGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGIg//R25yu2na6/5xbCx5rVhV+IoBob1pY6befl5CGanDh7Ks8zMw\r\nRyaZoc1OlEtiYAyMlJa8k0RoXmd9oWJ0p4aHq3FGUUdSo0rjZ0a+oFR1JHnx\r\n5YUZkaO2Xn+STJXMQVsl5urwJ/bWAtxVV6kUVINmrDaaoLjMilHt+kxHcchs\r\nKj2hv17cDnv6MXerPlzVX2Coz2/oUVEAlvsv03vJLccUADK7AloQn0y3GjxN\r\nhoz5hHCeCii81cZn/A8wZ9+JvY/kznDnN4uOgYYT7qVjG6eIQkN8qk2/BD34\r\nyBZUnUWmMZFWoYuhe04LYezlazS12TmRVHy9JXMtgCsUWJTF+QOJv20w2WgT\r\ntW/ETfMk0KKXwkyi9OtiyAcMOjwG0KnsCAGf3QBafZID1HIM6vXJaB/WE9p+\r\nc6HNVU1nZxZ+MNuVEds1K3GYEoKgYxTI/I7NHMU3Qd/xB+ql3Uh1AQDw5QWR\r\n1aPn1pPenujVcPx1Gfiu1h1c3K+v1ICS28gH1qls3jsxsb4lAN0rZ0EuVrGR\r\nm22JDfs4ic+foPjjxAEqFien8ogagEiuF0E2j7E9Uehb45HfCLo0Omk9s7cZ\r\nkoEKXENvDMfM0DkGotATNqSFWiSUHX3f32iSo26dCMSA+Nc1ZDpNRssP59F/\r\nPh1/d+VY1j2IqO5V25eKk+GQbvAGfkh1er4=\r\n=7lBu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.22_1677227846201_0.481849528133385"},"_hasShrinkwrap":false},"2.9.23-dev":{"name":"parsegraph-viewport","version":"2.9.23-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.58","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.72","parsegraph-block":"^4.7.4","parsegraph-camera":"^1.4.22","parsegraph-compileprogram":"^2.2.23","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.2","parsegraph-layout":"^1.16.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.23","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.23-dev","_integrity":"sha512-6wH/wD/uySlV2UhlyNK9RGfE8F4riPqaVKXLfZoth6W2UtJu3rTwRA6bPueVgEFPoEa7lTowAE8nmNglxwLnFQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.1","_npmVersion":"9.3.1","dist":{"integrity":"sha512-6wH/wD/uySlV2UhlyNK9RGfE8F4riPqaVKXLfZoth6W2UtJu3rTwRA6bPueVgEFPoEa7lTowAE8nmNglxwLnFQ==","shasum":"28bb76dd150131a1614972675945ddde62da9ba6","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.23-dev.tgz","fileCount":79,"unpackedSize":28345280,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwgc8sRHcyNU0LSLROIupBXzSs1rJchPDPqfCYtpOn6gIhAP57iWKPBiDNk976K3rJcoasKKL4vY3DKVmZ9t2/T1QN"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+rl3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/hRAApQQHox4K4l9Fo+C1Yu7YYy5hp9pRDGfocZOsLlkUxo0HtXIj\r\n9U6ANJQkV9rklC29UEULkphIoSBBz5pv6Qh0hV85LVPARnc21zRuFbUy90Ix\r\nj4NZ0OO0gq13m8lQ0Gqqb3mmqpZyjj4OBRmwEpOJz3zPcLe7GMXDHYVlWqQp\r\nZ1jQUof1mSW/OLzWwyuO1naOj6k7d5v/raTlWyLoF0cvbwI1JbLwNi1gdJqJ\r\nTOJubGM0wpOf9KlJTwyEMBvRZ+0nsh41vmbS2T5Jm2tpOmSU4Q5FgWDTcPPf\r\nx8h5aLeOmVkx3R//LPu9hRSXbdwsHN19qgddn/cJrSQxacxMRemX9SoOnCKj\r\nZTlu1k2XuApkAXr2u901SvN/mzlj/jiSH8xd1Le5jADyAPOYJ6qWn5Bvvag+\r\n3zqndP0WCCu8vyMdQoqo1rEI2y4cZiVRBRD8fGATVEvuCi1O05jrL6SkVbga\r\nbVu1s9XqSq4DsH2QernGBVYZxRkJK0s47LOhFGxtfzDO+4bhr89I7oriATTO\r\nDA97i9bF8Y+qE6SdHWi67WIwT4pvAZ1On+Cn307fOaBRKZADcSSJgc0Zy55s\r\nw+F8c2IkT+bk7UP6j+giWGgcNEba4mKhxqot1lO82MWwOTHTGelgkYdNRrQc\r\nvVkcXNOSQl93nJKsG3tPFTlTJWCldfvF+Ac=\r\n=Ca/j\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.23-dev_1677375863227_0.9556415556536246"},"_hasShrinkwrap":false},"2.9.23":{"name":"parsegraph-viewport","version":"2.9.23","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.58","parsegraph-animator":"^1.5.10","parsegraph-artist":"^3.4.72","parsegraph-block":"^4.7.4","parsegraph-camera":"^1.4.22","parsegraph-compileprogram":"^2.2.23","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.2","parsegraph-layout":"^1.16.0","parsegraph-lerp":"^1.5.11","parsegraph-matrix":"^1.4.15","parsegraph-method":"^1.4.25","parsegraph-projector":"^1.14.12","parsegraph-showincamera":"^1.7.23","parsegraph-smoothstep":"^1.4.8","parsegraph-texturepainter":"^1.6.17","parsegraph-timing":"^1.4.20","parsegraph-timingbelt":"^1.8.4"},"_id":"parsegraph-viewport@2.9.23","_integrity":"sha512-GqUJfwgteXkqvCawVj7Q5AlrVYdG21TzppO5R4T5/oDITLE0gB2kQlyW+LTgRLorDXaXkspvY68otqehtw/Ufg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-GqUJfwgteXkqvCawVj7Q5AlrVYdG21TzppO5R4T5/oDITLE0gB2kQlyW+LTgRLorDXaXkspvY68otqehtw/Ufg==","shasum":"f2a5ee32f382ff8104b70d3c305090757e76e142","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.23.tgz","fileCount":69,"unpackedSize":5012237,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlwpeIFekuqjdVtqmm3UpEXuj4CdYZqpHFxhWwRxBdLAIgJA4CtJay+PZn2Od2kDd8PP9Hn+u3gvBo/WldfmNlY/E="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+rniACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqAZw//bjZ5o5P/HniGiulKy4DdkQuryxQbnLbYQryJUJ9p6D0tC99t\r\nL5s3JI4qGq1nZWcRBEQX4Dvacr2hd3oriMlbtUwYDViRCbkrvsrspX87FTuV\r\nP6k1wUpDjqJJBQ4dULzrY1xt88eIlsET3GtJXMBd01WlVLvPpsRA0YN0Nan5\r\nMFOSzE1nUdXtrz8xluy0FdN6Fcd+IgzMEadTRKtvMZY0n6CvmY3BbzAVsm2b\r\nxD9Coqss5lkEDteM+TDAj7ELszQLJWEjvh6sTE2HBLUZ2+xxvorbQj6UVnaW\r\nDUWnc9pZvQWnTG0PHCUrXjk6XsDN4I8EMxdu7mzd2Uf+zuW1vYyGIjU8NjAB\r\nbRJQfbiTkNkj2Sy9iFVDpZc6RGo8i6QsxDCvqSZmp7PxlAsoGPLYbVfAQ+Zk\r\nFyaCDVhh3LUG1MWerjOiAMyl5oS9+1mg5q2XKq/fZeWNh/gRG9bTUyp11o0G\r\nhyOnt7vgXWZKBuAQFfLRNpA3UQ+tIfA7Q7q9RiiN/t5EHse34vT7x1E6ZWKO\r\ndwJNXXdnoeiCB2HxVJ5AZKLJSDPQL3vB0yt/THTEVtN7/q/ZxLCKlVEsvfXd\r\nuV5lsQx7smmRcZWrFcyrvRc+uT+WPgB1ldbajzUdqT5e6K2TK4Dah2gsKPIn\r\nPfFxgAsuJrvJ3oJik4zAmv9tvfggFGDxGug=\r\n=llxC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.23_1677375969755_0.4233468180953497"},"_hasShrinkwrap":false},"2.9.24-dev":{"name":"parsegraph-viewport","version":"2.9.24-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.59","parsegraph-animator":"^1.5.10","parsegraph-compileprogram":"^2.2.23","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.3","parsegraph-lerp":"^1.5.11","parsegraph-texturepainter":"^1.6.17"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.24-dev","_integrity":"sha512-7+2qUDgMWAYoQmRN0/PSHPs/c4m4MSfRieheFX/aKHXnFBF1/dkdvc9U+TUpeJbh9/Z3U0aFNm/BicsaGFQLNw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.1","_npmVersion":"9.3.1","dist":{"integrity":"sha512-7+2qUDgMWAYoQmRN0/PSHPs/c4m4MSfRieheFX/aKHXnFBF1/dkdvc9U+TUpeJbh9/Z3U0aFNm/BicsaGFQLNw==","shasum":"a4a585381346c97b03397ec9fb08cefc95d0fdc6","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.24-dev.tgz","fileCount":79,"unpackedSize":28350642,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAlI8SBhNSF2MpZzJkt0N8UEJ+3Kbz2aHGsXLDh/v09tAiEAo3X3zn0kzdgTM+1InDmRDSnGcTdKhMTkAlqUcRXqXBo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+u4uACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3/g/9Gi05EuE2DmJ+0P37mAYn8+31UAyZj4U3V69ci+DmY1jWoOHJ\r\nWHFCsSAPKNDUbsXu67XhWBPfD2diDaOZw3sx5yL4aGN1t03jeP1h1D6a7MPe\r\nZ/yeUAaRcI3vHwxowdq0SBN+VnlxFtIAQ33Q73VzVJ0eQhF0iZildh3AOPB+\r\npqMbJMSCJCLDviGY7ZDa90OOUUoaygCoUCpj06yOxtSUBWckgTVfXDBqOpKK\r\nBIzzpIbQE0mxqRSB1bQv9fAx+Jq0UfSMhTDeMNVh1EIXI9YcOqqN0calUEe5\r\nZK13aXBH81MvYSCUqR5KW8A+Hh0fYytcvwQ2cIOPT/SPXodFswcQVgvTqdzp\r\ncFnyRYCDm7PFWShnH1GvpMtq7blmj47CRxLgFIZD8gy2R7sOKhgimh0W0xfp\r\n8iaG5w2opKktpTUeTrxZKwIY3EHno0zAJ3xsOdlrRopK2aMV8dgV+0521JQu\r\nrvKF/sI2mvs9BDXLG3MuaebJDpyAcf8LZxFl74DQIdEI+F0zYYC4ugaIucza\r\neqLQ6J0AtydgLVSO8iPnt37xWsNK4ZyLwfAoUln8kI0Z4MgRiKp7wjFgKt86\r\n77Sm7porne/ASkaQJcF+7oVpDxjWnxnE+IBhzyM58nl92fq4UtGN+AkIMi2P\r\nTBCIIG9ekDIXhYqwi0MsNHvJMrU8BBGINo0=\r\n=ywMx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.24-dev_1677389358205_0.8061986966597738"},"_hasShrinkwrap":false},"2.9.24":{"name":"parsegraph-viewport","version":"2.9.24","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.59","parsegraph-animator":"^1.5.10","parsegraph-compileprogram":"^2.2.23","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.3","parsegraph-lerp":"^1.5.11","parsegraph-texturepainter":"^1.6.17"},"_id":"parsegraph-viewport@2.9.24","_integrity":"sha512-zG6wvJ5hJwj7TAwbrjlKMRJZYOqkjktcoBTzz3hDy6g8Y7nD0cnLYVORYPNk9yaVbx7bSMevq5DCOAKYuXvb1g==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-zG6wvJ5hJwj7TAwbrjlKMRJZYOqkjktcoBTzz3hDy6g8Y7nD0cnLYVORYPNk9yaVbx7bSMevq5DCOAKYuXvb1g==","shasum":"fb5b407cb5ce69830c0566ffb59dbcc8657edd5c","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.24.tgz","fileCount":69,"unpackedSize":5012863,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4xrZEkQ0mHbedeuzmbJkSo2477G4JKBD/jxtdCzJGJQIhANyy3WF+LtPnHCm0ii5SqBWmMDyIP9FXr5rXZw9OmE8D"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+u6XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp04Q/+MWNM44x3LUMBk2R8sCbGmODpLAArwVCGl+e7/DimAt9m8KjP\r\nSfB64Rquq7ixSL0GaQJ4Kx1Mu9AbTmp1ipALH5w7BiXCvc5oAuyzwsZujO6U\r\n+vVGUwV1BqBmODZNc4U0aAYeGP0hAlb6Vr8hm92v4c2r9efY6qiVh6oCtc8b\r\nnbtTlrU2vXLkOgO4cTi5YBiZvbPRduz4rT5JQg5jFiCEDqtUNB9/BA4f7WfH\r\nMrBL282V+6LPXpBRKQ7V0yyy1JlX1OkIXiOyTgBap3G53kjcLMHGHupuUFeD\r\ngzm7Tj67QGwf4l11goXdloQGYg3SPJN4Ft4nmAbM60QGFlHvcwtFIHR5zOok\r\nnMnUpBWrK6vLmg9aWs6kzX92IwNVsKdQpKvGq7J7OyRiQ7N1M1X19aILuOdX\r\ntGzKmWm3DCBhonVRwszKAvQcpllGD4zv2ak4wNhwD9raRVNFQ8gVL6sbe84I\r\nEmFPLlDeJfoGHtCgnIOFg21zzMaKBa49YeTjbGghGsFnd3q8FR6/ssENl09a\r\nUCZCoaMoqd6nXgjwFuAiD3S8DN5NS7G08aSXsOUq7bIb4QaLcgfes2dU0HJr\r\n6PD5xnOcPrVXzERN7ArVFRrnTIqfI6ZCHD0GC3mGXFty24PEtxaXzdfEP/OX\r\njtwtS1yWy83WDZpdVNr1Iagf9aisSb87OAE=\r\n=tz1n\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.24_1677389463454_0.7654232552218747"},"_hasShrinkwrap":false},"2.9.25-dev":{"name":"parsegraph-viewport","version":"2.9.25-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.60","parsegraph-animator":"^1.5.10","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.4","parsegraph-lerp":"^1.5.11","parsegraph-texturepainter":"^1.6.17"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.25-dev","_integrity":"sha512-qnD9Iri44i/UhzFhfktYlernWHJvKrDFk6Hsb4Pw/AbtuNqVvm34LKg3DLSwvUw/gNw2Z9hhA+8yNLFStkJTJQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.2","_npmVersion":"9.5.0","dist":{"integrity":"sha512-qnD9Iri44i/UhzFhfktYlernWHJvKrDFk6Hsb4Pw/AbtuNqVvm34LKg3DLSwvUw/gNw2Z9hhA+8yNLFStkJTJQ==","shasum":"a257ba81f0bc849b52620d177f9bb742807fd2d1","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.25-dev.tgz","fileCount":79,"unpackedSize":28350520,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBBzECrq32XmfahCBRzaaQKPHNOzWaGKtCYKVJnk0vUiAiEAr16rZBkAKR9rM+Jy4iT8WpJsRtZF//qz49KA2e4ThzE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAvYHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqLgA/+Kv6o0YVtTiD+j75fbHV71QW2kj4xsR4Y4IPkCqrh2cC/OhgP\r\n/3m2OMbvkfDKlved/nYZEJ1TtcSerlOmKzJAfNGEkDY5faVZXUxzploX5BEr\r\nTr/hrvvhtDByAxMTBPkqWSo7d90eWFy0cJRaikXlyBzovyOUtlHjJo8Vrbes\r\ntUFQ6ybJICm7AOV50Y3faz6SbCcDeIEASc1zhx8yav+51GCBSidIeO8kwsSG\r\n2M14o27e+LjgCAPSflUelULvrME9JlHLuUn1s32Pjcrcg21daw+8VlbgbaIG\r\njkVWJ9mqo6e6gr0NcG7ehI2A/ll6DvPDFZzakE+gVj+rclD8chGy3VpSnfBw\r\nlR/cZc5eY+UFN6M3JvOiU3NaKDzgY4x4BnvZlCLAWXE17oYYuA/FQUNIcmY4\r\nKsFfeDQTYy0uDPezJRVvMkPYrw1x/ZV3J6axy/KZd+YyAarlTn1ulMuGvtkt\r\nEuYck2XA2XqA4CvofnYOJnWyDa0CA7zZR9A6jal9g0+tq/RDGwVbZ6mzMMR6\r\nkWjedEX6y/2LlnvXdnzk4TDaCnxIfIz6OdRRaFZ+gUEMCncz9OqegWHOYJTT\r\n6RccuO2se1kG3TL/ibYJaNBjU7OGa/WIVt2BTJAzvHaYMrNKu1wi+deVssL8\r\nH93uvTtODYRn8oET6FLxlEdCXtS10R975B4=\r\n=DLi/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.25-dev_1677915654709_0.03498510704267743"},"_hasShrinkwrap":false},"2.9.25":{"name":"parsegraph-viewport","version":"2.9.25","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.60","parsegraph-animator":"^1.5.10","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.4","parsegraph-lerp":"^1.5.11","parsegraph-texturepainter":"^1.6.17"},"_id":"parsegraph-viewport@2.9.25","_integrity":"sha512-OWN3E8OxdEY5VvHNBcQITrLRc2QXBmQOi/1RIb3b9cJwvCcOTMhSxzM90KbANFfK6PreGMPLLlX83EBejR2wjw==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-OWN3E8OxdEY5VvHNBcQITrLRc2QXBmQOi/1RIb3b9cJwvCcOTMhSxzM90KbANFfK6PreGMPLLlX83EBejR2wjw==","shasum":"fd21c1cfa50324b097fcfd9b13926af01c305532","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.25.tgz","fileCount":69,"unpackedSize":5012805,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH+lW+1WsB+IRBFvNIdwyaYjWZHnVGRmskuPgJvb6FLfAiAa1W6ObeqC7aaEBVkW5OqxAFlGUCY9K99+sR5PuPjROg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAvZkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9kRAAkf2DEj7DVdet5KhZDU5UflctNlSVngdI/ISHftiEWOZIu4Qx\r\nzacxomwDrOcUYB46VkEYPSgKnZ6BDBsiM/2k6lAyf8p+i0mlu/SBydYmkP19\r\nIm04IUYZus6Bo/2rKyYGvST09O+8/AFc37KLisTEoBrcvjOKxSLk+mbAVu5m\r\nms/obdJsoM7vSOdddFz+18PJhUa5Wi4K5IWcR8QgrTc4mqSLRiu1085RQfn0\r\nF2TQjG45lOwFLUhXb8vJuUk3fiFRUwUIiim2e3WonR6L+qrTN9NU7URxugsA\r\nWfU1bJTeeko+ukBgdevV+76rDTwEIPlXmd1gPpiIf8BW3sFLdFtb6FN4KX/l\r\nvBTU+I9EnLziePDJ/ByaJmQmGtnWeUK4KbnDKLry5rz97Rr3ANrUzY0GuLyx\r\nWW/4WL2TbgqQMi6ukofiFmc+GQWI6bovDGtjzh9cOlpJVDRVjpoGUKnTnmcA\r\nOzQyJ01EHKTz5v0YUhurj7Ehaq0WH9MnAeJqzBKw4x1kHkFaa0EW+mC/NJ3N\r\nyn0OpRfAlMpjX86WrM/HQNyEJGnHXnroMcyA7GE95ulyS2+fbcEcxjQSakMJ\r\nEWQhtF8Kk+iypt7iKBocHTFiR9hfcPNAgsBlni6bAUoAk/Kg3UZ5NplHdnRR\r\n5DnVVMvMCkUnfaidsQ7gTeYXnBveV3FMuS0=\r\n=6ppd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.25_1677915748361_0.6525927125994961"},"_hasShrinkwrap":false},"2.9.26-dev":{"name":"parsegraph-viewport","version":"2.9.26-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.61","parsegraph-animator":"^1.5.10","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.5","parsegraph-lerp":"^1.5.11","parsegraph-texturepainter":"^1.6.17"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.26-dev","_integrity":"sha512-h4M/7VUEFXisdBV1SSemkRKxgVMSLl56HdR548ag6czaLPskJI3S4iAkTdkFPlnFU4Ou6f4tGXyzVU1A9z2RqQ==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.14.2","_npmVersion":"9.5.0","dist":{"integrity":"sha512-h4M/7VUEFXisdBV1SSemkRKxgVMSLl56HdR548ag6czaLPskJI3S4iAkTdkFPlnFU4Ou6f4tGXyzVU1A9z2RqQ==","shasum":"f6ae24ad5df6f1347b3bacd505e7ec37b2613353","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.26-dev.tgz","fileCount":79,"unpackedSize":28363623,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHM2QL+1aRhXvT/IFlxO1n8hEK+/m1AxtXVfRaiGp416AiAbEQUHAWCLGspe0gR+S6bIdHTH8WmIcqwbQM1cQr23Qw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkA+cbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+UQ/9G1Kzv5tZcMEd6VrUWYq3pg+52g8WBz/ka33AslXO/vTeq1oQ\r\nZbUelpntYxusmjuStpKO1PqwhTImaoNb/PrnV2Vz1p8JV7Jki1xRWmkXChJp\r\nKenpEoUtpUtb/ZDgPPvJH++I2jkd4/5O09M9YfwneHZo5PoLcmB7xO4BsxvD\r\ndyu0z4q6sFzqTpXKdpTrLTKHWkJ0iDIlJQL4PkV4XJTltfOU+Mf9RZ5La44l\r\nUsEvWPI5fv6PCdd9wZlj56NvQOOJ3Mp437BLQCy7Ivpp5hzHSJuzYCiPkPc4\r\nA4YIhDWGU5M/36cXivXrSlTHQOAwI5JAsFckgHeMvWadJX0G1TWCPG0SlEZd\r\naBkHWOwsjXoFhouNeYStWQBxJf9WtOWkx0gH/H5gzOJVTZbNI2Rt0XL9wyri\r\nDLgtCY/VNY5oHcw9WWT3GY5/NW8ViyXU5h/xJF8jrmRG8L+2H7KTejJ5fVGj\r\n3ECT9mHjATmSMZd/i1K5fgG1csDuZiW1Td302pSj0bts0ctizkQe89iyS82Q\r\nUzTcFLKpMfdvq+66wie2d2YhAlQQK1SD36TMCcbbUmJ7GOlgYEaa9Yj4H1xK\r\n6CLPtJEJmLp/+a01YDarR8MvHL1sLI/naLxWk7VqlI5aapJL/oIx8Lg/FiLS\r\nw2OPrraOWpHW+qyu3IXKlRbWI/Rfb28+QYw=\r\n=thQm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.26-dev_1677977371029_0.09163373195226088"},"_hasShrinkwrap":false},"2.9.26":{"name":"parsegraph-viewport","version":"2.9.26","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.61","parsegraph-animator":"^1.5.10","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.5","parsegraph-lerp":"^1.5.11","parsegraph-texturepainter":"^1.6.17"},"_id":"parsegraph-viewport@2.9.26","_integrity":"sha512-J9PiDSxrTK2dbnwJ0I9j3s3OxrMIA1touLZtcXnTMIML4xC/JEMR4zX+aD90c/lyEPRPOKXSMoCWHU4JCQElbg==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-J9PiDSxrTK2dbnwJ0I9j3s3OxrMIA1touLZtcXnTMIML4xC/JEMR4zX+aD90c/lyEPRPOKXSMoCWHU4JCQElbg==","shasum":"5de4fe04aeac3b37c90ec8ff05b20d173fc56445","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.26.tgz","fileCount":69,"unpackedSize":5015175,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDi5nMV1LGFL5ogiLfRj5ITg7TeYQPS7TrB7CjwvjZVKAIhAKFMKwiDH4ZR79tVjU3eKuAk2TCoJ9IInQqEgpb1d0/R"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkA+d8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqg4hAAjDFTtS+bTC6Qr+RNfiFcCKTpdOJhzi7cqQsMV66S05C6/3Vh\r\njGRjywJRHWIn+w+bq+cmw17AZ7mrqCMzHBFTjJp0FTEzqLrDtcuUl/8X4XLf\r\n2u1xrvRDR3cOgkkeX4RnsQ2HDBSNBL3EBW0PJlwP9+JLmbo/EL/B44jBKHZ0\r\nqq9CAO4xk5anbUK36cga/ap4decq4WD8UNWLu2kmt+UJTseY6t71+rGbDS/t\r\nar3/6Q8mNHOZKVKUyN9cgsU2F3C6Vtgig7I9mgf6OgHoVLz8D6FazLIWCtkd\r\n04TmRdmgB0qhlVmNpPf6l0RHjU+jRvs73CpflQrZL2BAyxcm3yEGxp57ic8O\r\nJFigSp8beLWbdnlblo0MhDS5djjv99HlLqw42QGcq6bhh51SfghmLiPIREof\r\n60eb2GfRg+wJIN6+fyxpRGPbzEjJ5Dxuq9/AQsbjAvYZOo1XRk3dbqIkMRFT\r\nJd6WEnXj5vVx2BFkNksx8c3atOib34q8Nv1HH+i166k7yjcR+IzkDCWck/Iq\r\nx9alCX4BJOh4XE6hiKou0/y5b9CefyGFQ8EOjys6XB+fodM3CBHLzKo8GwcW\r\nC+2NnvM/KduQlDHTRsESqu+C3t+36TUg7xurSqQDuTOcHk5Ukl7HsyUkedoK\r\nIhgbTROIvYQTmUTGMwVWd21tyVUTJm0r6/E=\r\n=6q9a\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.26_1677977467944_0.6723842794126778"},"_hasShrinkwrap":false},"2.9.27-dev":{"name":"parsegraph-viewport","version":"2.9.27-dev","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.61","parsegraph-animator":"^1.5.10","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.5","parsegraph-lerp":"^1.5.11","parsegraph-texturepainter":"^1.6.17"},"readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md","_id":"parsegraph-viewport@2.9.27-dev","_integrity":"sha512-k9AY+oMikhctyYQJXvfbgjwhLjUJdQkxjpXA6aX6O0Tt1rrZSqp3LV96dPyaGgAQnGXbS9dLxGwnv8v8vYYTww==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-dev.tgz","_from":"file:parsegraph-viewport-dev.tgz","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-k9AY+oMikhctyYQJXvfbgjwhLjUJdQkxjpXA6aX6O0Tt1rrZSqp3LV96dPyaGgAQnGXbS9dLxGwnv8v8vYYTww==","shasum":"701af69a69174e6e621ba2e2aa93b18407612f50","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.27-dev.tgz","fileCount":79,"unpackedSize":28386060,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDoiEPquKZ6Q1w8U49r+lOQh0P5oDABh/URNiCY+P4ScAiEA7+WGBCjlDi5ZGJe+gaB/FRigmwgJojEdKwHjGEuTrRY="}]},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.27-dev_1685512461875_0.08986907300653035"},"_hasShrinkwrap":false},"2.9.27":{"name":"parsegraph-viewport","version":"2.9.27","description":"viewport","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"license":"MIT","bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"homepage":"https://github.com/parsegraph/viewport#readme","devDependencies":{"@babel/cli":"^7.20.7","@babel/core":"^7.20.12","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.20.5","@babel/preset-env":"^7.20.2","@babel/preset-typescript":"^7.18.6","@babel/register":"^7.18.9","@types/chai":"^4.3.4","@types/jest":"^29.2.6","@types/node":"^18.11.18","@typescript-eslint/eslint-plugin":"^5.49.0","@typescript-eslint/parser":"^5.49.0","babel-jest":"^29.3.1","babel-loader":"^9.1.2","chai":"^4.3.7","eslint":"^8.32.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.6.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jsdom":"^21.1.0","jsdom-global":"^3.0.2","parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3","prettier":"^2.8.3","raw-loader":"^4.0.2","source-map-loader":"^4.0.1","source-map-support":"^0.5.21","ts-loader":"^9.4.2","ts-node":"^10.9.1","typedoc":"^0.23.24","typescript":"^4.9.4","webpack":"^5.75.0","webpack-cli":"^5.0.1"},"peerDependencies":{"parsegraph-checkglerror":"^1.5.8","parsegraph-log":"^1.9.3"},"dependencies":{"parsegraph-animatedspotlight":"^2.0.61","parsegraph-animator":"^1.5.10","parsegraph-fanpainter":"^1.6.19","parsegraph-fuzzyequals":"^1.4.12","parsegraph-graphpainter":"^2.7.5","parsegraph-lerp":"^1.5.11","parsegraph-texturepainter":"^1.6.17"},"_id":"parsegraph-viewport@2.9.27","_integrity":"sha512-apEYC2vMua9wCPqksi7dP/Ftp2VYeoW7g8ZFpldfoPbIxRY+rqJ9ugZ0a/+6D/NVjnw7xuaenFzyLK0X12biew==","_resolved":"/home/runner/work/viewport/viewport/parsegraph-viewport-prod.tgz","_from":"file:parsegraph-viewport-prod.tgz","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-apEYC2vMua9wCPqksi7dP/Ftp2VYeoW7g8ZFpldfoPbIxRY+rqJ9ugZ0a/+6D/NVjnw7xuaenFzyLK0X12biew==","shasum":"0fb0a4a97fb3739e9ba595ad24a902859aea4d84","tarball":"https://registry.npmjs.org/parsegraph-viewport/-/parsegraph-viewport-2.9.27.tgz","fileCount":69,"unpackedSize":5018286,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNwZKChPg57AVut7IQPWHzf1bQhRTcIyqW7oQBU9ogGAIgQ2hpClvHJbaHlOVo/HyfPyMyT6g6BiflkNoPYhqFDiI="}]},"_npmUser":{"name":"dafrito","email":"dafrito@gmail.com"},"directories":{},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parsegraph-viewport_2.9.27_1685512569626_0.8238189006585142"},"_hasShrinkwrap":false}},"time":{"created":"2022-04-25T01:20:52.053Z","2.0.0-dev":"2022-04-25T01:20:52.254Z","modified":"2023-05-31T05:56:10.084Z","2.0.0":"2022-04-25T01:23:11.798Z","2.0.1-dev":"2022-04-25T01:49:07.288Z","2.0.1":"2022-04-25T01:51:44.076Z","2.0.2-dev":"2022-04-29T08:08:30.812Z","2.0.2":"2022-04-29T08:10:31.707Z","2.0.3-dev":"2022-04-29T08:13:51.081Z","2.0.3":"2022-04-29T08:15:51.262Z","2.0.4-dev":"2022-04-30T06:17:14.267Z","2.0.4":"2022-04-30T06:19:34.820Z","2.0.5-dev":"2022-04-30T06:19:49.740Z","2.0.5":"2022-04-30T06:22:04.853Z","2.0.6-dev":"2022-04-30T06:42:04.087Z","2.0.6":"2022-04-30T06:43:44.278Z","2.0.7-dev":"2022-04-30T06:44:26.954Z","2.0.7":"2022-04-30T06:46:10.182Z","2.0.8-dev":"2022-04-30T16:26:51.077Z","2.0.8":"2022-04-30T16:28:40.308Z","2.0.9-dev":"2022-04-30T16:29:18.636Z","2.0.9":"2022-04-30T16:31:30.013Z","2.0.10-dev":"2022-04-30T17:00:58.691Z","2.0.10":"2022-04-30T17:03:02.673Z","2.0.11-dev":"2022-04-30T17:03:18.216Z","2.0.11":"2022-04-30T17:05:27.647Z","2.0.12-dev":"2022-04-30T18:08:40.666Z","2.0.13-dev":"2022-04-30T18:09:14.055Z","2.0.13":"2022-04-30T18:10:40.182Z","2.1.0-dev":"2022-04-30T18:45:54.961Z","2.1.0":"2022-04-30T18:48:00.537Z","2.1.3-dev":"2022-04-30T20:00:53.142Z","2.1.4-dev":"2022-04-30T20:01:30.767Z","2.1.4":"2022-04-30T20:02:55.516Z","2.1.5-dev":"2022-04-30T21:40:02.268Z","2.1.5":"2022-04-30T21:42:14.037Z","2.1.6-dev":"2022-04-30T22:31:17.465Z","2.1.6":"2022-04-30T22:33:59.004Z","2.1.7-dev":"2022-04-30T23:00:06.708Z","2.1.7":"2022-04-30T23:01:48.174Z","2.1.8-dev":"2022-04-30T23:12:24.056Z","2.1.8":"2022-04-30T23:14:05.333Z","2.1.9-dev":"2022-05-01T03:51:33.280Z","2.1.9":"2022-05-01T03:53:17.810Z","2.1.10-dev":"2022-05-01T16:48:13.392Z","2.1.10":"2022-05-01T16:50:02.793Z","2.1.11-dev":"2022-05-02T21:02:07.386Z","2.1.11":"2022-05-02T21:03:54.330Z","2.2.0-dev":"2022-05-13T01:06:49.635Z","2.2.0":"2022-05-13T01:08:35.423Z","2.3.0-dev":"2022-05-26T03:48:53.516Z","2.3.0":"2022-05-26T03:50:42.101Z","2.4.0-dev":"2022-05-26T03:58:34.163Z","2.4.0":"2022-05-26T04:00:22.890Z","2.4.1-dev":"2022-06-03T23:29:40.060Z","2.4.1":"2022-06-03T23:31:41.245Z","2.5.0-dev":"2022-06-07T02:38:39.816Z","2.5.0":"2022-06-07T02:40:28.253Z","2.6.0-dev":"2022-06-25T12:04:52.429Z","2.6.0":"2022-06-25T12:06:54.577Z","2.6.1-dev":"2022-06-25T21:56:14.136Z","2.6.1":"2022-06-25T21:58:00.375Z","2.6.2-dev":"2022-06-25T22:40:21.510Z","2.6.2":"2022-06-25T22:42:03.730Z","2.6.3-dev":"2022-06-26T00:36:38.829Z","2.6.3":"2022-06-26T00:38:32.208Z","2.7.0-dev":"2022-07-06T06:54:22.989Z","2.7.0":"2022-07-06T06:56:08.807Z","2.7.1-dev":"2022-07-23T11:09:09.085Z","2.7.1":"2022-07-23T11:11:34.307Z","2.7.2-dev":"2022-10-19T08:14:07.493Z","2.7.2":"2022-10-19T08:16:08.399Z","2.7.3-dev":"2022-11-07T00:40:16.071Z","2.7.3":"2022-11-07T00:42:12.387Z","2.7.4-dev":"2022-11-07T03:00:24.602Z","2.7.4":"2022-11-07T03:02:06.790Z","2.7.5-dev":"2022-11-07T03:06:47.070Z","2.7.5":"2022-11-07T03:08:51.645Z","2.7.6-dev":"2022-11-07T03:15:10.202Z","2.7.6":"2022-11-07T03:16:56.920Z","2.7.7-dev":"2022-11-07T04:52:36.320Z","2.7.7":"2022-11-07T04:54:54.191Z","2.7.8-dev":"2022-11-07T08:04:54.022Z","2.7.8":"2022-11-07T08:06:48.507Z","2.7.9-dev":"2022-11-07T08:36:32.599Z","2.7.9":"2022-11-07T08:38:02.647Z","2.7.10-dev":"2022-11-07T10:01:16.043Z","2.7.10":"2022-11-07T10:03:43.410Z","2.7.11-dev":"2022-11-11T06:01:34.549Z","2.7.11":"2022-11-11T06:03:32.886Z","2.7.12-dev":"2022-12-03T05:34:13.415Z","2.7.12":"2022-12-03T05:36:00.482Z","2.7.13-dev":"2022-12-03T05:47:55.044Z","2.7.13":"2022-12-03T05:50:03.180Z","2.7.14-dev":"2022-12-03T07:35:23.791Z","2.7.14":"2022-12-03T07:37:43.672Z","2.7.15-dev":"2022-12-03T07:56:15.462Z","2.7.15":"2022-12-03T07:58:01.396Z","2.7.16-dev":"2022-12-03T08:11:30.290Z","2.7.16":"2022-12-03T08:13:03.234Z","2.7.17-dev":"2022-12-03T09:07:58.109Z","2.7.17":"2022-12-03T09:09:41.908Z","2.7.18-dev":"2022-12-03T09:34:18.880Z","2.7.18":"2022-12-03T09:35:58.615Z","2.7.19-dev":"2022-12-03T09:47:51.076Z","2.7.19":"2022-12-03T09:49:20.470Z","2.7.20-dev":"2022-12-03T10:29:32.526Z","2.7.20":"2022-12-03T10:31:03.769Z","2.7.21-dev":"2022-12-04T09:11:36.006Z","2.7.21":"2022-12-04T09:13:10.359Z","2.7.22-dev":"2022-12-05T04:10:35.132Z","2.7.22":"2022-12-05T04:12:24.823Z","2.7.23-dev":"2022-12-05T10:40:36.090Z","2.7.23":"2022-12-05T10:42:20.999Z","2.7.24-dev":"2022-12-05T10:46:55.039Z","2.7.24":"2022-12-05T10:48:49.280Z","2.7.26-dev":"2022-12-23T10:09:05.925Z","2.7.26":"2022-12-23T10:10:34.892Z","2.7.27-dev":"2022-12-23T10:38:19.599Z","2.7.27":"2022-12-23T10:39:46.552Z","2.8.0-dev":"2022-12-24T10:15:57.601Z","2.8.0":"2022-12-24T10:17:28.318Z","2.8.1-dev":"2022-12-29T08:06:58.473Z","2.8.1":"2022-12-29T08:09:15.084Z","2.8.2-dev":"2022-12-29T09:13:20.967Z","2.8.2":"2022-12-29T09:15:13.785Z","2.8.3-dev":"2022-12-29T09:39:47.310Z","2.8.3":"2022-12-29T09:41:31.067Z","2.8.4-dev":"2022-12-29T11:14:52.685Z","2.8.4":"2022-12-29T11:16:21.812Z","2.8.5-dev":"2022-12-29T11:36:06.079Z","2.8.5":"2022-12-29T11:37:44.603Z","2.8.6-dev":"2022-12-30T01:15:49.511Z","2.8.6":"2022-12-30T01:17:17.412Z","2.8.7-dev":"2022-12-30T01:28:55.694Z","2.8.7":"2022-12-30T01:30:54.994Z","2.8.8-dev":"2022-12-30T02:14:37.664Z","2.8.8":"2022-12-30T02:16:07.318Z","2.8.9-dev":"2022-12-30T02:40:52.822Z","2.8.9":"2022-12-30T02:42:26.707Z","2.8.10-dev":"2022-12-30T02:48:54.565Z","2.8.10":"2022-12-30T02:50:28.962Z","2.8.11-dev":"2022-12-30T06:31:00.518Z","2.8.11":"2022-12-30T06:32:37.965Z","2.8.12-dev":"2022-12-30T06:50:35.339Z","2.8.12":"2022-12-30T06:52:07.714Z","2.8.13-dev":"2022-12-30T12:40:07.291Z","2.8.13":"2022-12-30T12:42:02.896Z","2.8.14-dev":"2023-01-01T11:22:11.685Z","2.8.14":"2023-01-01T11:24:27.744Z","2.8.15-dev":"2023-01-02T05:11:04.686Z","2.8.15":"2023-01-02T05:13:02.720Z","2.8.16-dev":"2023-01-02T07:13:57.123Z","2.8.16":"2023-01-02T07:16:00.573Z","2.8.17-dev":"2023-01-02T11:22:14.354Z","2.8.17":"2023-01-02T11:24:21.409Z","2.8.18-dev":"2023-01-02T11:33:07.063Z","2.8.18":"2023-01-02T11:34:51.297Z","2.9.0-dev":"2023-01-02T12:49:46.667Z","2.9.0":"2023-01-02T12:52:18.150Z","2.9.1-dev":"2023-01-07T10:41:16.090Z","2.9.1":"2023-01-07T10:43:12.181Z","2.9.2-dev":"2023-01-07T12:24:00.916Z","2.9.2":"2023-01-07T12:25:55.169Z","2.9.3-dev":"2023-01-08T06:50:34.032Z","2.9.3":"2023-01-08T06:52:35.180Z","2.9.4-dev":"2023-01-08T07:38:21.120Z","2.9.4":"2023-01-08T07:40:32.675Z","2.9.5-dev":"2023-01-09T07:46:45.027Z","2.9.5":"2023-01-09T07:48:28.580Z","2.9.6-dev":"2023-01-09T09:29:50.637Z","2.9.6":"2023-01-09T09:31:47.075Z","2.9.7-dev":"2023-01-09T09:33:39.713Z","2.9.7":"2023-01-09T09:35:25.807Z","2.9.8-dev":"2023-01-09T10:00:24.075Z","2.9.8":"2023-01-09T10:03:01.634Z","2.9.13-dev":"2023-01-24T08:09:48.680Z","2.9.13":"2023-01-24T08:11:33.546Z","2.9.14-dev":"2023-01-24T10:07:57.266Z","2.9.14":"2023-01-24T10:09:38.100Z","2.9.15-dev":"2023-02-01T09:49:08.721Z","2.9.15":"2023-02-01T09:50:55.218Z","2.9.16-dev":"2023-02-13T04:40:48.148Z","2.9.16":"2023-02-13T04:42:37.028Z","2.9.17-dev":"2023-02-13T06:46:18.374Z","2.9.17":"2023-02-13T06:47:47.024Z","2.9.18-dev":"2023-02-13T08:25:51.795Z","2.9.18":"2023-02-13T08:27:28.335Z","2.9.19-dev":"2023-02-15T09:27:49.537Z","2.9.20-dev":"2023-02-15T09:29:25.384Z","2.9.19":"2023-02-15T09:30:22.625Z","2.9.20":"2023-02-15T09:31:08.252Z","2.9.21-dev":"2023-02-19T09:25:04.565Z","2.9.21":"2023-02-19T09:26:42.734Z","2.9.22-dev":"2023-02-24T08:35:35.513Z","2.9.22":"2023-02-24T08:37:26.439Z","2.9.23-dev":"2023-02-26T01:44:23.516Z","2.9.23":"2023-02-26T01:46:10.021Z","2.9.24-dev":"2023-02-26T05:29:18.566Z","2.9.24":"2023-02-26T05:31:03.655Z","2.9.25-dev":"2023-03-04T07:40:55.090Z","2.9.25":"2023-03-04T07:42:28.571Z","2.9.26-dev":"2023-03-05T00:49:31.373Z","2.9.26":"2023-03-05T00:51:08.183Z","2.9.27-dev":"2023-05-31T05:54:22.179Z","2.9.27":"2023-05-31T05:56:09.931Z"},"maintainers":[{"name":"dafrito","email":"dafrito@gmail.com"}],"description":"viewport","homepage":"https://github.com/parsegraph/viewport#readme","repository":{"type":"git","url":"git+ssh://git@github.com/parsegraph/viewport.git"},"author":{"name":"Rainback, Inc."},"bugs":{"url":"https://github.com/parsegraph/viewport/issues"},"license":"MIT","readme":"# viewport\n\n### TODO's\n\n* TODO Add gridX and gridY camera listeners, with support for loading from an\ninfinite grid of cells.\n\n* TODO Add camera-movement listener, to let nodes watch for camera movement,\nand thus let nodes detect when they are approaching critical screen\nboundaries:\n\nenteringScreen leavingScreen\n\nNode distance is radially calculated (using the viewport's diagonal) from\nthe camera's center, adjusted by some constant.\n\nhysteresis factor gives the +/- from some preset large distance (probably\nsome hundreds of bud radiuses). Ignoring hysteresis, then when the camera\nmoves, the node's relative position may be changed. This distance is\nrecalculated, and if it is above some threshold plus hysteresis constant,\nand the node's state was 'near', then the node's leavingScreen is called,\nand the node's state is set to 'far'.\n\nLikewise, if the distance is lower than the same threshold minus hysteresis\nconstant, and the node's state was 'far', then the node's enteringScreen is\ncalled, and the node's state is set to 'near'.\n\nThis distance is checked when the node is painted and also when the camera\nis moved.\n\n* TODO Figure out how changing the grid size might change things.\n\nGrid updates based only on camera movement. Updates are reported in terms of\ncells made visible in either direction.  The number of potentially visible\ngrid cells is determined for each axis using the camera's axis size\nadjusted by some constant.\n","readmeFilename":"README.md"}