Skip to content

Releases: forgesworn/farrier-kit

v1.1.1

Choose a tag to compare

@TheCryptoDonkey TheCryptoDonkey released this 09 Aug 14:26

Fixed

  • isPrivateIpLiteral no longer fails open on scope-suffixed IPv6 literals:
    a zone ID (fe80::1%lo0, as returned by mDNS, /etc/hosts or a custom
    createPinnedFetch resolve seam) is stripped before classification, and an
    unparseable string that still looks like an IPv6 literal now classifies as
    private rather than public.
  • createPinnedFetch refuses plaintext http: by default. The pin proves you
    reached the address you resolved, which means nothing on a cleartext channel.
    Pass the new allowHttp option for local development only.
  • verifyInvoiceCommitment validates expectedMsats before the decode
    attempt, so the requireDecodable: false deferral path refuses NaN,
    fractional and negative amounts instead of reporting ok: 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.tgz

v1.1.0

Choose a tag to compare

@TheCryptoDonkey TheCryptoDonkey released this 02 Aug 14:26

Added

  • farrier-kit/node: a Node-only, DNS-pinned fetch for resolving untrusted
    LNURL and Lightning Address hosts on a server. createPinnedFetch returns a
    fetchImpl for resolveLnurlPay, verifyLud21 and createCapabilityProbe.
    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-
    fetch urlGuard cannot. Browser and other entries are unchanged.

Notes

  • The /node entry 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.tgz

v1.0.1

Choose a tag to compare

@TheCryptoDonkey TheCryptoDonkey released this 02 Aug 13:01

First release published through forgesworn/anvil (OIDC trusted publishing, SLSA
provenance, reproducible-build attestation).

Added

  • ./package.json is 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