{"_id":"@bun-win32/uiautomationcore","_rev":"4-9c4f86e745b955b7e865897601b3fd5c","name":"@bun-win32/uiautomationcore","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@bun-win32/uiautomationcore","version":"1.0.0","keywords":["accessibility","automation","bindings","bun","dll","ffi","typescript","uiautomation","uiautomationcore","win32","windows"],"author":"Stev Peifer <stev@bell.net>","license":"MIT","_id":"@bun-win32/uiautomationcore@1.0.0","maintainers":[{"name":"obscuritysrl","email":"stev@bell.net"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"0f879a8ab465d8349e6244e843615b8afcba96b7","tarball":"https://registry.npmjs.org/@bun-win32/uiautomationcore/-/uiautomationcore-1.0.0.tgz","fileCount":6,"integrity":"sha512-FufCaSWa3LTbaW0aQh1zG40Q3B0xVQbde0wFYKIh1ZePQLRmUTOBSW41CltGNWcv0uWC3KFJ6mm93O7ZXZSFdQ==","signatures":[{"sig":"MEQCIFHJlEUnlHHNXESsObCRWHVCT83Iwf8RK8nMnTlWft5iAiAXWSIZQkM2zLGWnFKxIBFdUMeSoKrZoOEKcP/XPOdm9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57037},"main":"./index.ts","type":"module","module":"index.ts","shasum":"0f879a8ab465d8349e6244e843615b8afcba96b7","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"private":false,"scripts":{"example:focus-radar":"bun ./example/focus-radar.ts","example:pattern-probe":"bun ./example/pattern-probe.ts"},"_npmUser":{"name":"obscuritysrl","email":"stev@bell.net"},"_integrity":"sha512-FufCaSWa3LTbaW0aQh1zG40Q3B0xVQbde0wFYKIh1ZePQLRmUTOBSW41CltGNWcv0uWC3KFJ6mm93O7ZXZSFdQ==","repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/uiautomationcore"},"_npmVersion":"10.8.3","description":"Zero-dependency, zero-overhead Win32 UIAUTOMATIONCORE bindings for Bun (FFI) on Windows.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@bun-win32/core":"1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@bun-win32/user32":"3.0.20"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/uiautomationcore_1.0.0_1775784473748_0.5401038281616437","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bun-win32/uiautomationcore","version":"1.0.1","keywords":["accessibility","automation","bindings","bun","dll","ffi","typescript","uiautomation","uiautomationcore","win32","windows"],"author":"Stev Peifer <stev.p@outlook.com>","license":"MIT","_id":"@bun-win32/uiautomationcore@1.0.1","maintainers":[{"name":"obscuritysrl","email":"stev@bell.net"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"269919b017947ce72780e41143728d86475fc646","tarball":"https://registry.npmjs.org/@bun-win32/uiautomationcore/-/uiautomationcore-1.0.1.tgz","fileCount":6,"integrity":"sha512-52SNl4nm6WLxPw8reA7bnGcWpPrSWJe/vgjM+D2IHKDH6SUB0oEntxDaCcnjEVoASdWc8paPl0MI3cKnxXlnNA==","signatures":[{"sig":"MEQCIFpag4ksuGfuNBJnOr+xwQiQ0tzwqxolGfZ4E0hyG9HKAiAPA47GUmf83dyhOIdv41A/fktQFeYyAG7ZhX0tDH78LQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57883},"main":"./index.ts","type":"module","module":"index.ts","shasum":"269919b017947ce72780e41143728d86475fc646","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"private":false,"scripts":{"example:focus-radar":"bun ./example/focus-radar.ts","example:pattern-probe":"bun ./example/pattern-probe.ts"},"_npmUser":{"name":"obscuritysrl","email":"stev@bell.net"},"_integrity":"sha512-52SNl4nm6WLxPw8reA7bnGcWpPrSWJe/vgjM+D2IHKDH6SUB0oEntxDaCcnjEVoASdWc8paPl0MI3cKnxXlnNA==","repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/uiautomationcore"},"_npmVersion":"10.8.3","description":"Zero-dependency, zero-overhead Win32 UIAUTOMATIONCORE bindings for Bun (FFI) on Windows.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@bun-win32/core":"1.1.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@bun-win32/user32":"3.0.22"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/uiautomationcore_1.0.1_1781375315546_0.9470324410465945","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@bun-win32/uiautomationcore","version":"2.0.0","keywords":["accessibility","automation","bindings","bun","dll","ffi","typescript","uiautomation","uiautomationcore","win32","windows"],"author":"Stev Peifer <stev.p@outlook.com>","license":"MIT","_id":"@bun-win32/uiautomationcore@2.0.0","maintainers":[{"name":"obscuritysrl","email":"stev.p@outlook.com"}],"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dist":{"shasum":"f24002533872492c6c3f58454a9aaf887f204d27","tarball":"https://registry.npmjs.org/@bun-win32/uiautomationcore/-/uiautomationcore-2.0.0.tgz","fileCount":6,"integrity":"sha512-dkU5N77IYvrB65ya+cQYv3UVu4uXr4dAecTFIBKHARFif2S8lSbaHDSdyZHFKiF8lZ34mxhXV1u59W87SNrbfA==","signatures":[{"sig":"MEQCIBjgGYCY0xdIj5nMkLkHQRKd4qDhVQaKO5BMnzLQytmqAiAxHAFFu0lRMKbK4PgQy+1HmWfEpmOHclsnFiZ/Vj/pxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58918},"main":"./index.ts","type":"module","module":"index.ts","shasum":"f24002533872492c6c3f58454a9aaf887f204d27","engines":{"bun":">=1.1.0"},"exports":{".":"./index.ts"},"private":false,"scripts":{"example:focus-radar":"bun ./example/focus-radar.ts","example:pattern-probe":"bun ./example/pattern-probe.ts"},"_npmUser":{"name":"obscuritysrl","email":"stev.p@outlook.com"},"_integrity":"sha512-dkU5N77IYvrB65ya+cQYv3UVu4uXr4dAecTFIBKHARFif2S8lSbaHDSdyZHFKiF8lZ34mxhXV1u59W87SNrbfA==","repository":{"url":"git://github.com/ObscuritySRL/bun-win32.git","type":"git","directory":"packages/uiautomationcore"},"_npmVersion":"10.8.3","description":"Zero-dependency, zero-overhead Win32 UIAUTOMATIONCORE bindings for Bun (FFI) on Windows.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"@bun-win32/core":"2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@bun-win32/user32":"4.0.0"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/uiautomationcore_2.0.0_1782435971772_0.5085156164126037","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"author":"Stev Peifer <stev.p@outlook.com>","bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"dependencies":{"@bun-win32/core":"2.0.1"},"description":"Zero-dependency, zero-overhead Win32 UIAUTOMATIONCORE bindings for Bun (FFI) on Windows.","devDependencies":{"@bun-win32/user32":"4.0.1","@types/bun":"latest"},"exports":{".":"./index.ts"},"license":"MIT","module":"index.ts","name":"@bun-win32/uiautomationcore","peerDependencies":{"typescript":"^5"},"private":false,"homepage":"https://github.com/ObscuritySRL/bun-win32#readme","repository":{"type":"git","url":"git://github.com/ObscuritySRL/bun-win32.git","directory":"packages/uiautomationcore"},"type":"module","version":"2.0.1","main":"./index.ts","keywords":["accessibility","automation","bindings","bun","dll","ffi","typescript","uiautomation","uiautomationcore","win32","windows"],"sideEffects":false,"engines":{"bun":">=1.1.0"},"scripts":{"example:focus-radar":"bun ./example/focus-radar.ts","example:pattern-probe":"bun ./example/pattern-probe.ts"},"_id":"@bun-win32/uiautomationcore@2.0.1","_integrity":"sha512-XJ++ITlUUt78JT/UXoRb7mBFUIdErcelO12pUyNxdwi3nlBX7Sa3agp6vr7tEWlwDU1ThRYowiMZieEZAI8aOw==","_nodeVersion":"26.3.0","_npmVersion":"10.8.3","shasum":"ed6d74c5620d0c1f7d2db4ddbc21b6b8bf0447d4","dist":{"integrity":"sha512-XJ++ITlUUt78JT/UXoRb7mBFUIdErcelO12pUyNxdwi3nlBX7Sa3agp6vr7tEWlwDU1ThRYowiMZieEZAI8aOw==","shasum":"ed6d74c5620d0c1f7d2db4ddbc21b6b8bf0447d4","tarball":"https://registry.npmjs.org/@bun-win32/uiautomationcore/-/uiautomationcore-2.0.1.tgz","fileCount":6,"unpackedSize":58918,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDWaGYayaiMiVPvXTM6Ph2zXutRoLGfmBTfb0g6QdyEygIhAJNQJE8OFoxbwYTFjctsYXWiY4VEqaQaEP1xpHsVmkrR"}]},"_npmUser":{"name":"obscuritysrl","email":"stev.p@outlook.com"},"directories":{},"maintainers":[{"name":"obscuritysrl","email":"stev.p@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/uiautomationcore_2.0.1_1782438177688_0.9732063706280198"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-10T01:27:53.645Z","modified":"2026-06-26T01:42:58.003Z","1.0.0":"2026-04-10T01:27:53.877Z","1.0.1":"2026-06-13T18:28:35.814Z","2.0.0":"2026-06-26T01:06:11.921Z","2.0.1":"2026-06-26T01:42:57.844Z"},"bugs":{"url":"https://github.com/ObscuritySRL/bun-win32/issues"},"author":"Stev Peifer <stev.p@outlook.com>","license":"MIT","homepage":"https://github.com/ObscuritySRL/bun-win32#readme","keywords":["accessibility","automation","bindings","bun","dll","ffi","typescript","uiautomation","uiautomationcore","win32","windows"],"repository":{"type":"git","url":"git://github.com/ObscuritySRL/bun-win32.git","directory":"packages/uiautomationcore"},"description":"Zero-dependency, zero-overhead Win32 UIAUTOMATIONCORE bindings for Bun (FFI) on Windows.","maintainers":[{"name":"obscuritysrl","email":"stev.p@outlook.com"}],"readme":"# @bun-win32/uiautomationcore\n\nZero-dependency, zero-overhead Win32 UIAutomationCore bindings for [Bun](https://bun.sh) on Windows.\n\n## Overview\n\n`@bun-win32/uiautomationcore` exposes the documented flat `uiautomationcore.dll` exports using [Bun](https://bun.sh)'s FFI. It provides a single class, `UIAutomationCore`, which lazily binds native symbols on first use. You can optionally preload a subset or all symbols up-front via `Preload()`.\n\nThe bindings are strongly typed for a smooth DX in TypeScript.\n\n## Features\n\n- [Bun](https://bun.sh)-first ergonomics on Windows 10/11.\n- Direct FFI to `uiautomationcore.dll` (UI Automation nodes, pattern objects, provider bridging, and event plumbing).\n- In-source docs in `structs/UIAutomationCore.ts` with links to Microsoft Learn.\n- Lazy binding on first call; optional eager preload (`UIAutomationCore.Preload()`).\n- No wrapper overhead; calls map 1:1 to native APIs.\n- Strongly-typed Win32 aliases (see `types/UIAutomationCore.ts`).\n\n## Requirements\n\n- [Bun](https://bun.sh) runtime\n- Windows 10 or later\n\n## Installation\n\n```sh\nbun add @bun-win32/uiautomationcore\n```\n\n## Quick Start\n\n```ts\nimport UIAutomationCore from '@bun-win32/uiautomationcore';\n\nUIAutomationCore.Preload(['UiaClientsAreListening', 'UiaGetRootNode', 'UiaNodeRelease']);\n\nconsole.log('UIA clients listening:', UIAutomationCore.UiaClientsAreListening() !== 0);\n\nconst rootNodeBuffer = Buffer.alloc(8);\nconst result = UIAutomationCore.UiaGetRootNode(rootNodeBuffer.ptr!);\n\nif (result !== 0) {\n  throw new Error(`UiaGetRootNode failed: 0x${(result >>> 0).toString(16).padStart(8, '0')}`);\n}\n\nconst rootNode = rootNodeBuffer.readBigUInt64LE(0);\n\ntry {\n  console.log('Root node handle:', `0x${rootNode.toString(16)}`);\n} finally {\n  void UIAutomationCore.UiaNodeRelease(rootNode);\n}\n```\n\n> [!NOTE]\n> AI agents: see `AI.md` for the package binding contract and source-navigation guidance. It explains how to use the package without scanning the entire implementation.\n\n## Examples\n\nRun the included examples:\n\n```sh\nbun run example:focus-radar      # animate UIA availability for the foreground window\nbun run example:pattern-probe    # inspect common pattern providers on the active window\n```\n\n## Notes\n\n- Either rely on lazy binding or call `UIAutomationCore.Preload()`.\n- `VARIANT` and `UiaPoint` parameters are modeled as caller-packed buffers; allocate the native layout locally and pass `.ptr`.\n- Windows only. Bun runtime required.\n- **SAL types & naming:** nullability is in the **type** — `Optional<T>` (formally optional, SAL `_*opt_`) and `Nullable<T>` (plain `[in]`/`[out]` the docs say can be NULL), the null sentinel derived from `T` (`null` for pointers `LP*`/`P*`, `0n` for handles/by-value addresses); direction is in the **parameter name** — `_out` (`_Out_`), `_in_out` (`_Inout_`), `_In_` bare. See `AI.md` and the repo `AGENTS.md`.\n","readmeFilename":"README.md"}