{"_id":"jsgui3-gfx-core","_rev":"27-57ef671b9ffee48cde40f2688224a387","name":"jsgui3-gfx-core","dist-tags":{"latest":"0.0.27"},"versions":{"0.0.1":{"name":"jsgui3-gfx-core","version":"0.0.1","license":"MIT","_id":"jsgui3-gfx-core@0.0.1","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"250c29d2f90779d1fe165f54d8601a169de9f81e","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.1.tgz","fileCount":34,"integrity":"sha512-UT43ptgqJr6nytkL5QpL5RVtkoUwfcaNP3Xf3/ges6oDxNjEXOtpxAe6zSRP6c0JqQ4nLPtmxD7EwMZHUcPfbw==","signatures":[{"sig":"MEQCICTRL6BZjqzJFhKHly3K6uf343FKjmVdi9i7HaytYuVjAiBM3y//hGlk4NjQvdvz+F26Ro5b49nVr/2bIdBVQ4Xz/g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":837676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSUVnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqXiBAAjtw/1hmBBVH8zKmZ5/xDWmviQ8D74+X4EL8h1hs9BT55fHg7\r\nkSINmXhY6j2E+uyW9WYrBTl3FVF/hWSzodA/IMSx58URiODSTANIYdEc+htT\r\nQlh6fkqdT79EXlZPu1vprg+o11dr+8Y2Sbtq1c/0zs8rB8iFkxg38uo9hKeI\r\nUnRXVJTXWzRTHB4imY8XWoWqu8Vm/ap5kO0BnqsXmuXpr8xSJZk6YOccQrEx\r\naywkLtqp1t4hQqXaqXTBf7w3iQ9jq405BwhRUj2VwqaYOXYHOrpBdik3ESfj\r\npIw7mWs1SG6GNTB0YQ+BIJHc1IMc1zjqD+kO5/e7x34n641qGtAq7uz6siYN\r\nqWEUR1EFhnax1tLS6cnHiEEBHLSuVp5lhQl8YNruPcfDv5Y+vnVRrzlovBET\r\nXFl4GZQATr01p1EhNifuMZrhnHM6L4nSAzQXLB6sabAp46vcBxqQpTf152Qr\r\nVJtEkYW7G4ykYDtuLPlS60NAHe3ol31NY97Abgas41y01VQpIf0+66pkEsXq\r\nwrksHOr7culBSFtf54YDqcsTYcYf1JwjpFslyczER1nhA4iKFSikf6An1W20\r\n/OUbxHDf33IbDAbsV9YhmRGl8t8jB+XF7+gnTAQ5YF4VLh4Kt9QRXVCDxJMp\r\n1sZ8BNmzcQiPywyYM2zLUq6POgUq+p5eVDw=\r\n=z5bH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"gfx-core.js","gitHead":"3ee7333e1f20a3c15717fbe1d3ee4ec4323f684a","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"9.4.0","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"19.6.0","dependencies":{"fnl":"^0.0.23","obext":"^0.0.24","lang-mini":"^0.0.29"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.27"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.1_1682523494967_0.023321379481335835","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"jsgui3-gfx-core","version":"0.0.2","license":"MIT","_id":"jsgui3-gfx-core@0.0.2","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"425ccb6ef5afb4d8f5d3595c26a8bf9f46a9f36d","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.2.tgz","fileCount":34,"integrity":"sha512-GbTYC/P5PNcjLCUgY+tzXQRAa4qf9U0mCrOAZt3CzwZkv8tY6qnQm18OZx3oBzkwmWdrkC+pjvnBpVYVLjDMPA==","signatures":[{"sig":"MEUCIE7vHdPf1yoPs9g2ck/m5z8VwU9Rkw+54xCX8VxhYCamAiEAsJPwWmXRlcOlVPVlAp1asvhIPsDZAWquyif2eMF+3Ao=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":837852,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSUidACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoK5Q//eWGlBoVsqrdppoPOctcGykPbxibZL0hQRtDz9Qh9fgrwBt4u\r\neg4Oti4b9hXQvN7LQVYDKfNftcufrft2QO3iWIp8vH4PK8/XzqECo7vqjBdz\r\nAxBeyV+JLnk8wazaHB6VhpOY9P5wukttZLyb6ivQ68n8gCpo7yM7Id0asW6z\r\n1uzvDZ7fAzWABJ7nsGqzsMxvUvIQvt6fWznwrnIOCeRerDLq3Kuj1mwAqShb\r\nZqAudZkoSyAmvNTjVjjj07R7Yb0/oTcOpKyTf3uTL38CrnyU1BHTG78b8I3g\r\nltSXI7T713RYrAvWyq1dWZRYEQDlkoW8k+0buf3gLCe/XGRPwXjmzunyC4Nf\r\nyNtFNuO9QnFlKD25h8+DLd/KUdQAdUUcq+H+bmuDJXgW4SXcfFNdD84xPiOt\r\n7kx223e82lTUoFxwiPQn9hR4L8ORCpTW7Q+PjgmBJGRRtqqHdgxc+FeOsjVE\r\nYARDCgFsG4aFR/u2WWXnkzbBYpFk+IL/sGRUpxeeCGHS9wU53KYIeTcWnoOV\r\nx1pernwHU8emJ12MflP6YDSgPAgQXqdvSkCs4/jmx1in0LGELn++CBEiIAfI\r\nrJLwJUqwiMXXr3jDAcMKy2t0Lsz6JlKCgtGcWtoSvravGwkg1ljCZDfDTI5/\r\noUXmjvR6rlMFN9DPuueEnkWp4RVlWsskUgI=\r\n=o7Jd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"gfx-core.js","gitHead":"3ee7333e1f20a3c15717fbe1d3ee4ec4323f684a","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"9.4.0","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"19.6.0","dependencies":{"fnl":"^0.0.23","obext":"^0.0.24","lang-mini":"^0.0.29"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.27"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.2_1682524317190_0.2989977699312678","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"jsgui3-gfx-core","version":"0.0.3","license":"MIT","_id":"jsgui3-gfx-core@0.0.3","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"2622c3229e4c6cd9e46dd2bfb6673ccfc106ee9f","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.3.tgz","fileCount":34,"integrity":"sha512-6SZsDmptIucE1gCiWuTlBHLS4/xh0Zjp6FHmJqiN+PZJFX2ijjyAiRBe2y8dxuqyeiUywborhE3sapxdxm+I4g==","signatures":[{"sig":"MEUCIQCmvzANlG5Mn9qF1gPiA5qkuy5xw1TjZk5g0OJv41SW/QIgEssAa9uhNA915+RMCw7C65uCViTTS/TVd2Ig/rskKys=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":839649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSVjCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo3Uw/7BOuDOSmgAWB/JlWLk44dGPJ3a5nlc85GkTUBbKWDP9JLOD7r\r\nxXEfGdJCnfeT6A4/M6N7rom+5pegMb7kL2gYXHl4gaXoB+PNyPYe1fju5U7+\r\nWugltT5Z7gXYL27XS4Dnx3TOSR/lG5Xi7uJG3YPAn/m2ipnfmONEeRCjqwU3\r\n+12jPoW9fLF5tyq8BSCBxVDKbNz2spmQFnhEttMBBE6VoI6rU3sNTUCwDETN\r\nZ6Kl7ZjH0YnI5GvBUfU/grkxEdmGADzuXSlYqQzyk5/O8QBpRn7uBfN+Z0g2\r\nwz2e8lOkTayeGNU56g7aSrCtmQHAywgoxkuT1bFtdXLTAZz7OEmDSlGb4lbZ\r\nk7Tvw3yX+tgRxXE/gC7Q0uyRz6Om7eFRc5ofLqtv0TFmccX6bAGA5fkQJEav\r\ndKOQRugIyvZxmFHUxaRrt/FyHYHyxNMlboojaaW0UAlkR8cpX74CgsNpkk5+\r\nCOEkm4emL/IijEndzUCf0CjZd//hChaAzAIZ72hv4kznJaGGLvx4VMX6yPle\r\nXWQCDhpySoCnSmVL/Xr3W50wf18UpOtu6HfkKo9MTZdZkbo7p15TMrZjG1tf\r\nUlIMmIFl4iNN0u/NMuwUv1/RZA3i9RLNq92bolUCuK06W3pMnxGPFVJ2KEpU\r\nl/F3v2580+7yHINaP7Rc7xFFqOYC1FQIT84=\r\n=9iIM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"gfx-core.js","gitHead":"667c0d6ca7e4e620e26afa408b09de25743caf12","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"9.4.0","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"19.6.0","dependencies":{"fnl":"^0.0.23","obext":"^0.0.24","lang-mini":"^0.0.29"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.27","sharp":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.3_1682528449870_0.9778336922166484","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"jsgui3-gfx-core","version":"0.0.4","license":"MIT","_id":"jsgui3-gfx-core@0.0.4","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"b825fe7a41971511b8bb9dc038ddc68fb6a31aae","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.4.tgz","fileCount":39,"integrity":"sha512-P1S8NBiP4iYaXJJ3xSg+ExxQ9vRcR0t8KDNOHSXcC9KcDfmSMyuGTRSxB5yG3kIvXMJ91tHqKgohiQRytzCJ2A==","signatures":[{"sig":"MEQCIH9jkxrCVbieorNTSrOCgLy15t1FG5ixywA9dWtidM7NAiBsVgwPVhbhWsyQDPTZ7xsiFImbeE0LJoraVKA+4ISw4Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1191530},"main":"gfx-core.js","gitHead":"85f40af8ab16deca26afae489a96a3a523773745","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"9.6.4","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"20.1.0","dependencies":{"fnl":"^0.0.25","obext":"^0.0.24","lang-mini":"^0.0.29"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.27","sharp":"^0.32.1"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.4_1687042840631_0.3881780157499257","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"jsgui3-gfx-core","version":"0.0.5","license":"MIT","_id":"jsgui3-gfx-core@0.0.5","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"73c2629167382d25b7d870f6171ff5a96aa398a6","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.5.tgz","fileCount":47,"integrity":"sha512-GjnMZMnsaZgp1Oqviy4U/2UN2r0Hx/FbldBpJuYBB7VTmUoGHH0uyovWi0F/7PtU/1sAIi8hawIpNMGG+O/PIg==","signatures":[{"sig":"MEQCIHR3S5JiTETOUUGDIGNSyPkw2NBb56HEeUR4bgEvMulTAiBsY7CkKn/W0ON6f6vYXo1YZQSSvkZKkQHYQ9Z0iCdETg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1235880},"main":"gfx-core.js","gitHead":"85f40af8ab16deca26afae489a96a3a523773745","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"9.6.4","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"20.1.0","dependencies":{"fnl":"^0.0.29","obext":"^0.0.27","lang-mini":"^0.0.32"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.27","sharp":"^0.32.1"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.5_1697161782120_0.7994803147956333","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"jsgui3-gfx-core","version":"0.0.6","license":"MIT","_id":"jsgui3-gfx-core@0.0.6","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"4fbec4f3f81d87ff7955f552e409ccb198aa39e9","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.6.tgz","fileCount":47,"integrity":"sha512-KmlkwFF2M9R3lKFbS+CtlWzzfuH4XF6i8KrFSRJg2JyYt7BeaiYllstH54qJ1rP9K+F5sY9UTUe4Z2uEhJhlHg==","signatures":[{"sig":"MEUCICABadgrXpzqm0KizVzi6xAKRqyCSMGbaXtniqLX2o7nAiEAnHh4AeLtL14obZ9Mz3QG4/nGg2ZGAc4vHAp6gpoe+10=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1244053},"main":"gfx-core.js","gitHead":"85f40af8ab16deca26afae489a96a3a523773745","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"9.6.4","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"20.1.0","dependencies":{"fnl":"^0.0.29","obext":"^0.0.27","lang-mini":"^0.0.33"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.27","sharp":"^0.32.1"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.6_1697323611067_0.1365510465350135","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"jsgui3-gfx-core","version":"0.0.7","license":"MIT","_id":"jsgui3-gfx-core@0.0.7","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"a249f4041b3a10879ec577e353af3cf02b4d3e86","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.7.tgz","fileCount":47,"integrity":"sha512-v8KczApLw9x40gmpktbbqsRU9hjm0uutl13znr+7bRtCYHGeh+MQxxQBAjZ8UWRUBaqBJcRjYMIps/p4XrTbFw==","signatures":[{"sig":"MEUCIC0F7MiXB1jLeNnse7k2lSy6v/sXyMmb5QqUNQUNFAiGAiEA9iXnT4YvMeh824H2aUX+PA1UPGIDsviLpSohDaiBH9c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1244059},"main":"gfx-core.js","gitHead":"953cdd9326e8159864dc640bd3308d6c1b3672de","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"9.6.4","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"20.1.0","dependencies":{"fnl":"^0.0.30","obext":"^0.0.28","lang-mini":"^0.0.33"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.27","sharp":"^0.32.1"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.7_1698450093303_0.2840020689848244","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"jsgui3-gfx-core","version":"0.0.8","license":"MIT","_id":"jsgui3-gfx-core@0.0.8","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"27b8c05c107d78316b6ffb83cc6780fc816bf286","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.8.tgz","fileCount":47,"integrity":"sha512-XS/7hyusQnbSrMx9M4cr7schUXTK5I9pl/sIgJYS3mRdtFhu52PO6gobYoIM71Xi24sLJ2hi9vRth6Sn4W7RoQ==","signatures":[{"sig":"MEUCIHMcFHzk2aWacJccP6ID7mefxlJI88HkbkD/51LlUEO7AiEAtRhDkb6g3O5yhQ5RZr+f/DSZBXbrKQD4Taa0UWOBRzU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1244059},"main":"gfx-core.js","gitHead":"953cdd9326e8159864dc640bd3308d6c1b3672de","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"9.6.4","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"20.1.0","dependencies":{"fnl":"^0.0.33","obext":"^0.0.28","lang-mini":"^0.0.36"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.29","sharp":"^0.32.6"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.8_1699236405517_0.29512237658452967","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"jsgui3-gfx-core","version":"0.0.9","license":"MIT","_id":"jsgui3-gfx-core@0.0.9","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"d836f33e95a2a888b06fd7cf4a1e99995a6d4107","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.9.tgz","fileCount":47,"integrity":"sha512-gEwQb4vY9+a5M3+MQihZT4ROBdlUtzLWI3Z72iFTBEJKUk4DWn71P9agmDGLRXwK5kyxPYlT64xhu/X8u3W1wA==","signatures":[{"sig":"MEUCIQCJQHP8kMqZntr+G0PIMUbD/CPyrM8DkENOuHTy71tP+QIgXJ4mZH0+qYzqdB6pe0Gh7d7SpaZpacuu6MuKr3M6M00=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1244059},"main":"gfx-core.js","gitHead":"3900097a31954cb91b6af982f857850ab62bd5b6","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"9.6.4","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"20.1.0","dependencies":{"fnl":"^0.0.34","obext":"^0.0.30","lang-mini":"^0.0.37"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.29","sharp":"^0.32.6"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.9_1699238301578_0.8426762869389643","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"jsgui3-gfx-core","version":"0.0.10","license":"MIT","_id":"jsgui3-gfx-core@0.0.10","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"d15315e0ffe3669bb921d062128ece2bac5a58da","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.10.tgz","fileCount":47,"integrity":"sha512-t5rT7zz00yH9UfMgHHRcvApGMpF7a39rVTuWczWUX5G4oGStfSrePE8d+1AGWCwadms9xFGLf2D7vE2arttbuQ==","signatures":[{"sig":"MEQCID5N/fci9TfZkHNkBGabMWtN2dPAnAEbCVlb7vslSqmLAiAgBNu3sApMBVjHdl7XPvEtbjz3jXw8uWOTmigmqUKWuw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1244060},"main":"gfx-core.js","gitHead":"4db297b861b6912062d6c6092109bff6a76b8d34","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"9.6.4","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"20.1.0","dependencies":{"fnl":"^0.0.35","obext":"^0.0.31","lang-mini":"^0.0.38"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.31","sharp":"^0.32.6"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.10_1700205147558_0.4330699072365516","host":"s3://npm-registry-packages"}},"0.0.11":{"name":"jsgui3-gfx-core","version":"0.0.11","license":"MIT","_id":"jsgui3-gfx-core@0.0.11","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"7154992a47dd732cebb88d216fab4a6bc110665c","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.11.tgz","fileCount":47,"integrity":"sha512-gOTZjxUuE0szyVLQcNGrxr4bF9oobxJse7TkY9K40ICEqiaka/8hICU2tIvq0T3T2NS2yqt+gaEAhi+s+6x4kQ==","signatures":[{"sig":"MEQCIHKGmvYcTBz+euHdWbX3v2eKqMwgwTljE41cpivBlj+xAiBbGsLMvS3oyEfWC0XnIpF7RSMJX+cewAAgHUrlfycXoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1247210},"main":"gfx-core.js","gitHead":"8f2ecb32485cd9f5dbb8abfe415ac9386a9a9103","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.8.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"22.5.1","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.32","sharp":"^0.33.4"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.11_1721855293681_0.7250718538434924","host":"s3://npm-registry-packages"}},"0.0.12":{"name":"jsgui3-gfx-core","version":"0.0.12","license":"MIT","_id":"jsgui3-gfx-core@0.0.12","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"2a070053713b18011b1b53848832fb016611f029","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.12.tgz","fileCount":50,"integrity":"sha512-0fJRCmVh4LNv0qnVChfaWeVjP9L/ixNc3aA4nnNdqAOGIO39pwTVLyCXxzNVukihRxZjvVGp8BiCSyVrfAqR5Q==","signatures":[{"sig":"MEQCICKgolyweb7HNawikigBIj0A3b2fZiRXTqeNcRC7JTHVAiAVEV4npOMqDPtetHaum08SndppSsq6d2lzrJVJBJHuyA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1263596},"main":"gfx-core.js","gitHead":"8f2ecb32485cd9f5dbb8abfe415ac9386a9a9103","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.8.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"22.5.1","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.32","sharp":"^0.33.4"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.12_1722991945938_0.48917294646425247","host":"s3://npm-registry-packages"}},"0.0.13":{"name":"jsgui3-gfx-core","version":"0.0.13","license":"MIT","_id":"jsgui3-gfx-core@0.0.13","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"d12812202dde6b56336c102bd8e2dd14b6702a0a","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.13.tgz","fileCount":54,"integrity":"sha512-Lxgv3QkFyr2RUW76LFmUFNYstwTFbeWbNsmldvqnOo5WJhB5g5bBUF8+7FxGgu57EGYOUnNoMFBGWR7e48E/yQ==","signatures":[{"sig":"MEUCICVhCY4gft3P1Ive4N+wdm5uYkBX6AkKO4mmqfKNi3MHAiEAzg9hUhTxNZtP/RfJHbuV8ErewcFLaSpqWAFHDzJmCtg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1199869},"main":"gfx-core.js","gitHead":"7154785f996bd5fb12f38eeb943db1d7c5a19f6c","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.8.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"22.5.1","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.32","sharp":"^0.33.4"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.13_1723767035319_0.49205050512950677","host":"s3://npm-registry-packages"}},"0.0.14":{"name":"jsgui3-gfx-core","version":"0.0.14","license":"MIT","_id":"jsgui3-gfx-core@0.0.14","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"7d0036181111a0d32b5c8dd2014be57dfa845cb1","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.14.tgz","fileCount":54,"integrity":"sha512-ObFcrEcYQC9yuaYCHNQvNtlKVUz8CXkdOUasuyY87oISAtBc8F/0NFqTqFWCJyz8y2JAKFPDEc2JhUXJJHcptQ==","signatures":[{"sig":"MEYCIQCdCar2jQqYcbR+WN1tdmTbAG/DALpSQHcbLZh018de5QIhALW9cHMfUsZhfDVa6odlcXL/M52nA53IQc0W0s/aaXN2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1199871},"main":"gfx-core.js","gitHead":"2bfc77b58c2c66df0e1ebc656a3dd09e6cb9041b","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.8.3","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"22.9.0","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.32","sharp":"^0.33.5"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.14_1727551655823_0.09757712955433684","host":"s3://npm-registry-packages"}},"0.0.15":{"name":"jsgui3-gfx-core","version":"0.0.15","license":"MIT","_id":"jsgui3-gfx-core@0.0.15","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"22888d3532c128224a54aaca5839a8ff245382fa","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.15.tgz","fileCount":73,"integrity":"sha512-IehiIBZGfZOqWvtW9zBxrLsQjvtn96j7A+7JjqdFYxXSCZobUbA97HrwfE3ERaCOb/dqQ2JMRnti7RlD4VZ4Ug==","signatures":[{"sig":"MEYCIQD/pmp4eaO8ImlkKoolXRkmUaF+nKlwRpLdQG8WZ/aPawIhAOqJ7Vod++ZxVnT16L68s/lmdiYQ0WpKHLC7ONKBQPnq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1532867},"main":"gfx-core.js","gitHead":"fc37590c557df8c20b5334414c6e8ddea1efc91d","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.9.0","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.2.0","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.32","sharp":"^0.33.5"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.15_1733553648137_0.4522198774435018","host":"s3://npm-registry-packages"}},"0.0.16":{"name":"jsgui3-gfx-core","version":"0.0.16","license":"MIT","_id":"jsgui3-gfx-core@0.0.16","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"74db39a6da7aa478ea36b41a261ed812382c6aa8","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.16.tgz","fileCount":73,"integrity":"sha512-Nd5IO3uffDX34SZ5ADABgJNTSgxlKzY1xV5O+9dfSbkBx2E4400UPS2sqBqdVwalrbbmV4KZXFxaMdAqP4eDHg==","signatures":[{"sig":"MEUCIHSIfBQ7ge/nqzpuTlBj9VnWlbJlrJOiHTedq6M0maEoAiEAhPX/bchoTAA3dqdUdnUGTUmZDWHD2EZfqp2uviEvVes=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1529201},"main":"gfx-core.js","gitHead":"fa866c276ac469bcdbc9adeb8522334771038a7e","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.9.0","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.2.0","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.32","sharp":"^0.33.5"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.16_1733555227219_0.6430675777969792","host":"s3://npm-registry-packages"}},"0.0.17":{"name":"jsgui3-gfx-core","version":"0.0.17","license":"MIT","_id":"jsgui3-gfx-core@0.0.17","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"e501fe55df0c2afb96d253b30ac41562ba772172","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.17.tgz","fileCount":74,"integrity":"sha512-dITDvVsS0wYu2ut7aYt6FBeNBRZltxWJzelh/V2ikDlAjg9GJrHPduM/U0eOffpwnSKTnbWIF+7nqxRFRpqdbg==","signatures":[{"sig":"MEUCIHBoeuazjwS4Xs7GE/lLGn6QGMRIWij1Za7WPSinCW3lAiEAjdlJcpP5tcAvenw9n2CZUahjw3I6vAlMBF4zPCBzz34=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1522416},"main":"gfx-core.js","gitHead":"fa866c276ac469bcdbc9adeb8522334771038a7e","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.9.0","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.2.0","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.32","sharp":"^0.33.5"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.17_1736126744715_0.5556042576697537","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"jsgui3-gfx-core","version":"0.0.18","license":"MIT","_id":"jsgui3-gfx-core@0.0.18","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"08d6a7cd0ee7308c334589cb3a1220adf664f2eb","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.18.tgz","fileCount":75,"integrity":"sha512-AvatQO9SF6vplvA6vkS1iouZTrwKpf/we/Hz3udAikA2PFSBouxj5i++3nghDbn4dMU37qDsfnap+0tVq4Y2kw==","signatures":[{"sig":"MEQCIAFAG360cbxZuAk+XtGlNWY9QXgaLSj98OV+ZspvyqwRAiAJNdWqEaiHol5x7AsGbUToqnhOuCXicCOjZrIFCRGQ6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1556333},"main":"gfx-core.js","gitHead":"e447f9e27b7e7188b94cbc58cd2ce5ab8a7b1f67","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.9.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.8.0","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.32","sharp":"^0.33.5"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.18_1741129026870_0.44235561326146966","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"jsgui3-gfx-core","version":"0.0.19","license":"MIT","_id":"jsgui3-gfx-core@0.0.19","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"4517100247e265cdf051b5ea1748db0f3329ae64","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.19.tgz","fileCount":75,"integrity":"sha512-Me2Ioiq0zBPsjC3alSxt0V++LuyqEjz4v6VVpknyX4/sESQTK8FZudp7hfIAis2tBgYX4nWfmHWwLHUcuRsL4g==","signatures":[{"sig":"MEYCIQC45leyj8cKHo1OqVC12QoxDYKC+Wc0ne6kokRtWb9NNAIhAL97ZYh5nv+h0hUwYVgHogbV4RgjN/qMu4S+YftceVeS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1556338},"main":"core/gfx-core.js","gitHead":"e447f9e27b7e7188b94cbc58cd2ce5ab8a7b1f67","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.9.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.8.0","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.32","sharp":"^0.33.5"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.19_1741131223639_0.04960959714710911","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"jsgui3-gfx-core","version":"0.0.20","license":"MIT","_id":"jsgui3-gfx-core@0.0.20","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"c333eaabd53c7c43392faf92c703e4a46ea0a6c7","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.20.tgz","fileCount":75,"integrity":"sha512-tWFSOx/suCqCeqoNUdwJ8jsi+4MzvcpSj0ck9Q9Fh9Dy+9265q4qPZM3vFsWbghT5D5xHIWIvP2NND/znxyKtg==","signatures":[{"sig":"MEYCIQDp0t7j5DhcZyXzxFyCHGLry7iLSNwST+CMtmcwrvsxhAIhALQB3o4gxuWOFwcKq+7pQUCR2KH6q0m2PR2MAbrR1m5B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1421904},"main":"core/gfx-core.js","gitHead":"626e9237bebeec80a56e9bc151741cf9ddb1bd91","_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.9.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.8.0","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.33","sharp":"^0.33.5"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.20_1743399575285_0.29437263182784923","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"jsgui3-gfx-core","version":"0.0.21","license":"MIT","_id":"jsgui3-gfx-core@0.0.21","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"cd96e43a27488c04ab1bda7141725e507d5bbba3","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.21.tgz","fileCount":78,"integrity":"sha512-rDpvoFO+imOoj/FfgCEhhkYruAM45fe0VqdM3efVJ6YyrGJyUVdILZcZAjg0coNTme7xHHezg0OFmTCYA1jI9Q==","signatures":[{"sig":"MEUCIG1vqfUfuXOuzD8Q+3CtO1CEFN9/ggfHea3aw+7lrM/ZAiEA8jZvX2QQrPcZoFF+04oDaab/FVyu1IN9v4k2qKH2AV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1460672},"main":"core/gfx-core.js","gitHead":"626e9237bebeec80a56e9bc151741cf9ddb1bd91","scripts":{"test":"node ./tests/run-tests.js"},"_npmUser":{"name":"jvickers","actor":{"name":"jvickers","type":"user","email":"james@metabench.com"},"email":"james@metabench.com"},"_npmVersion":"10.9.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.11.0","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.40"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.33","sharp":"^0.34.2"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.21_1751316542834_0.271824771574648","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"jsgui3-gfx-core","version":"0.0.22","license":"MIT","_id":"jsgui3-gfx-core@0.0.22","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"69ee8dc6a98c5a199167f208a10753bdf976d40d","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.22.tgz","fileCount":79,"integrity":"sha512-vxVi9A9p3W4AL72PkDrDtP9OXWX8EIGrS9XOTgzQAGH3cz62V3uo2YVuohjtKDfKRYLpA4lulwCMCyuOHWpIsw==","signatures":[{"sig":"MEUCIFr/C1btk4iJzmkO3grDK4ENh8dea0JVjnlRESY4K/6JAiEAzmc6h/4+PnPfhvAoe/no/Lpg1FJHjAS3CAVYFQ2A3k8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2488736},"main":"core/gfx-core.js","gitHead":"3b110aef0f2e61d5d99f64ef33925864c420c139","scripts":{"test":"node ./tests/run-tests.js"},"_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.9.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.11.0","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.40"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.33","sharp":"^0.34.3"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.22_1757004182753_0.5900265405186145","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"jsgui3-gfx-core","version":"0.0.23","license":"MIT","_id":"jsgui3-gfx-core@0.0.23","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"e783185a2ac25b1d921d7d7a49cb35095e8e6dec","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.23.tgz","fileCount":79,"integrity":"sha512-MTLUpXY39qvQdvnHA9nQMUb3qFYeTOjEyk28HyyoixeTnIFdGKrxUy79i8Rg6g/4phsq3wRnVzrxrVd41qnrgg==","signatures":[{"sig":"MEUCIA0+2Sx6X62qPcESeD+5qCS8PfC9lCiwOQTYay4svKlrAiEA+0V3yBTquvfFUFIBOU7mkSYDdSGj9Ehr0hrXhphChCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2488742},"main":"core/gfx-core.js","gitHead":"29cc38c7dd41f737f5eb7256fea6dd39e9be4acd","scripts":{"test":"node ./tests/run-tests.js"},"_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.9.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.11.0","dependencies":{"fnl":"^0.0.36","obext":"^0.0.31","lang-mini":"^0.0.40"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.33","sharp":"^0.34.3"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.23_1757004779590_0.4036269407425741","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"jsgui3-gfx-core","version":"0.0.24","license":"MIT","_id":"jsgui3-gfx-core@0.0.24","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"bdaba6455432d09867aa5e885c19c8a1f50db566","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.24.tgz","fileCount":79,"integrity":"sha512-FkwOFKu8/wxiZ0t5WrQtgTqil113Mzp94m/fc05Ima8OSaFDWUtNxq0CqxvPpr/km4v1q5U3DOrGlZFdykdxmw==","signatures":[{"sig":"MEUCIQCfw2GIkP4fyq3Jnkw9Y+ExMsPJ+hJnJ+Y3ad0P+pBsiQIgANuiVe1lqFoCSaAkHbcp0ng6KmgZXKVgqaaQ3vT8Og8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2490213},"main":"core/gfx-core.js","gitHead":"2c9743e65c7ee99b81f9a451141680ab525867f0","scripts":{"test":"node ./tests/run-tests.js"},"_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.9.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.11.0","dependencies":{"fnl":"^0.0.37","obext":"^0.0.31","lang-mini":"^0.0.43"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.34","sharp":"^0.34.5"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.24_1763168753112_0.47743568412863446","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"jsgui3-gfx-core","version":"0.0.25","license":"MIT","_id":"jsgui3-gfx-core@0.0.25","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"4afc52febddc7d6e31a41ff8062c29205cc75702","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.25.tgz","fileCount":87,"integrity":"sha512-h7/FAmbb56IxyZeVMCej6FoUocKQ8+1TtpsWKST1eYE4j2MeXcrOUoY4z7bQvqNcTsV4bZrJEnJnQv9I01TqYw==","signatures":[{"sig":"MEUCIQDwo+KFMGdEAN92LlRvPcghZDoFTu8JAPgH7jy1eEtFwAIgQ9bw/GuEpT6BY/Z7mo5agFd2RFJhzUQLImMViQsOd7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2588819},"main":"core/gfx-core.js","gitHead":"bad45faa6147eeea590b6d681b57ba5cc3519277","scripts":{"test":"node ./tests/run-tests.js"},"_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"10.9.2","description":"The core jsgui3 graphical data structures and algorithms","directories":{},"_nodeVersion":"23.11.0","dependencies":{"fnl":"^0.0.37","obext":"^0.0.33","lang-mini":"^0.0.46"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.34","sharp":"^0.34.5"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.25_1765505952593_0.44915056829508915","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"jsgui3-gfx-core","version":"0.0.26","license":"MIT","_id":"jsgui3-gfx-core@0.0.26","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"dist":{"shasum":"6b702250c7d994a5a756da4e9e0101451bb38153","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.26.tgz","fileCount":102,"integrity":"sha512-9MTRNVjdYUV6/LIckVEIIRIyqQOU25E+1F39/5Zkz0fG9IDH6QxqdwoZdMO4gzO80zrffyjqbvlbZAAscWv+cw==","signatures":[{"sig":"MEQCICM9eQfr8w6juDpY8FrfB/ArKiiOi2USENwSHFjy8hUaAiB/3dfWcJ7DxVJNuY2qplEvW/cXvRC1+VNC7Xb7iaB8lQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2713131},"main":"core/gfx-core.js","gitHead":"53b18bfe2e45a81f87161f765087eba65594203d","scripts":{"test":"node ./tests/run-tests.js"},"_npmUser":{"name":"jvickers","email":"james@metabench.com"},"_npmVersion":"11.6.2","description":"**Pure-JavaScript pixel buffer library.** Data structures and algorithms for creating, manipulating, and processing raster images as typed arrays. No Canvas, no DOM — runs identically in Node.js and browsers.","directories":{},"_nodeVersion":"25.2.1","dependencies":{"fnl":"^0.0.37","obext":"^0.0.34","lang-mini":"^0.0.46"},"_hasShrinkwrap":false,"devDependencies":{"fnlfs":"^0.0.34","sharp":"^0.34.5"},"_npmOperationalInternal":{"tmp":"tmp/jsgui3-gfx-core_0.0.26_1770897337397_0.40215304182932665","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"jsgui3-gfx-core","main":"core/gfx-core.js","license":"MIT","dependencies":{"fnl":"^0.0.37","lang-mini":"^0.0.46","obext":"^0.0.34"},"devDependencies":{"fnlfs":"^0.0.34","sharp":"^0.34.5"},"version":"0.0.27","scripts":{"test":"node ./tests/run-tests.js"},"gitHead":"b0236a43c9deef1f761c369cd7db04f26cfdde5f","_id":"jsgui3-gfx-core@0.0.27","description":"**Pure-JavaScript pixel buffer library.** Data structures and algorithms for creating, manipulating, and processing raster images as typed arrays. No Canvas, no DOM — runs identically in Node.js and browsers.","_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-VSa/WdI55UvEj23nwRHtSYhffY80oJePvs6ZjxmvQwA4ZVjWL40UJNKAJEESFMEphpX+LPJ6tws1H2BTORUmMA==","shasum":"fd97693dcfbaddad7fcb9ef7591cb17409aec812","tarball":"https://registry.npmjs.org/jsgui3-gfx-core/-/jsgui3-gfx-core-0.0.27.tgz","fileCount":103,"unpackedSize":2730377,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAKmRozn01qE0K1gHcguczWA4Z6fM8y2pkBBKwzh191FAiEA0WzkmHs/C8gTl+/rm+mp48BYtMLMIGlzjPe2/gwmNOA="}]},"_npmUser":{"name":"jvickers","email":"james@metabench.com"},"directories":{},"maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jsgui3-gfx-core_0.0.27_1771946213459_0.19907891735095973"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-26T15:38:14.966Z","modified":"2026-02-24T15:16:53.797Z","0.0.1":"2023-04-26T15:38:15.270Z","0.0.2":"2023-04-26T15:51:57.394Z","0.0.3":"2023-04-26T17:00:50.140Z","0.0.4":"2023-06-17T23:00:40.885Z","0.0.5":"2023-10-13T01:49:42.427Z","0.0.6":"2023-10-14T22:46:51.334Z","0.0.7":"2023-10-27T23:41:33.506Z","0.0.8":"2023-11-06T02:06:45.749Z","0.0.9":"2023-11-06T02:38:21.771Z","0.0.10":"2023-11-17T07:12:27.866Z","0.0.11":"2024-07-24T21:08:14.003Z","0.0.12":"2024-08-07T00:52:26.259Z","0.0.13":"2024-08-16T00:10:35.698Z","0.0.14":"2024-09-28T19:27:36.065Z","0.0.15":"2024-12-07T06:40:48.368Z","0.0.16":"2024-12-07T07:07:07.447Z","0.0.17":"2025-01-06T01:25:44.980Z","0.0.18":"2025-03-04T22:57:07.046Z","0.0.19":"2025-03-04T23:33:43.897Z","0.0.20":"2025-03-31T05:39:35.575Z","0.0.21":"2025-06-30T20:49:02.999Z","0.0.22":"2025-09-04T16:43:02.999Z","0.0.23":"2025-09-04T16:52:59.843Z","0.0.24":"2025-11-15T01:05:53.394Z","0.0.25":"2025-12-12T02:19:12.832Z","0.0.26":"2026-02-12T11:55:37.567Z","0.0.27":"2026-02-24T15:16:53.668Z"},"license":"MIT","description":"**Pure-JavaScript pixel buffer library.** Data structures and algorithms for creating, manipulating, and processing raster images as typed arrays. No Canvas, no DOM — runs identically in Node.js and browsers.","maintainers":[{"name":"jvickers","email":"james@metabench.com"}],"readme":"# jsgui3-gfx-core\r\n\r\n**Pure-JavaScript pixel buffer library.** Data structures and algorithms for creating, manipulating, and processing raster images as typed arrays. No Canvas, no DOM — runs identically in Node.js and browsers.\r\n\r\n## Install\r\n\r\n```bash\r\nnpm install jsgui3-gfx-core\r\n```\r\n\r\n## Quick Start\r\n\r\n```js\r\nconst { Pixel_Buffer, Pixel_Buffer_Painter, convolution_kernels } = require('jsgui3-gfx-core');\r\n\r\n// Create a 256×256 RGB pixel buffer\r\nconst pb = new Pixel_Buffer({ bits_per_pixel: 24, size: [256, 256] });\r\n\r\n// Fill with a base color\r\npb.color_whole([20, 30, 80]);\r\n\r\n// Draw rectangles with the Painter (fluent API)\r\nconst painter = new Pixel_Buffer_Painter({ pb });\r\npainter\r\n    .rect([30, 30], [80, 40], [255, 60, 60])\r\n    .rect([60, 50], [80, 40], [60, 200, 60])\r\n    .rect([90, 70], [80, 40], [60, 60, 255]);\r\n\r\n// Apply edge detection\r\nconst grey = pb.to_8bipp();\r\nconst edges = grey.apply_square_convolution(\r\n    new Float32Array(convolution_kernels.edge)\r\n);\r\n```\r\n\r\n## Features\r\n\r\n| Feature | Description |\r\n|---------|-------------|\r\n| **Pixel Buffers** | 1bipp, 8bipp, 24bipp, 32bipp — all backed by `Uint8Array` |\r\n| **Drawing** | Lines (Bresenham), filled polygons (scanline), rectangles |\r\n| **Convolution** | Edge detection, Gaussian blur, Sobel, custom kernels |\r\n| **Format Conversion** | Greyscale ↔ RGB ↔ RGBA, threshold to binary |\r\n| **Resize** | Area-weighted sampling for quality downscaling |\r\n| **Masking** | 1bipp masks for compositing and region operations |\r\n| **Typed Array Math** | Low-level bitwise, copy, fill, and transform operations |\r\n| **Shapes** | Rectangle and Polygon geometry classes |\r\n\r\n## Exports\r\n\r\n```js\r\nconst {\r\n    Pixel_Buffer,          // Full-featured pixel buffer (10-layer class hierarchy)\r\n    Pixel_Buffer_Painter,  // Fluent rectangle drawing API\r\n    Pixel_Pos_List,        // Sparse pixel coordinate storage\r\n    convolution_kernels,   // Predefined convolution kernels\r\n    ta_math,               // TypedArray math operations\r\n    Rectangle, Rect        // Rectangle geometry\r\n} = require('jsgui3-gfx-core');\r\n```\r\n\r\n## Supported Bit Depths\r\n\r\n| Format | `bits_per_pixel` | Use Case |\r\n|--------|-----------------|----------|\r\n| 1bipp  | 1  | Binary masks, thresholds |\r\n| 8bipp  | 8  | Greyscale images |\r\n| 24bipp | 24 | RGB color images |\r\n| 32bipp | 32 | RGBA with transparency |\r\n\r\n## Convolution Kernels\r\n\r\n```js\r\nconvolution_kernels.edge            // 3×3 edge detection\r\nconvolution_kernels.sobel_x         // 3×3 horizontal Sobel\r\nconvolution_kernels.sobel_y         // 3×3 vertical Sobel\r\nconvolution_kernels.lap_gauss_5     // 5×5 Laplacian of Gaussian\r\nconvolution_kernels.gauss_blur_5_2  // 5×5 Gaussian blur (σ=2)\r\n\r\n// Generate custom Gaussian kernel\r\nconvolution_kernels.get_gaussian_kernel(7, 3)  // 7×7, σ=3\r\n```\r\n\r\n## Integration\r\n\r\nWorks with **Sharp** (Node.js) and **Canvas** (browser):\r\n\r\n```js\r\n// Sharp → Pixel_Buffer\r\nconst { data, info } = await sharp('input.png').raw().toBuffer({ resolveWithObject: true });\r\nconst pb = new Pixel_Buffer({ bits_per_pixel: info.channels * 8, size: [info.width, info.height], ta: new Uint8Array(data.buffer) });\r\n\r\n// Canvas → Pixel_Buffer\r\nconst imageData = ctx.getImageData(0, 0, w, h);\r\nconst pb = new Pixel_Buffer({ bits_per_pixel: 32, size: [w, h], ta: new Uint8Array(imageData.data.buffer) });\r\n```\r\n\r\n## Documentation\r\n\r\nFull documentation with SVG illustrations available in [`docs/`](./docs/):\r\n\r\n1. [Introduction & Overview](./docs/01-introduction.md)\r\n2. [Installation & Getting Started](./docs/02-installation.md)\r\n3. [Architecture & Class Hierarchy](./docs/03-architecture.md)\r\n4. [Pixel Buffer API Reference](./docs/04-pixel-buffer-api.md)\r\n5. [Drawing — Lines, Polygons, Rectangles](./docs/05-drawing.md)\r\n6. [Convolution & Image Processing](./docs/06-convolution.md)\r\n7. [TypedArray Math Subsystem](./docs/07-ta-math.md)\r\n8. [Shapes, Pixel_Pos_List & Utilities](./docs/08-utilities.md)\r\n9. [Ecosystem & Integration](./docs/09-ecosystem.md)\r\n10. [Dense Agent Reference](./docs/10-agent-reference.md)\r\n\r\n## Dependencies\r\n\r\n| Package | Purpose |\r\n|---------|---------|\r\n| [`lang-mini`](https://www.npmjs.com/package/lang-mini) | Type checking, iteration, comparison |\r\n| [`obext`](https://www.npmjs.com/package/obext) | Read-only and managed property definitions |\r\n| [`fnl`](https://www.npmjs.com/package/fnl) | Functional utilities |\r\n\r\n## Testing\r\n\r\n```bash\r\nnpm test\r\n```\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}