{"_id":"@oletizi/launch-control-xl3","_rev":"33-ff01215b635f597ed0db01c6130dcc73","name":"@oletizi/launch-control-xl3","dist-tags":{"latest":"1.20.17","alpha":"1.20.20-alpha.0"},"versions":{"1.0.1":{"name":"@oletizi/launch-control-xl3","version":"1.0.1","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"MIT","_id":"@oletizi/launch-control-xl3@1.0.1","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"ca9f330dd60a16c20cb2c1f1e91aec21e29547d0","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.0.1.tgz","fileCount":55,"integrity":"sha512-eAgMThqlBCby6jnHScdOFhJgfpLUNHHkF0zXgUgNtVkndcYrWDm+NtOnq+lzNv6ciqbPjYdidSlV7w5VVuJrZw==","signatures":[{"sig":"MEQCID4Jzy81A+zM8TqRG7XVHusVcrFprlAz/CTY+s+8G1AtAiBHkdsExOdiKuU8PIfgJOagpmJa9Lzw+qjsbHiygukI5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632385},"main":"./dist/index.js","type":"module","_from":"file:oletizi-launch-control-xl3-1.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:unit":"vitest run test/core test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_resolved":"/private/var/folders/sk/jzwspmzn1g17x97x7s7l_dch0000gn/T/4e9654026a0226325ef3432dc8947f83/oletizi-launch-control-xl3-1.0.1.tgz","_integrity":"sha512-eAgMThqlBCby6jnHScdOFhJgfpLUNHHkF0zXgUgNtVkndcYrWDm+NtOnq+lzNv6ciqbPjYdidSlV7w5VVuJrZw==","_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@midival/core":"^0.2.0","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@vitest/coverage-v8":"^1.2.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.0.1_1758908437826_0.9401250115329183","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@oletizi/launch-control-xl3","version":"1.0.8","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.0.8","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"ab3afc34c9e428870d36c194ad1ce5ff889c1a74","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.0.8.tgz","fileCount":55,"integrity":"sha512-3z0FISq84XNTDQ4UpKxJxVkNEHKUjdCfm6kYSPBgRc/XMuJxXe6cMakWgM/1YNfEDlqVBce7fQcGznlGzLq0KA==","signatures":[{"sig":"MEUCIFAC/NGbI501ljpEZGxQdnd4fJpy8nt6RUZ/UGQMo4cJAiEAqNaz8Od31V4Ox4LaECz9ZbIU5OWXJjg6mScv6YRu0Qk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632446},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"50c25eb9d486940ccbabd24ac825069d985ce147","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:unit":"vitest run test/core test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@midival/core":"^0.2.0","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@vitest/coverage-v8":"^1.2.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.0.8_1758992641099_0.8608914817814859","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@oletizi/launch-control-xl3","version":"1.0.9","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.0.9","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"109dba04a5844f36c6a4451b71170e51f5b35016","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.0.9.tgz","fileCount":55,"integrity":"sha512-Rt7W/gt0N4Hx2KcSN5yJvRsnyFOXM1x3IzocZtIRjDxM4D2yLhp6o0ejb1hLQVpteTjYXCjM3ovK964QJS7/PQ==","signatures":[{"sig":"MEUCIQCz3lwxfeRtyMsfdKfs35niSIrVkwnzjcTCtZ1Tq5RhAwIgD8yacsDXjt+hsNZUZxM7OVyAp/YGkOVXe3G7LQAo7oA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632446},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"2a3b467b00592533e38e2dd80dfe0987ae5edc7b","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:unit":"vitest run test/core test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@midival/core":"^0.2.0","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@vitest/coverage-v8":"^1.2.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.0.9_1758992839075_0.20721773132996657","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@oletizi/launch-control-xl3","version":"1.0.10","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.0.10","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"5aabd4e2353c4fcfd6c0395d5b6180e2f88ab3e2","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.0.10.tgz","fileCount":55,"integrity":"sha512-6PFgCY/Q78ojNDchBR/nkdZJ+dfJZ71g0VNWx6ECpEKZnWkeARZZc3jSsHl33SCXq++KpQ4WQSPa4u4mpndqTA==","signatures":[{"sig":"MEUCIAMKPIlKUoUTexNb6LkXfD7ldtw26eFnVe7WOVt0NSO5AiEAqxy81+XDGs7wlxkQgWFNvZcucVC0965wFNO1SLOdMqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632447},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"0b9966122fbc6ddcf43c86a78689b7a80060863c","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:unit":"vitest run test/core test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@midival/core":"^0.2.0","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@vitest/coverage-v8":"^1.2.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.0.10_1758993116441_0.740000348228018","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@oletizi/launch-control-xl3","version":"1.0.11","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.0.11","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"5b2e6642a6f430f32eda28e154db199db2857092","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.0.11.tgz","fileCount":55,"integrity":"sha512-pZr/62cUEgEMPOkLqAyz7ioJSjsxXrj6DtSm93ftQlYtb/vyvRQlYsrMq/ss7x0Sh0E7EpwkzHI1kwrstXK8cQ==","signatures":[{"sig":"MEYCIQDxghlZ/rsx/uZzKiNUeoaim+diIDqZimApIz/vzflgBQIhAKQnycUBxNj9qJHE+M3SmXZYhgkLFrpFmhsv8y1184Fq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632447},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"1d78fc20584a27a5d7824991fee383d49112897d","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:unit":"vitest run test/core test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@midival/core":"^0.2.0","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@vitest/coverage-v8":"^1.2.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.0.11_1758993448927_0.980740833127856","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@oletizi/launch-control-xl3","version":"1.0.12","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.0.12","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"8514652b745e564f696d2f018b18f9aa01b7a20c","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.0.12.tgz","fileCount":55,"integrity":"sha512-rQx38GZsBKnDvVkOd66eNYdcYar77iDEcDk3uQ8rAgwHDY8Mm63JQZk3xJNblxuB0yVVx79RT6akpxSHsSC6AA==","signatures":[{"sig":"MEUCIEsA9N6LpBgPFyKf8XCwxX61QOuS5P9VpubrrZOOxJzaAiEAwAl4nDKQITZdO8LCoY0xhKd2lS6H/MgPaSs2Ppj7xt8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632447},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"e7f49e5ee0720bbfb769788cd30e0888d3839ab4","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:unit":"vitest run test/core test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@midival/core":"^0.2.0","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@vitest/coverage-v8":"^1.2.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.0.12_1758993639236_0.8090859502878056","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@oletizi/launch-control-xl3","version":"1.1.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.1.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"39c591dcdb0646aee8687d6b8acf68a1c2cdfb20","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.1.0.tgz","fileCount":58,"integrity":"sha512-ZJy/wXh2tPLuUq/C+gARuzxiZKXYnPbWygCxT5pxYdc1Oo3sDvCuS5BRjw5BrDcd6ZQy3soTh0Ax1hsWSjjoYw==","signatures":[{"sig":"MEYCIQD1EVHsgjA31u7o/vnB+4Q5BlEoAXleL9oK3lr5AGgXyAIhAKiv2Zv8R8AMuYm74GtgkPxX5Kkx8O/20ZACOg6wM9lT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":681549},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"cce6a1506a18edfd4ef1572d87e284763e34374e","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:unit":"vitest run test/core test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@midival/core":"^0.2.0","eventemitter3":"^5.0.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@vitest/coverage-v8":"^1.2.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.1.0_1759006220012_0.001017081633786665","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@oletizi/launch-control-xl3","version":"1.6.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.6.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"73371d8618ae8092e679325aabc6e62cd8e08979","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.6.0.tgz","fileCount":50,"integrity":"sha512-jGsheBmnhW/s16nB5uSQpXIKPpZWG/BYXJ60/bEJWUgHf7ZBog957U5oNdbgUqRw0bEPexBjtx5TF75Hf5SkTQ==","signatures":[{"sig":"MEQCIGBTuf2AmTGlnGNuLvTCxgVb0yPDgqZlO4vIo9ERmVYtAiAF/OROV1FOIUoTgeK7O3jj35AlmrqGlHYg9RMyQDS+jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":675216},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"1c049d87442e8bec313412129cffa4476e8f0bc5","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:handshake:node":"tsx utils/test-handshake-node.ts","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","eventemitter3":"^5.0.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","typescript":"^5.3.3","@types/node":"^20.11.0","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.6.0_1759100856317_0.8278599237769464","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@oletizi/launch-control-xl3","version":"1.7.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.7.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"558e742cd54fba86dd6efde376b8df02d9d157f4","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.7.0.tgz","fileCount":50,"integrity":"sha512-edUjlTF18l03JwRkh59LBpCj6zJ2RqhVHDHu/rmqzrofKcqIsJ7jadqfJQY34YxbBBh/MgcTBzp/DnP1hndqxA==","signatures":[{"sig":"MEUCID5u8f9vIsS7A+9/EXSimQfxwXXbNGP0e7UkN3Lg7EsKAiEAmkNV2DecZFER/EmGuwmR6MQiS14r2emcfdbqnBxoNys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":675367},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"7d24fa56b33118cebb6ef5c3f014c38220652aed","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:handshake:node":"tsx utils/test-handshake-node.ts","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","eventemitter3":"^5.0.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","typescript":"^5.3.3","@types/node":"^20.11.0","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.7.0_1759108495892_0.7951969560251779","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@oletizi/launch-control-xl3","version":"1.8.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.8.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"6e6aa674580806b979c079c01f697c3f34291aed","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.8.0.tgz","fileCount":50,"integrity":"sha512-os9kV4syoNcZdWFAw/dKx85+Yl4fAotJHN0Gqog2KxfsuRwDvo29l/2XMCMCh44/Adlx/hrRitSuW4418ZRHBA==","signatures":[{"sig":"MEUCIDkG/oT5j5XC6GsDe4K2n9LMqdeQvZYmWdLFHDRjJdFwAiEAljcghYdisFNmMtiED1RSfJAsLHEnv5tcrFPl39Ung4k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":675367},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"f6496f908525ab6114149ecdfba1d427c43cff4f","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:handshake:node":"tsx utils/test-handshake-node.ts","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","eventemitter3":"^5.0.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","typescript":"^5.3.3","@types/node":"^20.11.0","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.8.0_1759108626520_0.11639216991594226","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@oletizi/launch-control-xl3","version":"1.9.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.9.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"5e4145b4f1e1d7a49c2a1c1b9ec18dcd5f3f2845","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.9.0.tgz","fileCount":50,"integrity":"sha512-u2pHxDVAiZBBV05OGIUGT2zLAk8//HMHlgaoXd5pZejHYPHIWykIzXOzLncsUoQS7FXpxwoABXjYv0LvVcJrVQ==","signatures":[{"sig":"MEUCIQDxQf40rk/xj0o2UA0MlByWy+WCQAXYgJT76DyGgUeEoQIgccc+nbz4xwcSpwzru+7c7dYc/YykVj0iqEUCPgoJPgY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":708553},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"cddbe08d7e9b86ff0279c44e983a5eb7fff9c0d8","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","eventemitter3":"^5.0.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.9.0_1759171825095_0.8400232884295868","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@oletizi/launch-control-xl3","version":"1.12.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.12.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"7d968d3514a58d5b298157ad14471a0719365eed","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.12.0.tgz","fileCount":50,"integrity":"sha512-YcJ7e6LXs8dzBQZjZlGclKoqiEOSN9W0rQNgplPI+bOjC+Ua9SHJbO3Pk3/bvOF3tQDg1mA9XxXTr9vfayawpQ==","signatures":[{"sig":"MEUCIDvMpJwVCRaTLKJwMqj/X9CRkMniI7Nw6OeJSPsE54pJAiEAyGnsH+Vp5iXPjDHT3gxfAclVp9c1ta1pe/EDbLN8a2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":703132},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"a8d93344a1499ee69f2a216c0d16abb1e501f91f","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"tsc -b && vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.12.0_1759274147352_0.5515497630713775","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@oletizi/launch-control-xl3","version":"1.13.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.13.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"8a151a1829da293efe3a08f6da2e0e9e9e05965f","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.13.0.tgz","fileCount":137,"integrity":"sha512-g9RsgN2jxtu3Sal6HkBMuWSWshbR5Wmiowcc82GaJFo472y6hbDTLEYGLX8CRzf/B1BskfFoUcLAz8DbLwZwjQ==","signatures":[{"sig":"MEUCIDeUjTGGkKCM5u/SDX2x00d1D52Tm3gZMTFALnIXLqcGAiEAq0znIn3P3VjuGTDvZrPJRoh6VN1tjow+uZPco/dbuDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":852478},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"2dc7ac953c89ef7445baf7134df26ee62d7c044a","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.13.0_1759276012201_0.34505101157809004","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@oletizi/launch-control-xl3","version":"1.14.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.14.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"f8596e1f74f5b4ece1dceb0143a4879dda076828","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.14.0.tgz","fileCount":137,"integrity":"sha512-2W3jh+z5RJpIz0lJUaDejEhpbiI4e2HRPwfS2WQds2KGeetUImabrWLGlSqRe9RE7SsN+h7fcvUAUJ3scu+2Aw==","signatures":[{"sig":"MEYCIQCF8O/n1YHMR0CJrU34+QdSI5ZoKMBkfVMVuvonEAXaVAIhAL6sKFrzJd3kqG7xEuyccMNzkkq6HSomUOYF2WhtOtG5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853039},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"e1a6cef232daf65556f70e979c1e6dc1603a6ffd","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.14.0_1759277945139_0.944026058353854","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@oletizi/launch-control-xl3","version":"1.15.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.15.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"15c296caa7f670d4b625c4e6a914be198b5616d1","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.15.0.tgz","fileCount":137,"integrity":"sha512-Bv7AOhwewhnqmW3PaPpfqAdx0VHLlA8WKjjdlkrhTA7erTvqIpFnonh3hJwWCZzIrINxpcpGP8q56erA9gAWSw==","signatures":[{"sig":"MEYCIQDvuunOfq6l5AT7X1pG4kzKJKhteSxWIBlyRtlxn1QjwwIhAKnd6OJcBIe/s6vOr7GFZrAHJSPrMTJwEZ9oEtvcxyLz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853631},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"b0b65500434735fc13f205f0b4711e7089096450","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.15.0_1759279020346_0.36464260121090053","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@oletizi/launch-control-xl3","version":"1.16.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.16.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"c0c546cb23a0b6abf04f85add07c8ab790d66f1d","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.16.0.tgz","fileCount":137,"integrity":"sha512-q0PQQP2vr3igjJTnZUYfLP+E0mQa5TsTzj3ONNx6ZSWqYPOb6Bh3P0DV2UlgDHxo/1ELjsFcmmRoK2M233q1Rw==","signatures":[{"sig":"MEYCIQDFPP9fyI7XrMDGE0fnYP9YW9vbdxWNaE856ldN01qCTgIhAJxtoCZUzFI2MELFQ4isEL+Ywou0orV9xK5O/wySxklQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853733},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"b003d1ffbdab99dd7da0b35b8d897f17b57b40b9","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.16.0_1759282479811_0.868697509554446","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@oletizi/launch-control-xl3","version":"1.17.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.17.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"6b5e6f3391e23c57830db1b0fa14136ba418dd3c","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.17.0.tgz","fileCount":137,"integrity":"sha512-vfOGJTugNlzZQ4lbYJa1WDjTO/202f/W//FzIGIy9fteHWvoFrA3LEIG7KdPI54Kg8g8Ck5mCtmkEyUbDMls6Q==","signatures":[{"sig":"MEUCIQClNC6tcent7puFZuCBWLy4alVEUEPWj1WvKyTrZwuKRAIgGimWKdYVa98W83PbGOly9MdKZ2JJZ9TdFmNnAXtFrvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":857156},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"eba11c4dcd02d96448ef1c060aa1b58e770d5288","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.17.0_1759283170229_0.26073478229011315","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@oletizi/launch-control-xl3","version":"1.19.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.19.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"2a0a76b4c0dcf7bf9c0367c10dcfa8d17c5222bb","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.19.0.tgz","fileCount":137,"integrity":"sha512-dbprWhEQRzJGnAj/C5X4TbTtLJgSbMsRckh948XwEWTw9sWycK8QXqX3uFHSiu5NA3Y4B0Pt1+V+mpsXubDEUQ==","signatures":[{"sig":"MEQCIAN/aB1KCCfZ0tA+Z9uDJVsC4DTihWhdwnldrgu6lHDkAiAD3W1mVbC9aV1djkPyAsTs3o24RJ3WB/VmASgAerZ4vw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":858138},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"2749dd768e4909c2428300b71d8236ea5efc1816","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.19.0_1759286449192_0.7342516397273493","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@oletizi/launch-control-xl3","version":"1.20.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"c507dd3ac37813d2351e6fb24cff05eb4878b08c","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.0.tgz","fileCount":137,"integrity":"sha512-wlDSFfFmfudWVgMUieK5KrgRS34spLXOShJlafNvbWaEtoeFadvRPiEBiTO8Z1MrZS2kWbNbBPge/wBxMjrCow==","signatures":[{"sig":"MEUCIQC6dwiuG/QCgosg/gmq3zZ8Y0NyP6af3um9medEBpgsSgIgL194jtZCO8jTnZbYtHCWiEAXiS/UwxAw2zE928pI9TY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":850051},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"756cacdc8fa6c54c19b0a3a1837dfbd3ac071379","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.0_1759294527782_0.357434337841642","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-alpha.2":{"name":"@oletizi/launch-control-xl3","version":"2.0.0-alpha.2","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@2.0.0-alpha.2","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"b2dbbccf6ce1ea67c0ea066935f264dc4ac0f3ee","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-2.0.0-alpha.2.tgz","fileCount":137,"integrity":"sha512-VZguaqMSCE7GlpYY/KPVB/H5G7gYLc6E8P/PPf4BiivK+IlH5h9LLkSMD4mtKF9tGQnGruCMx7/qmaoRjlV4tw==","signatures":[{"sig":"MEYCIQCeJZ61z8xRWvMkCcAoli8S2wngOpMZSwYKng+e3X6CSgIhANu0/27nQ3FJZexWOabDZ7WXZUpMtRb598tUpIeQ/djZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853546},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"50c7f54aec78debffee328890d27a24c8d349f89","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:verify-slot-fix":"tsx utils/verify-slot-fix.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_2.0.0-alpha.2_1760122409127_0.5588562939018633","host":"s3://npm-registry-packages-npm-production"}},"1.20.1-alpha.0":{"name":"@oletizi/launch-control-xl3","version":"1.20.1-alpha.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.1-alpha.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"9988f678c46a53053249948b445593ffed6081a5","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.1-alpha.0.tgz","fileCount":137,"integrity":"sha512-fPb2DQrcS8NvLiUxQt9B19Ejajoy31ppx3LI4ZKedsuin2xDscUEyZEVrOFqH7hYfdd7L35M6cE+NQysYgYa1g==","signatures":[{"sig":"MEUCIBsG+1k8HkKLc88pVgsmN3PQC04dXNVe14aOaP79yr7dAiEA0UTKIEYREyaN4RDzSogQzautXOqqYIyLNRilyaOwito=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853547},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"831e56f207ac090c8af0e3081b6d09a28fac55b4","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:verify-slot-fix":"tsx utils/verify-slot-fix.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.1-alpha.0_1760123438919_0.14975591392577026","host":"s3://npm-registry-packages-npm-production"}},"1.20.1-alpha.1":{"name":"@oletizi/launch-control-xl3","version":"1.20.1-alpha.1","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.1-alpha.1","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"4778764212ea16f13226ece25a391f2fec1637bd","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.1-alpha.1.tgz","fileCount":137,"integrity":"sha512-sRxPzyKUbQjyvPvMbnCztQdJuHI0bdG3f0LKz68ZeKv7+gNkYExQHXQ5f3p4BAOsH5Etg20UsyFQXflaHPTEwA==","signatures":[{"sig":"MEUCIQDueEYADFCc+4XQ4S12pTj9kkwDeHsNNx2pcla6gVvqcAIgMW6eeOGDF6QsIC1C7OpQ2s32bzuaVrKwJea8j0H2bpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853547},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"30d7e3777f70dd2eb6027f903c487670571d03e1","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:verify-slot-fix":"tsx utils/verify-slot-fix.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.1-alpha.1_1760123903353_0.005494657103490175","host":"s3://npm-registry-packages-npm-production"}},"1.20.1":{"name":"@oletizi/launch-control-xl3","version":"1.20.1","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.1","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"275c44f2417126cd138f3251fdd34a35fe191358","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.1.tgz","fileCount":137,"integrity":"sha512-z6XE5g6hhpFPUVXPIlEkNOfk/ouWtSlorliB0FjRgSJe1aVZb9h+wIQK+UcNWdO4+6Ek4FVLporDDJdAvllqKg==","signatures":[{"sig":"MEUCIGUTzTnrA+kFoa5t0dUp8wpscbamS8siXXASlooEVwdAAiEAg5gFr0wbaYC13qfVMwPy1ueRRJJsoXktYUfF6dv1Es0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853539},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"a53f41a7784dbc98827f87ee92bc68028c6305bf","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:verify-slot-fix":"tsx utils/verify-slot-fix.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.1_1760124589083_0.8382513212418821","host":"s3://npm-registry-packages-npm-production"}},"1.20.1-alpha.3":{"name":"@oletizi/launch-control-xl3","version":"1.20.1-alpha.3","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.1-alpha.3","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"ce56c8a8316fa038370e8da4103d0a02fd2c2c14","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.1-alpha.3.tgz","fileCount":137,"integrity":"sha512-iqPEMAvjMtBL35pF2DlWHtEHk/D4Pk9pEjj670D/Sx3cM9s/948p/zKUdzycNXlCz30p9t+lAlDHuAzSl4pxjw==","signatures":[{"sig":"MEUCIQCi5qteZl8kzZrcUdc2wuOO4hk/PAF1ygvC01fpRMGwqQIgPHFts8m5ELJCDw3GBMkUPinAJlQAPHc2BTo0wHJ5C8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":892976},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"ec0db9424c2422146fe86b5df44721b654539661","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:verify-slot-fix":"tsx utils/verify-slot-fix.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.1-alpha.3_1760291661953_0.10055017825733947","host":"s3://npm-registry-packages-npm-production"}},"1.20.1-alpha.4":{"name":"@oletizi/launch-control-xl3","version":"1.20.1-alpha.4","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.1-alpha.4","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"9a8d50be83d0b158bf554aa4d4804140ea926ea3","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.1-alpha.4.tgz","fileCount":137,"integrity":"sha512-kCSMkBGCF8LgMxEMOcaJpBdUqCK9XPMd+6qRpQ09F9kyoaqj5zW30SVvHo4z7sMXnAw2gn3QEmyX/kSnNFUOcA==","signatures":[{"sig":"MEQCICtp0isnpBigtgfurslkS+9G1BLLImCmc/BhKvRdAufFAiBxHYw0b4WlYsP8l61R09+0gRB3vQMTVxVNm+4+4QjLMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":892976},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"a1203f03eea9c9b2249104041eb34688180a7fbe","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:verify-slot-fix":"tsx utils/verify-slot-fix.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.1-alpha.4_1760311303107_0.03838460022096779","host":"s3://npm-registry-packages-npm-production"}},"1.20.2":{"name":"@oletizi/launch-control-xl3","version":"1.20.2","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.2","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"163bff49fa7993ac6ed6250c2869b96ba80efe69","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.2.tgz","fileCount":137,"integrity":"sha512-rk1DSL6X631jvt++O/sj08z4AHWgdxTQ78cy98Qw3EoO13W/T4dWvqL0Z1JNWtz1stslo8uo6Rw4sZa56sWRdw==","signatures":[{"sig":"MEYCIQDNO1jPJcvRlTNZ1tDDIbaiTcps439+uuqlMGiPt08+ZgIhAOZ/wIOSUSNQOIZB0LaI6AazhJLGVTqMeTjjVMMQq58x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":892968},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"7e374ae5ef026193f7676f79115c00854fcfc445","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:verify-slot-fix":"tsx utils/verify-slot-fix.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.2_1760313465254_0.3389841713976802","host":"s3://npm-registry-packages-npm-production"}},"1.20.6":{"name":"@oletizi/launch-control-xl3","version":"1.20.6","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.6","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"c62e7624201c9328a52aa67e343e6ec4828da66e","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.6.tgz","fileCount":137,"integrity":"sha512-YRgwUOIGEh+mRXhejIT0FGRGnLKFaN77r+1EpwHpI5uhu5Fj2DgVJqtmajrcnvfB4M4/4bMrQbk4TjA1P7yr2g==","signatures":[{"sig":"MEYCIQCXeqAcot6RlcYBicuwSfnTB6wkzhQI1kAsgiKSMNNykAIhALFhs9gM6hqsyeK5s2ReHdV3MVQBkQqyRmc54uk7srSe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":893023},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"598578ebf636f99ef04d986ab0a4e92b1c6a2b29","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:issue-36":"tsx utils/test-issue-36-fix.ts","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:verify-slot-fix":"tsx utils/verify-slot-fix.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.6_1760330934062_0.038940628109942255","host":"s3://npm-registry-packages-npm-production"}},"1.20.8":{"name":"@oletizi/launch-control-xl3","version":"1.20.8","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.8","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"cc4a636065daa11767d1883586c06d97e2096369","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.8.tgz","fileCount":137,"integrity":"sha512-gg2MNeAeWLe2H+dGzqHqzFrG+AbZ5Va5RGHZCYqIaNU6ZSxpRGTuhpdCHmZ55z73topeT9SoBcnd11wEx9s9OA==","signatures":[{"sig":"MEUCIQCYx3UU0K+/uv3yJKK5wo4TmnbbqqaiuCI2GdQp+AJ6FAIgSDUuR869PqNr7CXScluJc3LZy4VugYY858ujhC0GcDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":894532},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"a2cf0a615c09e1107cb4902d5eb169250b6a327a","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:issue-36":"tsx utils/test-issue-36-fix.ts","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run test/integration","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:verify-slot-fix":"tsx utils/verify-slot-fix.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@julusian/midi":"^3.6.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.8_1760332296510_0.12719192355548214","host":"s3://npm-registry-packages-npm-production"}},"1.20.10":{"name":"@oletizi/launch-control-xl3","version":"1.20.10","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.10","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"d260ed759042a9381e1ac36f18dba6fe5ac04c35","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.10.tgz","fileCount":137,"integrity":"sha512-Vl+jvt+wGLu96wYdAqEd2XN0uhZIrHhdkhT5lg/B376acxClnO4q5PcBcXvRFjL91F0PaGWInuLDuLLPoORuvw==","signatures":[{"sig":"MEUCIQCxBct26BZwgPsvSyRlbgfgAdz4Zu0mCyme2DuhYc/a+wIgX68CiW93eWq8Vlyx4pe5KH3od4O7AM7ATD/sdWpeFsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":897378},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"d641d36f4b264f9408e5431b6bc99a43541cddcb","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","env:help":"echo '\n📋 Integration Test Environment Setup:\n\n1. Start JUCE MIDI Server (required):\n   pnpm env:juce-server\n\n2. Start MIDI Spy (optional, for debugging):\n   pnpm env:midi-spy\n\n3. Run integration tests:\n   pnpm test:round-trip:node\n   pnpm backup\n\nServer runs on http://localhost:7777\n'","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","env:check":"tsx utils/check-test-environment.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","env:midi-spy":"cd ../../../../modules/coremidi/midi-snoop && make run","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:issue-36":"tsx utils/test-issue-36-fix.ts","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","env:juce-server":"cd ../../../../modules/juce/midi-server && make run","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:control-name":"tsx utils/test-control-name-send.ts","test:factory-copy":"tsx utils/test-factory-mode-copy.ts","test:simple-write":"tsx utils/test-simple-write.ts","test:handshake:node":"tsx utils/test-handshake-node.ts","web-automation:full":"tsx utils/test-web-automation.ts --mode=full --screenshots","web-automation:help":"tsx utils/test-web-automation.ts --help","test:fetch-mode:node":"tsx utils/test-fetch-custom-mode-node.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:verify-slot-fix":"tsx utils/verify-slot-fix.ts","web-automation:basic":"tsx utils/test-web-automation.ts --mode=basic --screenshots","test:integration:skip":"SKIP_HARDWARE_TESTS=true vitest run --config vitest.integration.config.ts","web-automation:device":"tsx utils/test-web-automation.ts --mode=device --screenshots","test:integration:force":"SKIP_HARDWARE_TESTS=false vitest run --config vitest.integration.config.ts","web-automation:actions":"tsx utils/test-web-automation.ts --mode=actions --screenshots","test:playwright:slot-fix":"playwright test test/integration/slot-selection.playwright.test.ts"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.10_1760565957613_0.3519690784698992","host":"s3://npm-registry-packages-npm-production"}},"1.20.16":{"name":"@oletizi/launch-control-xl3","version":"1.20.16","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.16","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"4dea9e8a9d414dfde192121e7e3aa0552ae0d31d","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.16.tgz","fileCount":137,"integrity":"sha512-QPii5POKTcakOtCAavvDuZ53L0e6WBawr9zR//nBZko0P1gYglvmZsdRmG34bDXVGnHH8lhbCJpdYZLtS+1UFQ==","signatures":[{"sig":"MEYCIQC79APhVodpHqLtd9N2klkOSRkabjv0PYg00/iBW/hn7AIhAK7TM7pxHDGDLkyXBA0dz39aIcrcBbxYCeuf6dyvO0Rk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":921718},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"cadc8e0b9e7741ad92a686ecfd361f242130f330","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:integration:skip":"SKIP_HARDWARE_TESTS=true vitest run --config vitest.integration.config.ts","test:integration:force":"SKIP_HARDWARE_TESTS=false vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"peerDependencies":{"midi":"^2.0.0"},"peerDependenciesMeta":{"midi":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.16_1760666734799_0.8433744246918267","host":"s3://npm-registry-packages-npm-production"}},"1.20.17":{"name":"@oletizi/launch-control-xl3","version":"1.20.17","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.17","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"d03de99898699c44be3023a019c1bb2a8d2e9074","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.17.tgz","fileCount":137,"integrity":"sha512-cV0HK5ZdkLGwlqCQnqJJLm637SCVKluRGBqvRLOuYNbXQLNh149h8fQn33pwoRac+aoacszLFxNPEYp9guI+AA==","signatures":[{"sig":"MEYCIQC2XSi/0tD5jnCiFVJH1pcxDNHXgZSIPydDx4ymt+GO2AIhAMb3OtqIRHubggeRORoeAGEMFMUaP7SuGvLo05mUWqfs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":871008},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"933c7fc5c1d8a2d0dbdad19a22fca4ea53cd1f36","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:integration:skip":"SKIP_HARDWARE_TESTS=true vitest run --config vitest.integration.config.ts","test:integration:force":"SKIP_HARDWARE_TESTS=false vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","midi":"^2.0.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.17_1760667282973_0.9152510468183794","host":"s3://npm-registry-packages-npm-production"}},"1.20.18-alpha.0":{"name":"@oletizi/launch-control-xl3","version":"1.20.18-alpha.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","_id":"@oletizi/launch-control-xl3@1.20.18-alpha.0","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"bin":{"lcxl3":"dist/cli/cli.js"},"dist":{"shasum":"5a735ce428dbcd64c1ba8f537ea104a12da5a6af","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.18-alpha.0.tgz","fileCount":137,"integrity":"sha512-cH1kSns2TGacDTML+WGjvynqxG3Dx9dB4Rdj14gIMGVZS9dsNWlyMwKsbcJX7vPF0weDOtlFeZYDnKg63eKmmw==","signatures":[{"sig":"MEUCIQCGLKdFv/9lH1HKKHSBeWe9EmePMcEjpCin9jtT4NPevQIgYQUD7eFtX6YMfw0cdMFYeZ82Ofc70RQb6fQHV2zKeok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":871903},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","default":"./dist/index.js"},"./cli":{"node":"./dist/cli/index.js","types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"}},"gitHead":"1d805f695b7535e8003ec01bc9b4846435e803c3","scripts":{"cli":"tsx src/cli/cli.ts","dev":"tsc -b --watch","lint":"eslint . --ext .ts,.tsx","test":"vitest run --coverage","build":"vite build","clean":"rm -rf dist *.tsbuildinfo","backup":"tsx utils/backup-current-mode.ts","lint:fix":"eslint . --ext .ts,.tsx --fix","test:all":"vitest run --config vitest.all.config.ts","test:fast":"vitest run --run","test:unit":"vitest run test/core test/device test/unit test/utils","typecheck":"tsc --noEmit","test:watch":"vitest --watch","example:leds":"tsx examples/led-animations.ts","example:basic":"tsx examples/basic-connection.ts","example:modes":"tsx examples/custom-modes.ts","test:coverage":"vitest --coverage","test:parallel":"vitest run --reporter=verbose --threads","prepublishOnly":"npm run clean && npm run build","test:slot-copy":"tsx utils/test-slot-copy.ts","example:mapping":"tsx examples/control-mapping.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:integration:skip":"SKIP_HARDWARE_TESTS=true vitest run --config vitest.integration.config.ts","test:integration:force":"SKIP_HARDWARE_TESTS=false vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"_npmVersion":"10.9.3","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","directories":{},"_nodeVersion":"22.19.0","dependencies":{"ora":"^7.0.1","zod":"^3.22.4","axios":"^1.12.2","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","commander":"^11.1.0","@types/axios":"^0.9.36","eventemitter3":"^5.0.1","@types/js-yaml":"^4.0.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jzz":"^1.9.6","tsx":"^4.7.0","midi":"^2.0.0","vite":"^5.0.0","vitest":"^1.2.0","easymidi":"^3.1.0","playwright":"^1.55.1","typescript":"^5.3.3","@types/node":"^20.11.0","vite-plugin-dts":"^4.5.4","@playwright/test":"^1.55.1","jazz-midi-headless":"^1.1.5","@vitest/coverage-v8":"^1.2.0","@oletizi/mulder-specs":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/launch-control-xl3_1.20.18-alpha.0_1760719812187_0.6411670381800165","host":"s3://npm-registry-packages-npm-production"}},"1.20.20-alpha.0":{"name":"@oletizi/launch-control-xl3","version":"1.20.20-alpha.0","description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"lcxl3":"dist/cli/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","browser":"./dist/index.js","node":"./dist/index.js","import":"./dist/index.js","default":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","node":"./dist/cli/index.js","import":"./dist/cli/index.js"}},"scripts":{"build":"vite build","clean":"rm -rf dist *.tsbuildinfo","dev":"tsc -b --watch","test":"vitest run --coverage","test:fast":"vitest run --run","test:parallel":"vitest run --reporter=verbose --threads","test:all":"vitest run --config vitest.all.config.ts","test:unit":"vitest run test/core test/device test/unit test/utils","test:integration":"vitest run --config vitest.integration.config.ts","test:integration:skip":"SKIP_HARDWARE_TESTS=true vitest run --config vitest.integration.config.ts","test:integration:force":"SKIP_HARDWARE_TESTS=false vitest run --config vitest.integration.config.ts","test:coverage":"vitest --coverage","test:watch":"vitest --watch","test:round-trip:node":"tsx utils/test-round-trip-node.ts","test:slot-copy":"tsx utils/test-slot-copy.ts","lint":"eslint . --ext .ts,.tsx","lint:fix":"eslint . --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","cli":"tsx src/cli/cli.ts","example:basic":"tsx examples/basic-connection.ts","example:leds":"tsx examples/led-animations.ts","example:modes":"tsx examples/custom-modes.ts","example:mapping":"tsx examples/control-mapping.ts","backup":"tsx utils/backup-current-mode.ts","prepublishOnly":"npm run clean && npm run build"},"keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"author":"","license":"Apache-2.0","engines":{"node":">=18"},"dependencies":{"@types/axios":"^0.9.36","@types/js-yaml":"^4.0.9","axios":"^1.12.2","chalk":"^5.3.0","commander":"^11.1.0","eventemitter3":"^5.0.1","inquirer":"^9.2.12","js-yaml":"^4.1.0","ora":"^7.0.1","zod":"^3.22.4"},"devDependencies":{"@oletizi/mulder-specs":"^0.6.0","@playwright/test":"^1.55.1","@types/node":"^20.11.0","@vitest/coverage-v8":"^1.2.0","easymidi":"^3.1.0","jazz-midi-headless":"^1.1.5","jzz":"^1.9.6","midi":"^2.0.0","playwright":"^1.55.1","tsx":"^4.7.0","typescript":"^5.3.3","vite":"^5.0.0","vite-plugin-dts":"^4.5.4","vitest":"^1.2.0"},"_id":"@oletizi/launch-control-xl3@1.20.20-alpha.0","readmeFilename":"README.md","gitHead":"fc5d9143536b2d24445f52013a394e91c67d1000","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-GV/PoL6h5aDo8ZdgSmti5diZXsRC80347+Jn3PVQQHcEOxZ0Mci01yNzZ6cwFJnk7Pijt3IbrYmapaLrPAczqA==","shasum":"a8b7c6cf7b7b98e01275233bf544fef9df8ccbed","tarball":"https://registry.npmjs.org/@oletizi/launch-control-xl3/-/launch-control-xl3-1.20.20-alpha.0.tgz","fileCount":137,"unpackedSize":880814,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEOVegvi1ZBUd/YcgsSrFaxunOxV1uNfAOhx56uWWsb5AiBG8SQCmvlJhJOkrY8LkNp9mdT0ZFxi0AiXbiJGy91GkA=="}]},"_npmUser":{"name":"oletizi","email":"oletizi@mac.com"},"directories":{},"maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/launch-control-xl3_1.20.20-alpha.0_1760982664830_0.6971004620090973"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-26T17:40:37.731Z","modified":"2025-10-20T17:51:05.223Z","1.0.1":"2025-09-26T17:40:38.111Z","1.0.8":"2025-09-27T17:04:01.346Z","1.0.9":"2025-09-27T17:07:19.354Z","1.0.10":"2025-09-27T17:11:56.673Z","1.0.11":"2025-09-27T17:17:29.169Z","1.0.12":"2025-09-27T17:20:39.484Z","1.1.0":"2025-09-27T20:50:20.228Z","1.6.0":"2025-09-28T23:07:36.535Z","1.7.0":"2025-09-29T01:14:56.149Z","1.8.0":"2025-09-29T01:17:06.812Z","1.9.0":"2025-09-29T18:50:25.355Z","1.12.0":"2025-09-30T23:15:47.621Z","1.13.0":"2025-09-30T23:46:52.425Z","1.14.0":"2025-10-01T00:19:05.380Z","1.15.0":"2025-10-01T00:37:00.533Z","1.16.0":"2025-10-01T01:34:40.116Z","1.17.0":"2025-10-01T01:46:10.473Z","1.19.0":"2025-10-01T02:40:49.446Z","1.20.0":"2025-10-01T04:55:28.051Z","2.0.0-alpha.2":"2025-10-10T18:53:29.334Z","1.20.1-alpha.0":"2025-10-10T19:10:39.182Z","1.20.1-alpha.1":"2025-10-10T19:18:23.561Z","1.20.1":"2025-10-10T19:29:49.292Z","1.20.1-alpha.3":"2025-10-12T17:54:22.152Z","1.20.1-alpha.4":"2025-10-12T23:21:43.341Z","1.20.2":"2025-10-12T23:57:45.457Z","1.20.6":"2025-10-13T04:48:54.352Z","1.20.8":"2025-10-13T05:11:36.750Z","1.20.10":"2025-10-15T22:05:57.886Z","1.20.16":"2025-10-17T02:05:35.087Z","1.20.17":"2025-10-17T02:14:43.220Z","1.20.18-alpha.0":"2025-10-17T16:50:12.418Z","1.20.20-alpha.0":"2025-10-20T17:51:05.014Z"},"license":"Apache-2.0","keywords":["novation","launch-control","xl3","midi","controller","sysex","audio","daw","typescript"],"description":"TypeScript library for Novation Launch Control XL 3 device control and MIDI mapping","maintainers":[{"name":"oletizi","email":"oletizi@mac.com"}],"readme":"","readmeFilename":""}