0.2.14 • Published 6 months ago

address-range v0.2.14

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

address-range

Install

npm install --save address-range
# or
yarn add address-range

API

AddressRange

class AddressRange {
  readonly startAddress: bigint
  readonly endAddress: bigint

  constructor(startAddress: bigint, endAddress: bigint)

  includes(address: bigint): boolean
  isSubSetOf(addressRange: AddressRange): boolean
  hasIntersectionOf(addressRange: AddressRange): boolean
  hasLeftIntersectionOf(addressRange: AddressRange): boolean
  hasRightIntersectionOf(addressRange: AddressRange): boolean
  toString(): string
}

IPv4AddressRange

class IPv4AddressRange extends AddressRange {
  static from(startAddress: string, endAddress: string): IPv4AddressRange
  static from(startAddress: string, hosts: number): IPv4AddressRange

  includes(address: string): boolean
  includes(address: bigint): boolean
  toString(): string
}

IPv6AddressRange

class IPv6AddressRange extends AddressRange {
  static from(startAddress: string, endAddress: string): IPv6AddressRange
  static from(startAddress: string, hosts: number): IPv6AddressRange

  includes(address: string): boolean
  includes(address: bigint): boolean
  toString(): string
}

concat

function concat<T extends AddressRange>(
  ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]

If the address ranges are concatenated at the beginning and end, concat the address ranges.

merge

function merge<T extends AddressRange>(
  ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]

If the address ranges have intersections, merge the address ranges.

removeSubsets

function removeSubsets<T extends AddressRange>(ranges: T[]): T[]

If the address range is a subset of another address range, remove the address range.

compress

function compress<T extends AddressRange>(
  ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]

Lossless compression of address ranges.

convertIPv4AddressBigIntToString

function convertIPv4AddressBigIntToString(address: bigint): string

convertIPv4AddressStringToBigInt

function convertIPv4AddressStringToBigInt(address: string): bigint

convertIPv6AddressBigIntToString

function convertIPv6AddressBigIntToString(address: bigint): string

convertIPv6AddressStringToBigInt

function convertIPv6AddressStringToBigInt(address: string): bigint
0.2.14

6 months ago

0.2.13

10 months ago

0.2.12

1 year ago

0.2.11

2 years ago

0.2.10

2 years ago

0.2.9

2 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.5

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.4

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago