ci / web (pull_request) Successful in 1m10s
ci / rust-arm64 (pull_request) Successful in 2m28s
ci / docs-site (pull_request) Successful in 1m23s
ci / bun-nix (pull_request) Successful in 26s
ci / rust (pull_request) Successful in 4m45s
nix / flake (pull_request) Successful in 15m6s
`sdk-v0.1.3` failed at the publish step with `bun2nix: command not found`, exit 127. Nothing was published, so 0.1.3 is still free. `bun publish` runs the `prepare` lifecycle script, and sdk's `prepare` is `bun2nix -o bun.nix` — regenerating the nix dependency file. That tool is a devDependency of the repo, not something the `oven/bun:1` publish container has, and the workflow's own install is `--ignore-scripts`, so nothing put it on PATH either. This was latent, not new. `prepare` gained the bun2nix call on 2026-07-27 (1db8f763, "move the bun packages to bun2nix"), while the last SDK publish was 0.1.2, bumped 2026-07-20. So the hook has been broken for every SDK release since it landed, and 0.1.3 is simply the first one to try. `@punktfunk/plugin-kit` has no `prepare` and was never affected, which is why kit 0.3.2 published fine in that window and hid this. The fix is NOT to copy `web/package.json`, which does the same job from `postinstall`. That is right for web — it is never published — and would be worse here: a published package's `postinstall` runs in every CONSUMER's install, so every plugin depending on `@punktfunk/host` would try to run bun2nix and fail. `prepare` is the correct hook for a published package (it does not run for consumers); it just must not assume a repo-maintenance tool exists wherever a publish happens. So the script skips when bun2nix is absent — and ONLY then. A present-but-failing bun2nix still fails the script, because swallowing that would publish with a silently stale bun.nix, which is the exact hand-maintained-hash problem1db8f763set out to end. Both directions measured against the same `sh -e` bun and the Gitea runner use: absent → exit 0, present-and-failing → exit 3. `bun publish --dry-run` now completes and reports `+ @punktfunk/host@0.1.3`.
63 lines
1.7 KiB
JSON
63 lines
1.7 KiB
JSON
{
|
|
"name": "@punktfunk/host",
|
|
"version": "0.1.3",
|
|
"description": "TypeScript SDK for the punktfunk streaming host: typed management-API client + lifecycle event stream, built on Effect.",
|
|
"type": "module",
|
|
"license": "MIT OR Apache-2.0",
|
|
"homepage": "https://git.unom.io/unom/punktfunk/src/branch/main/sdk",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://git.unom.io/unom/punktfunk.git",
|
|
"directory": "sdk"
|
|
},
|
|
"bugs": {
|
|
"url": "https://git.unom.io/unom/punktfunk/issues"
|
|
},
|
|
"keywords": ["punktfunk", "game-streaming", "automation", "sdk", "effect"],
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/index.d.ts",
|
|
"default": "./dist/index.js"
|
|
},
|
|
"./effect": {
|
|
"types": "./dist/effect.d.ts",
|
|
"default": "./dist/effect.js"
|
|
}
|
|
},
|
|
"bin": {
|
|
"punktfunk-scripting": "./dist/runner-cli.js"
|
|
},
|
|
"files": ["dist", "README.md"],
|
|
"publishConfig": {
|
|
"registry": "https://git.unom.io/api/packages/unom/npm/"
|
|
},
|
|
"scripts": {
|
|
"prepare": "if command -v bun2nix >/dev/null 2>&1; then bun2nix -o bun.nix; fi",
|
|
"gen": "openapigen --spec ../api/openapi.json --name Punktfunk --format httpclient > src/gen/punktfunk.ts",
|
|
"typecheck": "tsc --noEmit",
|
|
"build": "tsc -p tsconfig.build.json",
|
|
"test": "bun test",
|
|
"runner": "bun src/runner-cli.ts",
|
|
"prepublishOnly": "bun run build"
|
|
},
|
|
"peerDependencies": {
|
|
"effect": "^4.0.0-beta.98"
|
|
},
|
|
"devDependencies": {
|
|
"effect": "^4.0.0-beta.98",
|
|
"@effect/openapi-generator": "4.0.0-beta.98",
|
|
"@effect/platform-node": "4.0.0-beta.98",
|
|
"@types/bun": "^1.3.0",
|
|
"bun2nix": "2.1.2",
|
|
"typescript": "^5.9.3"
|
|
},
|
|
"optionalDependencies": {
|
|
"undici": "^7.0.0"
|
|
},
|
|
"overrides": {
|
|
"undici": "^8.9.0"
|
|
}
|
|
}
|