{"_id":"@thi.ng/canvas","_rev":"86-d1b83e5a0ac10f24940c90fb718d4853","name":"@thi.ng/canvas","dist-tags":{"latest":"1.1.20"},"versions":{"0.1.0":{"name":"@thi.ng/canvas","version":"0.1.0","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.1.0","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"3e34af7e270238aa90e4601302ce91bf23067f5f","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.1.0.tgz","fileCount":6,"integrity":"sha512-+LZ2WSrrTPhfbTv5DfW3oClLGQg+2eCheaU0EY7NBfsxAtDJfhEqP4YvqP09fYv/jcyP+mxEp5EeB2pHcu/2Sg==","signatures":[{"sig":"MEUCIBbKzn2YGytq0WlLN/smaAgBP3amtrhzeuHYZvT0SugkAiEAh0ZMNC3uGU+gVaxAayeb1G1kY3dtNCUY0UbVDvbor3Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28041},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"0d9265be7be13eccf0ef75eaedbfd42626339279","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.19.8","typedoc":"^0.25.4","typescript":"^5.3.2","@microsoft/api-extractor":"^7.38.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.1.0_1702983828279_0.4460946178126566","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@thi.ng/canvas","version":"0.1.1","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.1.1","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"af15df83cbb3aabd343457726510a9212de2b722","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.1.1.tgz","fileCount":6,"integrity":"sha512-oGl2IGeLT9reHhFUEDeYoo97jOGf3B4NQqIN/bQpclVZQCQWl4vWQMyFm19mrcMLPgb3pGiCUjGbmvycwwqcBg==","signatures":[{"sig":"MEUCIQCX0TDs8Gdb7waXNESCSJ7ZzQ83cV1THTl8CSCCTFHTpAIgPWa5WkEGpbtI1jt/FRfBLlsvm6ReuSdOdBWhgOaPB4Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28643},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"36d93175f8fbc0190c3c96a9ac0016a9663e9a80","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.19.8","typedoc":"^0.25.4","typescript":"^5.3.2","@microsoft/api-extractor":"^7.38.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.1.1_1702988748529_0.46502169284747796","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@thi.ng/canvas","version":"0.1.2","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.1.2","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"de7fab9f678b13e021fb9b7d5915ff36f565722b","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.1.2.tgz","fileCount":6,"integrity":"sha512-zq2Si9t8YfXvhkjbeiEXgcS3NQ6fxGCEt7USQby0vS6gkI10pCuaND3V7M0LArp0Wk7cJWLqymIqolYCSSFUhw==","signatures":[{"sig":"MEUCIHCYsVHgcPHwTjoLLIIjDyd9UVPjDNTWWEHKlWGRT7GJAiEAiqQVTmxjngapTBK2jhOWt2SsFzJGz0Ec0GXIiHIi9HM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28644},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"775c664723cd87d6ac5909cedf91195317add287","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.19.10","typedoc":"^0.25.4","typescript":"^5.3.3","@microsoft/api-extractor":"^7.39.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.1.2_1703805999240_0.5392158782146774","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@thi.ng/canvas","version":"0.1.3","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.1.3","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"ac598643670ef8d134bacd13fecc0a39b4f96a4b","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.1.3.tgz","fileCount":6,"integrity":"sha512-YBkFrTUcYnlXg1zitYnrNPf/jYJrOQLC7Ib4WwW2A/jnMBHTXX2Jf/wKxW/oBv6m2Xd7R8Rj3/OO3DesoXCBug==","signatures":[{"sig":"MEUCIAQWvf3zxMD3Hse9zTgLWLpLCsRLaz/dxAyeOVcNAJY8AiEAz8QKVDTqcFjNfLqkvjc472En/3bvISAVJwHHV6mKQmA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28672},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"b3db173682e1148cf08a6bd907b8d90b47b7c066","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.19.10","typedoc":"^0.25.4","typescript":"^5.3.3","@microsoft/api-extractor":"^7.39.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.1.3_1704015989331_0.6721141781847091","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@thi.ng/canvas","version":"0.1.4","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.1.4","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"e4f56c52b438e74654f9234902db93f8e05d0efa","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.1.4.tgz","fileCount":6,"integrity":"sha512-A28dkxQtaB4ujlw/JWyBmqbuTd+Enl3oZsbjbNmYkhno8/NjCPjniZ2+4mOMkrIvC0Dhx/LhrUWZWoZ+KVOY2A==","signatures":[{"sig":"MEYCIQD3jopD9xs846MTDq4qbrxhAh55PB0/nc5F9lgUfDFZJQIhAMdcUZxx6rbDHNoFpx0bN3UXZqtJnoE6OiulnqJfQuzw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28679},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"417b5a7ea7bd54a3b4f086fe0fc2ce8e8933c9b2","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.19.10","typedoc":"^0.25.4","typescript":"^5.3.3","@microsoft/api-extractor":"^7.39.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.1.4_1706025619278_0.2048577900056483","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@thi.ng/canvas","version":"0.2.0","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.0","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"de9d2f50b3350eb1c97a92787ec01d0ee75f8a52","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.0.tgz","fileCount":6,"integrity":"sha512-MF/5LPzx2pSBhik5wBbKOyMZn2mzuGQ5JVHPKF5TxEusZ+MmmCDUnboKfJWBjbCC0Pzr6ETEwPQMJVsI6A34Cg==","signatures":[{"sig":"MEUCIQD6+uz+F0BsQLvOCfD7Qp/WT6TNNcD7OqnX4kgc17cGpwIgKPQdkqYz7HrKtoabYZEeEGje2I24xRw/6DuL81sE1hA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29973},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"7426e2ae6fca5482c6eaf649872296fc89955374","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.19.10","typedoc":"^0.25.4","typescript":"^5.3.3","@microsoft/api-extractor":"^7.39.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.0_1706292306424_0.21059004086318311","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@thi.ng/canvas","version":"0.2.1","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.1","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"60e0b43d73bb4b132aff0ecda2f9ecbe2fe2ece5","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.1.tgz","fileCount":6,"integrity":"sha512-Y2NQGFSTGEgBEIoL7p+hXm6oAYxelLdUdnMaGA2K6kLkyswdOXeEEmRk3WML/9bVcWgmc3P8aLIsrttS8X3YAw==","signatures":[{"sig":"MEQCIBupkhWIUjGxoFcBsKpmQsZKt2Nme6SjWfwnnYEQQYv/AiBS0wb+HoOvQG5GwklUtRTnSYHEqN3QBJ9Jb6sT+NedpQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30147},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"20909ffc46f23f61ec7647e8d27ed17752ce9828","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.19.10","typedoc":"^0.25.4","typescript":"^5.3.3","@microsoft/api-extractor":"^7.39.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.1_1706560921038_0.6202149416745792","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@thi.ng/canvas","version":"0.2.2","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.2","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"b392396cbb1bb8913e2a4a40f628e41e04075832","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.2.tgz","fileCount":6,"integrity":"sha512-PXcjUVQSW/pAtaurQPFI08Dou8kwgi+RilSB+t0Qhqme0bF8DeGJ32U6fZGrBp55+eggMYQwqzq74pB4qWG26w==","signatures":[{"sig":"MEUCIQC3YFi0XikZwyPdGxnB0Utnm8Mn6GcFOR58NBwtNe76lQIgd7k6A+5q5p15TJL6jHSLedB5TKXNWSoEp24QUhB0mQA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30147},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"3fa30b2dc2de762f24fd64b881b68d4da33d4c38","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.19.10","typedoc":"^0.25.4","typescript":"^5.3.3","@microsoft/api-extractor":"^7.39.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.2_1706562548767_0.29620673968651445","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"@thi.ng/canvas","version":"0.2.3","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.3","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"19e7e5231f62e833c53cb7e9e2a0fafbef5d91d5","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.3.tgz","fileCount":6,"integrity":"sha512-T5bw3YoA6GyCf2F5Kh6UU7ERP9iI28ViJ6Bqq8o8YSh+vMkAHW/Tw0IC4SukQZbXMcdeqzuVzg4hMW34IyJg4Q==","signatures":[{"sig":"MEUCIQCawFB0pfTX6pQHP6hEX1cFJq/kQFC16FX+eUX6Uu+lIwIgeCjQXhyEaiPj8nMYHLpdnxLWZPsUI1BUDx4uYJYoSdk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30147},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"ded7c5e87ebc7f6279c24f183c24ff348db8f304","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.19.10","typedoc":"^0.25.4","typescript":"^5.3.3","@microsoft/api-extractor":"^7.39.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.3_1706628196024_0.9046438100320855","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"@thi.ng/canvas","version":"0.2.4","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.4","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"3c2742188f130c922fb384d3e161698830372bc0","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.4.tgz","fileCount":6,"integrity":"sha512-f/IRGQoZn8KZ1QDqBDcREO5V1+bfDjg+/ybYfMoQdc/Yl40YNiJSZbRV908VOdag1ZmsHmFV86N3rak4StEXig==","signatures":[{"sig":"MEQCIDsDqEG0TeqYUGsyJT9jQgd93E02n3XtnBVCl/4ZvvIYAiBw+gmkxtJSpZzEWboiZ3mamQWSOdmoij8OKDuo5mh/3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30147},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"a86521dfac00768f7e51a607209325eb72004730","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.19.10","typedoc":"^0.25.4","typescript":"^5.3.3","@microsoft/api-extractor":"^7.39.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.4_1706650750874_0.9552479379540368","host":"s3://npm-registry-packages"}},"0.2.5":{"name":"@thi.ng/canvas","version":"0.2.5","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.5","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"42b8b23f69129bd375d7cc5f3306b0b05da4cbc8","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.5.tgz","fileCount":6,"integrity":"sha512-WfdJIJaYdzKiC09A/2GfQpoww7VMU5dfRfQtb4O3ratcCeKzvFFkHJloOj08DoCpI24KQLIBw2lhz6LpUzJ3Ug==","signatures":[{"sig":"MEUCIQCBrXEk/FTGfJzyP35lPWWrjouyqU4g1gFTjXit96M+vgIgGQHLSoagwsEOV9YdL/iRu6AXYQc3cY9tYvyGhL/7vF0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30531},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"e5e7d5c6ed2eadee7a91d59cbd0c86ce880ab1c5","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.0","typedoc":"^0.25.7","typescript":"^5.3.3","@microsoft/api-extractor":"^7.40.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.5_1707555699664_0.5809072970316107","host":"s3://npm-registry-packages"}},"0.2.6":{"name":"@thi.ng/canvas","version":"0.2.6","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.6","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"db488c5a2b872464e3fa6a5ddb6eb08690a15c89","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.6.tgz","fileCount":6,"integrity":"sha512-7oItbWhW0AfKKybmfN6OO6n6ttoLCUjdf7aY98hAao7E0h7CRmt7ud4+k4FRDNzfdTj0o5LVPhnLKN7+tDfSsw==","signatures":[{"sig":"MEUCIGdhOYBfYtHPklXWyn4uHGY0v3Chy66YTaM8GZ5WqR2KAiEAz38OthOv1USpEVca5BRteIs+vwTUXdRp9G4UjD0OseY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30531},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"2724c87ca41810f2112f9d8c3d6b90dfaeea876b","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.0","typedoc":"^0.25.7","typescript":"^5.3.3","@microsoft/api-extractor":"^7.40.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.6_1708359006773_0.35310888401739216","host":"s3://npm-registry-packages"}},"0.2.7":{"name":"@thi.ng/canvas","version":"0.2.7","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.7","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"4d4c2c020941956c418808b825036256bb07cffa","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.7.tgz","fileCount":6,"integrity":"sha512-/ldR6bmhVe4Vr2vhrQNGvf9Jd8xKMqhO8axn7l7sq8cPg2zYUNMJ8ZWbtuoK3vnxpQqpLCRKMzNXxg0vaiUS9A==","signatures":[{"sig":"MEYCIQDiDNsABrqQwExxp/C2iVSv8ISwhc9ulqZ6hChaG2eddwIhAIOBetVcsg3CpXndLyOGBTq0t7rzdNsKIROzZikKPwy7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30531},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"4513a1c703bdbf0f0867f03e547e47692e415fac","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.0","typedoc":"^0.25.7","typescript":"^5.3.3","@microsoft/api-extractor":"^7.40.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.7_1708603351539_0.5154405889022606","host":"s3://npm-registry-packages"}},"0.2.8":{"name":"@thi.ng/canvas","version":"0.2.8","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.8","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"aee0296183b878a3fe03b69485ac88bd4f96e424","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.8.tgz","fileCount":6,"integrity":"sha512-QfVRVAtWibIUO7sz4f0gf24U88hwHkykrLuMKd+PCTkfi+XpaYIEWGEpVKnnIrPNYFBU438Uzpsx1MpQoQdFuQ==","signatures":[{"sig":"MEQCIEpRj8ZNoOZQKLOV2gO77fmSuYMII7t3W8jLOxXAaNSEAiBJFFejFffgVpNo8zZOoThDrN5SocTL3mDLOvGvSc81Yg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30152},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"d660ae8fd1bf64d919b4334f19509f1f539d70f6","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.0","typedoc":"^0.25.7","typescript":"^5.3.3","@microsoft/api-extractor":"^7.40.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.8_1709306730509_0.5801219251957539","host":"s3://npm-registry-packages"}},"0.2.9":{"name":"@thi.ng/canvas","version":"0.2.9","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.9","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"1a2fca2b264fe536bbd5376c1f3775d6fa322dae","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.9.tgz","fileCount":6,"integrity":"sha512-zWAeH4wIts4mcbSuX9S5/vIil0k2/lE/8tLzevu8YRe476yhtkBfPGIw1Sc5NPSTdSGZyxJZlXglmJpZqfvp+A==","signatures":[{"sig":"MEUCIEjqdFmzsK6idlVPdtn+y8jgrALHWAU6d3Jk1InwRF2bAiEAwFmY0AXACzgP7iiOPrDgyNbamIGJwaJlWgByX/2HPsQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30217},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"a421058a65ba76608d94129ac29451bfedaf201c","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.0","typedoc":"^0.25.7","typescript":"^5.3.3","@microsoft/api-extractor":"^7.40.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.9_1709844218648_0.14019008510533104","host":"s3://npm-registry-packages"}},"0.2.10":{"name":"@thi.ng/canvas","version":"0.2.10","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.10","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"c6b521f2f0c98a28cfc2d49b159ed8d0daf68251","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.10.tgz","fileCount":6,"integrity":"sha512-yvvXWplk5U/GCt+mr29zf/ZG3mShId/VJeXrjFQ00xSHvpp16V/2ImAOsNG8q+mdyJlUYOP3jaWvolB/DBIMag==","signatures":[{"sig":"MEYCIQD6k0XXiyYygCdmHgXWiK/js5hIx8WlDs8Rzh0sRI+pdgIhAOGENOm0A2k1F9Rc9BfXEJFIiB6ZKr2BbWVRPY/0H8m9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30592},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"69100942474942f7446ac645d59d91e7dfc352f9","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.0","typedoc":"^0.25.7","typescript":"^5.3.3","@microsoft/api-extractor":"^7.40.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.10_1709976038551_0.9462317245227989","host":"s3://npm-registry-packages"}},"0.2.11":{"name":"@thi.ng/canvas","version":"0.2.11","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.11","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"1daf6dcbf5895c3c48f6af28c96b221c0b0a9ec2","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.11.tgz","fileCount":6,"integrity":"sha512-MDk1i8fjE2ceuv/cZy/BbQ+if3qB1rIonZWQnR/ubkTABc5KGGEkRVcoIkTcSwwSOKGo8AqwslqoVXW/N8Aj2Q==","signatures":[{"sig":"MEUCIQDqtmNfSXvXMMqulM3shagZshr6kkc/wn11vs4OI+cjjwIgcEKOdh9Vf9fNjtEerdhfP+NbE1vy27TuRfdpFnagUFU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30592},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"0d3bacf526db92363b43e81356e8cef18368272a","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.0","typedoc":"^0.25.7","typescript":"^5.3.3","@microsoft/api-extractor":"^7.40.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.11_1709992011755_0.06082838004802715","host":"s3://npm-registry-packages"}},"0.2.12":{"name":"@thi.ng/canvas","version":"0.2.12","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.12","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"1ea1aca3f7e5b967e06b5165848de75cd0e060b2","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.12.tgz","fileCount":6,"integrity":"sha512-XDOqg1jaPYVzrs2t5VMke8wf9NV3u909FjedXAyVLWrMxbInmW1h1tOLiMa8tASoL2lGrROjbG6YWMGYDvl3Zg==","signatures":[{"sig":"MEUCIBTHhbJbmpbOYxWd1jLxhs+trtfUfN2KlNAoNruQDmGAAiEAw2XcnrGF+07UBS7tr8MyIf18Ags+IvR8YtPiFDV3PRM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30593},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"7f3fcbd6c0462b0ce45afa141fe163d1f297fd51","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.1","typedoc":"^0.25.12","typescript":"^5.4.2","@microsoft/api-extractor":"^7.42.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.12_1710338903346_0.7748318400898973","host":"s3://npm-registry-packages"}},"0.2.13":{"name":"@thi.ng/canvas","version":"0.2.13","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.13","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"934b2720bc207d6aacc38eacde9920bf3753ea01","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.13.tgz","fileCount":6,"integrity":"sha512-bzKP3uFE/Ou1iexzGatW49MeC+ms9hLB0ZBFjxK7XxkZ+p2zYWwKgbVc/ywADSXlqCIwcYC7MieWdf8AW6i1hQ==","signatures":[{"sig":"MEUCIC69X3LTon8q1GUrn1cUDkQU/DR39/lzd7zcbuMOJhGlAiEAhityOYskMtuUdQ4JOlms63nOBlyikiWkStFTq9AFkR4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30967},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"da965520b2f3f8c259a791e8e8864308be2ba0be","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.1","typedoc":"^0.25.12","typescript":"^5.4.2","@microsoft/api-extractor":"^7.42.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.13_1711037610899_0.8530259405711174","host":"s3://npm-registry-packages"}},"0.2.14":{"name":"@thi.ng/canvas","version":"0.2.14","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.14","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"a527870c83076c624a9cf37546f83e25befafd2c","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.14.tgz","fileCount":6,"integrity":"sha512-zMhcI7KFyFoQY0mgRkCeIXchlupJuvlvuEha8AoFA+/+kAaNQKB8V1KwXduPvtMcqye6SMDrMWpzai6cQRR7AA==","signatures":[{"sig":"MEQCICp+BXPecz1cNQXpRnavEj1tuT7IobOL5Oqk1hW7fYWmAiASgLNamLabUiGDod09YQaR8/cTqUpE6JAZNBHOeGgq/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30967},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"feb3b24654f2c931cd3c3308c1c0c807ee14d0e4","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.2","typedoc":"^0.25.12","typescript":"^5.4.3","@microsoft/api-extractor":"^7.43.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.14_1711533395827_0.3346481824510046","host":"s3://npm-registry-packages"}},"0.2.15":{"name":"@thi.ng/canvas","version":"0.2.15","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.15","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"060d8d917c7e4deeae01b0bac16e58e18561aabb","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.15.tgz","fileCount":6,"integrity":"sha512-aZe5WT1C245vl6Kdsq3GzwLiZ04YjIuT6V0oortQIbHL5p1hblXVy11oW+u9b6FFeczjFi0PuOsqxVSAYQiinQ==","signatures":[{"sig":"MEUCIFl3CvVbAaZbj0HqQQi4hTEu3Egg6n5XBBsoygVVObZQAiEA5i9uWch6NqoxsjBvBAeKt0jfZaBI+S0GXQnGvBFzL0M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30955},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"85ac4bd4d6d89f8e3689e2863d5bea0cecdb371c","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.2","typedoc":"^0.25.12","typescript":"^5.4.3","@microsoft/api-extractor":"^7.43.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.15_1712588601499_0.6192694882168983","host":"s3://npm-registry-packages"}},"0.2.16":{"name":"@thi.ng/canvas","version":"0.2.16","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.16","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"63947255a42d5a9e27b7a40ee02703607134d115","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.16.tgz","fileCount":6,"integrity":"sha512-0emIObw4nF6q3KBrrrTruoCIjtHpD9l9gL84VgHnNt3nHxl8IW2c9c96GqsW99vP2zncK63jZKcgsN8PNf8ZfA==","signatures":[{"sig":"MEUCIQDYnlqqSQk4hriUuAid+uB8G5SatZlIFVSWu4sr/8RnAwIgEllbJeS4f1b3zlOK0CUelzIr1Hi6SvBEcEpM4SPmrFU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30955},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"18a0c063a7b33d790e5bc2486c106f45f663ac28","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.2","typedoc":"^0.25.12","typescript":"^5.4.3","@microsoft/api-extractor":"^7.43.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.16_1712838919341_0.7031278447408174","host":"s3://npm-registry-packages"}},"0.2.17":{"name":"@thi.ng/canvas","version":"0.2.17","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.17","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"7892baa4b76187dca30cf55b05a316613bcb11d0","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.17.tgz","fileCount":6,"integrity":"sha512-hrFHgpwhM065UyBrol4O/5dBzoHKw2IunYUZbjNC+vYBriKopNyhWSpqxC2m3Umbk2uDMQKAt15uOofTKqmeAg==","signatures":[{"sig":"MEYCIQCU4NjOUl0sHFwejpTaqRkzY/BVD0LJKoIlwOcbsw1MYwIhAP+QYxsaiNWpaEf4gvjO7Hb/AP6Qwy3amzUaHKJlqpTt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30948},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"8339d05ecc857e529c7325a9839c0063b89e728d","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"rimraf --glob '*.js' '*.d.ts' '*.map' doc","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","rimraf":"^5.0.5","esbuild":"^0.20.2","typedoc":"^0.25.12","typescript":"^5.4.3","@microsoft/api-extractor":"^7.43.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.17_1713624306286_0.22595523312254118","host":"s3://npm-registry-packages"}},"0.2.18":{"name":"@thi.ng/canvas","version":"0.2.18","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.18","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"13949fd50611b5793b3912760b98bf3c90e65954","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.18.tgz","fileCount":6,"integrity":"sha512-OO+7ytx+We4lV/UGcpaXrGiNT0GwAMzrSP83MaO1V6vjjUAHns1y/XzuIjTUMSfIzJiWH0Q6DI3idxdUeE3vyw==","signatures":[{"sig":"MEUCIQDDQiXx9InLuAp0cHzlJXiDWrkGXW+DgB+8PZPkbsJEEAIgCIDq6aCJbpS1fFP9U7LgKb6KEdHA4yxKx2EDbgbZy5w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30919},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"5dd66c18a3862a3af69a5b2f49563f7cbdd960c2","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.20.2","typedoc":"^0.25.12","typescript":"^5.4.3","@microsoft/api-extractor":"^7.43.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.18_1713855893633_0.05395967572867555","host":"s3://npm-registry-packages"}},"0.2.19":{"name":"@thi.ng/canvas","version":"0.2.19","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.19","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://github.com/thi-ng/umbrella/tree/develop/packages/canvas#readme","dist":{"shasum":"b7017f496a428729ca98012aab202b2003fb3324","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.19.tgz","fileCount":6,"integrity":"sha512-kr4D4kfHMeg2Z3w7BUH5wf6Vap76lltpZ14fnHRmLStN6OOLve8SNxG26RUxrsBlgKq22sX4vKjGKzLjtqh29w==","signatures":[{"sig":"MEQCICRoW5MRf2c96zzqGpE9La+1qIDA2C7PwBPpdKn6MP2kAiA/NDMWWc64h10J/gxEkSZ8GHWesipmRLcGvr5yMcUkiQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31293},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"df34b4a9e650cc7323575356de207d78933bdcf3","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.21.1","typedoc":"^0.25.13","typescript":"^5.4.5","@microsoft/api-extractor":"^7.43.2"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.19_1715192824375_0.5240083917147713","host":"s3://npm-registry-packages"}},"0.2.20":{"name":"@thi.ng/canvas","version":"0.2.20","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.20","homepage":"https://thi.ng/canvas","dist":{"shasum":"eb94df74b21642e16f099e96034148395e77a4ac","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.20.tgz","fileCount":6,"integrity":"sha512-VfdCWRRvMKJklIz8QE2OV4ujD6cNbAfitxVddJRVIDTHAnd/hzK75vhIFLSa0csjkyIMVr0Use72gF2LhRkq8w==","signatures":[{"sig":"MEUCIQDuzlJFefDvTyyalNevonz3vvEcxNsEvfjuDOtbpWRuUAIgR6g5xAsW31sf9ehS3nyQd6tV28w8nORnjCfdOA6nId8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32366},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"154c95cf9d6bab32174498ec3b5b5d87e42be7f9","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.21.5","typedoc":"^0.25.13","typescript":"^5.5.2","@microsoft/api-extractor":"^7.47.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.20_1718998601387_0.6982026920301647","host":"s3://npm-registry-packages"}},"0.2.21":{"name":"@thi.ng/canvas","version":"0.2.21","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.21","homepage":"https://thi.ng/canvas","dist":{"shasum":"c934409ffde33bca7321b9d0eabfee0dc8d00f27","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.21.tgz","fileCount":6,"integrity":"sha512-D1THGl5Ed7tFjNiGpNeACSKrGIHJntsuA8q6eJch+iyHWGqY8xwzgbnE7Lk/j/YA5PovX9PgkaJvIgky39OAbg==","signatures":[{"sig":"MEQCIBWvhTkI6r5yTeJRgDrtQp4m07ntLR+mVOAiM/0Q1DHBAiB+TsxfQpQAAIeMqqyMTph+jgduzUBZjmhIqdCHJgprVA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32366},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"7b950c112fba0b2e7c450765b15624c3382f1354","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.21.5","typedoc":"^0.25.13","typescript":"^5.5.2","@microsoft/api-extractor":"^7.47.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.21_1719653433321_0.14401001958762105","host":"s3://npm-registry-packages"}},"0.2.22":{"name":"@thi.ng/canvas","version":"0.2.22","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.22","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"63cede865d41eb54503df8d5e2030704c22fbcf2","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.22.tgz","fileCount":6,"integrity":"sha512-zFRYdWUQF1CMj97Bs/dgEmTuk2JcrkpJk2quPx+lOS6Ef+U+XencvEIoPjHCAY9BCa81OrJNi45zLcuRTq/OJg==","signatures":[{"sig":"MEQCIBkFLRi3qjhOafFJa4/ovKZKjVbhJZTJbOwPTvlV6hx/AiA4yidbbDbU8lIC+OZlSfN03Yh8Eta1M4n07HEyCgtGvA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32365},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"70f493d9ccc97c5df5dda7e808e96cd1691097fc","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.23.0","typedoc":"^0.26.3","typescript":"^5.5.3","@microsoft/api-extractor":"^7.47.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.22_1720267444977_0.5537738740407627","host":"s3://npm-registry-packages"}},"0.2.23":{"name":"@thi.ng/canvas","version":"0.2.23","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.23","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"8be90a373ae998d702118ee730c50f87973fa256","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.23.tgz","fileCount":6,"integrity":"sha512-o/WP+4RW1GCCtZgU4glE4vROV8ak5PF1LSTbZ26wCTD2v23RkWPFHZo0EDdtJg81LikTWsFnOlXmhoTB6aopKw==","signatures":[{"sig":"MEYCIQD6GLXw3K4WZdKmKJrmLipJ+kbwRAjAaYXxMoQPf/q1IAIhALIsGqdg0RXv50tXjwykqdP5XLBVwigSVwopzYWlyhfR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32360},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"c7aaa453b01a45e5235517db9d2a283b97abac96","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.23.0","typedoc":"^0.26.3","typescript":"^5.5.3","@microsoft/api-extractor":"^7.47.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.23_1721401105430_0.23568302852986478","host":"s3://npm-registry-packages"}},"0.2.24":{"name":"@thi.ng/canvas","version":"0.2.24","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.2.24","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"04b6204a7131febf29de2354ee5a207c08c03c7a","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.2.24.tgz","fileCount":6,"integrity":"sha512-amE+RXg42KomtGxtZ19Ks6/Cq8g3l+PYcAoXEiASoEeySx8i7pHYztN+tRrDKgxcjqBS5tz+fT0woHOsp8k4Sw==","signatures":[{"sig":"MEQCIEl21hhO+My9QqnvdqBicd96Pcq8lVvjQ2/EzJy1BNZ9AiBcbv++tfRuxda33fDJU8HEN0wvOKvLpJY62t+jP5D8qA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32360},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"324d6b7dbf31558329e9fb6452e29b2f7db9c61a","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.23.0","typedoc":"^0.26.3","typescript":"^5.5.3","@microsoft/api-extractor":"^7.47.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.2.24_1721654278180_0.1502315516406656","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@thi.ng/canvas","version":"0.3.0","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.3.0","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"8c57174443013e9af8de78aa794572c9c876016c","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.3.0.tgz","fileCount":6,"integrity":"sha512-QtR0tiAJ3UJerEw9Bd/VDUnoub/7algYdt2CR72m+qxJmST93M/Ey+Y/SpsPmKfih8hQ4VkVyryO3Pymml/9rQ==","signatures":[{"sig":"MEYCIQDamqbZfJuollQXc2oIT4eesQSnIgQrI9hj4VKOuFgRIQIhAP4c9yx0XQE9AmR8ZReAuA0TtfCYUXV7kyzwbr5sNUrP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32819},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"5b6de5f99277b244646722a40ea787971c6ffd05","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.23.0","typedoc":"^0.26.3","typescript":"^5.5.3","@microsoft/api-extractor":"^7.47.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.3.0_1722529960826_0.8632038829981192","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@thi.ng/canvas","version":"0.4.0","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.4.0","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"92de07104bb0192801ca8a67c3c0289795326ea0","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.4.0.tgz","fileCount":6,"integrity":"sha512-cv/wRuTBdTyrCQB8r8sgBGs9roStFDtXkT8qKmGC6rqJIn6r5aAfEG9WJYvfGZqfWRdPVuLglPQISwKID4iFjQ==","signatures":[{"sig":"MEUCIQCYIyrCUF7Hjv9i2iZ/YRG1O41xKQNcet6Ir01BxEQ/fAIgDTdki9JkloBXJwEmwQE1vO/96nn3+ptiLBlmQ/1M1WQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33545},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"74b023c95ab8219fd4192ef2a02962b2e2038563","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.23.0","typedoc":"^0.26.3","typescript":"^5.5.3","@microsoft/api-extractor":"^7.47.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.4.0_1722532294400_0.385129305185532","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@thi.ng/canvas","version":"0.5.0","keywords":["browser","canvas","dpi","dpr","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.5.0","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"f1139983edb9449dbb119c4a14b492cc2b9e9f8a","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.5.0.tgz","fileCount":6,"integrity":"sha512-wu/5LcvIzgcIhK3WcEX+oEIby8BKEpQQCKjjfGI0xfzdIvOhLr/jvPNFRz+5BBVg0hCiqA3R1kt5rA4z9PUxqw==","signatures":[{"sig":"MEYCIQCHW9LeO6cloBVSYvsKjZwfCyIA0AavxbK7FvHQt2H+XAIhAO+g7E+ZVz4W8efo6zPeOfuxAxPXuaCMtzBmfmRwDmrw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33780},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"ec78f98d015e4d214a0b840e72e497407807daf3","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.23.0","typedoc":"^0.26.5","typescript":"^5.5.4","@microsoft/api-extractor":"^7.47.5"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.5.0_1723302313860_0.7774538807830089","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"@thi.ng/canvas","version":"0.5.1","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.5.1","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"23f3192d0fcfb1fcbd355ef4ad4b2050245d9b7d","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.5.1.tgz","fileCount":6,"integrity":"sha512-Sz7UbWVHD1lNzWZA+1zrjoL29te2/fCttcDx/+u+Ihhvopizs12XX/V/zgifO1cFbX6M2ix79EzWC4gHGN/2Qg==","signatures":[{"sig":"MEUCICtGtu8Z/sTJD15y2BzWztAUsfBKoaE2pTDo4L4iR5mHAiEA1alyX7pxKHpUPmc7SAz3Yx3QJiJKu1/EHrklwyD2FUA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33758},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"e914ebbd81c56783c39cf746548c547cbacadc96","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.23.0","typedoc":"^0.26.5","typescript":"^5.5.4","@microsoft/api-extractor":"^7.47.5"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.5.1_1723578080617_0.4421871587081807","host":"s3://npm-registry-packages"}},"0.5.2":{"name":"@thi.ng/canvas","version":"0.5.2","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.5.2","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"2b127e938fbcfe89f363c0127f3e079c7a960b1c","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.5.2.tgz","fileCount":6,"integrity":"sha512-iKFM9YycBAHCDi+cJdI32qRur5UJEX92VdkJonUQzi6yBvR7C0Yt/lGILVbTz1bOz/howHVLyNtZG2Lia3YJRw==","signatures":[{"sig":"MEQCIEF42dgA0sPfEtLOIreEThmncFl/Ss+8PsfZ9MNdIuSDAiBskYjDs8TOYqqdnFfgS9ZJIdZtRm1t6n3/xYpC1RFDOw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33758},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"f6e26ea1142525171de5d36b9c3119f2782bb437","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.23.0","typedoc":"^0.26.5","typescript":"^5.5.4","@microsoft/api-extractor":"^7.47.5"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.5.2_1723990422013_0.23397269628456807","host":"s3://npm-registry-packages"}},"0.5.3":{"name":"@thi.ng/canvas","version":"0.5.3","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.5.3","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"e277a56f0911b6f51182e51c2be530b3a5e1c53a","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.5.3.tgz","fileCount":6,"integrity":"sha512-ZSQlV+dkVFpgeTjKg5uxCZ7zs2i1kuMhBZEgQEp2Q5lFiU+4jqUVN6i6AhE+exCTLX0dSgDKQkUgZZ4SVR/zgg==","signatures":[{"sig":"MEUCIG2a5wZz8DRPw3QtvTG7+rXVSlqjy8uzOyzLM+3lGsRQAiEAshjhGv850uIG7o78yjvxreKxeaA3xLcJOOAXdLSvwos=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33758},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"b52baa3750ddd1256892df966ab7ac9b4806a9ef","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.23.1","typedoc":"^0.26.7","typescript":"^5.6.2","@microsoft/api-extractor":"^7.47.9"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.5.3_1726780299536_0.11849334586156202","host":"s3://npm-registry-packages"}},"0.5.4":{"name":"@thi.ng/canvas","version":"0.5.4","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.5.4","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"f6e85b30a5648629217c686b086522ffcaeac781","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.5.4.tgz","fileCount":6,"integrity":"sha512-TK61kQbUoYZOA8J2HTJl+lt39WADP8+YJhoTPowB1MJNhEU/AaKtBi2l21oPSod/+xl9E6a8hI5buDNZ2m4dKQ==","signatures":[{"sig":"MEUCIGEPLbOsGanEHYCBaNUPEgyTXh7B0QoWglSfpaGZ8b7AAiEAk709dfllpzfhchT0eSTwA2gbpxtmyqVPa+UFxD4KJ2E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33758},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"11ae480076e61a2263f5730ffb37dfddbf01c7d1","scripts":{"doc":"typedoc --excludePrivate --excludeInternal --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.24.0","typedoc":"^0.26.7","typescript":"^5.6.2","@microsoft/api-extractor":"^7.47.9"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.5.4_1728130484917_0.5064083973636364","host":"s3://npm-registry-packages"}},"0.5.5":{"name":"@thi.ng/canvas","version":"0.5.5","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.5.5","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"16f559226ef23daa447f7d7731d5b8ae5ccc0ca1","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.5.5.tgz","fileCount":6,"integrity":"sha512-61GUAYgpyDO6XmZkqo5YoLrNhrHOAN5NWQMYAG7PcW9u2DEQsDbhjPINRjYvMINuKeTJC5/nDTzAuaWQ0ykpKw==","signatures":[{"sig":"MEUCIAfVyPOLT0kCmOGHEmbJnvnzJrBVni9+A/R7vdhNLQ9ZAiEA/sTu0Oh8U2vWXahw9rQ2VkZtf6pIS8W4KpjzHqK8DDo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33752},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"ef89090bb19fc5bca23be5da8cfce05b82ff4ad1","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.24.0","typedoc":"^0.26.7","typescript":"^5.6.2","@microsoft/api-extractor":"^7.47.9"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.5.5_1731258847500_0.33912838890785535","host":"s3://npm-registry-packages"}},"0.5.6":{"name":"@thi.ng/canvas","version":"0.5.6","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.5.6","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"d4de19663a98826aae87dee3edfc5e1d45b6b210","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.5.6.tgz","fileCount":6,"integrity":"sha512-B2HhBcJQWFTXjrZ+d0o2borZAG7draDxsqCEqnV9Id37S7qYy4kCqQNFUg76X/8hMrpZLEp857ntx1ZvR732vw==","signatures":[{"sig":"MEUCIQDJi3979DZe6Zn+oXRCgP6KNX3XVYkPRkND1s0gMiaE2wIgB1+HaZ5uDQN/D+39EvoVf4goS7ac5L7MBQOAMnPoa4s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33753},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"85e2f0935b58bde5d165fbe754fafec5da0b731e","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.24.0","typedoc":"^0.26.11","typescript":"^5.7.2","@microsoft/api-extractor":"^7.48.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.5.6_1732472280485_0.11300815350919846","host":"s3://npm-registry-packages"}},"0.5.7":{"name":"@thi.ng/canvas","version":"0.5.7","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.5.7","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"fc103cb8dfbdf04cfaa0ba2bd466947c1ac0aa2d","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.5.7.tgz","fileCount":6,"integrity":"sha512-K+FvUIq4IbzpY9/cOVXakvB1l1TltIOya9v2e+Cb+LJP4w+QGO09qDa5C/DQkKIneKT0xBe654X4XN5tdJu5AQ==","signatures":[{"sig":"MEYCIQD9fxeVKT/i0ac9J0g5GkkJUnFLheb2ON0Wtb0H320BaAIhAKuuQpuVsH8TRM9Lywaw6wFYBIZ9fAv5rg597jEvCM44","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33752},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"}],"gitHead":"34ac95538d96f046090fef5fd3a1dc36d54663d5","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.24.0","typedoc":"^0.27.4","typescript":"^5.7.2","@microsoft/api-extractor":"^7.48.0"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.5.7_1733998451531_0.34686015598824604","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"@thi.ng/canvas","version":"0.5.8","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@0.5.8","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"ad5d00bccfaea8624d969782244650a0b06e47cb","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-0.5.8.tgz","fileCount":6,"integrity":"sha512-7SZtypW2sanvo0nqWQ5nF+WY9se3dCnoyur8blP+YyFsqofnTmbc/ynzWslOdfgl4MDznlsmMCR3dL2X6S0WTQ==","signatures":[{"sig":"MEYCIQDjaj2ISSjSkwXKF+7+3bE7p8RQuM0UJ+ZXzPXT4bRwmAIhAK151YssCBDkjqpIOKF5+BM4b+4FVtosXaolKavpVxAB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33836},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"48bf4c22bf23f88ac99f435106af2214f79a0be1","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.24.2","typedoc":"^0.27.6","typescript":"^5.7.2","@microsoft/api-extractor":"^7.48.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_0.5.8_1735308832014_0.2497754929434861","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@thi.ng/canvas","version":"1.0.1","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.1","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"0fd87332452df1cec8139ca11d41d84decf86608","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.1.tgz","fileCount":6,"integrity":"sha512-nO63G690JGYqU08QfrY+l7GEVd11dWIP/fQJn6d3IniDy7zg7530lh3ay5yrk6HiL3UyxliBqtT2xzQCSdw0ow==","signatures":[{"sig":"MEYCIQCA5S8C+4qEPmy/w4tjlH/6Su+myrMdKMHD/cW6equEggIhAL0ED4TUS+iX/nJDcllCG+Cl3iVH/0RfJZqe4kper10C","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33836},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"56c1d57a96565bbcc8c06c73779a619bba0db368","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.24.2","typedoc":"^0.27.6","typescript":"^5.7.2","@microsoft/api-extractor":"^7.48.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.1_1736025009369_0.6224030159777789","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@thi.ng/canvas","version":"1.0.2","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.2","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"f7e2a643a5483aa2a755fed93ddb5c1c6d0a3265","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.2.tgz","fileCount":6,"integrity":"sha512-dxvpC+RKD0LLv9vn6nn+k13FoQBsqRFoEMNURFcFtKFqaZQD+4o3tfZr2xjA1KrJ3vojlHhfNd4dA1X2TXpotw==","signatures":[{"sig":"MEUCIBin/ByRQzm6qQin7dgCZpqwH21mHySn9lBNpqhulD5fAiEAhxjtsR5PbyIqOy6AwCk6T+ngL2t2+ueYjeHvuaI4Bc0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34049},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"6542b842120bef47cc18d45a1b1db68307a7f04b","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.24.2","typedoc":"^0.27.6","typescript":"^5.7.2","@microsoft/api-extractor":"^7.48.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.2_1736857507461_0.4587463313781528","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@thi.ng/canvas","version":"1.0.3","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.3","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"28542587f10a3c331cbb3db64f5b7df3254e945d","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.3.tgz","fileCount":6,"integrity":"sha512-tfj9rG0dXancMLf6T/HdidQgdW0rabCdWfme/b/smlaJjFEXDguUv2kY8x7hxEjXy8+qILxIXXgTausKgOR5LQ==","signatures":[{"sig":"MEUCIQCDoYDJntu9RvY+1n8buEJR8taSf/4PLaADuW+cDKjxUwIgWqKVpwAr+eVr4pPUDEZvRYs87ilvMtjhWJEV0cfBP04=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34049},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"22f6d518aed5951bb37b406c8ae85a6c3e6be517","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.24.2","typedoc":"^0.27.6","typescript":"^5.7.2","@microsoft/api-extractor":"^7.48.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.3_1737474548380_0.5887636124165849","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@thi.ng/canvas","version":"1.0.4","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.4","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"8f2721cf6a21bd91da39fede13b166ecda335063","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.4.tgz","fileCount":6,"integrity":"sha512-W8sOnaZC7kqPWBsFqGWq8JI0lL3pzF6q/bdiU2p2Wp/XedDAUHMs0P1fS6ZO3IZ2aHXYA0lIQUEq0TDquED1Mw==","signatures":[{"sig":"MEUCIEG45jUCPVIElo/4TBRLuHH1n8un7u73NPv+WH25W89DAiEAz3RnCaj4EZjCPWL0fyQHk05nQ2r2IKeZl948SUy+Xwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34130},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"b92b48abda9941d608be8a2e1c83447e679a6f79","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","doc:ae":"mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.24.2","typedoc":"^0.27.6","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.4_1737639677872_0.6378557195300021","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@thi.ng/canvas","version":"1.0.5","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.5","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"6397f575469abad1c90b1a7706eb2534405abc21","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.5.tgz","fileCount":6,"integrity":"sha512-C9NoyGgaDcSVlcKMoAFumOhuim/y9lWE7e7ZrPkg44J3ROg9Mo0T/Z18hz0jFAnihlcinJIQ2OrkA0OAtxMxKQ==","signatures":[{"sig":"MEYCIQCVLMaUDydL92e6JNtKKh7aLfa+VWwxByYeRRhW3vW2xAIhAOVRRZc5oTiWOIn2/6yNs7yMdDVB58ojTF4h0kRj2mlv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34048},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"fc1d498e8d4b690db873c30cc594352a804e7a65","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.24.2","typedoc":"^0.27.6","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.5_1738168073068_0.9773677142838317","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@thi.ng/canvas","version":"1.0.6","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.6","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"c96201e2c0b199452b62a7775ff74060c9d27e64","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.6.tgz","fileCount":6,"integrity":"sha512-OxfLB+WFT9ZAS+6OVNiFDf12k+NCelIRQSaKJ6zBaX0VWrLAo5Q3XF0qFMz48l620BMWGfi7Dz5sXQbBPh53Uw==","signatures":[{"sig":"MEUCIHNeew4nyjtbUFoSOCQtsXzDdMhFrOhOi/EHPYqQ4su2AiEAyDoCkFgZY0gpRWqyeLR9aExntHtVv/YP/UUGndiBrbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34048},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"9a0b33253fef092aaf301decf6ecd54317874d4c","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.0","typedoc":"^0.27.7","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.6_1739462720345_0.7480569231358918","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@thi.ng/canvas","version":"1.0.7","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.7","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"3e5a1f5e69d5edb2c05ac810f38659d96bcd3dcb","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.7.tgz","fileCount":6,"integrity":"sha512-gTyQaExIYvxBzD6Df7TOmF9N8TS3QiAd4xKNmwix2mQQKwuwR9hIXDVoycwZQLSkJchAkhoPiZo9crvIaKfAMQ==","signatures":[{"sig":"MEUCIG7f1v2eUCO3anKyjqyERnf0dCo+tVMnOWdZ+jSspuVHAiEAnGbCBiI4YPPDOoUcwf1oGZ16CP1jcln+IhWvCs1KUQQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34048},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"bee617702ac61d093465b967f8f973dc566faa6b","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.0","typedoc":"^0.27.7","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.7_1739998923173_0.5752761973983507","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@thi.ng/canvas","version":"1.0.8","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.8","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"00ffb9e073a8d2a675ee74315fb2bfc381569a89","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.8.tgz","fileCount":6,"integrity":"sha512-r4bRWAsiaaNx+ihTtQDi1RQFMfOLwGgoSbZhdxLzEo6t1Ga5a/cqv/WKqUWLjD1LHjxhtflS8uPcihD2ETyAOg==","signatures":[{"sig":"MEQCIBnXop++MWrxjHiMDSVVf6avnTghHmY1a6hXTrYaynciAiBCxEt+4Pf/BCt+sV0xPdeImOdk/KQBgBlpmfXdrm7gtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34422},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"5084790092321b8654373237225c5f428f092782","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.0","typedoc":"^0.27.7","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.8_1740490055402_0.026715284032801767","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@thi.ng/canvas","version":"1.0.9","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.9","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"04f133226f794e505c4caa717f2544be052a3534","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.9.tgz","fileCount":6,"integrity":"sha512-BptFGkpJBi92IbHKyOmuoRr6M1yRoNReiM8a6lJOXtPwGQAowIAZX3HI/LBYp8jwwnyA/G3adXVoT6wfUqmwgw==","signatures":[{"sig":"MEQCIFogm/QaynZ5LmNMRfXLN+FsOeUkQXvcm9NEIq3CxUnmAiAtGJy0FK8qoVD1oKdMQOAVG7lk4bSDI4ouXTLncot0/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34422},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"55987d581e4985b1c3091ba6be3f9b53a0c5eeea","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.0","typedoc":"^0.27.7","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.9_1741548268101_0.5438203715225618","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@thi.ng/canvas","version":"1.0.10","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.10","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"24510b3bb0ce6c3b9d3e285609ae66873b588c1b","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.10.tgz","fileCount":6,"integrity":"sha512-ry+JwVlnq6SjkHGJf+ycsyHhkhst9D5+HcbUcZ3JfQexY84nRlZpdzNd7Tc5sGAsJoZk+MeKjwdiZXLd+lzgnQ==","signatures":[{"sig":"MEUCIF0dIAMi1p3WpA5PN/F94nkX9lAfz4bpK6cCC7BMZDIvAiEA66vnS1rGtwHJ/QnsQhDqszE7zQsO4+96iMODIb7UjBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34449},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"dfecb91b5b6a05db32d96f261e0c0ac6319240b9","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.1","typedoc":"^0.28.0","typescript":"^5.8.2"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.10_1742218962869_0.8861832379515462","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@thi.ng/canvas","version":"1.0.11","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.11","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"f088411da5f57552cc44d58548a08f0a1714c3ef","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.11.tgz","fileCount":6,"integrity":"sha512-Wfz2SuGQ7Bvjt5tWQTCE31nDyA+5zppEox1Aa+hypMPhrAwN3u3l4MO9sakOf368IenFhutDhtnhPThFkun+Mw==","signatures":[{"sig":"MEYCIQDfZCMVDbt/N2TzUSiNQd2rZx//NuKw1+6L4lOdrYtD5AIhAKiLKJhVMiMnCR1T+EZRJtfdlLOpg20RRQLcoFtRKUhr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"1646e0ffcdfd812b29e1b9c7c528d294ea60373e","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.1","typedoc":"^0.28.0","typescript":"^5.8.2"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.11_1742304385767_0.591056956058946","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@thi.ng/canvas","version":"1.0.12","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.12","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"765d3996a986ef25e72ed80c47118ed6f944b65d","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.12.tgz","fileCount":6,"integrity":"sha512-mrSvX8cVvNXOoEhJ2c+L2PCX3CprsnvMwTEc7eb0AY/9E6FS1TZImE0WZLrAkO/Ki5ZZZsaT7gLAMHYNuuKarg==","signatures":[{"sig":"MEYCIQDS6/4BFVwPqVcGllzKuyprlnUnL38HrjIYyIIWX6IaPgIhAPKQzUqstizy0Ek4FBZNBI7LxTBI/JCSJ8b1kQah4Q5W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"87aa2d0e64a357476c10fd57aabdfded13c79f7d","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.2","typedoc":"^0.28.1","typescript":"^5.8.2"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.12_1743543844983_0.06399877131354637","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@thi.ng/canvas","version":"1.0.13","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.13","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"ca64df77a4d27c79b6504f25b710b45b033245c1","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.13.tgz","fileCount":6,"integrity":"sha512-jb2g1B6eTnsBOniWyJCNBFFf7vCkD0tRqFJkD8jpNHsurOvSDBp4cH+IfBvFr6Neu7wIJ3j03dmA9sRrQbhhZA==","signatures":[{"sig":"MEQCIF35KmuCwKqA4tE0kGGjtHcIu4IrDCJBm4NneFdjypEMAiB6ykwlxPVeaZl/S0SXrZRZ4erUSpbdq9XFbTSB+awvig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"c464b6948f92cba90c2ea75b59203dad894fb450","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.2","typedoc":"^0.28.2","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.13_1744801989767_0.07363497667908558","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@thi.ng/canvas","version":"1.0.14","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.14","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"747a60b4fe505e388966b988540e6351ba311199","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.14.tgz","fileCount":6,"integrity":"sha512-9TFCjVflgnvn+qMMXYCFqNKPQz6xJfK5YcpO4Jg4Qs0X3Z6ankG4tsxi1t4giu42ptmGw9k0/cpqNCz9DNL5JA==","signatures":[{"sig":"MEYCIQC2N4ceIcXNYlkAQ1mFTq7McpxR76kV1I6iF9rUMAVttgIhAMiR9hknz+fQgAORx4T6Bl30XxbPUHdLT59wfya2SjbJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"4354686a6fb1f82c09ea48f92f87786191b231a0","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.3","typedoc":"^0.28.3","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.14_1746017673134_0.40386557289873615","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@thi.ng/canvas","version":"1.0.15","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.15","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"d5d8a1fc31fab66d137db0888c086729ee7a4242","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.15.tgz","fileCount":6,"integrity":"sha512-Jdl3JG0Fz/AhRnkrTk2Gbx+Xdf3D/HC1Ns4+TCu7cDyKKaz33qr30qHu1EeSVAJlvfGfLGeakpujnrFgI0OMMA==","signatures":[{"sig":"MEUCIQCN8F49+4M2EAXlIjkOrM7mG6QxKNur0yMp4BqXkfAvHwIgCTrFeF4hrrAr1xdupGcClXEMbBn+sFhVUHJC58YmmBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"61c3833b7ef7d044621454b5ea4af885d39f065e","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.5","typedoc":"^0.28.5","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.15_1748433881281_0.04065984720657512","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@thi.ng/canvas","version":"1.0.16","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.16","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"3c71014397683544bfc3b38ab474de73afdac813","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.16.tgz","fileCount":6,"integrity":"sha512-iZrQZ7dt1bfDLgJZ5W31qvn1+qSirEL8/usKON0L5Nod4WSRODhWCktQgmbFoBNazmiDcToHjAz+iYy8t9tyig==","signatures":[{"sig":"MEYCIQCpY6VIWkRbwi2uLkJayLXpbig476u82zPyTEzA1J4EcAIhANNS4a0fKYFG/viI8nVxvrnUWU8YUa8xr2rxBk/pFtul","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"93cdcd8db4d4669561a7f0ebc47697bdbfd04214","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.5","typedoc":"^0.28.5","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.16_1749489974464_0.9042197674265586","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@thi.ng/canvas","version":"1.0.17","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.17","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"3009b2cbd904d69e3f06222cd985dec86e6ff566","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.17.tgz","fileCount":6,"integrity":"sha512-GRqlIfcN0NfarE+l5P2sYiQXtYB4gHJAF8pccKLh2yiTRxMfomtHdNIac6jpASbUrscbkcuziIHHkIDGuVuGqg==","signatures":[{"sig":"MEUCIQC3GhpCPP3rNtPKDKjv4j53ve2j2Z0S9klYZNbU5JjJ1AIgED2y+ULDR5YLOK+frkFSfq6NxOkP9G44fFPUPwy/RpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"56d8f088389b22192a06e9a395b5eecebf47697a","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","actor":{"name":"thi.ng","type":"user","email":"k+npm@thi.ng"},"email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.6","typedoc":"^0.28.7","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.17_1752157341449_0.9589400107434154","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@thi.ng/canvas","version":"1.0.18","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.18","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"d02d26241fce869b74ae692ee1f4e484704b0813","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.18.tgz","fileCount":6,"integrity":"sha512-Ju23Ul9QWkx63uSqFFJRsmb3TDXE6o688shO2RCftYIivdXO3gY8GCy+Y4soB+dpABQkv2c1iynIOutuMAQ9BA==","signatures":[{"sig":"MEYCIQCD4zX8u1oZE41PVa2LfOPjm8aO6XS8nGJTODlo7gybqgIhAPhQBNzz8Cs8Ze3lWdX9cdfR4VzB0Qyh3MSjJNuqEBLk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"3cd1bea8b2bf6b859609f6d5c14b4eb64745681f","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.8","typedoc":"^0.28.7","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.18_1753023478935_0.8302401996304685","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@thi.ng/canvas","version":"1.0.19","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.19","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"9c3459330a5d2bcb28af50bd68a0cc22f0a9f5d4","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.19.tgz","fileCount":6,"integrity":"sha512-oZhUG8SnAIMM9Byg0CtxlClqH8XtzVIng5oRBjoxaS6lOaS5VMhfUzBPqKddFR/XIi9UICPaOw90G8kIeDJ+iQ==","signatures":[{"sig":"MEYCIQDX19W+Kk9zWYIUuJ9wxWpZ71iujcLnEsgr/rp+G1bfUQIhAOs2RPld6jkSymH5F1ewHc+6rbA+Ju35EMklbNjz6CPw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"11747c482773d3da03c8b7848b25a56251ccd759","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.8","typedoc":"^0.28.7","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.19_1753086228183_0.975854730331855","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@thi.ng/canvas","version":"1.0.20","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.20","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"e07a6562b62825a08b948cb0dc84191ac1f912d9","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.20.tgz","fileCount":6,"integrity":"sha512-Cs8k0h1MCyXY1S1pVghxiYMfkqQMnruWCYj8V1iGaNPlRpeHo229qcp06lIKRhrSgHHYl043emkxxX2jo0xhmA==","signatures":[{"sig":"MEUCIQCrDnfPbs7QCPBPTIHasJ+QlqRMQDPBEdQ1y+NOyg3s1AIgCm/zfB85V6J9HZvfK2AP5hRYIbtt+r7Z77cyjFGqtBQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"1df8a3a9061257ea73ccf1ab9cdf63c81a9f519f","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.8","typedoc":"^0.28.7","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.20_1753914874051_0.774539704135079","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@thi.ng/canvas","version":"1.0.21","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.21","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"c8255031264721b98431c75dc24d257058a51def","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.21.tgz","fileCount":6,"integrity":"sha512-Okp5TJmdkEip7J43lN1eRFLYiisWbjeky4vtlg0eE4DGm5F7cuyJzNpY9cBcNAUewwk5hjiNUUogQLOrCNOw/A==","signatures":[{"sig":"MEYCIQD3bHdnvrYme0edgm9yIPya61wuKv56Ck50vsonbGaZ2gIhAPyGnShUUQgD6pfz2HFxGylodUT9nKVx4nRzMe/IFEaf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"d4e2e72dcdadf26da3400900f04f9eb0ebeb0a5b","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.8","typedoc":"^0.28.9","typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.21_1754297221021_0.5853860272231282","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@thi.ng/canvas","version":"1.0.22","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.22","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"ef9a8c454b44a0a3a1236c67b82eb0a0f07bfcc3","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.22.tgz","fileCount":6,"integrity":"sha512-+nLeUzlykoxM3mRn+bojkUVQYiR0IKpXCHypIuS9JfdrYjIQZ0agJbAj27TukeolfRWBno3cHP26Q4178IHGwg==","signatures":[{"sig":"MEUCIASo4ix/fAB5lPObwe66z/jmVco+qXOoeO0wD8K5abXxAiEAhlGWxuyiMDYLDIEBSlA0KJle73tUzViOmsI4bAK1NVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34823},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"0bcedf8d1dd4f30cd06bb2c668599628f2f0141e","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.8","typedoc":"^0.28.9","typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.22_1754299448289_0.5309330762104973","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@thi.ng/canvas","version":"1.0.23","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":"Karsten Schmidt (https://thi.ng)","license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.23","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"0137d896efc680db4d39c700b99c5a4928333de6","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.23.tgz","fileCount":6,"integrity":"sha512-PjhuyhHgNgUXBTrKUfKdO3WRNp1zUGbuRXvIJrBaZ3Ho9ktV2DGB9NKTsxjaHURNiA1f3qPlBBSwg1Bobyk80g==","signatures":[{"sig":"MEUCIGfrCj91dwSwciaLWW5TQ4W8oqbI+GxaOuxennWtqcqnAiEAiBUULF1NqXUAMVQqVI2t99Adr8mmNwKci70+9YYdn60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34824},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"e215a3e8de3809736ba0042c93bd8703a5a1a337","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"yarn npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"https://github.com/thi-ng/umbrella.git","type":"git"},"description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"^0.0.1","esbuild":"^0.25.9","typedoc":"^0.28.12","typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.23_1756744831264_0.1766542270304654","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"@thi.ng/canvas","version":"1.0.27","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.27","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"a137aec646c6233eeca73f9db2f4efcfe4e7736b","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.27.tgz","fileCount":5,"integrity":"sha512-2YUPTnE7iobFrMylV6hCN+QqujOC4I9BvKKGvOLILaaYCMfEdX5XNWwjRRZimXyX9aDcrV42UkPBPbRMxHrUdg==","signatures":[{"sig":"MEYCIQCtxQ0baNeTGQJiR8d1H1FHmFzWXpria1zSlVd48xu4cgIhAIJZV5gUtjCY4mAnS9uvKl3+oq2d0Y7k0US88fHXUXOz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32702},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"136a5e5ef0b69e82329db00d806c3c4e8f1aa063\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git"},"_npmVersion":"11.5.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.25.11","typedoc":"^0.28.14","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.27_1761328221698_0.44422046314426566","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"@thi.ng/canvas","version":"1.0.28","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.0.28","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"79acce5e55471ec370d7e1080c03bbfdf79f2f6b","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.0.28.tgz","fileCount":5,"integrity":"sha512-6r2rDDpLApQ1wrGw6OU5vLngziWcDPFH5k13Jr2+xXVz815+8jSzclXnXVryt9vKE5h3bZnE9k2/a5K/K9Duow==","signatures":[{"sig":"MEUCIEnI0Dot67sNAnObAuOXs+crwFL0TsjmpOnY7i060pdHAiEAov64YuPIEwEszRFYbp4LUVDLNJAjBtK32nL9Ct6X0ZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32702},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"d977f819bcafdcb2b24c45f8d01a167fe29fc85a\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git"},"_npmVersion":"11.5.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.25.11","typedoc":"^0.28.14","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.0.28_1761431554421_0.18764639692822316","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@thi.ng/canvas","version":"1.1.0","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.0","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"44b250f6b3471842c2f150a6432ff4010d104889","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.0.tgz","fileCount":5,"integrity":"sha512-LcNTgHdaKxLxmH149/2w+VO4Ok4SvvG82gXfaS4vTxucOjEgiLG69ZmUArLXdq5Bn5f6A4oAvOvhtAxeUmRbnQ==","signatures":[{"sig":"MEQCIBicql/cn0jzzyXJ8nDehQvVBDzvXFSko/1e/IMicH61AiB95jmu9DOZWERraC4u1HnZY80ITAlwSIbc0y1Ud6ThhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32982},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"e2fd601e49ff1b1aec129518e3947ed1ebf8d75e\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.25.11","typedoc":"^0.28.14","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.0_1763553951321_0.9542730262515189","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@thi.ng/canvas","version":"1.1.1","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.1","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"2079e6c3aaa4e232d0a96affc804f7e92d4a2e51","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.1.tgz","fileCount":5,"integrity":"sha512-3dcptT6mZsrOfGwyKUKlA4acQRtZBABKq9B5wccMxj9/qfLGHvYkIDWGCQVtl9U/wIp/5SMjOZW8P2zL9XfkYQ==","signatures":[{"sig":"MEQCIE45Il7jHZQwfCnJFV0QYRX5l5hoxzJVbiFL8oEWWtyoAiADzKQAqLAvMm8jD8akuF5lbSdIlqBtnx17YTdDfupbcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32981},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"be6e7657b1e5c54d7d648d1b52888a7297e95a17\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.27.0","typedoc":"^0.28.14","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.1_1763740705085_0.15984273409198346","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@thi.ng/canvas","version":"1.1.2","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.2","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"faabb0abf0ad8552d6411bd4469a213ceafcfe86","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.2.tgz","fileCount":5,"integrity":"sha512-gC7Y00n8TAf6FwG+bfZey3Wu+8aH5wBNmg+AiLg4CTUt75SqYbcEkdv6auscB1kAy/Ptr2BsEPhPZYxl1gKiEQ==","signatures":[{"sig":"MEQCIHH+8YhT17y+R4Gu16UTySyESzcJo1VcHBMHwzpkNgXvAiAXQKOA7LETe2WTu78dlKdfnoyfKktd0etvnb1s9dw1rA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32981},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"fdca77cabf47dd23a9ab17a5ca13e3060075c12c\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.27.0","typedoc":"^0.28.14","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.2_1764073399935_0.11703489028931013","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@thi.ng/canvas","version":"1.1.3","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.3","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"73fded772e7534952d105f457dfa9c6c2193fc07","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.3.tgz","fileCount":5,"integrity":"sha512-6++Xh5TmjIz5U/LSK6IvVbOUKhyZoFvwgwDysUs6syYnJw+1kZUZFcTi0+lbCKDOmp9uM6xBQ64cx98/8OEDUw==","signatures":[{"sig":"MEYCIQCMJ88ZwQ8LV8efFB8OmQAUo7YzwmFu7WEoRsEpZkRnKQIhALwI8iL9hSq8eWkHswTy6op/xsey3V1K1HEbDkMUxBbC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32981},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"824bf9047b5a10f777c5c5b4aeecf0c750a22c75\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.27.0","typedoc":"^0.28.14","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.3_1764801961911_0.5460773035409214","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@thi.ng/canvas","version":"1.1.4","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.4","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"07f2ad1b28a2af9b25d08facac146fddb4ba5d6f","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.4.tgz","fileCount":5,"integrity":"sha512-dR8JxuU4gAIER7w6lxD8tP3SGgAZFlZO6u7mqas6sfdmjYVUHpVxF1k+wG5zZjtctB68zmRuToFT01yn95jiuw==","signatures":[{"sig":"MEYCIQCsEMB6hUk0AUa97nQa7BtAZAIcVM5rPEki9okRM4GoQgIhAMD2PDqHKjYxEg05uA4tffEs49mvFXF9gwUWKK1iSMgM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32981},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"e7a21b9d2a188fa04d4c893d8531c40fbc0f4c06\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.27.0","typedoc":"^0.28.14","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.4_1766678426372_0.590583068465697","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@thi.ng/canvas","version":"1.1.5","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.5","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"2ac6ed7aeb6f74532286b0a45c02989d8292cafa","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.5.tgz","fileCount":5,"integrity":"sha512-+0EdZHbupOgdy6sh1CeRA0bom9YPg2m5Wtew/gSj6xG9TW4bO7qn19JXD9qViKqSxbtkimTze59rV5B7+D7vMg==","signatures":[{"sig":"MEYCIQD+Kz0FTtaNbofIT43XDvGhB1kbS75BNPG0YeZXezaq1gIhAMhQJZUepYu5nhqz88VRGVbJSlAZKPegYORocuQkhfwh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33355},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"deb511294f7a120091b654af0ff7e8a399a465b3\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.27.0","typedoc":"^0.28.14","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.5_1768563737002_0.467346264910911","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@thi.ng/canvas","version":"1.1.6","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.6","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"293729e5cdfcb8eb424694c9c2f39a50fa3c1b0e","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.6.tgz","fileCount":5,"integrity":"sha512-pnZra60+2vCNmj8fJEAE5WpQ447gAiVvVoiiysLyWmsFbnT/l4++BPIJMgB4N950opGCGybaMazMPREtVvPLdQ==","signatures":[{"sig":"MEQCIGgeKyhu85Q1tmTjEm+P+hJ71JezvXCarz/7GDdqoguOAiB7/o/bWAK4zse4sNkAclnmOCosk0sKDblJFjHVfNzYmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33355},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"828ec2e9ffde7307231b03cff46598c0915b1857\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.27.2","typedoc":"^0.28.16","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.6_1769173899743_0.6168829698009171","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@thi.ng/canvas","version":"1.1.7","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.7","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"8225d7582ac5baacb1f393e08c9c31c33262e567","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.7.tgz","fileCount":5,"integrity":"sha512-ZzfIP3/AwXINaDXUJEPMqH5pm3FDHV85xb489IBG6wOtf1pyjufSvDyy3auHtK2kVE8EyXv1n9yU257jCBHaaA==","signatures":[{"sig":"MEUCIQDznnLpVukrCK0RP6vDlobiidO/os6G9W9OVks6Axk/zwIgEGM2uCl/Ed6uD/DkmZ3duS/PA7ScLQrNWsCStF8biqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33393},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"4bd1b9d8ae52ba32b90a1b9a55d329c708ca7865\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.27.2","typedoc":"^0.28.16","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.7_1770473826049_0.013622243356136599","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@thi.ng/canvas","version":"1.1.8","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.8","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"c2f507df8644fc026866e313144049be0a5de3d8","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.8.tgz","fileCount":5,"integrity":"sha512-4/Ct1CBhjIgckabgAGMqyrHB9FwoplZqJsPKDGgKDocRaA6/vLDPYVFmxZ7a8+oXRmhHdMsHaItQ87nJgWap4A==","signatures":[{"sig":"MEYCIQChm+X+OsHvFJiy/pZBmpRbqZ9RyRtqP7xiHsaGj6QIyQIhAIEvbSykE/oeWuaC2arUWg4NXhi+AOUH59AiRAa4Jyxe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33393},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"8f50352caab9ec7757d645c0afa605dfb5427abe\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.27.2","typedoc":"^0.28.16","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.8_1772874822580_0.21131932534934328","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"@thi.ng/canvas","version":"1.1.9","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.9","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","bugs":{"url":"https://github.com/thi-ng/umbrella/issues"},"dist":{"shasum":"91d23af2d6933d62a158e67d369b8f67b67161cd","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.9.tgz","fileCount":5,"integrity":"sha512-T3os+uSQ0i3Ct4P+kjLE/O7sCuQM8b2SRZD23CJLFwT4JtP3cusm7Lp8Q6WA/qEE1+lRJvwgmy3FwAsVNWR+QA==","signatures":[{"sig":"MEQCIEOXDZhkOT8Zxef4kzxDtNF5uSWLlk6TNbIjvtsO6MNdAiAvXle9UP4yo0iP0QeGxvxMXyqvvT+ht2dyMZUJojnPow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33393},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"411adbeeb5c03da1cf0c86e567c80942a6b875e7\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://github.com/thi-ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.27.2","typedoc":"^0.28.16","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.9_1772879455377_0.9979709447831644","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@thi.ng/canvas","version":"1.1.10","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.10","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"6619cae0cd7c5939ec1b615ef9f73c1708474ed2","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.10.tgz","fileCount":5,"integrity":"sha512-SuigFM4Tl+dsA7P7ojilAJvopT4kUIhSEyIG/effflA3A7G0KDzjgNGZI11zYSbvrZ5BqnNjnnie8uZ5dS1CDg==","signatures":[{"sig":"MEUCIQC9x5hE7rGUWp7w1mBi9PD95plMTJxSI5aHNy/68CpGnAIgIzBjGP2rPiHx7l/4rF4siUeWTTwkh/2eK2WhQk3syBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33692},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"8ddf86ea0a1e658ddbf19cc645b29d0c176e29c4\n","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://codeberg.org/thi.ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.27.2","typedoc":"^0.28.16","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.10_1775127368086_0.9102570254754498","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"@thi.ng/canvas","version":"1.1.11","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.11","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"e7e20c111782f0b91488b0ca74d3f5be14790652","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.11.tgz","fileCount":5,"integrity":"sha512-8ir3CESZwFynR9C22+UwOSHrkbxy7TToJK5ni9okFtpkAFbHIpqV1xi4sxnkNYQJlEbgEtWrBYJ5gwfLy1chTw==","signatures":[{"sig":"MEQCIFtzw25SGx6ClBawdaidRUrXp2Qk3bWNyGLG9PmgjBY7AiAuNlbo66hSEuKOjZenLypTksyLb2E4wNOpgfpOgRV4lA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33690},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"a780d4a5f6f5fc595c9d28527686f63534927d32","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://codeberg.org/thi.ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.28.0","typedoc":"^0.28.18","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.11_1776512135630_0.743867854780168","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"@thi.ng/canvas","version":"1.1.12","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.12","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"ed78a813c3e9350c90f79502e7d9a137d304817a","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.12.tgz","fileCount":5,"integrity":"sha512-ctmXNNiUbWJmGIJA314il74GfL4FuYYgWWHnYk7DrbDItl/tVfzaMAUOrQO9B6u+AbK330ttgNQBRD7LTPZl0g==","signatures":[{"sig":"MEYCIQDQur6R+UY9gba2wbpjhe7q94LoOGnr+k7bkmU3QtWwogIhAP/YBWEQIxSR6JsbBUvJpp375YQWvjiXsvpIqzWhxnAD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33690},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"92be63f24030506f09d6d156804da2798c381dc4","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://codeberg.org/thi.ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.28.0","typedoc":"^0.28.18","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.12_1777221627164_0.2024001234048658","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"@thi.ng/canvas","version":"1.1.13","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.13","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"d56bce7d4329f9bac1b42f9e844d8a3e5eb21eab","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.13.tgz","fileCount":5,"integrity":"sha512-m9u1TIlTlL9XTs2j468I/p7Mxo1jrb3vaT3CGyNdPdaDT9q3j4gh5Wt7V14zZhSCajjxCFTBMBC2iqC7sp/Xcw==","signatures":[{"sig":"MEUCIEDebrlnVu2lvbPI3Dks1R6SdFi08ehmmM1e7RsbHgtrAiEAmqK6FjKKgAryeM8eR0Yh+Taw6WlfOa3vIElGATzJU3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33690},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"dcaa4e2beb427e434a68cba1259a9bf9983a569a","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://codeberg.org/thi.ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.28.0","typedoc":"^0.28.18","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.13_1778241418984_0.37157840559479904","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"@thi.ng/canvas","version":"1.1.14","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.14","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"a155b0c5f2b1a17878a9b54a0216cdb412253906","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.14.tgz","fileCount":5,"integrity":"sha512-blj1qdTrQBfFRXYj+ejr5MoL59oOuT5oRvlnnv9Jd9oDEaBbkHTDx47nUxbaTKUNrdrlSm3PvpP9ZVR0VhyF4g==","signatures":[{"sig":"MEYCIQDw4UMtlPQIJxVH/+YGd6ycQWExMiONdNAnOK4jAo12ZAIhAKWmstLz9PX2tvpSXtHnTphRwG26IGlFKMeJa/3Rhs4I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33690},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"17d2d1a6542704f55f2daa37550a4213b4a32cd8","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://codeberg.org/thi.ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.28.0","typedoc":"^0.28.19","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.14_1778488836633_0.10166821686722805","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"@thi.ng/canvas","version":"1.1.16","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.16","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"42a5bb752c6fb6b6017e17902b7d978cdf2426f0","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.16.tgz","fileCount":5,"integrity":"sha512-6NUeOQO+S5+uiPgp6ta1n4T3R486RceqdXwnp23VGhaU5apkuuzbhrtnL0PnIUhmzN3FylSrisvfik0C09FgDA==","signatures":[{"sig":"MEQCICh9Xj3ruY73gE3cqsZ27qe0Egq7SoDzT6H58crtQW9LAiB9XhOBeAhowPVYlTPqIeMWGbjSe/SP4VBHTTZkZ48QyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33738},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"b302822c51b2ab255f8f27f8dd010433d95f29df","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://codeberg.org/thi.ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.28.0","typedoc":"^0.28.19","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.16_1779276305974_0.003076678516050091","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"@thi.ng/canvas","version":"1.1.17","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.17","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"681f3ca570966839c0cd04f6bee3a67dd4629334","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.17.tgz","fileCount":5,"integrity":"sha512-nZm5shL2U0V/F0sGQyWb3kKKOHc7z+r8gtGSNTbq+v88zZvnqp03OaRWjYLeEp8xmG/t6qjhKkDHwVwSVB74jQ==","signatures":[{"sig":"MEUCIQDhouiDd4eEAZ2sbhg1+dD3/m9/9aujTbT6zeBwTYKSJAIgQ0+69n+PXAJDiWkwFUAuuXiUEjxXo2pJlBqtvIVWGMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33738},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"65b041e97110e16c01cf968949b72a0873f14445","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://codeberg.org/thi.ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.28.0","typedoc":"^0.28.19","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.17_1779540696991_0.5718948654604548","host":"s3://npm-registry-packages-npm-production"}},"1.1.18":{"name":"@thi.ng/canvas","version":"1.1.18","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.18","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"b736dffcb789cfe8f1ad6b1c9396f340090e3227","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.18.tgz","fileCount":5,"integrity":"sha512-dFsC1fJr4cyEzPYClqvA4yVN2cbSrWNGBDZa/lB5qjogLMbOa6vqh8DPU3tP3uh4rgsJDvJaV7kMV1ZomFQDlQ==","signatures":[{"sig":"MEUCICJMzIm74L0F4a/tf49kQQUIhuUgz+D19yaxY36Q6+5RAiEA8NjFle/hmRsFv0nlvF1kWKJDb/vgs/rV2QPwx2G2MmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33738},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"c47c56420bcae2e0477d252a497be44f08ca185a","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://codeberg.org/thi.ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.28.0","typedoc":"^0.28.19","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.18_1780684487981_0.09117329909997762","host":"s3://npm-registry-packages-npm-production"}},"1.1.19":{"name":"@thi.ng/canvas","version":"1.1.19","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"author":{"url":"https://thi.ng","name":"Karsten Schmidt"},"license":"Apache-2.0","_id":"@thi.ng/canvas@1.1.19","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"homepage":"https://thi.ng/canvas","dist":{"shasum":"8c4d6a097317e19d5b445815e3f3acc080accb4d","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.19.tgz","fileCount":5,"integrity":"sha512-h2sxFQRGiCDaakGpcibw2nBjy8sDxrDD1Yg251mJ+1Kvi/F2tdsWay8mClfVcpkPzZj+5+S+6/xxLeqHq6reHA==","signatures":[{"sig":"MEQCICjJ/S7H7zTw8WUH9QmRawn/IeJ1xAZOrv8TAUc5r7eRAiA4Rc6RItEW1m9OK0T6jPivGLjobLr2MoYB45ArIKVBDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33738},"type":"module","module":"./index.js","thi.ng":{"year":2023},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"funding":[{"url":"https://github.com/sponsors/postspectacular","type":"github"},{"url":"https://patreon.com/thing_umbrella","type":"patreon"},{"url":"https://liberapay.com/thi.ng","type":"liberapay"}],"gitHead":"febee81fd8b59e5e330a6e6521a2667ed5401a3d","scripts":{"doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","pub":"npm publish --access public","test":"bun test","build":"yarn build:esbuild && yarn build:decl","clean":"bun ../../tools/src/clean-package.ts","build:decl":"tsc --declaration --emitDeclarationOnly","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts"},"typings":"./index.d.ts","_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"repository":{"url":"git+https://codeberg.org/thi.ng/umbrella.git","type":"git","directory":"packages/canvas"},"_npmVersion":"11.6.1","description":"Canvas creation & HDPI support helpers","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tools":"workspace:^","esbuild":"^0.28.1","typedoc":"^0.28.19","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas_1.1.19_1783002333943_0.4847889818768327","host":"s3://npm-registry-packages-npm-production"}},"1.1.20":{"name":"@thi.ng/canvas","version":"1.1.20","description":"Canvas creation & HDPI support helpers","type":"module","module":"./index.js","typings":"./index.d.ts","sideEffects":false,"repository":{"type":"git","url":"git+https://codeberg.org/thi.ng/umbrella.git","directory":"packages/canvas"},"homepage":"https://thi.ng/canvas","funding":[{"type":"github","url":"https://github.com/sponsors/postspectacular"},{"type":"patreon","url":"https://patreon.com/thing_umbrella"},{"type":"liberapay","url":"https://liberapay.com/thi.ng"}],"author":{"name":"Karsten Schmidt","url":"https://thi.ng"},"license":"Apache-2.0","scripts":{"build":"yarn build:esbuild && yarn build:decl","build:decl":"tsc --declaration --emitDeclarationOnly","build:esbuild":"esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts","clean":"bun ../../tools/src/clean-package.ts","doc":"typedoc --options ../../typedoc.json --out doc src/index.ts","doc:readme":"bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts","pub":"npm publish --access public","test":"bun test","tool:tangle":"../../node_modules/.bin/tangle src/**/*.ts"},"devDependencies":{"esbuild":"^0.28.2","tools":"workspace:^","typedoc":"^0.28.20","typescript":"^6.0.3"},"keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"publishConfig":{"access":"public"},"browser":{"process":false,"setTimeout":false},"engines":{"node":">=18"},"exports":{".":{"default":"./index.js"}},"thi.ng":{"year":2023},"gitHead":"57ce96457ee0b8de5b17f9d371e6707780c64bd7","_id":"@thi.ng/canvas@1.1.20","_nodeVersion":"26.5.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-tkNk/rjoN8OUxMyXjhYlxu9pstS8IXHP62mj31ihL3bwagshH+t2rD2N0/ZuALMUuARDWVp0RtK79La0kcRcOg==","shasum":"8afdcf0779a9c9a40f9fe63d80b8cf38339a8431","tarball":"https://registry.npmjs.org/@thi.ng/canvas/-/canvas-1.1.20.tgz","fileCount":5,"unpackedSize":33738,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBPcUAwz8GxRfDvX4tuHVVGamk81RVG/+cv57lLli7DJAiBxl0NU8OrtQ5lannCl9YuXC3cZg4ttGbk+UionuM4jDw=="}]},"_npmUser":{"name":"thi.ng","email":"k+npm@thi.ng"},"directories":{},"maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/canvas_1.1.20_1787678060394_0.6428831505307673"},"_hasShrinkwrap":false}},"time":{"created":"2023-12-19T11:03:48.169Z","modified":"2026-08-25T17:14:20.747Z","0.1.0":"2023-12-19T11:03:48.553Z","0.1.1":"2023-12-19T12:25:48.717Z","0.1.2":"2023-12-28T23:26:39.456Z","0.1.3":"2023-12-31T09:46:29.519Z","0.1.4":"2024-01-23T16:00:19.492Z","0.2.0":"2024-01-26T18:05:06.611Z","0.2.1":"2024-01-29T20:42:01.187Z","0.2.2":"2024-01-29T21:09:08.949Z","0.2.3":"2024-01-30T15:23:16.220Z","0.2.4":"2024-01-30T21:39:11.104Z","0.2.5":"2024-02-10T09:01:39.810Z","0.2.6":"2024-02-19T16:10:06.907Z","0.2.7":"2024-02-22T12:02:31.748Z","0.2.8":"2024-03-01T15:25:30.684Z","0.2.9":"2024-03-07T20:43:38.807Z","0.2.10":"2024-03-09T09:20:38.715Z","0.2.11":"2024-03-09T13:46:51.924Z","0.2.12":"2024-03-13T14:08:23.509Z","0.2.13":"2024-03-21T16:13:31.064Z","0.2.14":"2024-03-27T09:56:36.002Z","0.2.15":"2024-04-08T15:03:21.661Z","0.2.16":"2024-04-11T12:35:19.528Z","0.2.17":"2024-04-20T14:45:06.473Z","0.2.18":"2024-04-23T07:04:53.776Z","0.2.19":"2024-05-08T18:27:04.522Z","0.2.20":"2024-06-21T19:36:41.560Z","0.2.21":"2024-06-29T09:30:33.519Z","0.2.22":"2024-07-06T12:04:05.143Z","0.2.23":"2024-07-19T14:58:25.644Z","0.2.24":"2024-07-22T13:17:58.425Z","0.3.0":"2024-08-01T16:32:40.994Z","0.4.0":"2024-08-01T17:11:34.592Z","0.5.0":"2024-08-10T15:05:14.068Z","0.5.1":"2024-08-13T19:41:20.770Z","0.5.2":"2024-08-18T14:13:42.251Z","0.5.3":"2024-09-19T21:11:39.749Z","0.5.4":"2024-10-05T12:14:45.325Z","0.5.5":"2024-11-10T17:14:07.808Z","0.5.6":"2024-11-24T18:18:00.674Z","0.5.7":"2024-12-12T10:14:11.745Z","0.5.8":"2024-12-27T14:13:52.216Z","1.0.1":"2025-01-04T21:10:09.546Z","1.0.2":"2025-01-14T12:25:07.698Z","1.0.3":"2025-01-21T15:49:08.569Z","1.0.4":"2025-01-23T13:41:18.069Z","1.0.5":"2025-01-29T16:27:53.237Z","1.0.6":"2025-02-13T16:05:20.580Z","1.0.7":"2025-02-19T21:02:03.364Z","1.0.8":"2025-02-25T13:27:35.641Z","1.0.9":"2025-03-09T19:24:28.286Z","1.0.10":"2025-03-17T13:42:43.148Z","1.0.11":"2025-03-18T13:26:26.076Z","1.0.12":"2025-04-01T21:44:05.181Z","1.0.13":"2025-04-16T11:13:09.946Z","1.0.14":"2025-04-30T12:54:33.365Z","1.0.15":"2025-05-28T12:04:41.492Z","1.0.16":"2025-06-09T17:26:14.627Z","1.0.17":"2025-07-10T14:22:21.625Z","1.0.18":"2025-07-20T14:57:59.128Z","1.0.19":"2025-07-21T08:23:48.363Z","1.0.20":"2025-07-30T22:34:34.247Z","1.0.21":"2025-08-04T08:47:01.201Z","1.0.22":"2025-08-04T09:24:08.476Z","1.0.23":"2025-09-01T16:40:31.460Z","1.0.27":"2025-10-24T17:50:21.887Z","1.0.28":"2025-10-25T22:32:34.621Z","1.1.0":"2025-11-19T12:05:51.501Z","1.1.1":"2025-11-21T15:58:25.304Z","1.1.2":"2025-11-25T12:23:20.138Z","1.1.3":"2025-12-03T22:46:02.041Z","1.1.4":"2025-12-25T16:00:26.536Z","1.1.5":"2026-01-16T11:42:17.157Z","1.1.6":"2026-01-23T13:11:39.894Z","1.1.7":"2026-02-07T14:17:06.193Z","1.1.8":"2026-03-07T09:13:42.745Z","1.1.9":"2026-03-07T10:30:55.545Z","1.1.10":"2026-04-02T10:56:08.294Z","1.1.11":"2026-04-18T11:35:35.795Z","1.1.12":"2026-04-26T16:40:27.287Z","1.1.13":"2026-05-08T11:56:59.128Z","1.1.14":"2026-05-11T08:40:36.844Z","1.1.16":"2026-05-20T11:25:06.120Z","1.1.17":"2026-05-23T12:51:37.126Z","1.1.18":"2026-06-05T18:34:48.117Z","1.1.19":"2026-07-02T14:25:34.095Z","1.1.20":"2026-08-25T17:14:20.568Z"},"author":{"name":"Karsten Schmidt","url":"https://thi.ng"},"license":"Apache-2.0","homepage":"https://thi.ng/canvas","keywords":["browser","canvas","hdpi","html","pixel","retina","typescript"],"repository":{"type":"git","url":"git+https://codeberg.org/thi.ng/umbrella.git","directory":"packages/canvas"},"description":"Canvas creation & HDPI support helpers","maintainers":[{"name":"thi.ng","email":"k+npm@thi.ng"}],"readme":"<!-- This file is generated - DO NOT EDIT! -->\n<!-- Please see: https://codeberg.org/thi.ng/umbrella/src/branch/develop/CONTRIBUTING.md#changes-to-readme-files -->\n# ![@thi.ng/canvas](https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/banners/thing-canvas.svg?4b51249a)\n\n[![npm version](https://img.shields.io/npm/v/@thi.ng/canvas.svg)](https://www.npmjs.com/package/@thi.ng/canvas)\n![npm downloads](https://img.shields.io/npm/dm/@thi.ng/canvas.svg)\n[![Mastodon Follow](https://img.shields.io/mastodon/follow/109331703950160316?domain=https%3A%2F%2Fmastodon.thi.ng&style=social)](https://mastodon.thi.ng/@toxi)\n\n> [!NOTE]\n\n> This is one of 217 standalone projects. LLM-free, human-made and\n> cared for software, maintained as part of the\n> [@thi.ng/umbrella](https://codeberg.org/thi.ng/umbrella/) ecosystem and\n> anti-framework.\n>\n> 🚀 Please help me to work full-time on these projects by [sponsoring\n> me](https://codeberg.org/thi.ng/umbrella/src/branch/develop/CONTRIBUTING.md#donations).\n> Thank you! ❤️\n\n- [About](#about)\n- [Status](#status)\n- [Installation](#installation)\n- [Dependencies](#dependencies)\n- [Usage examples](#usage-examples)\n- [API](#api)\n- [Authors](#authors)\n- [License](#license)\n\n## About\n\nCanvas creation & HDPI support helpers.\n\nThis package provides small frequently used helpers for HTML Canvas 2D creation\n& resizing:\n\n- [`adaptiveCanvas2d()`](https://docs.thi.ng/umbrella/canvas/functions/adaptiveCanvas2d.html)\n- [`canvas2d()`](https://docs.thi.ng/umbrella/canvas/functions/canvas2d.html)\n- [`pixelCanvas2d()`](https://docs.thi.ng/umbrella/canvas/functions/pixelCanvas2d.html)\n- [`adaptDPI()`](https://docs.thi.ng/umbrella/canvas/functions/adaptDPI.html)\n- [`isHighDPI()`](https://docs.thi.ng/umbrella/canvas/functions/isHighDPI.html)\n\n## Status\n\n**STABLE** - used in production\n\n[Search or submit any issues for this package](https://codeberg.org/thi.ng/umbrella/issues?q=%5Bcanvas%5D)\n\nNote: Some functions were previously part of the\n[thi.ng/adapt-dpi](https://codeberg.org/thi.ng/umbrella/src/branch/develop/packages/adapt-dpi)\nand\n[thi.ng/pixel](https://codeberg.org/thi.ng/umbrella/src/branch/develop/packages/pixel)\npackages, but have been migrated to this package for better/smaller re-use...\n\n## Installation\n\n```bash\nyarn add @thi.ng/canvas\n```\n\nESM import:\n\n```ts\nimport * as can from \"@thi.ng/canvas\";\n```\n\nBrowser ESM import:\n\n```html\n<script type=\"module\" src=\"https://esm.run/@thi.ng/canvas\"></script>\n```\n\n[JSDelivr documentation](https://www.jsdelivr.com/)\n\nPackage sizes (brotli'd, pre-treeshake): ESM: 403 bytes\n\n## Dependencies\n\nNone\n\n## Usage examples\n\n28 projects in this repo's\n[/examples](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples)\ndirectory are using this package:\n\n| Screenshot                                                                                                                  | Description                                                                                  | Live demo                                                  | Source                                                                                          |\n|:----------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------|:-----------------------------------------------------------|:------------------------------------------------------------------------------------------------|\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/blurhash.jpg\" width=\"240\"/>             | Interactive & reactive image blurhash generator                                              | [Demo](https://demo.thi.ng/umbrella/blurhash/)             | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/blurhash)             |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/calibration-sheet.avif\" width=\"240\"/>   | Parametrically design calibration sheet for B&W photography                                  | [Demo](https://demo.thi.ng/umbrella/calibration-sheet/)    | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/calibration-sheet)    |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/canvas-recorder.png\" width=\"240\"/>      | Self-modifying, animated typographic grid with emergent complex patterns                     | [Demo](https://demo.thi.ng/umbrella/canvas-recorder/)      | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/canvas-recorder)      |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/geom-classify-point.png\" width=\"240\"/>  | Polygon point classification (inside/boundary/outside)                                       | [Demo](https://demo.thi.ng/umbrella/geom-classify-point/)  | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/geom-classify-point)  |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/geom-complex-poly.png\" width=\"240\"/>    | Shape conversions & operations using polygons with holes                                     | [Demo](https://demo.thi.ng/umbrella/geom-complex-poly/)    | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/geom-complex-poly)    |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/geom-extra-hiccup.jpg\" width=\"240\"/>    | Embedding thi.ng/hiccup data/elements in thi.ng/geom shape hierarchies                       | [Demo](https://demo.thi.ng/umbrella/geom-extra-hiccup/)    | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/geom-extra-hiccup)    |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/geom/geom-fuzz.png\" width=\"240\"/>                | geom-fuzz basic shape & fill examples                                                        | [Demo](https://demo.thi.ng/umbrella/geom-fuzz-basics/)     | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/geom-fuzz-basics)     |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/geom-unique-edges.png\" width=\"240\"/>    | Iterating the unique edges of a tessellation                                                 | [Demo](https://demo.thi.ng/umbrella/geom-unique-edges/)    | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/geom-unique-edges)    |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/grid-iterators.png\" width=\"240\"/>       | Visualization of different grid iterator strategies                                          | [Demo](https://demo.thi.ng/umbrella/grid-iterators/)       | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/grid-iterators)       |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/hiccup-canvas-basics.png\" width=\"240\"/> | Basic hiccup-based canvas drawing                                                            | [Demo](https://demo.thi.ng/umbrella/hiccup-canvas-basics/) | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/hiccup-canvas-basics) |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/ifs-fractal.jpg\" width=\"240\"/>          | Barnsley fern IFS fractal renderer                                                           | [Demo](https://demo.thi.ng/umbrella/ifs-fractal/)          | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/ifs-fractal)          |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/optical-flow.avif\" width=\"240\"/>        | Optical flow analysis of web cam or video inputs                                             | [Demo](https://demo.thi.ng/umbrella/optical-flow/)         | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/optical-flow)         |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/pixel/pixel-basics.png\" width=\"240\"/>            | Pixel buffer manipulations                                                                   | [Demo](https://demo.thi.ng/umbrella/pixel-basics/)         | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/pixel-basics)         |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/pixel-dither.jpg\" width=\"240\"/>         | Showcase of various dithering algorithms                                                     | [Demo](https://demo.thi.ng/umbrella/pixel-dither/)         | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/pixel-dither)         |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/pixel-indexed.jpg\" width=\"240\"/>        | Image dithering and remapping using indexed palettes                                         | [Demo](https://demo.thi.ng/umbrella/pixel-indexed/)        | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/pixel-indexed)        |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/pixel-normal-map.jpg\" width=\"240\"/>     | Normal map creation/conversion basics                                                        | [Demo](https://demo.thi.ng/umbrella/pixel-normal-map/)     | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/pixel-normal-map)     |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/pixel-waveform.jpg\" width=\"240\"/>       | RGB waveform image analysis                                                                  | [Demo](https://demo.thi.ng/umbrella/pixel-waveform/)       | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/pixel-waveform)       |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/poly-subdiv.jpg\" width=\"240\"/>          | Animated, iterative polygon subdivisions & visualization                                     | [Demo](https://demo.thi.ng/umbrella/poly-subdiv/)          | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/poly-subdiv)          |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/porter-duff/porter-duff2.png\" width=\"240\"/>      | Port-Duff image compositing / alpha blending                                                 | [Demo](https://demo.thi.ng/umbrella/porter-duff/)          | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/porter-duff)          |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/rasterize-blend.jpg\" width=\"240\"/>      | Steering behavior drawing with alpha-blended shapes                                          | [Demo](https://demo.thi.ng/umbrella/rasterize-blend/)      | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/rasterize-blend)      |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/scenegraph-pan-zoom.avif\" width=\"240\"/> | Basic 2D scenegraph example with pan/zoom functionality                                      | [Demo](https://demo.thi.ng/umbrella/scenegraph-pan-zoom/)  | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/scenegraph-pan-zoom)  |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/soa-ecs-100k.png\" width=\"240\"/>         | Entity Component System w/ 100k 3D particles                                                 | [Demo](https://demo.thi.ng/umbrella/soa-ecs/)              | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/soa-ecs)              |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/unbiased-normals.png\" width=\"240\"/>     | Visual comparison of biased vs. unbiased normal vectors projected on the surface of a sphere | [Demo](https://demo.thi.ng/umbrella/unbiased-normals/)     | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/unbiased-normals)     |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/webgl-cubemap.jpg\" width=\"240\"/>        | WebGL cube maps with async texture loading                                                   | [Demo](https://demo.thi.ng/umbrella/webgl-cubemap/)        | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/webgl-cubemap)        |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/webgl-grid.jpg\" width=\"240\"/>           | WebGL instancing, animated grid                                                              | [Demo](https://demo.thi.ng/umbrella/webgl-grid/)           | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/webgl-grid)           |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/webgl-msdf.jpg\" width=\"240\"/>           | WebGL MSDF text rendering & particle system                                                  | [Demo](https://demo.thi.ng/umbrella/webgl-msdf/)           | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/webgl-msdf)           |\n|                                                                                                                             | Minimal multi-pass / GPGPU example                                                           | [Demo](https://demo.thi.ng/umbrella/webgl-multipass/)      | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/webgl-multipass)      |\n| <img src=\"https://codeberg.org/thi.ng/umbrella/media/branch/develop/assets/examples/webgl-texture-paint.jpg\" width=\"240\"/>  | Interactively drawing to & reading from a WebGL offscreen render texture                     | [Demo](https://demo.thi.ng/umbrella/webgl-texture-paint/)  | [Source](https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/webgl-texture-paint)  |\n\n## API\n\n[Generated API docs](https://docs.thi.ng/umbrella/canvas/)\n\nTODO\n\n## Authors\n\n- [Karsten Schmidt](https://thi.ng)\n\nIf this project contributes to an academic publication, please cite it as:\n\n```bibtex\n@misc{thing-canvas,\n  title = \"@thi.ng/canvas\",\n  author = \"Karsten Schmidt\",\n  note = \"https://thi.ng/canvas\",\n  year = 2023\n}\n```\n\n## License\n\n&copy; 2023 - 2026 Karsten Schmidt // Apache License 2.0\n","readmeFilename":"README.md"}