{"_id":"@alysoid/ahk-build","_rev":"4-781fb5885220a6125c75c6459e95199b","name":"@alysoid/ahk-build","dist-tags":{"latest":"0.1.0","next":"0.1.0-rc.2"},"versions":{"0.1.0-rc.0":{"name":"@alysoid/ahk-build","version":"0.1.0-rc.0","keywords":["autohotkey","ahk","ahk2exe","build","wix","windows"],"author":{"name":"Andrea Brandi"},"license":"MIT","_id":"@alysoid/ahk-build@0.1.0-rc.0","maintainers":[{"name":"starise","email":"starise@gmail.com"}],"homepage":"https://github.com/alysoid/ahk-build#readme","bugs":{"url":"https://github.com/alysoid/ahk-build/issues"},"bin":{"ahk-build":"dist/cli.js"},"dist":{"shasum":"ed70f6bc9430c272a83277e325d2bd9ce54f70e4","tarball":"https://registry.npmjs.org/@alysoid/ahk-build/-/ahk-build-0.1.0-rc.0.tgz","fileCount":147,"integrity":"sha512-gOkwxnJEiZkR3Fvw7vVRs5X/JxLIqaqLostsxdIilWgwEOkc1C1v4GruuXI6papPwIZ4CUcGAZEgv9qk8R/X0w==","signatures":[{"sig":"MEUCIFbQpfu1qCwTmTDJbkMRZXIt7P+cxq92b2Lg2PXaDjVQAiEAhkCpo9lVbLbdcZdSVfCOV/7TwnOX1qj6BdJVde8lS0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152385},"type":"module","_from":"file:.artifacts/alysoid-ahk-build-0.1.0-rc.0.tgz","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsx src/cli.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build","clean":"node scripts/clean.mjs","format":"prettier --write . --list-different","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node scripts/pack-check.mjs","test:watch":"vitest","format:check":"prettier --check ."},"_npmUser":{"name":"starise","email":"starise@gmail.com"},"_resolved":"E:\\Sviluppo\\Windows\\ahk-build-npm-bootstrap\\.artifacts\\alysoid-ahk-build-0.1.0-rc.0.tgz","_integrity":"sha512-gOkwxnJEiZkR3Fvw7vVRs5X/JxLIqaqLostsxdIilWgwEOkc1C1v4GruuXI6papPwIZ4CUcGAZEgv9qk8R/X0w==","repository":{"url":"git+https://github.com/alysoid/ahk-build.git","type":"git"},"_npmVersion":"11.16.0","description":"A reproducible build, packaging, and release workflow for AutoHotkey v2 projects.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yazl":"^3.3.1","fflate":"^0.8.2","tinyglobby":"^0.2.17"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.5","eslint":"^10.8.0","vitest":"^4.1.10","globals":"^16.4.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"~6.0.3","@types/node":"^24.0.0","@types/yazl":"^2.4.5","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/ahk-build_0.1.0-rc.0_1786034139879_0.07717884582084555","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc.1":{"name":"@alysoid/ahk-build","version":"0.1.0-rc.1","keywords":["autohotkey","ahk","ahk2exe","build","wix","windows"],"author":{"name":"Andrea Brandi"},"license":"MIT","_id":"@alysoid/ahk-build@0.1.0-rc.1","maintainers":[{"name":"starise","email":"starise@gmail.com"}],"homepage":"https://github.com/alysoid/ahk-build#readme","bugs":{"url":"https://github.com/alysoid/ahk-build/issues"},"bin":{"ahk-build":"dist/cli.js"},"dist":{"shasum":"8b99df6c895fb10db5a32d11c7c86c451118b99b","tarball":"https://registry.npmjs.org/@alysoid/ahk-build/-/ahk-build-0.1.0-rc.1.tgz","fileCount":147,"integrity":"sha512-2opnNYSLcXkSotoct0dPSqMxHxwBaOPFnIzVuTHqtpLTRYFT9k3ktf6md01uEXf5FbwbJrs4cKhKg6Qans6mdQ==","signatures":[{"sig":"MEUCIQDe8PaQhzdjc+dUwNRCh0AsZA+1PzAIHYeeCP3I4CBccgIgOKbIsxFqqSyO6raTINBzQyKcyJIC5MpT87dOMPsHv/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alysoid%2fahk-build@0.1.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152467},"type":"module","_from":"file:/home/runner/work/ahk-build/ahk-build/.artifacts/alysoid-ahk-build-0.1.0-rc.1.tgz","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsx src/cli.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build","clean":"node scripts/clean.mjs","format":"prettier --write . --list-different","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node scripts/pack-check.mjs","test:watch":"vitest","format:check":"prettier --check .","tarball:smoke":"node scripts/tarball-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3ea37ae-716b-469a-b9d8-e4da83039c64"}},"_resolved":"/home/runner/work/ahk-build/ahk-build/.artifacts/alysoid-ahk-build-0.1.0-rc.1.tgz","_integrity":"sha512-2opnNYSLcXkSotoct0dPSqMxHxwBaOPFnIzVuTHqtpLTRYFT9k3ktf6md01uEXf5FbwbJrs4cKhKg6Qans6mdQ==","repository":{"url":"git+https://github.com/alysoid/ahk-build.git","type":"git"},"_npmVersion":"11.16.0","description":"A reproducible build, packaging, and release workflow for AutoHotkey v2 projects.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yazl":"^3.3.1","fflate":"^0.8.2","tinyglobby":"^0.2.17"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.22.5","eslint":"^10.8.0","vitest":"^4.1.10","globals":"^16.4.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"~6.0.3","@types/node":"^24.0.0","@types/yazl":"^2.4.5","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/ahk-build_0.1.0-rc.1_1786120519952_0.8830704830704943","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc.2":{"name":"@alysoid/ahk-build","version":"0.1.0-rc.2","keywords":["autohotkey","ahk","ahk2exe","build","wix","windows"],"author":{"name":"Andrea Brandi"},"license":"MIT","_id":"@alysoid/ahk-build@0.1.0-rc.2","maintainers":[{"name":"starise","email":"starise@gmail.com"}],"homepage":"https://github.com/alysoid/ahk-build#readme","bugs":{"url":"https://github.com/alysoid/ahk-build/issues"},"bin":{"ahk-build":"dist/cli.js"},"dist":{"shasum":"ed7af787ba96604e80045ac391c059257dc5f0a1","tarball":"https://registry.npmjs.org/@alysoid/ahk-build/-/ahk-build-0.1.0-rc.2.tgz","fileCount":147,"integrity":"sha512-8qocF1pFl+7YAsL9//4wkl4kAxu3z+8Hg2xf0TI4CstejuyTuOeBgWPwDBjL5U9LxHyk9dFSe5zF9swSS8A5lw==","signatures":[{"sig":"MEUCIEdoQF87aFruyxF9pTf/UjVvfZypskyLBiIRGX4IgJ7TAiEAl2epmNJcODCsy67WH03izma2Kz4cCG49gijABM5KJkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alysoid%2fahk-build@0.1.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152467},"type":"module","_from":"file:/home/runner/work/ahk-build/ahk-build/.artifacts/alysoid-ahk-build-0.1.0-rc.2.tgz","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsx src/cli.ts","lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build","clean":"node scripts/clean.mjs","format":"prettier --write . --list-different","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node scripts/pack-check.mjs","test:watch":"vitest","format:check":"prettier --check .","tarball:smoke":"node scripts/tarball-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3ea37ae-716b-469a-b9d8-e4da83039c64"}},"_resolved":"/home/runner/work/ahk-build/ahk-build/.artifacts/alysoid-ahk-build-0.1.0-rc.2.tgz","_integrity":"sha512-8qocF1pFl+7YAsL9//4wkl4kAxu3z+8Hg2xf0TI4CstejuyTuOeBgWPwDBjL5U9LxHyk9dFSe5zF9swSS8A5lw==","repository":{"url":"git+https://github.com/alysoid/ahk-build.git","type":"git"},"_npmVersion":"11.16.0","description":"A reproducible build, packaging, and release workflow for AutoHotkey v2 projects.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yazl":"^3.3.1","fflate":"^0.8.2","tinyglobby":"^0.2.17"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.22.5","eslint":"^10.8.0","vitest":"^4.1.10","globals":"^16.4.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"~6.0.3","@types/node":"^24.0.0","@types/yazl":"^2.4.5","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/ahk-build_0.1.0-rc.2_1786123036752_0.5761504058480842","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@alysoid/ahk-build","version":"0.1.0","description":"A reproducible build, packaging, and release workflow for AutoHotkey v2 projects.","keywords":["autohotkey","ahk","ahk2exe","build","wix","windows"],"license":"ISC","author":{"name":"Andrea Brandi"},"type":"module","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/alysoid/ahk-build.git"},"bugs":{"url":"https://github.com/alysoid/ahk-build/issues"},"homepage":"https://github.com/alysoid/ahk-build#readme","bin":{"ahk-build":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"engines":{"node":">=24"},"dependencies":{"fflate":"^0.8.2","tinyglobby":"^0.2.17","yazl":"^3.3.1","zod":"^4.4.3"},"devDependencies":{"@eslint/js":"^10.0.1","@types/node":"^24.0.0","@types/yazl":"^2.4.5","eslint":"^10.8.0","eslint-config-prettier":"^10.1.8","globals":"^16.4.0","prettier":"^3.9.6","tsx":"^4.22.5","typescript":"~6.0.3","typescript-eslint":"^8.65.0","vitest":"^4.1.10"},"publishConfig":{"access":"public","provenance":true},"scripts":{"dev":"tsx src/cli.ts","build":"tsc -p tsconfig.build.json","clean":"node scripts/clean.mjs","format":"prettier --write . --list-different","format:check":"prettier --check .","lint":"eslint .","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run","test:watch":"vitest","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build","pack:check":"node scripts/pack-check.mjs","tarball:smoke":"node scripts/tarball-smoke.mjs"},"_id":"@alysoid/ahk-build@0.1.0","_integrity":"sha512-zsmdEZs+OFg019hYL9pVykrcyFBV2A6hvOJcT5RU77WPfJDnRX/V7rC6lm8dgZ/PT0ex35XuogxUO5T9XHKkNA==","_resolved":"/home/runner/work/ahk-build/ahk-build/.artifacts/alysoid-ahk-build-0.1.0.tgz","_from":"file:/home/runner/work/ahk-build/ahk-build/.artifacts/alysoid-ahk-build-0.1.0.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-zsmdEZs+OFg019hYL9pVykrcyFBV2A6hvOJcT5RU77WPfJDnRX/V7rC6lm8dgZ/PT0ex35XuogxUO5T9XHKkNA==","shasum":"23e76241f440452fc7bee011c15d9f542437b12f","tarball":"https://registry.npmjs.org/@alysoid/ahk-build/-/ahk-build-0.1.0.tgz","fileCount":147,"unpackedSize":152189,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alysoid%2fahk-build@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDq+0lUasoSjKpCz2KDlNONJW7ZwbpbQ3zcp0T/uUzy8AiAQRp8wMV/6+Kw67Rvt6zYoh8I8hd60mOR13GTd85vHVQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3ea37ae-716b-469a-b9d8-e4da83039c64"}},"directories":{},"maintainers":[{"name":"starise","email":"starise@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ahk-build_0.1.0_1786139616086_0.05242626335043177"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-06T16:35:39.705Z","modified":"2026-08-07T21:53:36.589Z","0.1.0-rc.0":"2026-08-06T16:35:40.093Z","0.1.0-rc.1":"2026-08-07T16:35:20.107Z","0.1.0-rc.2":"2026-08-07T17:17:16.913Z","0.1.0":"2026-08-07T21:53:36.246Z"},"bugs":{"url":"https://github.com/alysoid/ahk-build/issues"},"author":{"name":"Andrea Brandi"},"license":"ISC","homepage":"https://github.com/alysoid/ahk-build#readme","keywords":["autohotkey","ahk","ahk2exe","build","wix","windows"],"repository":{"type":"git","url":"git+https://github.com/alysoid/ahk-build.git"},"description":"A reproducible build, packaging, and release workflow for AutoHotkey v2 projects.","maintainers":[{"name":"starise","email":"starise@gmail.com"}],"readme":"# @alysoid/ahk-build\n\nA Windows-first, reproducible build workflow for AutoHotkey v2 applications. The package keeps project configuration declarative while centralizing toolchain acquisition, compilation, portable archives, optional WiX installers, and GitHub releases.\n\n## Design goals\n\n- One application version, read from the consumer's `package.json`.\n- No mutation of the original `.ahk` source during builds.\n- Managed tools downloaded from upstream sources and verified by SHA-256.\n- A `system` provider for custom, Scoop, or manually installed tools.\n- Deterministic ZIP archives with sorted entries and normalized timestamps.\n- Optional WiX orchestration without generating or owning consumer `.wxs` files.\n- Shell-free process execution with argument arrays.\n- Useful validation on every platform; execution and compilation remain Windows-only.\n\n## Requirements\n\n- Node.js 24 or newer.\n- Windows for `setup`, `run`, `compile`, `build`, and `msi`.\n- WiX must be installed separately when `wix` is enabled.\n- GitHub CLI must be installed and authenticated for `release`.\n\n## Installation\n\n```bash\npnpm add -D @alysoid/ahk-build\n# or: npm install --save-dev @alysoid/ahk-build\n```\n\nCreate `ahk-build.config.ts`:\n\n```ts\nimport { defineConfig } from \"@alysoid/ahk-build\";\n\nexport default defineConfig({\n  entry: \"MyApp.ahk\",\n  app: {\n    name: \"My App\",\n    executable: \"MyApp.exe\",\n    artifactName: \"MyApp\",\n    description: \"A small AutoHotkey v2 application\",\n    publisher: \"Example Publisher\",\n    icon: \"assets/app.ico\",\n  },\n  compile: {\n    architecture: \"x64\",\n    compression: \"none\",\n  },\n  portable: {\n    files: [\n      { from: \"${buildDir}/MyApp.exe\", to: \"MyApp.exe\" },\n      \"LICENSE\",\n      { from: \"assets/runtime\", to: \"assets\" },\n    ],\n  },\n  wix: false,\n  release: false,\n});\n```\n\nAdd scripts:\n\n```json\n{\n  \"scripts\": {\n    \"doctor\": \"ahk-build doctor\",\n    \"setup\": \"ahk-build setup\",\n    \"dev\": \"ahk-build run\",\n    \"build\": \"ahk-build build\",\n    \"release\": \"ahk-build release\"\n  }\n}\n```\n\nThe default replacement changes every `__APP_VERSION__` token in the generated source to `package.json.version`. See [Configuration reference](docs/configuration.md) for all options.\n\n## Commands\n\n`doctor` validates configuration and referenced files, then reports toolchain status. `setup` installs the managed toolchain. `run` executes the source with AutoHotkey. `clean` removes generated project files. `compile` generates compiler metadata and builds the executable. `zip` creates the configured portable archive (`package` is an alias). `msi` invokes WiX when configured. `build` cleans, compiles, and creates each enabled artifact. `release` publishes existing configured assets through GitHub CLI.\n\nThe package's own npm and GitHub publication is handled by the tag-triggered Trusted Publishing workflow; consumer `release` commands do not publish this npm package.\n\nGlobal options include `--cwd`, `--config`, `--verbose`, `--force` for toolchain setup, and `--cache` for a full clean. Arguments after `--` are forwarded by `run` to the AHK script.\n\n## Documentation\n\n- [Configuration reference](https://github.com/alysoid/ahk-build/blob/main/docs/configuration.md)\n- [Toolchain model](https://github.com/alysoid/ahk-build/blob/main/docs/toolchain.md)\n- [Architecture](https://github.com/alysoid/ahk-build/blob/main/docs/architecture.md)\n- [Consumer migration checklist](https://github.com/alysoid/ahk-build/blob/main/docs/migration.md)\n- [Release checklist](https://github.com/alysoid/ahk-build/blob/main/docs/release-checklist.md)\n- [Architectural decisions](https://github.com/alysoid/ahk-build/tree/main/docs/decisions)\n\n## Development\n\n```bash\ncorepack enable\npnpm install\npnpm check\n```\n\nReal toolchain compilation tests are opt-in because they download Windows binaries:\n\n```powershell\n$env:AHK_BUILD_INTEGRATION = \"1\"\npnpm test\n```\n\nRepository invariants and required checks are documented in [AGENTS.md](https://github.com/alysoid/ahk-build/blob/main/AGENTS.md); module boundaries are documented in [Architecture](https://github.com/alysoid/ahk-build/blob/main/docs/architecture.md).\n","readmeFilename":"README.md"}