Releases: forgesworn/farrier-kit
Releases · forgesworn/farrier-kit
Release list
v1.1.1
Fixed
isPrivateIpLiteralno longer fails open on scope-suffixed IPv6 literals:
a zone ID (fe80::1%lo0, as returned by mDNS, /etc/hosts or a custom
createPinnedFetchresolve seam) is stripped before classification, and an
unparseable string that still looks like an IPv6 literal now classifies as
private rather than public.createPinnedFetchrefuses plaintexthttp:by default. The pin proves you
reached the address you resolved, which means nothing on a cleartext channel.
Pass the newallowHttpoption for local development only.verifyInvoiceCommitmentvalidatesexpectedMsatsbefore the decode
attempt, so therequireDecodable: falsedeferral path refuses NaN,
fractional and negative amounts instead of reportingok: true.
Reproducible build: byte-identical output verified across two independent CI runners.
Artefact integrity
file: farrier-kit-1.1.1.tgz
size: 131450 bytes
sha256: 72aedf2d83c9cc013e056c843507a77ece5e5f0788ed68a027000a63b77362fc
sha512-j02M+spI2AGLI5m9Fq+Q/GimRcjzDue7ATC+IoontDigKkbXIkjEfLbD5N/HFVFuQG43U18iJwowBbA1EY1WMA==
Verify against the registry tarball:
curl -sLO https://registry.npmjs.org/farrier-kit/-/farrier-kit-1.1.1.tgz
shasum -a 256 farrier-kit-1.1.1.tgzv1.1.0
Added
farrier-kit/node: a Node-only, DNS-pinnedfetchfor resolving untrusted
LNURL and Lightning Address hosts on a server.createPinnedFetchreturns a
fetchImplforresolveLnurlPay,verifyLud21andcreateCapabilityProbe.
It resolves the hostname once, rejects the request if any answer is private,
loopback, link-local, reserved, documentation-only or multicast (IPv4 and
IPv6), and pins the socket to the approved address by overriding its DNS
lookup, so there is no second resolution for a rebinding race to win. The TLS
SNI, certificate check and Host header stay on the original hostname, and it
never follows redirects. This closes the DNS-rebinding window a check-then-
fetchurlGuardcannot. Browser and other entries are unchanged.
Notes
- The
/nodeentry is server-side I/O, not part of the language-neutral vector
contract; native ports implement their own pinning against the same IP policy.
Reproducible build: byte-identical output verified across two independent CI runners.
Artefact integrity
file: farrier-kit-1.1.0.tgz
size: 122129 bytes
sha256: 80f736ee6d2ccf9f1c04a63ef27a62f067740629e875da541a01554f24ce57b5
sha512-g8hZMLZ3ef0yrSEr22F9wovjr+LaggSUeOGFGLmAny8zAvRmc+f+OBSf58LtZJVUhoLeQ1i0eQyX6q7H5RzxtQ==
Verify against the registry tarball:
curl -sLO https://registry.npmjs.org/farrier-kit/-/farrier-kit-1.1.0.tgz
shasum -a 256 farrier-kit-1.1.0.tgzv1.0.1
First release published through forgesworn/anvil (OIDC trusted publishing, SLSA
provenance, reproducible-build attestation).
Added
./package.jsonis now an exported subpath, so tooling and
require('farrier-kit/package.json')resolve.
Changed
- CI actions pinned to commit SHAs, and anvil's action-pin audit runs strict.
Reproducible build: byte-identical output verified across two independent CI runners.
Artefact integrity
file: farrier-kit-1.0.1.tgz
size: 101387 bytes
sha256: 439f4f57c57f5561ef453de90e930e02b7a98e0996807a317ce1f21ca0d29b3d
sha512-4J0xrJZJERsnuntky8ntETt1iFnbaMPguru5jQbIl0//ym/iU6UHJ1t/2Y1zJeS/jvZsNhI2O9kCuRh/YceXSQ==
Verify against the registry tarball:
curl -sLO https://registry.npmjs.org/farrier-kit/-/farrier-kit-1.0.1.tgz
shasum -a 256 farrier-kit-1.0.1.tgz