{"_id":"@bobfrankston/winpos","_rev":"22-a32e6fd59b45f945d663928c397e9a42","name":"@bobfrankston/winpos","dist-tags":{"latest":"2.0.53"},"versions":{"2.0.20":{"name":"@bobfrankston/winpos","version":"2.0.20","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.20","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"bin":{"winpos":"index.js"},"dist":{"shasum":"61e99cc3def6fde179eacbc682534e6aae435b8a","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.20.tgz","fileCount":32,"integrity":"sha512-8tzpa9kmwdNE+k+iqEINAOLPu7TM5SMwZ6vWkZTSeiSRRoe+g4UIiznEvaUYqLrjKJTANU7fBPJMKUkoPEC/nw==","signatures":[{"sig":"MEUCIQCIu8dduBkDwkcBOS4W0lfw8W3MradWVwoEWPB1QpITzwIgHJSxLkqjBq34WwoNolJ7Hl3e8WXkVztbRaFKwcriVY8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109258},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"72534c84038044cf368dd60f3ff49fa63c6189c4","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","release:ps1":"releaseapp.ps1","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_npmVersion":"11.5.2","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"24.10.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.20_1761242679124_0.5400890729770926","host":"s3://npm-registry-packages-npm-production"}},"2.0.21":{"name":"@bobfrankston/winpos","version":"2.0.21","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.21","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"bin":{"winpos":"index.js"},"dist":{"shasum":"df4455ea02edde40d0a41ad12c084c65f265e0a6","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.21.tgz","fileCount":32,"integrity":"sha512-g/vUpuGHu00ATahpEzteIWDqU2UcV4+4McOa6fWSAdq8C8j3ojBRzfXV5AC/ojJwbrn1EicnSg3H1gQ1+gIN5g==","signatures":[{"sig":"MEYCIQD8I2wskyK26W2PPf264FuHyvls+QJOpsYHlAM7mcQA8gIhAKJJDWn9HYHwwlwP0n4Bl7MjNlOhzpF34aB732EguB47","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109258},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"72534c84038044cf368dd60f3ff49fa63c6189c4","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","release:ps1":"releaseapp.ps1","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_npmVersion":"11.5.2","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"24.10.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.21_1761242733159_0.27925924822309955","host":"s3://npm-registry-packages-npm-production"}},"2.0.22":{"name":"@bobfrankston/winpos","version":"2.0.22","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.22","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"bin":{"winpos":"index.js"},"dist":{"shasum":"9be755d21ea6da7e21550483203a26e46ab90ce2","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.22.tgz","fileCount":33,"integrity":"sha512-hgon6bRr+6woptNXhvNqfVIg0m5RxeyGzCM+PczwQAHsFyMWgr3l8v7/ALW1oAaC5XShnx04SW0CuzBz5wf1VQ==","signatures":[{"sig":"MEUCIF1HL2/5YUkk9lfKZBpZmfClvMKU7MV3jRSCbShNP7EkAiEA6dvTIjaxv6hidHY5NsbcgRcZmxzelXPokkrRqV7B1C4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112798},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"1831f02552511200774b97a61e717baf29aa24c6","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","release:ps1":"releaseapp.ps1","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_npmVersion":"11.5.2","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"24.10.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.22_1761243414990_0.289472102371618","host":"s3://npm-registry-packages-npm-production"}},"2.0.24":{"name":"@bobfrankston/winpos","version":"2.0.24","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.24","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"bin":{"winpos":"index.js"},"dist":{"shasum":"0d266d437c5d4113bea73a07e78e73aaff32868b","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.24.tgz","fileCount":34,"integrity":"sha512-HxPIo2AkYUKYii5JbFJqw+YLBpZZoJxLmiiEAfhWg8LfX2kw/7dCuQrFwgkKiL+NZCm5TR56qYY3rB6Q1Yny3g==","signatures":[{"sig":"MEQCIC/wcfaOVo4MSzsa05kOgWEey+ehK7LmrH6jE9v1EtpvAiBBaQ4A2KDV2ntDszw3XKtPV90LQRFRmrseera2PUNNBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113030},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"6753225d10ef08b117dc4f3ab114bd80e6362cb9","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","release:ps1":"releaseapp.ps1","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_npmVersion":"11.5.2","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.24_1761356994508_0.23652649062504105","host":"s3://npm-registry-packages-npm-production"}},"2.0.26":{"name":"@bobfrankston/winpos","version":"2.0.26","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.26","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"bin":{"winpos":"index.js"},"dist":{"shasum":"d6b4b050de26decf3810bd01166dba1b17c439e7","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.26.tgz","fileCount":34,"integrity":"sha512-2QE8N121k6CQEbs9oX6YUcMBBU/3ChWEJEM62zfuK+T2zECKwKvC5nJHDyI1oKiOn5eCT1lwgngmqZCnfVGDFw==","signatures":[{"sig":"MEUCIQCKhafveInoH+f6vPiEgblxewlq20AhtvZtJ0K5/Y35MgIgFQIhHhwMz7Wl+mAHvBvMQoDzNAQWsjzB5WHzZSwXudw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113687},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"3c4b773ec79510c3e79d846f278195bf809862e7","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","release:ps1":"releaseapp.ps1","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_npmVersion":"11.5.2","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.26_1761357370632_0.853874173094413","host":"s3://npm-registry-packages-npm-production"}},"2.0.27":{"name":"@bobfrankston/winpos","version":"2.0.27","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.27","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"bin":{"winpos":"index.js"},"dist":{"shasum":"b8322676bb5eeb17677c47daa91edb69fd7009e0","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.27.tgz","fileCount":34,"integrity":"sha512-NLe7UckMGIwWvvSqL9SPI6YnOSpdtWT58vdZM0Z6jVisAyZ3j1ci4rrmz45cF7bCV0sKIEAN7MJWyyZ3LyjrFg==","signatures":[{"sig":"MEQCICawjGMcEy/zaD7FHdlVfmt6E4nE0lNpF2JLe1uCYG8GAiA115hja1Oo8igoGDoh8y0+RGUykqqWaN64ThyrfZhv0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113687},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"4f10ddf752006636c1339adc06989a3681945693","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","release:ps1":"releaseapp.ps1","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_npmVersion":"11.5.2","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.27_1761358000678_0.14334531561646124","host":"s3://npm-registry-packages-npm-production"}},"2.0.29":{"name":"@bobfrankston/winpos","version":"2.0.29","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.29","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"bin":{"winpos":"index.js"},"dist":{"shasum":"f7673218d8a23361bdb531f9d73abd44ce58e17a","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.29.tgz","fileCount":34,"integrity":"sha512-VoRdkz1Zn4+b1H0iRJIvDIlbF6bHaXBSbBfY/uwQ/eFRP764HGMHYStahm6b+K+iQ3ZhGEcQPQ0C4gNeCQAdAg==","signatures":[{"sig":"MEQCIBNvQrDHBsNWXn0C1hEWBtKNyNCZ8tnxzWD0xQY5BJ3fAiBe8583DNt8AvPnloKVkMBJNUJBhjHLwlnP7SNBaGKaEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115179},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"8a79f933a89ffd4bd1a5c3132641cbd2e069e27e","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","release:ps1":"releaseapp.ps1","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_npmVersion":"11.5.2","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.29_1761359043457_0.6385404445706278","host":"s3://npm-registry-packages-npm-production"}},"2.0.39":{"name":"@bobfrankston/winpos","version":"2.0.39","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.39","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"b336c56ad6c28f8eb9b4570ff0ff9c06a6a6fdf4","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.39.tgz","fileCount":38,"integrity":"sha512-vOOg0h1RD2DCxj3YqkSMG2lSiRWcJr/7Y/NSaINMjzh7IAfk4zfnwRMDcEkSJvQ83B4pK/MQYqKJmLZmFzTeGg==","signatures":[{"sig":"MEQCIHHMiaD2NEnhwMMEj0dlbzA5X4TrnaKSvREt6cLVgS/ZAiAYel1SDnPVWc2Ayf+WSPXTbxfoyczjouSDj2ktXSoNIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119958},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"2c0451fe8b4caa8d2f871c79f5f9bed922ceaf0a","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","release:ps1":"releaseapp.ps1","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.6.2","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.2.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.39_1763530788997_0.7929601675588649","host":"s3://npm-registry-packages-npm-production"}},"2.0.40":{"name":"@bobfrankston/winpos","version":"2.0.40","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.40","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"36871db705fb5c561514b12d6a6c591610f3a76a","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.40.tgz","fileCount":38,"integrity":"sha512-4wG7TrjHktTOXh7SqM+EANWJyaBXKb6zh83WpdvqiKuo+jyQbdhb95Gv0VJ9p9brsKgWiyE3pKuXxSu+9ttZrA==","signatures":[{"sig":"MEYCIQD7QMhlk3VjEe76Q7SWDEClobKu3hB7T0oJH0XlW3hhzgIhAKQpoeyzwp5KIcB33stoxcw5tnA0OJZn/6zPcXG+ldie","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120222},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"585d79b8e35831f0bf4cd99b34c69eac7c2cf759","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","release:ps1":"releaseapp.ps1","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.5.2","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.40_1763533130375_0.45419374221443354","host":"s3://npm-registry-packages-npm-production"}},"2.0.41":{"name":"@bobfrankston/winpos","version":"2.0.41","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.41","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"ea9767f3489d7644755fd7646775e49d256d9d33","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.41.tgz","fileCount":40,"integrity":"sha512-Cu7OUVA0Esp6KFwe+WjaIDjIzOkdXpUChVhznzonylOy307hgUvWoBq90s/s67wsHkbYid9xd6cv7iiY2PPx6A==","signatures":[{"sig":"MEUCIAlEGkDQ0lMP25vfRuzB8ATXIFq6GkqKcdYDzd4W3dTuAiEApo1g4xqb7cc6IkmMQtBXU3K5k2tjNnE52K9NbRspho8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157820},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"8943139fd83fb91db925b0e11dfdc2780bc5f562","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.41_1766263181388_0.9363073499464019","host":"s3://npm-registry-packages-npm-production"}},"2.0.42":{"name":"@bobfrankston/winpos","version":"2.0.42","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.42","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"19a0ed79422a39d20d8ac18fd7f662d375710148","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.42.tgz","fileCount":29,"integrity":"sha512-czvsinDsQUjsV8ojqzmWVmRok/iXoif6Fm+t1oU//qoalm8QMXJnhJC4pAvp0zF80J7yaex46QbHW4YNj/8jKQ==","signatures":[{"sig":"MEQCIDUyYpgPgKtuaQTw+j4UKXoIQcIp2lEBa4HFfvnKy9uuAiB6qL7qjGnl/o7igSLzaqnoz4AN0APJzNVIXmGWtbiYxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147166},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"88031cc9988a81db03f42f9f1388f525a9750774","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.42_1766263839451_0.18553321672156997","host":"s3://npm-registry-packages-npm-production"}},"2.0.43":{"name":"@bobfrankston/winpos","version":"2.0.43","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.43","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"92934e7ef0453f6180c8c749d3cbc324df1722d0","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.43.tgz","fileCount":29,"integrity":"sha512-NNuOe4CwH+LJS4TGOLRvqTaq9iknxARAz2WA3g/wjoruNDhThhIlpAmjrXd21AwG2/hyyPuggfg5YJNtu/CJjw==","signatures":[{"sig":"MEQCIFlomxsm4Q8k6bQq827ylLlYvSE+ucs7FoEL9KR3nuKAAiBzbvsA6hZ381/LnIPYqv13Y4iOe/8gtjCI5ZIrHcApxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149036},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"1175c8388662cce331bd2d94079ea27ae8e5a780","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.43_1766264121000_0.35931093380643064","host":"s3://npm-registry-packages-npm-production"}},"2.0.44":{"name":"@bobfrankston/winpos","version":"2.0.44","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.44","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"4422477799d0b72c3c6fa1276701c94597aff54b","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.44.tgz","fileCount":29,"integrity":"sha512-G82APWnf6pirGachkhSv5lsaLfy3rkgSihQ8hEF6b7xsXuvG+XU7qpb+gagnBGwK6D2W921MxEyla/J9K4T98w==","signatures":[{"sig":"MEUCIGd2Bg2CbpRJtlpKtMeJqgiIACB7OsXDtW4zFivfoecMAiEAkLkhPUo25+tPDkG/phm2zy4Kz49uuHPHd7CgN14a0qY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150431},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"7eb6e3200dde0e0e5d788b337f3238d92d97fcad","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.44_1766265002399_0.9787352322726359","host":"s3://npm-registry-packages-npm-production"}},"2.0.45":{"name":"@bobfrankston/winpos","version":"2.0.45","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.45","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"770bf1e3488263b692185cce74ecf67a27fd254f","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.45.tgz","fileCount":29,"integrity":"sha512-klPdHmpg9ssHr9/TwVS43gWZPV8Xf9aG+yFrRMig55f0USWPLbTm/JWVL8ix3L7Xii7XNjwIXV+ugx1R4eod8A==","signatures":[{"sig":"MEYCIQC/UAZxCTfXjCRiADLqPnYw3cT38hayds719FwrCQut5gIhANZ9VxdoNTeov4BsBIPAfKdICP9qgir9BmOodQ/cxDh4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150535},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"a5f31af523b52e27ea77765ddb916177458811f9","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.45_1766265630129_0.1914421934655257","host":"s3://npm-registry-packages-npm-production"}},"2.0.46":{"name":"@bobfrankston/winpos","version":"2.0.46","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.46","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"5d54c2f02d00dcd01fcb2ed0288f6355c46ce251","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.46.tgz","fileCount":29,"integrity":"sha512-zYb1cnWPFyWj1aIawQtntVCd0XrC2Dq7g2pGZ+tsXEJ/yS68W517E9e3vEnL24PUdTWxSzcO3cRPAEecimB11Q==","signatures":[{"sig":"MEUCIQCizPHt2Le8OB7urwt4OgjnKhm4RDM5PLeBJz54oRcWNQIgVpVov2oTZDB4Tuf1nm72fkZ9v0JQON1Y2kSCfGuxa4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150535},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"e90d79b86bea7590cf8c768eaf11b381c314b64b","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.46_1766282386700_0.2394989463134538","host":"s3://npm-registry-packages-npm-production"}},"2.0.47":{"name":"@bobfrankston/winpos","version":"2.0.47","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.47","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"d1a5f4eb0e83fea86862e0d6231292953b57ce6a","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.47.tgz","fileCount":29,"integrity":"sha512-oQns7llxz029EyYnf7o5XTViw+RuyW+hM1OgJATsfeiFlxvZvkZDHJr9os76a+sP05gGOCfnfSd3zsvIiqWsjA==","signatures":[{"sig":"MEUCIFG4986nnoy04jiTOwYNDH7TQzlN5Co5LdvPqYx3DCm/AiEAobjWq287aGy8U0pf+TF2Hzb+e8gb5VUrxtHVocSm0Ds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149447},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"87ad456e59592ff1888d9ded0f5b701802d0d0be","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.47_1766283083809_0.9821258513065656","host":"s3://npm-registry-packages-npm-production"}},"2.0.48":{"name":"@bobfrankston/winpos","version":"2.0.48","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.48","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"c819c8c7ea2fdc53032b7e2b81ee8143c58cc867","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.48.tgz","fileCount":29,"integrity":"sha512-r/Vro8JtEH6fLZ7w4gQ2dNFwJA5dFZAWd3j/w5i/ZPVJGRFWF3MC8/9HRjpo1K8Lu32Mc30UGGJpyxRVofayEQ==","signatures":[{"sig":"MEQCIDdy6XefShChS08wRUcDReOvdT48VhltMuM22Lb7ph7cAiA7q2p9vy9VszhhRIIsLW6y6tE2ggYQzXzj64T1emmGMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151990},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"0a8338138205fb8673e11782fa62a36bf39ba671","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.7.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.0.0","dependencies":{"koffi":"^2.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.9.1"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.48_1766421820594_0.2776451736932888","host":"s3://npm-registry-packages-npm-production"}},"2.0.49":{"name":"@bobfrankston/winpos","version":"2.0.49","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.49","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"01415a39cd1f68ba1e1e5a43749dc948912985ba","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.49.tgz","fileCount":13,"integrity":"sha512-3X+LXKJ4L+OPIAPvoIHtKGsx4/JMKsZI5QRGsNsUSBw8dboKTEC0/gbeK1gxBeUZZPMx5TqAHhcHtJf7Y4Obvw==","signatures":[{"sig":"MEUCIQCWpy4NA4SvZ0t7Vc48EpgdHSWa3682HCCfHDqOnd2evAIgOQlk8nhQx470NLYqqxEmrlZbOrq70PwfWoTdtylzbJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58731},"main":"index.js","type":"module","_from":"file:bobfrankston-winpos-2.0.49.tgz","types":"index.d.ts","engines":{"node":">=24.0.0"},"scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\winpos\\bobfrankston-winpos-2.0.49.tgz","_integrity":"sha512-3X+LXKJ4L+OPIAPvoIHtKGsx4/JMKsZI5QRGsNsUSBw8dboKTEC0/gbeK1gxBeUZZPMx5TqAHhcHtJf7Y4Obvw==","repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.12.1","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.9.0","dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.49_1777091487770_0.4340318412549513","host":"s3://npm-registry-packages-npm-production"}},"2.0.50":{"name":"@bobfrankston/winpos","version":"2.0.50","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.50","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"6be7c34290e50138e23fe531a3090cf5a2bcd3c9","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.50.tgz","fileCount":13,"integrity":"sha512-s1a0/ZHXJZqn1K525cWWVs8cY6PzHoa6C/w21i8RuH7uaaacB4uq/efZpY4dI4B42OY59r5g8wHdkR7fHItOmA==","signatures":[{"sig":"MEYCIQCXrYxrhS8v6EbLOAvD2LEhsS0dr1lTV2VktRX+lxL50wIhAMcTl4jNt0Zw4y1lECtDg6HSNS8Sb1CAdiMYKDWtSi5G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58894},"main":"index.js","type":"module","_from":"file:bobfrankston-winpos-2.0.50.tgz","types":"index.d.ts","engines":{"node":">=24.0.0"},"scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"y:\\dev\\utils\\winpos\\bobfrankston-winpos-2.0.50.tgz","_integrity":"sha512-s1a0/ZHXJZqn1K525cWWVs8cY6PzHoa6C/w21i8RuH7uaaacB4uq/efZpY4dI4B42OY59r5g8wHdkR7fHItOmA==","repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.13.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"25.9.0","dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.50_1778006787303_0.6757337759904127","host":"s3://npm-registry-packages-npm-production"}},"2.0.51":{"name":"@bobfrankston/winpos","version":"2.0.51","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.51","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"75983979662dc9c4e32d33adb3e80a2e7af3ebae","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.51.tgz","fileCount":16,"integrity":"sha512-ahZ3vc71DgQtrmewH3tysTMdf6SXinnccOtrLo/ArFN2B/9ieWPXogW8bNiknusnGFJ5WrpDQK18Uw1GaBp96A==","signatures":[{"sig":"MEUCIQCVwv3ctXj3m2hzB5S57Sz4mGNSqyl4kiPWlagbVE3eTAIgZ0iSZ45VWVpMPMK6cJZfZm8Hkh1DZ4OIvCa24pXXj0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1260334},"main":"index.js","type":"module","_from":"file:bobfrankston-winpos-2.0.51.tgz","types":"index.d.ts","engines":{"node":">=24.0.0"},"scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\winpos\\bobfrankston-winpos-2.0.51.tgz","_integrity":"sha512-ahZ3vc71DgQtrmewH3tysTMdf6SXinnccOtrLo/ArFN2B/9ieWPXogW8bNiknusnGFJ5WrpDQK18Uw1GaBp96A==","repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.17.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"26.4.0","dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1","@bobfrankston/msger":"^0.1.424"},".dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1","@bobfrankston/msger":"file:../msgx/msger"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},".transformedSnapshot":{"dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1","@bobfrankston/msger":"^0.1.424"}},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.51_1786317035420_0.9059362921019465","host":"s3://npm-registry-packages-npm-production"}},"2.0.52":{"name":"@bobfrankston/winpos","version":"2.0.52","keywords":["windows","window-management","positioning","multi-monitor"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/winpos@2.0.52","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/winpos#readme","bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"bin":{"winpos":"index.js"},"dist":{"shasum":"1c817d2e705f8ea5ed854e616e6669162180a200","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.52.tgz","fileCount":16,"integrity":"sha512-9ehnY1gZ6xpkbeoot8RmavBS+xmnlWHuai5sVnPUWPD5rWejxk+yoD9FG489gwY2+zPI2IEcu9YnV8AUh3o9/g==","signatures":[{"sig":"MEYCIQDE8LKTvcuxeh9ofmKPlthfHXmcoqkpUt551JDNaJ1yaAIhANr5g5cLUQRLPTO4SSvuQKwGAzNr7rIuQzD0E6KuOj8q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1269201},"main":"index.js","type":"module","_from":"file:bobfrankston-winpos-2.0.52.tgz","types":"index.d.ts","engines":{"node":">=24.0.0"},"scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\winpos\\bobfrankston-winpos-2.0.52.tgz","_integrity":"sha512-9ehnY1gZ6xpkbeoot8RmavBS+xmnlWHuai5sVnPUWPD5rWejxk+yoD9FG489gwY2+zPI2IEcu9YnV8AUh3o9/g==","repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.17.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"_nodeVersion":"26.4.0","dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1","@bobfrankston/msger":"^0.1.424"},".dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1","@bobfrankston/msger":"file:../msgx/msger"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},".transformedSnapshot":{"dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1","@bobfrankston/msger":"^0.1.424"}},"_npmOperationalInternal":{"tmp":"tmp/winpos_2.0.52_1786323802899_0.582607166523037","host":"s3://npm-registry-packages-npm-production"}},"2.0.53":{"_id":"@bobfrankston/winpos@2.0.53","bin":{"winpos":"index.js"},"bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"dist":{"shasum":"6a81c94209bafd57ac0930db277100bade4e788c","tarball":"https://registry.npmjs.org/@bobfrankston/winpos/-/winpos-2.0.53.tgz","fileCount":20,"integrity":"sha512-+1+8tsdvgez4sETNgVdpX15fqSw/s5DsbZ8NvrBWHclzMJ28bXK79XGaYd+wpHr+sK4+G7RjIWlYOVDKGTA2rg==","signatures":[{"sig":"MEUCIFUbDzzhrXqID1JJRQCHpni25RVXfVTpXs/E//gc4tOCAiEAjOfp+R10hAIF864RPSwDv7wOS6eSDmRLs/aGBrQldBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICtWLIuMRah0QUCKvqSnIi/z15WFTyhfES0ymYoOeWtKAiEAt0aBzlcpUAQ3uSscVLrP4y++GQ/8N8QZB8sgJME8WC0="}],"unpackedSize":1318758},"main":"index.js","name":"@bobfrankston/winpos","type":"module","_from":"file:bobfrankston-winpos-2.0.53.tgz","types":"index.d.ts","author":{"name":"Bob Frankston"},"engines":{"node":">=24.0.0"},"license":"MIT","scripts":{"build":"tsc","watch":"tsc -w","release":"npm run prerelease:local && npm version patch && npm publish --quiet","installer":"npm run release && npm install -g @bobfrankston/winpos","preversion":"npm run build && git add -A","postversion":"git push && git push --tags","prerelease:local":"git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")"},"version":"2.0.53","_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"homepage":"https://github.com/BobFrankston/winpos#readme","keywords":["windows","window-management","positioning","multi-monitor"],"_resolved":"Y:\\dev\\utils\\winpos\\bobfrankston-winpos-2.0.53.tgz","_integrity":"sha512-+1+8tsdvgez4sETNgVdpX15fqSw/s5DsbZ8NvrBWHclzMJ28bXK79XGaYd+wpHr+sK4+G7RjIWlYOVDKGTA2rg==","repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"_npmVersion":"11.17.0","description":"TypeScript implementation of winpos - Windows window positioning utility","directories":{},"maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"_nodeVersion":"26.4.0","allowScripts":{"koffi":true,"file:../../../msgx/msger":true},"dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1","@bobfrankston/msger":"^0.1.434","@bobfrankston/userconfig":"^1.0.15"},".dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1","@bobfrankston/msger":"file:../msgx/msger","@bobfrankston/userconfig":"file:../userconfig"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},".transformedSnapshot":{"dependencies":{"koffi":"^2.9.2","jsonc-parser":"^3.3.1","@bobfrankston/msger":"^0.1.434","@bobfrankston/userconfig":"^1.0.15"}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/winpos_2.0.53_1790290223315_0.1279666836854485"}}},"time":{"created":"2025-10-23T18:04:39.022Z","modified":"2026-09-24T22:50:23.557Z","2.0.20":"2025-10-23T18:04:39.310Z","2.0.21":"2025-10-23T18:05:33.404Z","2.0.22":"2025-10-23T18:16:55.181Z","2.0.24":"2025-10-25T01:49:54.735Z","2.0.26":"2025-10-25T01:56:10.874Z","2.0.27":"2025-10-25T02:06:40.878Z","2.0.29":"2025-10-25T02:24:03.651Z","2.0.39":"2025-11-19T05:39:49.184Z","2.0.40":"2025-11-19T06:18:50.614Z","2.0.41":"2025-12-20T20:39:41.541Z","2.0.42":"2025-12-20T20:50:39.611Z","2.0.43":"2025-12-20T20:55:21.161Z","2.0.44":"2025-12-20T21:10:02.552Z","2.0.45":"2025-12-20T21:20:30.331Z","2.0.46":"2025-12-21T01:59:46.859Z","2.0.47":"2025-12-21T02:11:23.983Z","2.0.48":"2025-12-22T16:43:40.758Z","2.0.49":"2026-04-25T04:31:27.938Z","2.0.50":"2026-05-05T18:46:27.459Z","2.0.51":"2026-08-09T23:10:35.566Z","2.0.52":"2026-08-10T01:03:23.071Z","2.0.53":"2026-09-24T22:50:23.413Z"},"bugs":{"url":"https://github.com/BobFrankston/winpos/issues"},"author":{"name":"Bob Frankston"},"license":"MIT","homepage":"https://github.com/BobFrankston/winpos#readme","keywords":["windows","window-management","positioning","multi-monitor"],"repository":{"url":"git+https://github.com/BobFrankston/winpos.git","type":"git"},"description":"TypeScript implementation of winpos - Windows window positioning utility","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"readme":"# @bobfrankston/winpos\n\nTypeScript implementation of WinPos - A Windows window positioning utility for multi-monitor setups.\n\n## Features\n\n- **Cross-Runtime**: Works with both Node.js (24+) and Bun\n- **FFI-based**: Direct Windows API calls via `koffi` (Node.js) or `bun:ffi` (Bun)\n- **Multi-Monitor**: Full support for multiple displays\n- **Flexible Matching**: Find windows by exact title, prefix, or regex\n- **Window State Management**: Minimize, maximize, restore windows programmatically\n- **Auto-Restore**: Windows are automatically restored from minimized/maximized state when positioning\n- **Monitor Arrangement**: Save the monitor layout and put it back when Windows reverts it (`-screens`)\n- **Library or CLI**: Use as a command-line tool or import as a library\n\n## Installation\n\n```bash\nnpm install @bobfrankston/winpos\n```\n\nOr with Bun:\n\n```bash\nbun add @bobfrankston/winpos\n```\n\n## Usage\n\n### Command Line\n\n```bash\n# Move window to screen 0 at position (100, 200)\nwinpos \"Notepad\" 100 200 0\n\n# Move window using percentages\nwinpos \"Chrome*\" 50% 50% 1\n\n# Set window size as well\nwinpos \"Visual Studio Code\" 0 0 0 1920 1080\n\n# List all windows\nwinpos *\n\n# Get screen count\nwinpos -c\n\n# Which physical monitor is screen 0, 1, 2...: id, name, position, mode\nwinpos -screens\n\n# Save the monitor arrangement, and put it back after Windows reverts it\nwinpos -screens save\nwinpos -screens restore\n\n# Debug mode\nwinpos -d \"Firefox\" 0 0 1\n```\n\n### Pattern Matching\n\n- **Exact match**: `winpos \"Notepad\" 0 0 0`\n- **Prefix match**: `winpos \"Chrome*\" 0 0 0`\n- **Regex match**: `winpos \"/Visual.*Code/\" 0 0 0`\n\n### As a Library\n\n```typescript\nimport { run } from '@bobfrankston/winpos';\n\n// Move a window programmatically\nrun(['Chrome*', '0', '0', '1', '1920', '1080']);\n```\n\n## Screen Numbering\n\nScreens are numbered starting from 0, sorted by position:\n\n```\n  +---+---+\n  | 2 | 3 |\n  +---+---+\n  | 0 | 1 |\n  +---+---+\n```\n\n- 0: Lower right (primary)\n- 1: Lower left\n- 2: Upper left\n- 3: Upper right\n\n## Options\n\n- `-d` - Debug mode\n- `-dbg` - Verbose debug output\n- `-c` - Return screen count\n- `-v` / `-version` - Show version\n- `-title <name>` - Window title/pattern (alternative to positional)\n- `-pos x,y[,screen]` - Position (comma-separated, screen optional)\n- `-size w,h` - Window size (width,height)\n- `-numsize <inches>` - Physical size of the screen-number overlays (default 2)\n- `-min` - Minimize window\n- `-max` - Maximize window\n- `-load <file>` - Load config from JSON file\n- `-save <file>` - Save config to JSON file (merges if exists)\n- `-screens [list | save [name] | restore [name] | layouts | watch [name]]` - Monitor arrangement (see below)\n- `*` - List all windows\n- `**` - List all windows including ignored\n\n## Identifying Screens\n\n`winpos` with no arguments, and `winpos *` (or `**`), flash each screen's number\nin the middle of that screen for 5 seconds - the same idea as the Identify\nbutton in Windows display settings, so you can see which physical monitor is\nscreen 0, 1, 2 ... before positioning anything there. With no arguments the\nnumbers come up alongside the usage text and its screen table.\n\nThe numbers are drawn with [msger](https://www.npmjs.com/package/@bobfrankston/msger)\nand all appear at once. They close themselves; winpos returns immediately\nwithout waiting for them. If msger is unavailable the listing still works, just\nwithout the numbers.\n\nEach overlay is 2 inches square **on the glass**, not 2 inches' worth of pixels\n- `-numsize <inches>` changes that. Sizing anything in pixels (or in CSS\ninches, which are just 96 pixels) comes out a different physical size on every\nmonitor, because Windows' scale factor is a preference rather than a\nmeasurement: a 28\" 4K panel left at 100% claims 96 DPI while really being 160.\nwinpos asks the display driver for the panel's physical millimetres (EDID, via\na GDI display DC) and works out each screen's true DPI, so the same square of\nglass lights up on every monitor. Drivers that report nothing fall back to the\nold pixel sizing.\n\n```typescript\nimport { showScreenNumbers, enumerateScreens, sortScreens, screenDpi } from '@bobfrankston/winpos';\n\nconst screens = sortScreens(enumerateScreens());\nawait showScreenNumbers(screens, 5, 2);     // 5 seconds, 2 inches\nconsole.log(screens.map(screenDpi));        // True DPI per screen\n```\n\n## Monitor Arrangement\n\nScreen numbers are the monitors sorted by position, and saved window layouts\naddress screens by that number. When Windows rearranges the monitors, every\nnumber changes and every layout puts its windows on the wrong panel. So winpos\ncan save the monitor arrangement and put it back - before the windows, in the\nsame command.\n\nWindows keeps one arrangement per *exact set* of connected monitors. A\nDisplayPort monitor that powers off or deep-sleeps drops off the bus, the set\nchanges, and a set Windows has never seen gets the default left-to-right line.\nThat is the \"my monitors keep reverting\" problem this solves.\n\n```\nwinpos -screens                  list monitors: screen number, device, id, name, position, mode, primary\nwinpos -screens save [name]      save the current arrangement\nwinpos -screens restore [name]   put the saved arrangement back, then read it back and verify\nwinpos -screens layouts          list the layouts saved for this machine\nwinpos -screens watch [name]     stay resident and restore whenever Windows moves a saved monitor\n```\n\nMonitors are identified by EDID id and serial number (`GSM7721:106NTKF55597`),\nread from the monitor's EDID in the registry - never by `\\\\.\\DISPLAYn`, which\nrenumbers whenever a monitor comes or goes. A machine normally has one standard\narrangement, so the name is optional: without one, every command uses the\nlayout called `default`. Give a name only for an alternate setup (a travel\nlayout, a single-monitor layout).\n\nLayouts are kept per machine in `winpos-screens.json` in the user config\ndirectory (`@bobfrankston/userconfig`). The file has the same shape as the\nolder `displays.ps1` tool's `displays.json`, so a layout copies between them.\n\n`restore` applies the layout to whichever of its monitors are connected, and\nsays so: a saved monitor that is absent is reported and skipped, a connected\nmonitor the layout does not mention is left where Windows put it. It then\nwaits for Windows to settle, reads the arrangement back, and reports what\nWindows actually did - Windows closes gaps when a monitor is missing, so the\nresult can differ from the request. Exit code 1 if anything did not land where\nasked, or if the layout does not exist.\n\n`watch` polls the arrangement every few seconds (no message loop, no\ncallbacks) and, once a change has settled, re-applies the layout if any saved\nmonitor is out of place. It ignores the change its own apply causes, and if an\napply changes nothing it stops retrying until the set of monitors changes\nagain, so it cannot loop. Run it from a logon task if you want it always on.\n\nA window layout file can restore the monitors first by using the wrapped form:\n\n```json\n{\n  \"screens\": \"default\",\n  \"windows\": [\n    { \"name\": \"Notepad\", \"pos\": { \"x\": 100, \"y\": 100, \"screen\": 0 } }\n  ]\n}\n```\n\n`screens` is a saved layout name, or an inline layout (the `monitors` array as\nsaved). Files without `screens` behave exactly as before.\n\n```typescript\nimport { enumerateMonitors, saveLayout, getLayout, restoreLayout, formatMonitors } from '@bobfrankston/winpos';\n\nconsole.log(formatMonitors(enumerateMonitors()).join('\\n'));\nsaveLayout();                                  // the machine's standard layout\nconst result = await restoreLayout(getLayout());\nconsole.log(result.ok, result.absent, result.mismatches);\n```\n\n## Parameters\n\n### Positional (legacy)\n```\nwinpos <title> <x> <y> <screen> [<width> <height>]\n```\n\n### Flag-based (new)\n```\nwinpos <title> -pos x,y[,screen] [-size w,h]\nwinpos -title <name> -pos x,y,screen -size w,h\nwinpos <title> -min\n```\n\n### JSON Config\n```\nwinpos layout.json\nwinpos -load layout.json [-save output.json]\n```\n\n## JSON Config Format\n\nSingle window:\n```json\n{\n  \"name\": \"Notepad\",\n  \"pos\": { \"x\": 100, \"y\": 100, \"screen\": 0 },\n  \"size\": { \"w\": 800, \"h\": 600 }\n}\n```\n\nMultiple windows:\n```json\n[\n  { \"name\": \"app1\", \"pos\": { \"x\": 0, \"y\": 0, \"screen\": 0 } },\n  { \"name\": \"app2*\", \"pos\": { \"x\": 100, \"y\": 100, \"screen\": 1 } },\n  { \"name\": \"pattern\", \"regex\": true, \"pos\": { \"x\": 0, \"y\": 0, \"screen\": 2 } },\n  { \"name\": \"minimize-me\", \"minimize\": true }\n]\n```\n\n- `name` - Window title (exact match, prefix with `*`, or regex if `regex: true`)\n- `regex` - If true, `name` is treated as a regex pattern\n- `pos` - Position with x, y, and optional screen index\n- `size` - Size with w (width) and h (height)\n- `minimize` / `maximize` - Window state\n\nWrapped form, monitors first then windows (see Monitor Arrangement):\n```json\n{ \"screens\": \"default\", \"windows\": [ { \"name\": \"app1\", \"pos\": { \"x\": 0, \"y\": 0, \"screen\": 0 } } ] }\n```\n\n## Known Issues\n\n### Windows batch file working directory\n\nWhen calling `winpos` from a batch file without `call`, the working directory may not be inherited correctly due to a Windows cmd.exe quirk.\n\n**Workarounds:**\n- Use `call winpos` instead of `winpos` in batch files\n- Use `winpos.ps1` instead of `winpos`\n- Use absolute paths for config files: `winpos \"%~dp0config.json\"`\n\n## Requirements\n\n- Windows OS\n- Node.js 24+ or Bun 1.0+\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build\nnpm run build\n\n# Watch mode\nnpm run watch\n```\n\n## License\n\nMIT\n\n## Author\n\nBob Frankston\n","readmeFilename":"README.md"}