{"_id":"@brianchirls/game-input","_rev":"4-e60f398d1e4f3155a2d51e35c664501d","name":"@brianchirls/game-input","dist-tags":{"latest":"0.1.1"},"versions":{"0.0.1":{"name":"@brianchirls/game-input","version":"0.0.1","description":"A universal input manager for web games and interactive art. Built in Typescript. Loosely inspired by Unity's Input System. Needs a better name.","repository":{"type":"git","url":"git+https://github.com/brianchirls/game-input.git"},"bugs":{"url":"https://github.com/brianchirls/game-input/issues"},"homepage":"https://github.com/brianchirls/game-input#readme","main":"dist/cjs/index.js","module":"dist/esm/index.js","browser":"dist/esm/browser.js","unpkg":"dist/browser.js","types":"./types/browser.d.ts","exports":{".":{"node":"./dist/cjs/index.js","require":"./dist/cjs/browser.js","import":"./dist/esm/browser.js","default":"./dist/esm/browser.js","types":"./dist/types/browser.d.ts"},"./*":{"require":"./dist/cjs/*.js","import":"./dist/esm/*.js","default":"./dist/esm/*.js","types":"./dist/esm/*.d.ts"}},"keywords":["game","input","joystick","gamepad","mouse","keyboard"],"scripts":{"lint":"npm run lint:js; npm run lint:css","lint:js":"eslint ./; true","lint:css":"stylelint 'examples/**/*.css' 'tools/**/*.css'; true","lint:fix":"eslint --fix ./; stylelint 'examples/**/*.css' 'tools/**/*.css' --fix; true","prepush":"npm test","start":"cross-env NODE_ENV=development webpack serve --config ./config/webpack-dev.js --mode development --progress","build:cjs":"rm -rf dist/cjs/ && tsc --target ES6 --module commonjs --outDir ./dist/cjs --allowJs","build:esm":"rm -rf dist/esm/ && tsc --target ES6 --module ES6 --outDir ./dist/esm --allowJs","build:bundle":"webpack --config ./config/webpack.lib.js","build:lib":"npm run build:cjs && npm run build:esm && npm run build:bundle","build:site:dev":"cross-env NODE_ENV=development rm -rf build/ && webpack --config ./config/webpack-dev.js --mode development","build:site":"cross-env NODE_ENV=production rm -rf build/ && webpack --config ./config/webpack-prod.js --mode production","build":"npm run build:lib && npm run build:site","deploy":"gh-pages -d ./build","check-types":"tsc --noEmit","test":"cross-env NODE_ENV=test jest --verbose --coverage && npx package-check","test:debug":"cross-env NODE_ENV=test node --inspect node_modules/.bin/jest --runInBand","test:watch:debug":"cross-env NODE_ENV=test node --inspect node_modules/.bin/jest --runInBand --watch","test:watch":"cross-env NODE_ENV=test jest --watch"},"author":{"name":"Brian Chirls","email":"brian@chirls.com"},"license":"UNLICENSED","dependencies":{"mitt":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.12.10","@babel/core":"^7.12.10","@babel/eslint-plugin":"^7.16.5","@babel/plugin-proposal-class-properties":"^7.12.1","@babel/plugin-proposal-object-rest-spread":"^7.12.1","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-object-assign":"^7.12.1","@babel/plugin-transform-runtime":"^7.12.10","@babel/plugin-transform-typescript":"^7.16.8","@babel/polyfill":"^7.12.1","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.16.5","@skypack/package-check":"^0.2.2","@types/jest":"^28.1.6","@types/webpack-env":"^1.16.3","@typescript-eslint/eslint-plugin":"^5.8.1","@typescript-eslint/parser":"^5.8.1","autoprefixer":"^10.2.5","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","babel-plugin-module-resolver":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.3.0","clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.2.0","css-minimizer-webpack-plugin":"^4.0.0","eslint":"^8.5.0","eslint-config-crockford":"^2.0.0","eslint-plugin-import":"^2.22.1","eslint-plugin-jest":"^26.1.3","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^6.0.0","eslint-webpack-plugin":"^3.1.1","file-loader":"^6.2.0","gh-pages":"^4.0.0","html-loader":"^4.1.0","html-webpack-plugin":"^5.3.1","jest":"^28.1.3","jest-matcher-deep-close-to":"^3.0.2","jest-runner-eslint":"^1.0.0","mini-css-extract-plugin":"^2.4.5","postcss":"^8.2.2","postcss-flexbugs-fixes":"^5.0.2","postcss-input-range":"^5.0.0","postcss-loader":"^7.0.1","purecss":"^2.0.3","raw-loader":"^4.0.2","react-dev-utils":"^12.0.0","stylelint":"^14.2.0","stylelint-config-standard":"^26.0.0","stylelint-webpack-plugin":"^3.1.0","svgo":"^2.3.0","svgo-loader":"^3.0.0","ts-loader":"^9.2.8","typescript":"^4.5.4","url-loader":"^4.1.1","webpack":"^5.28.0","webpack-bundle-analyzer":"^4.4.0","webpack-cli":"^4.6.0","webpack-dev-server":"^4.7.1","webpack-merge":"^5.7.3"},"gitHead":"c138c978302b67812b568bb31ae6a52ad58bebdf","_id":"@brianchirls/game-input@0.0.1","_nodeVersion":"17.9.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-POPBtc37KQvvLYZwWjM6pUQ4G5vdclhFFxHXwdcugSxbN/de9n2HKVDVVJM0WgmlnZLkPCamF04Fscqw4mtgAw==","shasum":"d73954121a3da81bb10f241d6a306fe1d0f49443","tarball":"https://registry.npmjs.org/@brianchirls/game-input/-/game-input-0.0.1.tgz","fileCount":269,"unpackedSize":489341,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDJL6XA0uQ1HixHS5cxaCPNK4UZWVVVv2ShnrOC89zqyAiEA02IhrmBPRy8UD4loxzhCI4G0GJxip2uxi16hFvekZbs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5v5gACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqrdBAAmR+FH5OujeEDY9qz6l3Xp/WXx9e5sJRsteWgxhVKYqln7xjL\r\nio7mGwkq8BKFDLDV8+9F3VsxQ2OQ7ZNi83oZhoXayB3a5EUF6ehqx/+2gA9p\r\nMnYmMlFKABYSDGWUoy8R6ytUwYSQJMcfpJaQLYiEBIWELS1YG68JyO/+JJr0\r\nNd9W1q6lbOyBSHVbQ3nrwPr2BTHcjvfr7Ch1rIK9S22oKdU6uOR8uUcuJkR6\r\n8/cxrEfuJjRO/PTMnfrONbuKPnhDFcAeXrVSx18LVwEHadbcibPlwrVron3f\r\n9lglqekDj80UkawqSt/j7nmuiLBVbKWfh0rZrSIFqpdyS2/9KzTWvyQ49wZ6\r\n3wR2kArf9pLC+EoOULA/GedqB6fc1Ab0M8pXfT1BxtfVla1jMb5l0FxXR3zW\r\nnPjgku0k1AASzakXkvL0W1yEaufEltImPExFFIMHUTa0AFETOs5zBJBGzp0l\r\nKhwY1S74dFq5ObRPVfyoWBgB+ZzIMLVgX58dwbNHkeZj8Qmcj7KDpGDzMEQ3\r\n7LY+XBgMaaHG8vIT1o1BQk80T+OoIYHSwIj9Ij/90NO1J9tt/J5HbODgTjaB\r\nxkR1bwt6bNJsloydCeh45XDMQsob5eA/t+tPEq5seY6fcrwNxkBpUk/Lbm8u\r\nWfwZmAOE5c29aa3UQ0uPqKZOm4f/pPeOyy0=\r\n=741A\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"brianchirls","email":"brian@chirls.com"},"directories":{},"maintainers":[{"name":"brianchirls","email":"brian@chirls.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/game-input_0.0.1_1659305568583_0.1797510318397233"},"_hasShrinkwrap":false},"0.0.2":{"name":"@brianchirls/game-input","version":"0.0.2","description":"A universal input manager for web games and interactive art. Built in Typescript. Loosely inspired by Unity's Input System. Needs a better name.","repository":{"type":"git","url":"git+https://github.com/brianchirls/game-input.git"},"bugs":{"url":"https://github.com/brianchirls/game-input/issues"},"homepage":"https://github.com/brianchirls/game-input#readme","main":"dist/cjs/index.js","module":"dist/esm/index.js","browser":"dist/esm/browser.js","unpkg":"dist/browser.js","types":"./types/browser.d.ts","exports":{".":{"node":"./dist/cjs/index.js","require":"./dist/cjs/browser.js","import":"./dist/esm/browser.js","default":"./dist/esm/browser.js","types":"./dist/types/browser.d.ts"},"./*":{"require":"./dist/cjs/*.js","import":"./dist/esm/*.js","default":"./dist/esm/*.js","types":"./dist/esm/*.d.ts"}},"keywords":["game","input","joystick","gamepad","mouse","keyboard"],"scripts":{"lint":"npm run lint:js; npm run lint:css","lint:js":"eslint ./; true","lint:css":"stylelint 'examples/**/*.css' 'tools/**/*.css'; true","lint:fix":"eslint --fix ./; stylelint 'examples/**/*.css' 'tools/**/*.css' --fix; true","prepush":"npm test","start":"cross-env NODE_ENV=development webpack serve --config ./config/webpack-dev.js --mode development --progress","build:cjs":"rm -rf dist/cjs/ && tsc --target ES6 --module commonjs --outDir ./dist/cjs --allowJs","build:esm":"rm -rf dist/esm/ && tsc --target ES6 --module ES6 --outDir ./dist/esm --allowJs","build:bundle":"webpack --config ./config/webpack.lib.js","build:lib":"npm run build:cjs && npm run build:esm && npm run build:bundle","build:site:dev":"cross-env NODE_ENV=development rm -rf build/ && webpack --config ./config/webpack-dev.js --mode development","build:site":"cross-env NODE_ENV=production rm -rf build/ && webpack --config ./config/webpack-prod.js --mode production","build":"npm run build:lib && npm run build:site","deploy":"gh-pages -d ./build","check-types":"tsc --noEmit","test":"cross-env NODE_ENV=test jest --verbose --coverage && npx package-check","test:debug":"cross-env NODE_ENV=test node --inspect node_modules/.bin/jest --runInBand","test:watch:debug":"cross-env NODE_ENV=test node --inspect node_modules/.bin/jest --runInBand --watch","test:watch":"cross-env NODE_ENV=test jest --watch"},"author":{"name":"Brian Chirls","email":"brian@chirls.com"},"license":"UNLICENSED","dependencies":{"mitt":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.12.10","@babel/core":"^7.12.10","@babel/eslint-plugin":"^7.16.5","@babel/plugin-proposal-class-properties":"^7.12.1","@babel/plugin-proposal-object-rest-spread":"^7.12.1","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-object-assign":"^7.12.1","@babel/plugin-transform-runtime":"^7.12.10","@babel/plugin-transform-typescript":"^7.16.8","@babel/polyfill":"^7.12.1","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.16.5","@skypack/package-check":"^0.2.2","@types/jest":"^28.1.6","@types/webpack-env":"^1.16.3","@typescript-eslint/eslint-plugin":"^5.8.1","@typescript-eslint/parser":"^5.8.1","autoprefixer":"^10.2.5","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","babel-plugin-module-resolver":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.3.0","clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.2.0","css-minimizer-webpack-plugin":"^4.0.0","eslint":"^8.5.0","eslint-config-crockford":"^2.0.0","eslint-plugin-import":"^2.22.1","eslint-plugin-jest":"^26.1.3","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^6.0.0","eslint-webpack-plugin":"^3.1.1","file-loader":"^6.2.0","gh-pages":"^4.0.0","html-loader":"^4.1.0","html-webpack-plugin":"^5.3.1","jest":"^28.1.3","jest-matcher-deep-close-to":"^3.0.2","jest-runner-eslint":"^1.0.0","mini-css-extract-plugin":"^2.4.5","postcss":"^8.2.2","postcss-flexbugs-fixes":"^5.0.2","postcss-input-range":"^5.0.0","postcss-loader":"^7.0.1","purecss":"^2.0.3","raw-loader":"^4.0.2","react-dev-utils":"^12.0.0","stylelint":"^14.2.0","stylelint-config-standard":"^26.0.0","stylelint-webpack-plugin":"^3.1.0","svgo":"^2.3.0","svgo-loader":"^3.0.0","ts-loader":"^9.2.8","typescript":"^4.5.4","url-loader":"^4.1.1","webpack":"^5.28.0","webpack-bundle-analyzer":"^4.4.0","webpack-cli":"^4.6.0","webpack-dev-server":"^4.7.1","webpack-merge":"^5.7.3"},"gitHead":"b2914511eaa7e4827f0ab1b437120a9e024d9efe","_id":"@brianchirls/game-input@0.0.2","_nodeVersion":"17.9.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-TaBth/rxAk7ts9LMK3hSVTPnNfaxgqrmzxwDS0LPjndE3MFYm6SLSjiOUznVcAsm876H2lMCkeqe+2yVGy+1rQ==","shasum":"56bf9ef52cf2ec192f85ff0464d9e7063c0a0ba7","tarball":"https://registry.npmjs.org/@brianchirls/game-input/-/game-input-0.0.2.tgz","fileCount":253,"unpackedSize":441788,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxSj8VVnjoKRWvU6Oa7/GIW+bG2QIc6opXJM/dr3QyewIgYWHN25F5y6IXdi1Pg+r6somciaxp9gqZiulMfaXiBrs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5wcLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpp5w/+Mf5SsFcUTj5pP0JSqICZ/5THjMn0IomYw7e9X4v7iYtktTJn\r\nqAAfY4OAJIxOrXkuVyu9lrGHxh0k0SmEONur+olVXLOezip1V7G0kVVGuzzj\r\ni7avqUXoEkP2HKhcAu5XJ/qmbzr5R+W7qvj1GsJuXc25CF+v43HaC2P4RVqw\r\nj15Zif5Rkr3hvLvdOh3ZSrQDw0nWMt1kW3kJzYab7blyaUcth/3hCStiiHYn\r\nAtAZc59qfRxL7hOtEiHeM4JAKj1DgK3VQEBIpOF6qFQ7A8xyh56iJ4/zK1Q8\r\nw0xu3oey/7TcGpIRzgs6ImmcR+G1DFed3PKdtImMHNZJ/wdGTOQyxmZ+akAs\r\nPaR6ynxiCeTV2av7d8akyYJs6OKsb1WhqRRyuv4l2dn6Ip/Uk8AqzRkYvWgl\r\nk9n4fV/p7poB5g+/9gZJ2dqci8TwWnRLW9snTtmGRxVyr53E96hiIRu/6bSH\r\nuqYvAYurR5tnbAQZWWS94VmKQav/ZMxJt47wQ+qEaVJQOoP0uZKb8Ppa0Xic\r\nU8YfvdlYDT7u8MKgFhQCV6jYnaOOsxzPlu32+KYATPOCw4hsJpn67lYS5DZw\r\n1OpshrGtZsKGZnaxvyw4Kd9WbmlpsHjk3z33m3RfU9NUsy7Gro5HBfglldls\r\nuHADL8zzpI+bDKZSVSDO0usp4YTzD/s00q8=\r\n=0wax\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"brianchirls","email":"brian@chirls.com"},"directories":{},"maintainers":[{"name":"brianchirls","email":"brian@chirls.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/game-input_0.0.2_1659307787131_0.25245032705737236"},"_hasShrinkwrap":false},"0.0.3":{"name":"@brianchirls/game-input","version":"0.0.3","description":"A universal input manager for web games and interactive art. Built in Typescript. Loosely inspired by Unity's Input System. Needs a better name.","repository":{"type":"git","url":"git+https://github.com/brianchirls/game-input.git"},"bugs":{"url":"https://github.com/brianchirls/game-input/issues"},"homepage":"https://github.com/brianchirls/game-input#readme","main":"dist/cjs/index.js","module":"dist/esm/index.js","browser":"dist/esm/browser.js","unpkg":"dist/browser.js","types":"./dist/types/browser.d.ts","exports":{".":{"node":"./dist/cjs/index.js","require":"./dist/cjs/browser.js","import":"./dist/esm/browser.js","default":"./dist/esm/browser.js","types":"./dist/types/browser.d.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./dist/esm/*.js","require":"./dist/cjs/*.js","default":"./dist/cjs/*.js"}},"typesVersions":{"*":{"*":["./dist/types/*"]}},"keywords":["game","input","joystick","gamepad","mouse","keyboard"],"scripts":{"lint":"npm run lint:js; npm run lint:css","lint:js":"eslint ./; true","lint:css":"stylelint 'examples/**/*.css' 'tools/**/*.css'; true","lint:fix":"eslint --fix ./; stylelint 'examples/**/*.css' 'tools/**/*.css' --fix; true","prepush":"npm test","start":"cross-env NODE_ENV=development webpack serve --config ./config/webpack-dev.js --mode development --progress","build:cjs":"rm -rf dist/cjs/ && tsc --target ES6 --module commonjs --outDir ./dist/cjs --allowJs","build:esm":"rm -rf dist/esm/ && tsc --target ES6 --module ES6 --outDir ./dist/esm --allowJs","build:bundle":"webpack --config ./config/webpack.lib.js","build:lib":"npm run build:cjs && npm run build:esm && npm run build:bundle","build:site:dev":"cross-env NODE_ENV=development rm -rf build/ && webpack --config ./config/webpack-dev.js --mode development","build:site":"cross-env NODE_ENV=production rm -rf build/ && webpack --config ./config/webpack-prod.js --mode production","build":"npm run build:lib && npm run build:site","deploy":"gh-pages -d ./build","check-types":"tsc --noEmit","test":"cross-env NODE_ENV=test jest --verbose --coverage && npx package-check","test:debug":"cross-env NODE_ENV=test node --inspect node_modules/.bin/jest --runInBand","test:watch:debug":"cross-env NODE_ENV=test node --inspect node_modules/.bin/jest --runInBand --watch","test:watch":"cross-env NODE_ENV=test jest --watch"},"author":{"name":"Brian Chirls","email":"brian@chirls.com"},"license":"MIT","dependencies":{"mitt":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.12.10","@babel/core":"^7.12.10","@babel/eslint-plugin":"^7.16.5","@babel/plugin-proposal-class-properties":"^7.12.1","@babel/plugin-proposal-object-rest-spread":"^7.12.1","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-object-assign":"^7.12.1","@babel/plugin-transform-runtime":"^7.12.10","@babel/plugin-transform-typescript":"^7.16.8","@babel/polyfill":"^7.12.1","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.16.5","@skypack/package-check":"^0.2.2","@types/jest":"^28.1.6","@types/webpack-env":"^1.16.3","@typescript-eslint/eslint-plugin":"^5.8.1","@typescript-eslint/parser":"^5.8.1","autoprefixer":"^10.2.5","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","babel-plugin-module-resolver":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.3.0","clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.2.0","css-minimizer-webpack-plugin":"^4.0.0","eslint":"^8.5.0","eslint-config-crockford":"^2.0.0","eslint-plugin-import":"^2.22.1","eslint-plugin-jest":"^26.1.3","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^6.0.0","eslint-webpack-plugin":"^3.1.1","file-loader":"^6.2.0","gh-pages":"^4.0.0","html-loader":"^4.1.0","html-webpack-plugin":"^5.3.1","jest":"^28.1.3","jest-matcher-deep-close-to":"^3.0.2","jest-runner-eslint":"^1.0.0","mini-css-extract-plugin":"^2.4.5","postcss":"^8.2.2","postcss-flexbugs-fixes":"^5.0.2","postcss-input-range":"^5.0.0","postcss-loader":"^7.0.1","purecss":"^2.0.3","raw-loader":"^4.0.2","react-dev-utils":"^12.0.0","stylelint":"^14.2.0","stylelint-config-standard":"^26.0.0","stylelint-webpack-plugin":"^3.1.0","svgo":"^2.3.0","svgo-loader":"^3.0.0","ts-loader":"^9.2.8","typescript":"^4.5.4","url-loader":"^4.1.1","webpack":"^5.28.0","webpack-bundle-analyzer":"^4.4.0","webpack-cli":"^4.6.0","webpack-dev-server":"^4.7.1","webpack-merge":"^5.7.3"},"gitHead":"3f15e146ff2272569fd232b2f73f4549a35d4a7a","_id":"@brianchirls/game-input@0.0.3","_nodeVersion":"17.9.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-hOLpg2x2F38CLZqYCem+YuKNChi0bavFvsdGWNhUdKR6IC6fpYbVeVMaJDCuxUf1366igeqhVc2SxZ4EmHreHQ==","shasum":"b9a9c412b8f33f88b71e6645aa2131a778ac17ce","tarball":"https://registry.npmjs.org/@brianchirls/game-input/-/game-input-0.0.3.tgz","fileCount":219,"unpackedSize":410542,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgJJnW4vIG2Dal8d+2U/b7gKlS5S47y3xpxBPORUtMlQIgDZoV/sJ7AUn+z7SD/9ridKKJHbHbnkhRg+YFjmR4wbo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi59eQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoVbQ//fYnKHrNh2rPM05Tq7hWmOM7MvvNGiiEN/Uu5/pxn6ym4RbHZ\r\nSBB9iNsIjjbpHt+s85WcfXCXyxEfYkD3PSQ/fV2KsywmA+hrTN/KBS3DMuFA\r\nf6P9K0/C/vYCa8zn/+vJPPp6mHPVGJeSHk7EQRk936/JIyO+m80nc9Pzjtqj\r\nXzAMQlthgDpn9YqQm4rnyombjIyuORUcyZDJglD6xK2zll3eLtNzHHlKjhjq\r\nGaQibALKMLshE/Mn2aMvGN70gO2KmAEVUB7sPvApizFzWY+xgNhnn/QrakvN\r\narnb3bKOGYquDYP91v9Hmp2OsfJSZx5MmZ6DoORQLbIvX748IexXI0ZFRAG4\r\nVzNgMxYHseRKrw6nIsXsnNphmk7Ku7Euf6FCL0UXHnKRazNPK3NJs1N4KeWd\r\n04eSnKBciTjE7c/B99sDrGfu2SZuaHL20R2Lj3k1IKsBCRYkraAKDNF/luVz\r\n7wFcDwc4IWhLQSW+BF3p+u57TrMx7woqk7ot3IZcV9e46Ivi8EIJ8MfMPMmw\r\nVU4F6nnooGIE6z7WaTa7bq5vl4SDI9/ovd4WU/KPocjItIc2XbuIWrTy8es0\r\ndnHm75e59xrzLPLYW49nU9zfyHbPHqjbrgPsrOy5pxWji2f92Y2/vArqr11K\r\nMiJbfVdjFl50VnuTIxuV2h/gZQA8U8v9dpk=\r\n=9ZAB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"brianchirls","email":"brian@chirls.com"},"directories":{},"maintainers":[{"name":"brianchirls","email":"brian@chirls.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/game-input_0.0.3_1659361168237_0.8260781076841535"},"_hasShrinkwrap":false},"0.1.0":{"name":"@brianchirls/game-input","version":"0.1.0","description":"A universal input manager for web games and interactive art. Built in Typescript. Loosely inspired by Unity's Input System. Needs a better name.","repository":{"type":"git","url":"git+https://github.com/brianchirls/game-input.git"},"bugs":{"url":"https://github.com/brianchirls/game-input/issues"},"homepage":"https://github.com/brianchirls/game-input#readme","main":"dist/cjs/index.js","module":"dist/esm/index.js","browser":"dist/esm/browser.js","unpkg":"dist/browser.js","types":"./dist/types/browser.d.ts","exports":{".":{"node":"./dist/cjs/index.js","require":"./dist/cjs/browser.js","import":"./dist/esm/browser.js","default":"./dist/esm/browser.js","types":"./dist/types/browser.d.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./dist/esm/*.js","require":"./dist/cjs/*.js","default":"./dist/cjs/*.js"}},"typesVersions":{"*":{"*":["./dist/types/*"]}},"keywords":["game","input","joystick","gamepad","mouse","keyboard"],"scripts":{"lint":"npm run lint:js; npm run lint:css","lint:js":"eslint ./; true","lint:css":"stylelint 'examples/**/*.css' 'tools/**/*.css'; true","lint:fix":"eslint --fix ./; stylelint 'examples/**/*.css' 'tools/**/*.css' --fix; true","prepush":"npm test","start":"cross-env NODE_ENV=development webpack serve --config ./config/webpack-dev.js --mode development --progress","build:cjs":"rm -rf dist/cjs/ && tsc --target ES6 --module commonjs --outDir ./dist/cjs --allowJs","build:esm":"rm -rf dist/esm/ && tsc --target ES6 --module ES6 --outDir ./dist/esm --allowJs","build:bundle":"webpack --config ./config/webpack.lib.js","build:lib":"npm run build:cjs && npm run build:esm && npm run build:bundle","build:site:dev":"cross-env NODE_ENV=development rm -rf build/ && webpack --config ./config/webpack-dev.js --mode development","build:site":"cross-env NODE_ENV=production rm -rf build/ && webpack --config ./config/webpack-prod.js --mode production","build":"npm run build:lib && npm run build:site","deploy":"gh-pages -d ./build","check-types":"tsc --noEmit","test":"cross-env NODE_ENV=test jest --verbose --coverage && npx package-check","test:debug":"cross-env NODE_ENV=test node --inspect node_modules/.bin/jest --runInBand","test:watch:debug":"cross-env NODE_ENV=test node --inspect node_modules/.bin/jest --runInBand --watch","test:watch":"cross-env NODE_ENV=test jest --watch"},"author":{"name":"Brian Chirls","email":"brian@chirls.com"},"license":"MIT","dependencies":{"mitt":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.12.10","@babel/core":"^7.12.10","@babel/eslint-plugin":"^7.16.5","@babel/plugin-proposal-class-properties":"^7.12.1","@babel/plugin-proposal-object-rest-spread":"^7.12.1","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-object-assign":"^7.12.1","@babel/plugin-transform-runtime":"^7.12.10","@babel/plugin-transform-typescript":"^7.16.8","@babel/polyfill":"^7.12.1","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.16.5","@skypack/package-check":"^0.2.2","@types/jest":"^28.1.6","@types/webpack-env":"^1.16.3","@typescript-eslint/eslint-plugin":"^5.8.1","@typescript-eslint/parser":"^5.8.1","autoprefixer":"^10.2.5","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","babel-plugin-module-resolver":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.3.0","clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.2.0","css-minimizer-webpack-plugin":"^4.0.0","eslint":"^8.5.0","eslint-config-crockford":"^2.0.0","eslint-plugin-import":"^2.22.1","eslint-plugin-jest":"^26.1.3","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^6.0.0","eslint-webpack-plugin":"^3.1.1","file-loader":"^6.2.0","gh-pages":"^4.0.0","html-loader":"^4.1.0","html-webpack-plugin":"^5.3.1","jest":"^28.1.3","jest-environment-jsdom":"^28.1.3","jest-matcher-deep-close-to":"^3.0.2","jest-runner-eslint":"^1.0.0","mini-css-extract-plugin":"^2.4.5","postcss":"^8.2.2","postcss-flexbugs-fixes":"^5.0.2","postcss-input-range":"^5.0.0","postcss-loader":"^7.0.1","purecss":"^2.0.3","raw-loader":"^4.0.2","react-dev-utils":"^12.0.0","stylelint":"^14.2.0","stylelint-config-standard":"^26.0.0","stylelint-webpack-plugin":"^3.1.0","svgo":"^2.3.0","svgo-loader":"^3.0.0","ts-loader":"^9.2.8","typescript":"^4.5.4","url-loader":"^4.1.1","webpack":"^5.28.0","webpack-bundle-analyzer":"^4.4.0","webpack-cli":"^4.6.0","webpack-dev-server":"^4.7.1","webpack-merge":"^5.7.3"},"gitHead":"b3859ede35ac806c9ea868a03cd1764c829cb117","_id":"@brianchirls/game-input@0.1.0","_nodeVersion":"17.9.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-YTHooli6vzwtWCJz/WPgknpZE/fC74g5bYM1n9L9L6Rv9F1EK8gBBl43jsQt/5/HPzx2e6SfC2sRUMWD7f3pOg==","shasum":"82fb47fce2b506336513c808a92546f0053d7a3c","tarball":"https://registry.npmjs.org/@brianchirls/game-input/-/game-input-0.1.0.tgz","fileCount":219,"unpackedSize":411140,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaVzxvfq2yDtzqXWI3TByeznK1tCXIT+y+VqFI4/EkYAIhAL1DMtsgNgeoNvTTFcl69CpZ5ulYMQcSyUdcpDvoyJ1U"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6z5JACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqtJRAAiCmYYXXmwJ9TN62PUzTX08h+dK4bz+H2CfBZv1H1iSmrEYaY\r\nQzznP1/B3kdDm0FC1bhhKam6y3GuMj9Gcc/apFoRQXioSfdtXASEkLcfczgA\r\n7Ij5weK2o5j1EpnUKsf9ZiMYYygSh4/fZCVD8srEiD6etl500VgSdR5xqF/b\r\nL4GxjzeIdMZlt802y/5yRUaEAsnZxVsFIY9c1Qu7zRWtYSYN0t1qhJMpbcc3\r\nmdJBPhe8khC8mh1HcmgeN8aEcP1SOnO5fdqTsX1SreVtr9SOcpS1C4kAgDAO\r\ngHM8Cs0kcxmh2Y7pB78+U36bwegKgtfTjqlDnFYPZDu5WxMxC4NtM5up0Btx\r\nmWIcALPpqQUoJeW8gdQU7C9/w8sG/6Q+ecS+h5jHt8ugj2fF62sD2/c4HWcD\r\nX0avMq2rVcvj/0epz88klXFEm8OGUBFcSnDjd19Pczzkp10eh/3zG5zpqTdG\r\nvl7vvKptZX6m3mcny4ZXk72imFk0si+rC2bNZfXSRe/eL3m3bas3KQUWLc1P\r\nfDhN8SZWfNamLbs+A0EohKXiFasgHEFLL++822yV7CAGRNnnuNO5jeghL0DF\r\nmx9rrr+k2pC260/BEzhddIhPxG1jpmc9QlZWAxAi/srP078FsCxl1Sq8aGyj\r\nKryqJLdQ374cxfO0SGkixhnEUS5iHMgeq/8=\r\n=bvmP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"brianchirls","email":"brian@chirls.com"},"directories":{},"maintainers":[{"name":"brianchirls","email":"brian@chirls.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/game-input_0.1.0_1659584073577_0.02142092998156464"},"_hasShrinkwrap":false},"0.1.1":{"name":"@brianchirls/game-input","version":"0.1.1","description":"A universal input manager for web games and interactive art. Built in Typescript. Loosely inspired by Unity's Input System. Needs a better name.","repository":{"type":"git","url":"git+https://github.com/brianchirls/game-input.git"},"bugs":{"url":"https://github.com/brianchirls/game-input/issues"},"homepage":"https://github.com/brianchirls/game-input#readme","main":"dist/cjs/index.js","module":"dist/esm/index.js","browser":"dist/esm/browser.js","unpkg":"dist/browser.js","types":"./dist/types/browser.d.ts","exports":{".":{"node":"./dist/cjs/index.js","require":"./dist/cjs/browser.js","import":"./dist/esm/browser.js","default":"./dist/esm/browser.js","types":"./dist/types/browser.d.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./dist/esm/*.js","require":"./dist/cjs/*.js","default":"./dist/cjs/*.js"}},"typesVersions":{"*":{"*":["./dist/types/*"]}},"keywords":["game","input","joystick","gamepad","mouse","keyboard"],"scripts":{"lint":"npm run lint:js; npm run lint:css","lint:js":"eslint ./; true","lint:css":"stylelint 'examples/**/*.css' 'tools/**/*.css'; true","lint:fix":"eslint --fix ./; stylelint 'examples/**/*.css' 'tools/**/*.css' --fix; true","prepush":"npm test","start":"cross-env NODE_ENV=development webpack serve --config ./config/webpack-dev.js --mode development --progress","build:cjs":"rm -rf dist/cjs/ && tsc --target ES6 --module commonjs --outDir ./dist/cjs --allowJs","build:esm":"rm -rf dist/esm/ && tsc --target ES6 --module ES6 --outDir ./dist/esm --allowJs","build:bundle":"rm -rf dist/types/ && webpack --config ./config/webpack.lib.js","build:lib":"npm run build:cjs && npm run build:esm && npm run build:bundle","build:site:dev":"cross-env NODE_ENV=development rm -rf build/ && webpack --config ./config/webpack-dev.js --mode development","build:site":"cross-env NODE_ENV=production rm -rf build/ && webpack --config ./config/webpack-prod.js --mode production","build":"npm run build:lib && npm run build:site","deploy":"gh-pages -d ./build","check-types":"tsc --noEmit","test":"cross-env NODE_ENV=test jest --verbose --coverage && npx package-check","test:debug":"cross-env NODE_ENV=test node --inspect node_modules/.bin/jest --runInBand","test:watch:debug":"cross-env NODE_ENV=test node --inspect node_modules/.bin/jest --runInBand --watch","test:watch":"cross-env NODE_ENV=test jest --watch"},"author":{"name":"Brian Chirls","email":"brian@chirls.com"},"license":"MIT","dependencies":{"mitt":"^3.0.0"},"devDependencies":{"@babel/cli":"^7.12.10","@babel/core":"^7.12.10","@babel/eslint-plugin":"^7.16.5","@babel/plugin-proposal-class-properties":"^7.12.1","@babel/plugin-proposal-object-rest-spread":"^7.12.1","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-object-assign":"^7.12.1","@babel/plugin-transform-runtime":"^7.12.10","@babel/plugin-transform-typescript":"^7.16.8","@babel/polyfill":"^7.12.1","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.16.5","@skypack/package-check":"^0.2.2","@types/jest":"^29.2.3","@types/webpack-env":"^1.16.3","@typescript-eslint/eslint-plugin":"^5.8.1","@typescript-eslint/parser":"^5.8.1","autoprefixer":"^10.2.5","babel-eslint":"^10.1.0","babel-loader":"^9.1.0","babel-plugin-module-resolver":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.3.0","clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.2.0","css-minimizer-webpack-plugin":"^4.0.0","eslint":"^8.5.0","eslint-config-crockford":"^2.0.0","eslint-plugin-import":"^2.22.1","eslint-plugin-jest":"^27.1.5","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^6.0.0","eslint-webpack-plugin":"^3.1.1","file-loader":"^6.2.0","gh-pages":"^4.0.0","html-loader":"^4.1.0","html-webpack-plugin":"^5.3.1","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","jest-matcher-deep-close-to":"^3.0.2","jest-runner-eslint":"^1.0.0","mini-css-extract-plugin":"^2.4.5","postcss":"^8.2.2","postcss-flexbugs-fixes":"^5.0.2","postcss-input-range":"^5.0.0","postcss-loader":"^7.0.1","purecss":"^3.0.0","raw-loader":"^4.0.2","react-dev-utils":"^12.0.0","stylelint":"^14.2.0","stylelint-config-standard":"^29.0.0","stylelint-webpack-plugin":"^3.1.0","svgo":"^3.0.2","svgo-loader":"^3.0.0","ts-loader":"^9.2.8","typescript":"^4.5.4","url-loader":"^4.1.1","webpack":"^5.28.0","webpack-bundle-analyzer":"^4.4.0","webpack-cli":"^5.0.0","webpack-dev-server":"^4.7.1","webpack-merge":"^5.7.3"},"gitHead":"c6b15c0cca29111816e6befd91d38d77de060f40","_id":"@brianchirls/game-input@0.1.1","_nodeVersion":"17.9.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-fdoPUK68hc5maZBthjfMFwOZ9+jX9U0zUuNLRFd4IQGCLh+AVSO2c/9OJ/SVIWDCjrfPrwLaFMQOoSZSfHjDKg==","shasum":"9b31ceada59256bf9102c2025220048346b94970","tarball":"https://registry.npmjs.org/@brianchirls/game-input/-/game-input-0.1.1.tgz","fileCount":188,"unpackedSize":402863,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9E8CGjIPpSp8kZY2nZMV4d8q/XbUVwtyHF1xG3AKPSAIhAMHnI3M/Azd5EG4C/yLbmtaLkrpFXE4VbkSZhc5A65VQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfSyOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqcbA/9ExfMLB03BrWf/DwBfeuNz8PjyNJV+sEkt5I8IET6YfrMEKVN\r\nHDoIHWu8TqmVcu/hqScBcTU4n/f+IRSO3uBBG8lzT5FiLhzSRlgSo/iyN7o6\r\nIM1PXTneEqQI7TFSu3fBF/vYNIoNhc9N34AJIayNQNECDvD+P4DKvf5CwIUP\r\nWq7R8EA5LXnq74mjfdcNH8MlQSE+SiqvrbajLc0rlAvQF09fOijG0sySHUaH\r\np/uUEIWTHP6Ff0gByl1qmWHLTdTYRtth9cfIq0ClMGEg26U2hF835oCOwMWr\r\nonOiLp10p/1lPYGixSX5y3UhpVvngC5n0tNhoKAyvo3+FRw5PeyWxNzt4Qg0\r\nf64oYNzQA5++idYrhZed6z64SHep0MIf9h1KlcUIQyFeqrhTlvsh/HqIp8fP\r\nmWFAryzn6OeT04BWpSlCPEKwJ/RABDSh3sBhOlZ6F/kTDfAazt9VJRfVSBKH\r\nzAT4gCRSU4NkZFMW92FeXjd6nBXhFrZPxXW7TDQubdx173pReZ8B8Skkrqva\r\natcuHZ1y8ue9eX+hz/11z+bO+SctXvaQKfNIcd3t0XYAncDr5FitZlI31J2i\r\nAMoklhcV0CUft3HlzaM48AoPEvsjkS233gzVUsNcCyYriDrxF2Yy7h0R5G2M\r\nXMAX8OrZOCO4dGY+lfgKpTd8idnE8fAEgDo=\r\n=wkMv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"brianchirls","email":"brian@chirls.com"},"directories":{},"maintainers":[{"name":"brianchirls","email":"brian@chirls.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/game-input_0.1.1_1669147789746_0.11586780037007327"},"_hasShrinkwrap":false}},"time":{"created":"2022-07-31T22:12:48.528Z","0.0.1":"2022-07-31T22:12:48.763Z","modified":"2022-11-22T20:09:50.054Z","0.0.2":"2022-07-31T22:49:47.339Z","0.0.3":"2022-08-01T13:39:28.425Z","0.1.0":"2022-08-04T03:34:33.864Z","0.1.1":"2022-11-22T20:09:49.966Z"},"maintainers":[{"name":"brianchirls","email":"brian@chirls.com"}],"description":"A universal input manager for web games and interactive art. Built in Typescript. Loosely inspired by Unity's Input System. Needs a better name.","homepage":"https://github.com/brianchirls/game-input#readme","keywords":["game","input","joystick","gamepad","mouse","keyboard"],"repository":{"type":"git","url":"git+https://github.com/brianchirls/game-input.git"},"author":{"name":"Brian Chirls","email":"brian@chirls.com"},"bugs":{"url":"https://github.com/brianchirls/game-input/issues"},"license":"MIT","readme":"# Game Input\n\nA universal input manager for web games and interactive art. Built in Typescript. Loosely inspired by Unity's Input System. Needs a better name.\n\n## Features\n\nBuilt-in support for the following device types:\n\n- Gamepad\n- Keyboard\n- Pointer (mouse, touch, pen)\n- On-screen virtual stick\n\n## Examples\n\n- [Simple Movement](https://brianchirls.github.io/game-input/examples/simple.html) ([code](https://github.com/brianchirls/game-input/blob/main/examples/simple.ts))\n- [Accessible Menu Navigation](https://brianchirls.github.io/game-input/examples/menu.html) ([code](https://github.com/brianchirls/game-input/blob/main/examples/menu.ts))\n- [Breakout Clone](https://brianchirls.github.io/game-input/examples/breakout.html) ([code](https://github.com/brianchirls/game-input/blob/main/examples/breakout.ts))\n\n## Installation\n\n### npm\n\nInstall via [npm](https://npmjs.com).\n\n```sh\nnpm install @brianchirls/game-input\n```\n\nAnd import each class individually\n\n```javascript\nimport Gamepad from '@brianchirls/game-input/devices/Gamepad';\nimport Action from '@brianchirls/game-input/Action';\n\n```\n\n### CDN\n\nOr load directly from CDN\n```html\n<script src=\"https://unpkg.com/@brianchirls/game-input\"></script>\n```\n\nAnd access classes on the global `GameInput` object.\n\n```javascript\nconst myGamepad = new GameInput.Gamepad();\n```\n\n## Basic Example\n\n```typescript\nimport Gamepad from '@brianchirls/game-input/devices/Gamepad';\nimport Keyboard from '@brianchirls/game-input/devices/Keyboard';\nimport DPadComposite from '@brianchirls/game-input/controls/DPadComposite';\nimport Action from '@brianchirls/game-input/Action';\n\n/**\n * devices\n */\n\nconst gamepad = new Gamepad();\nconst keyboard = new Keyboard();\n\n/**\n * get controls from each device\n */\n\nconst leftStick = gamepad.getControl('leftStick');\n\n// It takes four keys to go in four directions\nconst kbdWASD = new DPadComposite({\n\tup: kbd.getControl('KeyW'),\n\tleft: kbd.getControl('KeyA'),\n\tdown: kbd.getControl('KeyS'),\n\tright: kbd.getControl('KeyD')\n});\n\n/**\n * Combine controls into actions.\n * The action will respond to whichever control is used.\n */\n\nconst moveAction = new Action({\n\tbindings: [\n\t\tleftStick,\n\t\tkbdWASD\n\t]\n});\n\n/**\n * Access action values inside update loop.\n */\nfunction update() {\n\t// gamepad is a polling device and won't work unless\n\t// we update on every frame\n\tgamepad.update();\n\n\tconst [x, y] = moveAction.value;\n\n\t// ... game logic goes here ...\n\n\trequestAnimationFrame(update);\n}\n\nupdate();\n\n```\n\n## License\n\n[MIT License](https://github.com/brianchirls/game-input/blob/main/LICENSE) © Brian Chirls\n","readmeFilename":"README.md"}