Skip to content

Releases: nc-js/ip

v0.9.0

14 May 01:04

Choose a tag to compare

v0.9.0 Pre-release
Pre-release

Breaking changes

  • The package has been renamed to @nc/ip (formally @nc/whatwg-infra).
  • The types IpAddr and IpAddrValue are now exported under @nc/ip (formally @nc/net-addr/ip)
  • The types Ipv4Addr and Ipv4AddrIterator are now exported under @nc/ip/v4 (formally @nc/net-addr/ip)
  • The types Ipv6Addr, Ipv6AddrIterator, and Ipv6MulticastScope are now exported under @nc/ip/v4 (formally @nc/net-addr/ip)
  • The types Port, SocketAddr, SocketAddrValue, SocketAddrV4, and SocketAddrV6 are now exported under @nc/ip/socket (formally @nc/net-addr/socket).

Internal changes

  • Unit tests for socket-related types are now in separate files

v0.8.0

07 Dec 05:15
cf61dd4

Choose a tag to compare

v0.8.0 Pre-release
Pre-release

Breaking changes

  • IpAddr no longer has the methods isIpv4() and isIpv6(), as they are not usable as type guards in their current state. These methods may be re-introduced in the future.

Bug fixes

Two edge cases were fixed:

  • IpAddr can no longer recursively contain another IpAddr. It can now only contain either Ipv4Addr or Ipv6Addr.
  • SocketAddr can no longer recursively contain another SocketAddr. It can now only contain either SocketAddrV4 or SocketAddrV6.

Internal changes

  • IpAddr now has unit tests.

v0.7.7

07 Dec 03:21
eaae96f

Choose a tag to compare

v0.7.7 Pre-release
Pre-release

Features

  • IPv6Addr now returns its canonical string representation. This TypeScript implementation is ported over from Rust's implementation (impl fmt::Display for Ipv6Addr).

Internal changes

  • Ipv4Addr.tryNew() now has more extensive unit tests.

v0.7.6

29 Nov 20:51
1268b09

Choose a tag to compare

v0.7.6 Pre-release
Pre-release

Features

  • Ipv6Addr now has 3 new instance methods, tryFromUint8Array(), toIpv4() and toIpv4Mapped(). Their implementation and documentation are also ported from Rust's std::net module to TypeScript.
  • Ipv4Addr now has 2 new instance methods, toIpv6Compatible() and toIpv6Mapped(). Like above, these implementations are also ported from Rust's standard library.

v0.7.5

29 Nov 09:10
a731a19

Choose a tag to compare

v0.7.5 Pre-release
Pre-release

Documentation

  • The root module-level documentation now uses README.md which includes examples, instead of documentation in ./src/mod.ts (now removed).
  • Minor documentation fixes for SocketAddr, SocketAddrValue, SocketAddrV4, and SocketAddrV6.
  • Minor module-level documentation fixes for /socket and /ip for consistency.

v0.7.4

29 Nov 08:35
2531d14

Choose a tag to compare

v0.7.4 Pre-release
Pre-release

Documentation

  • Hack-fix links to method names referenced in IpAddr and IpAddrValue.

Internal changes

  • CI: The commands in the main CI workflow no longer has to be manually synced. They now use custom command aliases under deno task, including:
    • deno task check
    • deno task test
    • deno task htmldocs
    • deno task lintdocs

v0.7.3

29 Nov 08:34
e5b6f48

Choose a tag to compare

v0.7.3 Pre-release
Pre-release

Bug fixes

  • Renames a typo in a Port method name, changing Port.isDyanmic() to Port.isDynamic().
  • Renames the current MulticastScope type to Ipv6MulticastScope, since it only describes IPv6 addresses.

Documentation

  • Classes now have top-level code block examples of how they work.
  • Module files and the README.md file now have some brief, top-level documentation describing what they contain.
  • Symbols now have more internal links between each other, which should make it easier to navigate.
  • Documentation style and formatting is generally more consistent.

Internal changes

  • CI: The main CI workflow now also runs tests in all documentation code examples, not just in the README.md file.
  • CI: Fixes a minor typo in a step name of a GitHub Actions CI workflow.

v0.7.2

28 Nov 21:54
d56dec2

Choose a tag to compare

v0.7.2 Pre-release
Pre-release

Features

  • It is now possible to iterate through a range of IP addresses via Ipv4AddrIterator and Ipv6AddrIterator. This provides a slightly more optimized way of iterating versus calling Ipv4Addr.next()/Ipv6Addr.next(). Instead of having to constantly convert to/from a single integer to create a new IP address, the iterator stores that integer internally as a mutable state.

v0.7.1

28 Nov 01:17
4f6ae12

Choose a tag to compare

v0.7.1 Pre-release
Pre-release

Features

  • The Ipv6Addr class now exposes 2 instance methods, isDiscardOnly() and isIpv4Translated().

Documentation

  • The documentation for the Ipv6Addr.isIpv4Mapped() method now mentions its relevant RFC (RFC 4291).
  • The code example in README.md is now fixed.
  • The syntax highlighting in the install section is now fixed.

Internal

  • This also adds some unit tests for pre-existing methods, Ipv6Addr.tryNew() and Ipv6Addr.isIpv4Mapped().
  • .git-blame-ignore-revs file is now setup.
  • The CI workflow will now also run tests for any code examples set in README.md.

v0.7.0

28 Nov 04:12
f4ff5d4

Choose a tag to compare

v0.7.0 Pre-release
Pre-release

Breaking changes

  • Exports /ipv4 and /ipv6 were removed in favor of a new export, /ip. This exports all currently existing IP-related types: Ipv4Addr, Ipv6Addr, IpAddr, IpAddrValue, and MulticastScope.