You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

node-autoit-koffi

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-autoit-koffi - npm Package Compare versions

Comparing version
1.0.5
to
1.0.7
+13
AGENTS.md
# AGENTS.md
PROJECT RULES AND CONVENTIONS
PACKAGE MANAGEMENT
- This project uses Bun as the package manager instead of npm or yarn
- Use `bun install` to install dependencies
- Use `bun add <package>` to add new dependencies
- Use `bun add -d <package>` to add dev dependencies
- Use `bun remove <package>` to remove dependencies
- Use `bun run <script>` to run scripts defined in package.json
- Do NOT use npm or yarn commands in this project
{
"$schema": "https://biomejs.dev/schemas/2.3.11/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": false,
"includes": ["src/**"]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 100
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"suspicious": {
"noExplicitAny": "off"
}
}
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"semicolons": "always",
"trailingCommas": "all"
}
}
}
{
"lockfileVersion": 1,
"configVersion": 1,
"workspaces": {
"": {
"name": "node-autoit-koffi",
"dependencies": {
"iconv-lite": "^0.6.3",
"koffi": "^2.8.0",
"lodash": "^4.17.21",
},
"devDependencies": {
"@biomejs/biome": "2.3.11",
"@types/node": "^20.11.19",
"rimraf": "^5.0.5",
"typescript": "^5.3.3",
},
},
},
"packages": {
"@biomejs/biome": ["@biomejs/biome@2.3.11", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.11", "@biomejs/cli-darwin-x64": "2.3.11", "@biomejs/cli-linux-arm64": "2.3.11", "@biomejs/cli-linux-arm64-musl": "2.3.11", "@biomejs/cli-linux-x64": "2.3.11", "@biomejs/cli-linux-x64-musl": "2.3.11", "@biomejs/cli-win32-arm64": "2.3.11", "@biomejs/cli-win32-x64": "2.3.11" }, "bin": { "biome": "bin/biome" } }, "sha512-/zt+6qazBWguPG6+eWmiELqO+9jRsMZ/DBU3lfuU2ngtIQYzymocHhKiZRyrbra4aCOoyTg/BmY+6WH5mv9xmQ=="],
"@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.11", "", { "os": "darwin", "cpu": "arm64" }, "sha512-/uXXkBcPKVQY7rc9Ys2CrlirBJYbpESEDme7RKiBD6MmqR2w3j0+ZZXRIL2xiaNPsIMMNhP1YnA+jRRxoOAFrA=="],
"@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.11", "", { "os": "darwin", "cpu": "x64" }, "sha512-fh7nnvbweDPm2xEmFjfmq7zSUiox88plgdHF9OIW4i99WnXrAC3o2P3ag9judoUMv8FCSUnlwJCM1B64nO5Fbg=="],
"@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.11", "", { "os": "linux", "cpu": "arm64" }, "sha512-l4xkGa9E7Uc0/05qU2lMYfN1H+fzzkHgaJoy98wO+b/7Gl78srbCRRgwYSW+BTLixTBrM6Ede5NSBwt7rd/i6g=="],
"@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.11", "", { "os": "linux", "cpu": "arm64" }, "sha512-XPSQ+XIPZMLaZ6zveQdwNjbX+QdROEd1zPgMwD47zvHV+tCGB88VH+aynyGxAHdzL+Tm/+DtKST5SECs4iwCLg=="],
"@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.11", "", { "os": "linux", "cpu": "x64" }, "sha512-/1s9V/H3cSe0r0Mv/Z8JryF5x9ywRxywomqZVLHAoa/uN0eY7F8gEngWKNS5vbbN/BsfpCG5yeBT5ENh50Frxg=="],
"@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.11", "", { "os": "linux", "cpu": "x64" }, "sha512-vU7a8wLs5C9yJ4CB8a44r12aXYb8yYgBn+WeyzbMjaCMklzCv1oXr8x+VEyWodgJt9bDmhiaW/I0RHbn7rsNmw=="],
"@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.11", "", { "os": "win32", "cpu": "arm64" }, "sha512-PZQ6ElCOnkYapSsysiTy0+fYX+agXPlWugh6+eQ6uPKI3vKAqNp6TnMhoM3oY2NltSB89hz59o8xIfOdyhi9Iw=="],
"@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.11", "", { "os": "win32", "cpu": "x64" }, "sha512-43VrG813EW+b5+YbDbz31uUsheX+qFKCpXeY9kfdAx+ww3naKxeVkTD9zLIWxUPfJquANMHrmW3wbe/037G0Qg=="],
"@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="],
"@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="],
"@types/node": ["@types/node@20.19.30", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g=="],
"ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="],
"ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="],
"balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
"brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
"color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
"cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
"eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="],
"emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="],
"foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="],
"glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="],
"iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
"is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
"isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
"jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="],
"koffi": ["koffi@2.15.0", "", {}, "sha512-174BTuWK7L42Om7nDWy9YOTXj6Dkm14veuFf5yhVS5VU6GjtOI1Wjf+K16Z0JvSuZ3/NpkVzFBjE1oKbthTIEA=="],
"lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="],
"lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
"minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
"minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="],
"package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="],
"path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
"path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="],
"rimraf": ["rimraf@5.0.10", "", { "dependencies": { "glob": "^10.3.7" }, "bin": { "rimraf": "dist/esm/bin.mjs" } }, "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ=="],
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
"shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
"shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
"signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="],
"string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="],
"string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
"strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="],
"strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
"undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
"which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
"wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="],
"wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="],
"string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
"string-width-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
"strip-ansi-cjs/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
"wrap-ansi-cjs/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
"wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
"wrap-ansi-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
"string-width-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
"wrap-ansi-cjs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
"wrap-ansi-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
}
}
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Development Commands
```bash
# Build (clean dist/ and compile TypeScript)
yarn build
# Build and run
yarn start
# Run tests (Node.js built-in test runner)
node examples/index.test.js
# Generate TypeScript bindings from AutoIt function definitions
node tools/generate_code.js
```
**Note:** No linting scripts are configured. Prettier is installed but has no format script.
## Architecture Overview
This is a **Node.js FFI wrapper for AutoIt's Windows automation library** using Koffi. It enables Windows GUI automation (mouse, keyboard, windows) from JavaScript/TypeScript.
**Data Flow:**
```
User Code → src/index.ts (Promise-wrapped exports) → Koffi FFI → AutoItX3 DLL → Windows API
```
**Key Components:**
- **src/index.ts** - Main entry point with 100+ exported AutoIt functions (mostly generated code)
- **src/util.ts** - DLL path selection (32/64-bit) and wide-string conversion
- **src/wchar.js** - UTF-16 string handling for Windows (adapted from ref-wchar, MIT)
- **tools/generate_code.js** - Code generator that creates TypeScript bindings from function definitions
- **dlls/** - Native AutoItX3 DLLs (32-bit and 64-bit versions)
**Critical Dependencies:**
- `koffi` - FFI library for native DLL calls
- `iconv-lite` - UTF-16 ↔ UTF-8 conversion
- `ref-napi` - Buffer/pointer manipulation
## Project-Specific Patterns
### Generated Code - Do Not Edit Directly
Most of `src/index.ts` is **generated** by `tools/generate_code.js`. Look for the `// Generated code:` comment. To add or modify AutoIt function bindings:
1. Edit the `autoitFunctions` object in `tools/generate_code.js`
2. Run `node tools/generate_code.js`
3. Rebuild with `yarn build`
### Lazy Function Loading Pattern
All FFI functions use lazy loading - bindings are created on first call and cached in the `fn` object:
```typescript
if (!fn.hasOwnProperty("functionName")) {
fn["functionName"] = lib.func("AU3_FunctionName", "returnType", ["paramTypes"]);
}
```
### Buffer Auto-Expansion for Strings
Functions returning strings (like `clipGet`) recursively double buffer size if content is truncated:
```typescript
if (content.length === nBufSize - 1) {
resolve(clipGet(nBufSize * 2)); // Recursive doubling
}
```
### Dual API Pattern
Most functions have two versions:
- String-based: `winActivate(szTitle, szText)` - searches for window
- Handle-based: `winActivateByHandle(hWnd)` - direct, more efficient
### Magic Constants
- `AU3_INTDEFAULT = -2147483647` - indicates "use default value" for optional parameters
- Example: `mouseClick("LEFT", AU3_INTDEFAULT, AU3_INTDEFAULT)` clicks at current position
### Wide Character Handling
Windows uses UTF-16LE. All string parameters use Koffi's `"string16"` type. Buffer allocations multiply by `wchar.size` (2 bytes).
### Output Parameters
Structs like Point/Rect are passed as output parameters using Koffi's `_Out_` prefix:
```typescript
fn["mouseGetPos"] = lib.func("AU3_MouseGetPos", "void", ["_Out_ LPPOINT*"]);
```
## Critical Requirements
1. **Windows Only** - Requires AutoItX DLL, no cross-platform support
2. **Must Call `init()` First** - Always `await autoit.init()` before using any functions
3. **All Functions Are Async** - Every function returns a Promise
4. **Architecture-Aware** - Automatically selects 32-bit or 64-bit DLL based on `os.arch()`
## Types
```typescript
type Point = { x: number; y: number };
type Rect = { left: number; top: number; right: number; bottom: number };
```
## Error Handling
- Functions don't validate parameters; rely on AutoIt DLL error codes
- Errors surface as Promise rejections
- Use `error()` function to get last AutoIt error code
## External Documentation
Function behavior and parameters: [AutoIt Documentation](https://www.autoitscript.com/autoit3/docs/functions/)
Function naming: `AU3_MouseMove` → `mouseMove` (camelCase conversion)
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}

@@ -1,4 +0,3 @@

/// <reference types="node" />
export declare const getDll: () => string | null;
export declare const getWString: (buf: Buffer) => any;
export declare const getWString: (buf: Buffer) => string;
//# sourceMappingURL=util.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";AAIA,eAAO,MAAM,MAAM,qBAWlB,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,MAAM,QAKrC,CAAC"}
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM,qBAWlB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,WAKrC,CAAC"}

@@ -18,9 +18,19 @@ "use strict";

});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -31,12 +41,12 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

exports.getWString = exports.getDll = void 0;
const os = __importStar(require("os"));
const node_path_1 = __importDefault(require("node:path"));
const os = __importStar(require("node:os"));
const wchar_1 = __importDefault(require("./wchar"));
const getDll = () => {
const libDir = node_path_1.default.join(__dirname, "../dlls");
const libDir = node_path_1.default.join(__dirname, '../dlls');
switch (os.arch()) {
case "ia32":
return node_path_1.default.join(libDir, "AutoItX3.dll");
case "x64":
return node_path_1.default.join(libDir, "AutoItX3_x64.dll");
case 'ia32':
return node_path_1.default.join(libDir, 'AutoItX3.dll');
case 'x64':
return node_path_1.default.join(libDir, 'AutoItX3_x64.dll');
}

@@ -48,3 +58,3 @@ return null;

for (let i = 0; i < buf.length; i += wchar_1.default.size) {
if (buf[i] == 0 && buf[i + 1] == 0)
if (buf[i] === 0 && buf[i + 1] === 0)
return wchar_1.default.toString(buf.slice(0, i));

@@ -51,0 +61,0 @@ }

@@ -1,16 +0,15 @@

declare const _exports: any;
export = _exports;
export const name: "wchar_t";
export const indirection: 1;
export function get(buf: any, offset: any): any;
export function set(buf: any, offset: any, val: any): any;
export const string: any;
export function toString(buffer: Buffer): string;
/**
* On Windows they're UTF-16 (2-bytes),
* but on Unix platform they're UTF-32 (4-bytes).
*/
export var size: number;
/**
* Turns a `wchar_t *` Buffer instance into a JavaScript String instance.
*
* TODO: add a way to optionally enable `-fshort-wchar` for Unix (gcc option).
* @param {Buffer} buffer - buffer instance to serialize
* @returns {string} - decoded string
* @public
*/
export var size: any;
declare function wcharToString(buffer: Buffer): string;
export { wcharToString as toString };
//# sourceMappingURL=wchar.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"wchar.d.ts","sourceRoot":"","sources":["../src/wchar.js"],"names":[],"mappings":";;;;AAkDc,gDAMb;AACa,0DAYb;;AAoCkB,iCAJR,MAAM,UAOhB;AArFD;;;;;GAKG;AAEH,qBAAS"}
{"version":3,"file":"wchar.d.ts","sourceRoot":"","sources":["../src/wchar.js"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,wBAAgD;AAYhD;;;;;;GAMG;AACH,uCAJW,MAAM,GACJ,MAAM,CAKlB"}
"use strict";
/*
This code is from ref-wchar by nathan
This code is based on ref-wchar by Nathan Rajlich

@@ -16,7 +16,2 @@ License

*/
/**
* Module dependencies.
*/
var ref = require('ref-napi');
//var Iconv = require('iconv').Iconv;
var iconv = require('iconv-lite');

@@ -26,68 +21,12 @@ /**

* but on Unix platform they're UTF-32 (4-bytes).
*
* TODO: add a way to optionally enable `-fshort-wchar` for Unix (gcc option).
*/
var size;
if ('win32' == process.platform) {
size = 2;
}
else {
size = 4;
}
var wchar_encoding = ('utf-' + (8 * size) + ref.endianness).toLowerCase();
//var getter = new Iconv('UTF-' + (8 * size) + ref.endianness, 'UTF-8');
//var setter = new Iconv('UTF-8', 'UTF-' + (8 * size) + ref.endianness);
var size = process.platform === 'win32' ? 2 : 4;
/**
* The `wchar_t` type.
* Detect system endianness using TypedArray
*/
exports = module.exports = Object.create(ref.types['int' + (8 * size)]);
exports.name = 'wchar_t';
exports.size = size;
exports.indirection = 1;
exports.get = function get(buf, offset) {
if (offset > 0 || buf.length !== exports.size) {
offset = offset | 0;
buf = buf.slice(offset, offset + size);
}
return exports.toString(buf);
};
exports.set = function set(buf, offset, val) {
var _buf = val; // assume val is a Buffer by default
if (typeof val === 'string') {
//_buf = setter.convert(val[0]);
_buf = iconv.encode(val[0], wchar_encoding);
}
else if (typeof val === 'number') {
//_buf = setter.convert(String.fromCharCode(val));
_buf = iconv.encode(String.fromCharCode(val), wchar_encoding);
}
else if (!_buf) {
throw new TypeError('muss pass a String, Number, or Buffer for `wchar_t`');
}
return _buf.copy(buf, offset, 0, size);
};
var endianness = (new Uint16Array(new Uint8Array([0x12, 0x34]).buffer))[0] === 0x3412 ? 'le' : 'be';
/**
* The "wchar_t *" type.
*
* We use the "CString" type as a base since it's pretty close to what we
* actually want. We just have to define custom "get" and "set" functions.
* Encoding string for iconv-lite (e.g., 'utf-16le' or 'utf-32le')
*/
exports.string = Object.create(ref.types.CString);
exports.string.name = 'WCString';
exports.string.get = function get(buf, offset) {
var _buf = buf.readPointer(offset);
if (_buf.isNull()) {
return null;
}
var stringBuf = _buf.reinterpretUntilZeros(exports.size);
return exports.toString(stringBuf);
};
exports.string.set = function set(buf, offset, val) {
var _buf = val; // val is a Buffer? it better be \0 terminated...
if ('string' == typeof val) {
//_buf = setter.convert(val + '\0');
_buf = iconv.encode(val + '\0', wchar_encoding);
}
return buf.writePointer(_buf, offset);
};
var wchar_encoding = `utf-${8 * size}${endianness}`;
/**

@@ -97,7 +36,11 @@ * Turns a `wchar_t *` Buffer instance into a JavaScript String instance.

* @param {Buffer} buffer - buffer instance to serialize
* @returns {string} - decoded string
* @public
*/
exports.toString = function toString(buffer) {
//return getter.convert(buffer).toString('utf8');
function wcharToString(buffer) {
return iconv.decode(buffer, wchar_encoding);
}
module.exports = {
size: size,
toString: wcharToString
};

@@ -0,0 +0,0 @@ const test = require("node:test");

{
"name": "node-autoit-koffi",
"version": "1.0.5",
"version": "1.0.7",
"description": "This Node.js module provides support for all AutoIt functions, allowing users to automate Windows GUI tasks seamlessly.",

@@ -10,3 +10,9 @@ "main": "dist/index.js",

"build": "rimraf dist && tsc",
"start": "npm run build && node dist/index.js"
"start": "bun run build && node dist/index.js",
"lint": "biome lint",
"lint:fix": "biome lint --write",
"format": "biome format --write",
"check": "biome check --write",
"prepublishOnly": "bun run build",
"publish:patch": "npm version patch --no-git-tag-version && npm publish --access public"
},

@@ -16,8 +22,7 @@ "dependencies": {

"koffi": "^2.8.0",
"lodash": "^4.17.21",
"ref-napi": "^3.0.3"
"lodash": "^4.17.21"
},
"devDependencies": {
"@biomejs/biome": "2.3.11",
"@types/node": "^20.11.19",
"prettier": "^3.2.5",
"rimraf": "^5.0.5",

@@ -24,0 +29,0 @@ "typescript": "^5.3.3"

@@ -27,3 +27,3 @@ # Node AutoIt Koffi

main().catch(console.error);
void main();
```

@@ -30,0 +30,0 @@

Sorry, the diff of this file is too big to display