{"_id":"cidr-block","_rev":"15-21b2be5fb0bb6167d8dc0cfff952e9b4","name":"cidr-block","dist-tags":{"latest":"2.3.0"},"versions":{"1.0.0":{"name":"cidr-block","version":"1.0.0","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@1.0.0","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"8c7642cb249db879322b86b0ade4e8f5ca11eec2","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-1.0.0.tgz","fileCount":8,"integrity":"sha512-bOII902QaEmKp/gu4XLz6DYKk0QMjyzrHPXkBYqsB7JuCxR1NMyE30cBo2PSA8XMdBNA16D99xlOr1srzJZ3bg==","signatures":[{"sig":"MEQCIH8iMll1sZwPveaM1qhoMBhQWQepDOPaMh95pPt8+MEWAiAa37zyczJeC7ngnY3Zm/uuiIZaVimpZC5J0+Jw3Q+FNg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3972},"jest":{"roots":["<rootDir>/tests"],"preset":"ts-jest","transform":{"^.+\\.ts$":"ts-jest"},"testEnvironment":"node"},"main":"build/index.js","types":"build/src/index.d.ts","module":"build/index.esm.js","gitHead":"55b333b94d68d2abae5cede36439c86ddeb802b7","scripts":{"docs":"typedoc src/index.ts","lint":"eslint . --ext .ts","test":"jest","build":"rollup -c","format":"prettier --check **/*.ts","test:ui":"majestic","lint:fix":"eslint . --fix --ext .ts","prebuild":"rimraf build","format:fix":"prettier --write **/*.ts","test:watch":"jest --watch","build:watch":"rollup -cw"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"prettier":{"semi":false,"useTabs":false,"printWidth":100,"quoteProps":"as-needed","arrowParens":"avoid","singleQuote":true,"trailingComma":"none","bracketSpacing":true,"jsxSingleQuote":true,"bracketSameLine":true},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"7.21.1","description":"cidr range utils for allocating blocks of ip ranges using cidr notation","directories":{},"_nodeVersion":"16.9.1","eslintConfig":{"root":true,"parser":"@typescript-eslint/parser","extends":["eslint:recommended","plugin:@typescript-eslint/recommended"],"plugins":["@typescript-eslint"]},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","eslint":"^7.32.0","rimraf":"^3.0.2","rollup":"^2.58.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","majestic":"^1.8.1","prettier":"^2.4.1","typescript":"^4.4.3","@types/jest":"^27.0.2","@types/node":"^16.10.3","eslint-config-prettier":"^8.3.0","@rollup/plugin-typescript":"^8.2.5","@typescript-eslint/parser":"^4.33.0","@typescript-eslint/eslint-plugin":"^4.33.0"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_1.0.0_1633908854289_0.11046543522957819","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"cidr-block","version":"1.0.1","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@1.0.1","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"ae1559ff04d8540029c84158bb8d5f736a036fe0","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-1.0.1.tgz","fileCount":13,"integrity":"sha512-nlueS4ICvgK/AVFuaJTDjso/wOhhj4AV2iTXJ7bP9BDOVUt61aJauKuXyfFW/i/9D3+alhqw7cU9wNrjp8Nktw==","signatures":[{"sig":"MEYCIQCVPfpXTGuSBm3GLTKhpGAqwXTKYo8MWwz5Mw7YRn7K6AIhAPURqQKqdhq5fq2ksQvRgVCTo0wUAs+/DHmYBO5r32dV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20668},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":"ts-jest"},"testEnvironment":"node"},"main":"build/index.js","types":"build/src/index.d.ts","module":"build/index.esm.js","gitHead":"5435665690a24edfde5aa10eee5596f80ebdf3ac","scripts":{"docs":"typedoc src/index.ts","lint":"eslint . --ext .ts","test":"jest","build":"rollup -c","format":"prettier --check **/*.ts","test:ui":"majestic","lint:fix":"eslint . --fix --ext .ts","prebuild":"rimraf build","format:fix":"prettier --write **/*.ts","test:watch":"jest --watch","build:watch":"rollup -cw"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"prettier":{"semi":false,"useTabs":false,"printWidth":100,"quoteProps":"as-needed","arrowParens":"avoid","singleQuote":true,"trailingComma":"none","bracketSpacing":true,"jsxSingleQuote":true,"bracketSameLine":true},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"7.21.1","description":"cidr range utils for allocating blocks of ip ranges using cidr notation","directories":{},"_nodeVersion":"16.9.1","eslintConfig":{"root":true,"rules":{"prefer-const":"off","@typescript-eslint/no-non-null-assertion":"off"},"parser":"@typescript-eslint/parser","extends":["eslint:recommended","plugin:@typescript-eslint/recommended"],"plugins":["@typescript-eslint"]},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","eslint":"^7.32.0","rimraf":"^3.0.2","rollup":"^2.58.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","majestic":"^1.8.1","prettier":"^2.4.1","typescript":"^4.4.3","@types/jest":"^27.0.2","@types/node":"^16.10.3","eslint-config-prettier":"^8.3.0","@rollup/plugin-typescript":"^8.2.5","@typescript-eslint/parser":"^4.33.0","@typescript-eslint/eslint-plugin":"^4.33.0"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_1.0.1_1633920914460_0.626127704602977","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"cidr-block","version":"1.1.0","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@1.1.0","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"7c1e800f45dbf06d688b0389ce9e13e7448b8c3d","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-1.1.0.tgz","fileCount":16,"integrity":"sha512-riSECPWl23MNBP2E7sDnGeSzMIN72pc9wY6MHuQiBKKOhIvHIDGDR5sqR6Kgk7IGeqYMpjgIyn1+82GM5ZppYA==","signatures":[{"sig":"MEUCIQC5W7ZGQefUbhayr5mdmu4a6khwecgmMhoYdd7+sxQgYQIgHxL+Jr1imtRbnQu9NOzU3JPQ8JCPuS2YGNIDsoRg/vE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39761},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":"ts-jest"},"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100}},"collectCoverageFrom":["<rootDir>/src/**/*"]},"main":"build/index.js","types":"build/index.d.ts","module":"build/index.esm.js","gitHead":"337aff7ddd60ae52a4fe1e30798a96323aef59f0","scripts":{"docs":"typedoc src/index.ts","lint":"eslint . --ext .ts","test":"jest","build":"rollup -c","format":"prettier --check **/*.ts","predocs":"rimraf docs","test:ci":"jest --verbose --coverage","test:ui":"majestic","lint:fix":"eslint . --fix --ext .ts","prebuild":"rimraf build","test:cov":"jest --coverage","format:fix":"prettier --write **/*.ts","test:watch":"jest --watch","build:watch":"rollup -cw","test:verbose":"jest --verbose"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"prettier":{"semi":false,"useTabs":false,"printWidth":100,"quoteProps":"as-needed","arrowParens":"avoid","singleQuote":true,"trailingComma":"none","bracketSpacing":true,"jsxSingleQuote":true,"bracketSameLine":true},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"7.21.1","description":"ipv4 and ipv6 address and cidr range utilities","directories":{},"_nodeVersion":"16.9.1","eslintConfig":{"root":true,"rules":{"prefer-const":"off","@typescript-eslint/no-non-null-assertion":"off"},"parser":"@typescript-eslint/parser","extends":["eslint:recommended","plugin:@typescript-eslint/recommended"],"plugins":["@typescript-eslint"]},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","eslint":"^7.32.0","rimraf":"^3.0.2","rollup":"^2.58.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","majestic":"^1.8.1","prettier":"^2.4.1","typescript":"^4.4.3","@types/jest":"^27.0.2","@types/node":"^16.10.3","eslint-config-prettier":"^8.3.0","@rollup/plugin-typescript":"^8.2.5","@typescript-eslint/parser":"^4.33.0","@typescript-eslint/eslint-plugin":"^4.33.0"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_1.1.0_1633988748978_0.21543042364822806","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"cidr-block","version":"1.2.0","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@1.2.0","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"b448813af97fdd9dd69b13af45300fabcd1b2b97","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-1.2.0.tgz","fileCount":16,"integrity":"sha512-2sBGjOrqD4MuKjMyGBQnZXQ58lb1XDQGL8dX1Q07RaCjK5lQcSAJodLlCFmXLQQEVcH5BcA4gckApbBsWaR3Gg==","signatures":[{"sig":"MEQCIClq9LV2+EQ1e8Nsv4EtGFcispR7FaQ76nYbC9GclvEcAiBrz9N4E4qmhegx44FDigHEc4TwmSNYulDA83Zj05Gi7g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39799},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":"ts-jest"},"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100}},"collectCoverageFrom":["<rootDir>/src/**/*"]},"main":"build/index.js","types":"build/index.d.ts","module":"build/index.esm.js","gitHead":"335a0cfdcca68529ee57ba732635a864b4b99aba","scripts":{"docs":"typedoc src/index.ts","lint":"eslint . --ext .ts","test":"jest","build":"rollup -c","format":"prettier --check **/*.ts","predocs":"rimraf docs","test:ci":"jest --verbose","test:ui":"majestic","lint:fix":"eslint . --fix --ext .ts","prebuild":"rimraf build","test:cov":"jest --coverage","format:fix":"prettier --write **/*.ts","test:watch":"jest --watch","build:watch":"rollup -cw","test:verbose":"jest --verbose"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"prettier":{"semi":false,"useTabs":false,"printWidth":100,"quoteProps":"as-needed","arrowParens":"avoid","singleQuote":true,"trailingComma":"none","bracketSpacing":true,"jsxSingleQuote":true,"bracketSameLine":true},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"7.21.1","description":"ipv4 and ipv6 address and cidr range utilities","directories":{},"_nodeVersion":"16.9.1","eslintConfig":{"root":true,"rules":{"prefer-const":"off","@typescript-eslint/no-non-null-assertion":"off"},"parser":"@typescript-eslint/parser","extends":["eslint:recommended","plugin:@typescript-eslint/recommended"],"plugins":["@typescript-eslint"]},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","eslint":"^7.32.0","rimraf":"^3.0.2","rollup":"^2.58.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","majestic":"^1.8.1","prettier":"^2.4.1","typescript":"^4.4.3","@types/jest":"^27.0.2","@types/node":"^16.10.3","eslint-config-prettier":"^8.3.0","@rollup/plugin-typescript":"^8.2.5","@typescript-eslint/parser":"^4.33.0","@typescript-eslint/eslint-plugin":"^4.33.0"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_1.2.0_1634053535957_0.01424019895868156","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"cidr-block","version":"1.3.0","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@1.3.0","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"a7609435ee2dd9b58c81943817bcb59f72a1b1c2","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-1.3.0.tgz","fileCount":18,"integrity":"sha512-qIU4SHwA1hpfrOKKCggKFiPWd0SJQpfNRzpV7NB1vqi9G0rCEfjfUdFEfMHw+K3sfjy6OnrGubVGK9YtAQe9NA==","signatures":[{"sig":"MEUCIFrs03xrqkulnVL6Wvz5YNy8Lje/5Wuxe1814x5IshmcAiEAx7NYoob42JiXQ6G9I5tgkNJsyqrH75mojhJQolPzFhw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40611},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":"ts-jest"},"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100}},"collectCoverageFrom":["<rootDir>/src/**/*"]},"main":"build/index.js","types":"build/index.d.ts","module":"build/index.esm.js","gitHead":"a1ffc88c1103c8d19483164ffe968b5963c12ba3","scripts":{"docs":"typedoc src/index.ts","lint":"eslint . --ext .ts","test":"jest","build":"rollup -c","format":"prettier --check **/*.ts","predocs":"rimraf docs","test:ci":"jest --verbose","test:ui":"majestic","lint:fix":"eslint . --fix --ext .ts","prebuild":"rimraf build","test:cov":"jest --coverage","format:fix":"prettier --write **/*.ts","test:watch":"jest --watch","build:watch":"rollup -cw","test:verbose":"jest --verbose"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"prettier":{"semi":false,"useTabs":false,"printWidth":100,"quoteProps":"as-needed","arrowParens":"avoid","singleQuote":true,"trailingComma":"none","bracketSpacing":true,"jsxSingleQuote":true,"bracketSameLine":true},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"7.21.1","description":"ipv4 and ipv6 address and cidr range utilities","directories":{},"_nodeVersion":"16.9.1","eslintConfig":{"root":true,"rules":{"prefer-const":"off","@typescript-eslint/no-non-null-assertion":"off"},"parser":"@typescript-eslint/parser","extends":["eslint:recommended","plugin:@typescript-eslint/recommended"],"plugins":["@typescript-eslint"]},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","eslint":"^7.32.0","rimraf":"^3.0.2","rollup":"^2.58.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","majestic":"^1.8.1","prettier":"^2.4.1","typescript":"^4.4.3","@types/jest":"^27.0.2","@types/node":"^16.10.3","eslint-config-prettier":"^8.3.0","@rollup/plugin-typescript":"^8.2.5","@typescript-eslint/parser":"^4.33.0","@typescript-eslint/eslint-plugin":"^4.33.0"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_1.3.0_1634966356865_0.865177153231705","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"cidr-block","version":"1.3.1","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@1.3.1","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"67e8e6979fb4acd133eb86972d1491e12e5e9bee","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-1.3.1.tgz","fileCount":18,"integrity":"sha512-HiQegLnknfhrhazVP0qgaFpKGn1ns1SHGoRXBRiN9BgrEg1RoIqH1Mb1VzMXp55X23whskyhI8g8NZsQ2j1QIg==","signatures":[{"sig":"MEYCIQDi6pr3aMCgu/eUG/xDRfQP+zuf6iUFkOk2A46AfEhOcwIhAIxjfLjbtXk6Nnfbvg+tmpoOQH7I8e6hC5R0yGj7vO9G","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40429,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2l+ICRA9TVsSAnZWagAAJcEP/AwZZzYzLiMJoa4Ztmi6\nSUcGCQxgW3Jxa1uxuLYxIownrUPCT5Zm4PGNGkzVcHpzF50XeBWKFfL6CUcA\n3j9WiMWqIIMEPdkuTaSCex5vkc7aiAAvtuRL8I34lWHfVYl6Vq8dPBi/+r3P\nKVWe4rtmJ0WjRihyFOlcY81Fce/6hyFenXgr+ELgwtKuZAvjKP8kGH5mbPUY\nv+T5XggSEr6qHWYgk+SkAynkv6jPZR5mN84UoTQps02UI9QK8aVuYb6X/72h\nQB/bJFOAFXJOx6RJqJem5c9cAIgVpo+awuVJfpddckfeaX8D5V4ef+L0w6RS\nrxtPmP1K4UsivUbvGggtcbGPqVqN9ZnrwpAPRIY6/9I7BIuowQkhp4eSrfFx\noMtlpXXnsw+Wec88GIGGlUe+/iKiKtyoYlXMKYTXRgbDpl/JcKzhahRv1Z5k\nXMqZrxEZ+5ueJQi0ochZpxttA+pTWg/o+TRd/PKdnVeFPACfGkfAN6znM0j1\nI0LnbaeLERPAt0yCG+c4z5so9e/d5MkwTL9r4tkw8oQavoWyhv/LIuJ9+kUa\nIxvSbVt2ttg5nc6dtkoiJRyUfLoAo75yMXj/6uCQOBp1k/q7y5GiDa8P9LQQ\nzxGbUyrGQrSatkWAwwDft/ah6H0/3c+jLSkd82JVsN9x6AAHJT9Ay/bDxu9f\n7+7N\r\n=nodH\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":"ts-jest"},"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100}},"collectCoverageFrom":["<rootDir>/src/**/*"]},"main":"build/index.js","types":"build/index.d.ts","module":"build/index.esm.js","gitHead":"63c42b2405852ca109c19cc881a8beb4e456c2a8","scripts":{"docs":"typedoc src/index.ts","lint":"eslint . --ext .ts","test":"jest","build":"rollup -c","format":"prettier --check **/*.ts","predocs":"rimraf docs","test:ci":"jest --verbose","test:ui":"majestic","lint:fix":"eslint . --fix --ext .ts","prebuild":"rimraf build","test:cov":"jest --coverage","format:fix":"prettier --write **/*.ts","test:watch":"jest --watch","build:watch":"rollup -cw","test:verbose":"jest --verbose"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"prettier":{"semi":false,"useTabs":false,"printWidth":100,"quoteProps":"as-needed","arrowParens":"avoid","singleQuote":true,"trailingComma":"none","bracketSpacing":true,"jsxSingleQuote":true,"bracketSameLine":true},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"7.21.1","description":"ipv4 and ipv6 address and cidr range utilities","directories":{},"_nodeVersion":"16.9.1","eslintConfig":{"root":true,"rules":{"prefer-const":"off","@typescript-eslint/no-non-null-assertion":"off"},"parser":"@typescript-eslint/parser","extends":["eslint:recommended","plugin:@typescript-eslint/recommended"],"plugins":["@typescript-eslint"]},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","eslint":"^7.32.0","rimraf":"^3.0.2","rollup":"^2.58.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","majestic":"^1.8.1","prettier":"^2.4.1","typescript":"^4.4.3","@types/jest":"^27.0.2","@types/node":"^16.10.3","eslint-config-prettier":"^8.3.0","@rollup/plugin-typescript":"^8.2.5","@typescript-eslint/parser":"^4.33.0","@typescript-eslint/eslint-plugin":"^4.33.0"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_1.3.1_1634967599964_0.4490090048835136","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"cidr-block","version":"1.3.2","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@1.3.2","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"497dd60b27c727a714eab588d1138ac6bda7d764","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-1.3.2.tgz","fileCount":19,"integrity":"sha512-iSGWD+3BA24BhP6o+EoMltY9lMdN1b2Ao3R6lleLB6bar47VKDDUHJIpBG8dVAp/xTldugj0udoeoql8aqlBDg==","signatures":[{"sig":"MEQCIAxglU454dQfpYTeEMd1vQXqEGUgMIq8yq6uVaotig1FAiAln2dsdsMA7DD546wLUw+PZAoWqby9ySAzMlu4Hpd3oQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61224,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiagpLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqIzw/+PnJWUKFZxnPaT1kNMdZ6GfdeKdOLVCsSRZAWLekdbCGNq1Jo\r\nafsCNqRu1aF9RCP8ip6PDSc+J5dnhoBCATSQ80lPJzAdHPzME8XyKDJZ4PRD\r\ndkXDTpWP7iFBZe/w0Ym2ie2yxW2p+KsYMFDuQUzkAuX1mmqdTu6rWs8qH013\r\n/T/yeE72pNZ/lbXgPoynAD+TF8CI+F7i+g7A/tzXdqcRDZyk+jvKblCYV4C7\r\ngzDOnDkyp7xM3RSLsN9m6kVVszfivzY0fXsZE8pSDozANkZ7upQYQEUGKAMZ\r\nXUDdQt5zSUs++H0Gs2/1t9a+CPVmLMnLa5VxvW7aN4s8FKn+MorOq4uwPREP\r\n6mo9u920trp97HJ4iN6DsbH1lDJG93rzByFYP9j8corCtskhye9fTQ3i6EcE\r\noDQZhXHfGD6s3Jis5LKZncMyO9IfqQIPYtt+3xHUNTIH7VXbJOqACBLrhwmE\r\nTGVKUbBSKDxEk1JxhAFlv73R3B+aBqg0ynzMRprjGSi//vGXq21zS77tFmq0\r\n6T35o6Kdl5HmyDH9f7Tfc+Ji3mvdQz8V5eO8jpsMI7cXq6AcgLBDzu7/GnSP\r\nAxUjB9uPeaJ/T27VQeR5/aC5NIUnVT4rJqbuYkkWZ/S8LNWpn/tJgd86bA9A\r\nex0oyVYvufuh1DrdH4Zykkni3SmCjGH9IVs=\r\n=l2iJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":"ts-jest"},"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100}},"collectCoverageFrom":["<rootDir>/src/**/*"]},"main":"build/index.js","types":"build/index.d.ts","module":"build/index.esm.js","gitHead":"a8ac4b411598d0f44190759d2040270a861111ba","scripts":{"docs":"typedoc src/index.ts","lint":"eslint . --ext .ts","test":"jest","build":"rollup -c","format":"prettier --check **/*.ts","predocs":"rimraf docs","test:ci":"jest --verbose","test:ui":"majestic","lint:fix":"eslint . --fix --ext .ts","prebuild":"rimraf build","test:cov":"jest --coverage","format:fix":"prettier --write **/*.ts","test:watch":"jest --watch","build:watch":"rollup -cw","test:verbose":"jest --verbose"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"prettier":{"semi":false,"useTabs":false,"printWidth":100,"quoteProps":"as-needed","arrowParens":"avoid","singleQuote":true,"trailingComma":"none","bracketSpacing":true,"jsxSingleQuote":true,"bracketSameLine":true},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"8.5.1","description":"ipv4 and ipv6 address and cidr range utilities","directories":{},"_nodeVersion":"17.6.0","eslintConfig":{"root":true,"rules":{"prefer-const":"off","@typescript-eslint/no-non-null-assertion":"off"},"parser":"@typescript-eslint/parser","extends":["eslint:recommended","plugin:@typescript-eslint/recommended"],"plugins":["@typescript-eslint"]},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","eslint":"^7.32.0","rimraf":"^3.0.2","rollup":"^2.58.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","majestic":"^1.8.1","prettier":"^2.4.1","typescript":"^4.4.3","@types/jest":"^27.0.2","@types/node":"^16.10.3","eslint-config-prettier":"^8.3.0","@rollup/plugin-typescript":"^8.2.5","@typescript-eslint/parser":"^4.33.0","@typescript-eslint/eslint-plugin":"^4.33.0"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_1.3.2_1651116618925_0.6381767117819677","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"cidr-block","version":"2.0.0","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@2.0.0","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"3ed8b0af4a31d5cd828e92eeb2a798386ad86bea","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-2.0.0.tgz","fileCount":62,"integrity":"sha512-Qw5jTbc+zL8gxwA5dfhKLHHXylrNeXodNI7fsRvvIlFjoJKUod/wN3y05LRWNU32tPWKQux8Krm3et+Vqk417g==","signatures":[{"sig":"MEQCIHVVoQ6TAc3V4V3rDGR7tkGb3Hl2bl06ODoNMJ+E5oO/AiAugDy3E/3QPUUFulKXnCjhagcR0IC8H3A6ZJUM8O9LKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423523},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=16"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}}},"gitHead":"606207426aff217db6cd4b8ad73c70ced6c1bed8","scripts":{"lint":"biome check","build":"rollup -c","docgen":"typedoc","format":"biome format","lint:fix":"biome check --fix","prebuild":"rimraf dist","format:fix":"biome format --fix"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"10.9.3","description":"IPv4 and IPv6 address and cidr range utilities","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"typedoc":"^0.28.14"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.1.2","rollup":"^4.53.3","vitest":"^4.0.13","typescript":"^5.9.3","@biomejs/biome":"^2.3.7","rollup-plugin-dts":"^6.2.3","typedoc-github-theme":"^0.3.1","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_2.0.0_1763941333776_0.46555642111132656","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"cidr-block","version":"2.0.1","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@2.0.1","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"cfd2a021db6ae6946b8e312aae66932aab9106e0","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-2.0.1.tgz","fileCount":62,"integrity":"sha512-dHuyhCZ0Cwmvzl1lFQ8ZVEtQ2E1+YJOERR6CyClG6LELOkDxC+xOHT3XrDoJKkKA+x9uVl7EBtDrU5LbtFxUVw==","signatures":[{"sig":"MEYCIQCiE0mf3oLcQamYq1WOyYIoTsZLwzyoC4bZYjrSsEVbYwIhAM40syYvArZqICvtU6RIwkl2SYA6VGZkUOBJlYbHzkBJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423577},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=16"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}}},"gitHead":"6f85062eb057141b6f22f7c759d1566780fd2cd4","scripts":{"lint":"biome check","build":"rollup -c","docgen":"typedoc","format":"biome format","lint:fix":"biome check --fix","prebuild":"rimraf dist","format:fix":"biome format --fix"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"10.9.3","description":"IPv4 and IPv6 address and cidr range utilities","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.1.2","rollup":"^4.53.3","vitest":"^4.0.13","typedoc":"^0.28.14","typescript":"^5.9.3","@biomejs/biome":"^2.3.7","rollup-plugin-dts":"^6.2.3","typedoc-github-theme":"^0.3.1","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_2.0.1_1764045857118_0.5179801451647725","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"cidr-block","version":"2.1.0","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@2.1.0","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"38b88a0e18e49e88435900197af5a914d069cee1","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-2.1.0.tgz","fileCount":62,"integrity":"sha512-I165U2VA42//yzpxtJlpBPR+j99ptYZJ8W4kilUELPJg/LZpvcis2NPdUd9+cIb3+9dLORmvntwXf63pthbgEA==","signatures":[{"sig":"MEUCIEXYqZxlHXmGu8lKpy63jPzt7lN8wT0jIyHoJDBfjtV1AiEAkyH99v9BcOmADJrIDDAQg2UuyNQSPSx8UE1VcI1rVKc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423671},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=16"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}}},"gitHead":"5a530c12e0d930e835d67c3ea91e881b56c1972b","scripts":{"lint":"biome check","test":"vitest","build":"rollup -c","docgen":"typedoc","format":"biome format","lint:fix":"biome check --fix","prebuild":"rimraf dist","format:fix":"biome format --fix","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"10.9.3","description":"IPv4 and IPv6 address and cidr range utilities","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.1.2","rollup":"^4.53.3","vitest":"^4.0.13","typedoc":"^0.28.14","typescript":"^5.9.3","@biomejs/biome":"^2.3.7","rollup-plugin-dts":"^6.2.3","@vitest/coverage-v8":"^4.0.14","typedoc-github-theme":"^0.3.1","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_2.1.0_1764115047543_0.8003815675215018","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"cidr-block","version":"2.1.1","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@2.1.1","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"bd5b0865450b90c4746f912b2ec36b3a59f65f01","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-2.1.1.tgz","fileCount":62,"integrity":"sha512-RkziZtszm9Zer7e1F4ZYGfHfWjMeDDCjliyh1VIq3DBeUjygMN5X4kQTVpNnqBEyYHuhA8FGGT8UXZ50kq5bIw==","signatures":[{"sig":"MEQCIDMYOB2mpOZJt2AXclBe1K6paue0+/VmM85+q3zuSczcAiBiXkyyTXA8cso2704uGpurBVRaF2k0J+7glpT7ofXmTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405345},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=16"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}}},"gitHead":"188f9062c6229aa3120e287af989794e1ffd6912","scripts":{"lint":"biome check","test":"vitest","build":"rollup -c","docgen":"typedoc","format":"biome format","lint:fix":"biome check --fix","prebuild":"rimraf dist","format:fix":"biome format --fix","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"10.9.3","description":"IPv4 and IPv6 address and cidr range utilities","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.1.2","rollup":"^4.53.3","vitest":"^4.0.13","typedoc":"^0.28.14","typescript":"^5.9.3","@biomejs/biome":"^2.3.7","rollup-plugin-dts":"^6.2.3","@vitest/coverage-v8":"^4.0.14","typedoc-github-theme":"^0.3.1","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_2.1.1_1764119840761_0.6319180178315622","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"cidr-block","version":"2.2.0","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","_id":"cidr-block@2.2.0","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"homepage":"https://cidr-block.com","bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"dist":{"shasum":"527edcd91ce33f5774ceb23b7f9d0dbbd8696495","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-2.2.0.tgz","fileCount":62,"integrity":"sha512-akclx+79HKXYoiJRn9JUpyCwuFgUt8UfGyuFpLVxqwiUZy0750Ak7Br/Ide/hXLTp9UF2EU2OrmtVsjB9dt6WQ==","signatures":[{"sig":"MEQCIGpquq2UQFzWelU6zyT1l3DnaqLFqzm7ScVTZ0TjzNKIAiAfWTB3uWASm2MzdCWSQquEdhwc/t1Eex/9O3lJ9YUjfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":420616},"main":"./dist/cjs/index.cjs","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=16"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}}},"gitHead":"1f63f81c2b5075d9b17bb96af846ba4043456dff","scripts":{"lint":"biome check","test":"vitest","build":"rollup -c","docgen":"typedoc","format":"biome format","lint:fix":"biome check --fix","prebuild":"rimraf dist","format:fix":"biome format --fix","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"repository":{"url":"git+https://github.com/BrandonBurrus/cidr-block.git","type":"git"},"_npmVersion":"10.9.3","description":"IPv4 and IPv6 address and cidr range utilities","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.1.2","rollup":"^4.53.3","vitest":"^4.0.13","typedoc":"^0.28.14","typescript":"^5.9.3","@biomejs/biome":"^2.3.7","rollup-plugin-dts":"^6.2.3","@vitest/coverage-v8":"^4.0.14","typedoc-github-theme":"^0.3.1","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/cidr-block_2.2.0_1768679691532_0.1822506059379394","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"cidr-block","description":"IPv4 and IPv6 address and cidr range utilities","version":"2.3.0","license":"MIT","author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"homepage":"https://cidr-block.com","repository":{"type":"git","url":"git+https://github.com/BrandonBurrus/cidr-block.git"},"bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"type":"module","main":"./dist/cjs/index.cjs","module":"./dist/esm/index.js","types":"./dist/esm/index.d.ts","exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}}},"sideEffects":false,"engines":{"node":">=16"},"scripts":{"prebuild":"rimraf dist","build":"rollup -c","docgen":"typedoc","lint":"biome check","lint:fix":"biome check --fix","format":"biome format","format:fix":"biome format --fix","test":"vitest","test:watch":"vitest --watch","test:coverage":"vitest --coverage"},"keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"devDependencies":{"@biomejs/biome":"^2.3.7","@rollup/plugin-node-resolve":"^16.0.3","@rollup/plugin-typescript":"^12.3.0","@vitest/coverage-v8":"^4.0.14","rimraf":"^6.1.2","rollup":"^4.53.3","rollup-plugin-dts":"^6.2.3","tslib":"^2.8.1","typedoc":"^0.28.14","typedoc-github-theme":"^0.3.1","typescript":"^5.9.3","vitest":"^4.0.13"},"_id":"cidr-block@2.3.0","gitHead":"1f63f81c2b5075d9b17bb96af846ba4043456dff","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-U5NE6QJKNOhIsVrI6sicbwGtEmEORbrz9B5Mbl+Mi05sz1Ic4egoLGV4DkJp56VWva61WxOf+vzIxTKEmRazqg==","shasum":"8ae649fb389c09c7b02427da1655ac59be9b0d42","tarball":"https://registry.npmjs.org/cidr-block/-/cidr-block-2.3.0.tgz","fileCount":62,"unpackedSize":427788,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIChKO0CAn1vyc9HRuNw/SMwaG2vesQZE1yvEUlvwsT4OAiEA9HA7r3gCeR3tyS407nAWTIg+yMyLRw+zwEzWyN2q+yw="}]},"_npmUser":{"name":"brandonburrus","email":"brandon@burrus.io"},"directories":{},"maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cidr-block_2.3.0_1768681099056_0.7307447946562446"},"_hasShrinkwrap":false}},"time":{"created":"2021-10-10T23:34:14.288Z","modified":"2026-01-17T20:18:19.346Z","1.0.0":"2021-10-10T23:34:14.415Z","1.0.1":"2021-10-11T02:55:14.640Z","1.1.0":"2021-10-11T21:45:49.126Z","1.2.0":"2021-10-12T15:45:36.092Z","1.3.0":"2021-10-23T05:19:16.997Z","1.3.1":"2021-10-23T05:40:00.121Z","1.3.2":"2022-04-28T03:30:19.066Z","2.0.0":"2025-11-23T23:42:13.965Z","2.0.1":"2025-11-25T04:44:17.319Z","2.1.0":"2025-11-25T23:57:27.747Z","2.1.1":"2025-11-26T01:17:20.942Z","2.2.0":"2026-01-17T19:54:51.700Z","2.3.0":"2026-01-17T20:18:19.216Z"},"bugs":{"url":"https://github.com/BrandonBurrus/cidr-block/issues"},"author":{"name":"Brandon Burrus","email":"brandon@burrus.io"},"license":"MIT","homepage":"https://cidr-block.com","keywords":["aws","azure","cidr","cloud","devops","gcp","infrastructure","ip","ip-address","network","networking","vpc"],"repository":{"type":"git","url":"git+https://github.com/BrandonBurrus/cidr-block.git"},"description":"IPv4 and IPv6 address and cidr range utilities","maintainers":[{"name":"brandonburrus","email":"brandon@burrus.io"}],"readme":"IPv4 and IPv6 address and CIDR range utilities for JavaScript and TypeScript.\n\n## Installation\n\n```bash\nnpm install cidr-block\n```\n\n## Features\n\n- Full IPv4 and IPv6 address support\n- CIDR block creation and manipulation\n- Address validation and parsing\n- Network calculations (netmask, hostmask, address count, usable addresses)\n- Subnetting operations\n- Address type detection (private, loopback, multicast, etc.)\n- Full TypeScript support with comprehensive type definitions\n- Zero dependencies\n- Works with ESM and CommonJS\n\n## Quick Start\n\n```typescript\nimport { ipv4, ipv6 } from 'cidr-block';\n\n// Create and work with IPv4 addresses\nconst addr = ipv4.address('192.168.1.1');\nconsole.log(addr.isPrivateAddress()); // true\n\n// Create and work with CIDR blocks\nconst cidr = ipv4.cidr('10.0.0.0/16');\nconsole.log(cidr.addressCount()); // 65536\n\n// IPv6 works the same way\nconst v6addr = ipv6.address('2001:db8::1');\nconsole.log(v6addr.toString()); // \"2001:db8::1\"\n```\n\n## API Reference\n\nFull documentation can be found at [cidr-block.com](https://cidr-block.com).\n\n### IPv4\n\n#### Creating Addresses\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\n// From string\nconst addr1 = ipv4.address('192.168.1.1');\n\n// From number\nconst addr2 = ipv4.address(3232235777);\n\n// From octet array\nconst addr3 = ipv4.address([192, 168, 1, 1]);\n```\n\n#### Address Validation\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nipv4.isValidAddress('192.168.1.1');     // true\nipv4.isValidAddress('256.1.1.1');       // false\nipv4.isValidAddress([10, 0, 0, 1]);     // true\nipv4.isValidAddress(4294967295);        // true (255.255.255.255)\nipv4.isValidAddress(4294967296);        // false (exceeds max)\n```\n\n#### Address Conversion\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nconst addr = ipv4.address('192.168.1.1');\n\naddr.toString();       // \"192.168.1.1\"\naddr.toNumber();       // 3232235777\naddr.octets();         // [192, 168, 1, 1]\naddr.toBinaryString(); // \"11000000.10101000.00000001.00000001\"\n```\n\n#### Address Type Detection\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\n// Private addresses (RFC 1918)\nipv4.address('10.0.0.1').isPrivateAddress();      // true\nipv4.address('172.16.0.1').isPrivateAddress();    // true\nipv4.address('192.168.0.1').isPrivateAddress();   // true\nipv4.address('8.8.8.8').isPrivateAddress();       // false\n\n// Loopback addresses\nipv4.address('127.0.0.1').isLoopbackAddress();    // true\nipv4.address('127.255.255.255').isLoopbackAddress(); // true\n\n// Link-local addresses\nipv4.address('169.254.1.1').isLocalLinkAddress(); // true\n\n// Multicast addresses\nipv4.address('224.0.0.1').isMulticastAddress();   // true\nipv4.address('239.255.255.255').isMulticastAddress(); // true\n```\n\n#### Address Comparison\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nconst addr1 = ipv4.address('192.168.1.1');\nconst addr2 = ipv4.address('192.168.1.2');\n\naddr1.equals('192.168.1.1');           // true\naddr1.equals(addr2);                   // false\naddr1.isLessThan(addr2);               // true\naddr1.isGreaterThan(addr2);            // false\naddr1.isLessThanOrEqual(addr2);        // true\naddr1.isGreaterThanOrEqual(addr2);     // false\n```\n\n#### Address Navigation\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nconst addr = ipv4.address('192.168.1.100');\n\naddr.hasNextAddress();       // true\naddr.nextAddress()?.toString();    // \"192.168.1.101\"\n\naddr.hasPreviousAddress();   // true\naddr.previousAddress()?.toString(); // \"192.168.1.99\"\n\n// Edge cases\nconst maxAddr = ipv4.address('255.255.255.255');\nmaxAddr.hasNextAddress();    // false\nmaxAddr.nextAddress();       // undefined\n\nconst minAddr = ipv4.address('0.0.0.0');\nminAddr.hasPreviousAddress(); // false\nminAddr.previousAddress();    // undefined\n```\n\n#### Creating CIDR Blocks\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\n// From string\nconst cidr1 = ipv4.cidr('192.168.0.0/24');\n\n// From object\nconst cidr2 = ipv4.cidr({ address: '192.168.0.0', range: 24 });\n\n// From tuple\nconst cidr3 = ipv4.cidr(['192.168.0.0', 24]);\n\n// Mixed formats work too\nconst cidr4 = ipv4.cidr({ address: [192, 168, 0, 0], range: 24 });\n```\n\n#### CIDR Validation\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nipv4.isValidCIDR('192.168.0.0/24');   // true\nipv4.isValidCIDR('192.168.0.0/33');   // false (range exceeds 32)\nipv4.isValidCIDR('256.0.0.0/24');     // false (invalid address)\nipv4.isValidCIDR(['10.0.0.0', 8]);    // true\n```\n\n#### CIDR Properties\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nconst cidr = ipv4.cidr('192.168.0.0/24');\n\ncidr.toString();                  // \"192.168.0.0/24\"\ncidr.baseAddress().toString();    // \"192.168.0.0\"\ncidr.range();                     // 24\ncidr.netmask().toString();        // \"255.255.255.0\"\ncidr.hostmask().toString();       // \"0.0.0.255\"\ncidr.addressCount();              // 256\ncidr.rangeParts();                // [Ipv4Address, 24]\n\n// Calculate network address from CIDR with host bits\nconst hostCidr = ipv4.cidr('192.168.1.5/24');\nhostCidr.network().toString();      // \"192.168.1.0\"\nhostCidr.networkCIDR().toString();  // \"192.168.1.0/24\"\n```\n\n#### Usable Addresses\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nconst cidr = ipv4.cidr('192.168.1.0/24');\n\n// First usable (excludes network address)\ncidr.getFirstUsableAddress()?.toString(); // \"192.168.1.1\"\n\n// Last usable (excludes broadcast address)\ncidr.getLastUsableAddress()?.toString();  // \"192.168.1.254\"\n\n// For /32, there are no usable addresses\nconst hostCidr = ipv4.cidr('192.168.1.1/32');\nhostCidr.getFirstUsableAddress(); // undefined\nhostCidr.getLastUsableAddress();  // undefined\n```\n\n#### Iterating Addresses\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nconst cidr = ipv4.cidr('192.168.1.0/30');\n\n// Using the generator\nfor (const addr of cidr.addresses()) {\n  console.log(addr.toString());\n}\n// Output:\n// 192.168.1.0\n// 192.168.1.1\n// 192.168.1.2\n// 192.168.1.3\n\n// Convert to array\nconst allAddresses = [...cidr.addresses()];\nconsole.log(allAddresses.length); // 4\n```\n\n#### Address Containment\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nconst cidr = ipv4.cidr('192.168.0.0/24');\n\ncidr.includes(ipv4.address('192.168.0.100')); // true\ncidr.includes(ipv4.address('192.168.1.1'));   // false\ncidr.includes(ipv4.address('192.168.0.0'));   // true\ncidr.includes(ipv4.address('192.168.0.255')); // true\n```\n\n#### CIDR Overlap Detection\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nconst cidr1 = ipv4.cidr('192.168.0.0/24');\nconst cidr2 = ipv4.cidr('192.168.0.128/25');\nconst cidr3 = ipv4.cidr('192.168.1.0/24');\n\ncidr1.overlaps(cidr2); // true (cidr2 is a subnet of cidr1)\ncidr1.overlaps(cidr3); // false (different networks)\n\n// Also accepts string format\ncidr1.overlaps('10.0.0.0/8'); // false\n```\n\n#### Subnetting\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nconst cidr = ipv4.cidr('192.168.0.0/24');\n\n// Split into equal subnets\nconst subnets = cidr.subnet(26);\nsubnets.forEach(s => console.log(s.toString()));\n// Output:\n// 192.168.0.0/26\n// 192.168.0.64/26\n// 192.168.0.128/26\n// 192.168.0.192/26\n\n// Split into variable-sized subnets\nconst varSubnets = cidr.subnetBy([26, 27, 27, 26]);\nvarSubnets.forEach(s => console.log(s.toString()));\n// Output:\n// 192.168.0.0/26\n// 192.168.0.64/27\n// 192.168.0.96/27\n// 192.168.0.128/26\n```\n\n#### CIDR Navigation\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nconst cidr = ipv4.cidr('192.168.0.0/24');\n\ncidr.hasNextCIDR();                    // true\ncidr.nextCIDR()?.toString();           // \"192.168.1.0/24\"\n\ncidr.hasPreviousCIDR();                // true\ncidr.previousCIDR()?.toString();       // \"192.167.255.0/24\"\n```\n\n### IPv6\n\n#### Creating Addresses\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\n// From string (with :: compression)\nconst addr1 = ipv6.address('2001:db8::1');\n\n// From full string\nconst addr2 = ipv6.address('2001:0db8:0000:0000:0000:0000:0000:0001');\n\n// From BigInt\nconst addr3 = ipv6.address(42540766411282592856903984951653826561n);\n\n// From hextets array\nconst addr4 = ipv6.address([0x2001, 0x0db8, 0, 0, 0, 0, 0, 1]);\n```\n\n#### Address Validation\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nipv6.isValidAddress('2001:db8::1');           // true\nipv6.isValidAddress('::1');                   // true\nipv6.isValidAddress('::');                    // true\nipv6.isValidAddress('::ffff:192.168.1.1');    // true (IPv4-mapped)\nipv6.isValidAddress('2001:db8::g');           // false (invalid hex)\nipv6.isValidAddress('2001:db8:::1');          // false (multiple ::)\n```\n\n#### Address Conversion\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nconst addr = ipv6.address('2001:db8::1');\n\naddr.toString();     // \"2001:db8::1\" (compressed)\naddr.toFullString(); // \"2001:0db8:0000:0000:0000:0000:0000:0001\"\naddr.toBigInt();     // 42540766411282592856903984951653826561n\naddr.hextets();      // [8193, 3512, 0, 0, 0, 0, 0, 1]\naddr.toBinaryString(); // Binary representation with colons\n```\n\n#### Address Type Detection\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\n// Loopback\nipv6.address('::1').isLoopbackAddress();          // true\n\n// Unspecified\nipv6.address('::').isUnspecifiedAddress();        // true\n\n// Unique local (private equivalent)\nipv6.address('fc00::1').isUniqueLocalAddress();   // true\nipv6.address('fd00::1').isUniqueLocalAddress();   // true\n\n// Link-local\nipv6.address('fe80::1').isLinkLocalAddress();     // true\n\n// Multicast\nipv6.address('ff02::1').isMulticastAddress();     // true\n\n// IPv4-mapped\nipv6.address('::ffff:192.168.1.1').isIPv4MappedAddress(); // true\n\n// Documentation\nipv6.address('2001:db8::1').isDocumentationAddress(); // true\n```\n\n#### Address Comparison\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nconst addr1 = ipv6.address('2001:db8::1');\nconst addr2 = ipv6.address('2001:db8::2');\n\naddr1.equals('2001:db8::1');           // true\naddr1.equals(addr2);                   // false\naddr1.isLessThan(addr2);               // true\naddr1.isGreaterThan(addr2);            // false\naddr1.isLessThanOrEqual(addr2);        // true\naddr1.isGreaterThanOrEqual(addr2);     // false\n```\n\n#### Address Navigation\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nconst addr = ipv6.address('2001:db8::1');\n\naddr.hasNextAddress();                // true\naddr.nextAddress()?.toString();       // \"2001:db8::2\"\n\naddr.hasPreviousAddress();            // true\naddr.previousAddress()?.toString();   // \"2001:db8::\"\n```\n\n#### Creating CIDR Blocks\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\n// From string\nconst cidr1 = ipv6.cidr('2001:db8::/32');\n\n// From object\nconst cidr2 = ipv6.cidr({ address: '2001:db8::', range: 32 });\n\n// From tuple\nconst cidr3 = ipv6.cidr(['2001:db8::', 32]);\n```\n\n#### CIDR Validation\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nipv6.isValidCIDR('2001:db8::/32');    // true\nipv6.isValidCIDR('2001:db8::/129');   // false (range exceeds 128)\nipv6.isValidCIDR(['::1', 128]);       // true\n```\n\n#### CIDR Properties\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nconst cidr = ipv6.cidr('2001:db8::/32');\n\ncidr.toString();                  // \"2001:db8::/32\"\ncidr.baseAddress().toString();    // \"2001:db8::\"\ncidr.range();                     // 32\ncidr.netmask().toString();        // \"ffff:ffff::\"\ncidr.hostmask().toString();       // \"::ffff:ffff:ffff:ffff:ffff:ffff\"\ncidr.addressCount();              // 79228162514264337593543950336n (BigInt)\n\n// Calculate network address from CIDR with host bits\nconst hostCidr = ipv6.cidr('2001:db8::1234/32');\nhostCidr.network().toString();      // \"2001:db8::\"\nhostCidr.networkCIDR().toString();  // \"2001:db8::/32\"\n```\n\n#### Usable Addresses\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nconst cidr = ipv6.cidr('2001:db8::/126');\n\ncidr.getFirstUsableAddress()?.toString(); // \"2001:db8::1\"\ncidr.getLastUsableAddress()?.toString();  // \"2001:db8::2\"\n\n// For /128, there are no usable addresses\nconst hostCidr = ipv6.cidr('2001:db8::1/128');\nhostCidr.getFirstUsableAddress(); // undefined\nhostCidr.getLastUsableAddress();  // undefined\n```\n\n#### Iterating Addresses\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nconst cidr = ipv6.cidr('2001:db8::/126');\n\nfor (const addr of cidr.addresses()) {\n  console.log(addr.toString());\n}\n// Output:\n// 2001:db8::\n// 2001:db8::1\n// 2001:db8::2\n// 2001:db8::3\n\n// With limit (useful for large ranges)\nfor (const addr of cidr.addresses(2n)) {\n  console.log(addr.toString());\n}\n// Output:\n// 2001:db8::\n// 2001:db8::1\n```\n\n#### Address Containment and Overlap\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nconst cidr = ipv6.cidr('2001:db8::/32');\n\ncidr.includes(ipv6.address('2001:db8::1'));      // true\ncidr.includes(ipv6.address('2001:db9::1'));      // false\n\nconst cidr2 = ipv6.cidr('2001:db8:1::/48');\ncidr.overlaps(cidr2);  // true\n```\n\n#### Subnetting\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nconst cidr = ipv6.cidr('2001:db8::/32');\n\n// Split into /34 subnets\nconst subnets = cidr.subnet(34);\nsubnets.forEach(s => console.log(s.toString()));\n// Output:\n// 2001:db8::/34\n// 2001:db8:4000::/34\n// 2001:db8:8000::/34\n// 2001:db8:c000::/34\n\n// Variable-sized subnets\nconst varSubnets = cidr.subnetBy([34, 34, 33]);\nvarSubnets.forEach(s => console.log(s.toString()));\n```\n\n#### CIDR Navigation\n\n```typescript\nimport { ipv6 } from 'cidr-block';\n\nconst cidr = ipv6.cidr('2001:db8::/32');\n\ncidr.hasNextCIDR();                  // true\ncidr.nextCIDR()?.toString();         // \"2001:db9::/32\"\n\ncidr.hasPreviousCIDR();              // true\ncidr.previousCIDR()?.toString();     // \"2001:db7::/32\"\n```\n\n### Error Handling\n\n```typescript\nimport {\n  ipv4,\n  ipv6,\n  InvalidIpv4AddressError,\n  InvalidIpv4CidrError,\n  InvalidIpv4CidrRangeError,\n  InvalidIpv6AddressError,\n  InvalidIpv6CidrError,\n  InvalidIpv6CidrRangeError\n} from 'cidr-block';\n\n// Invalid address throws error\ntry {\n  ipv4.address('256.0.0.1');\n} catch (e) {\n  if (e instanceof InvalidIpv4AddressError) {\n    console.log(e.message); // \"256.0.0.1 is not a valid IPv4 address\"\n  }\n}\n\n// Invalid CIDR throws error\ntry {\n  ipv4.cidr('192.168.0.0/33');\n} catch (e) {\n  if (e instanceof InvalidIpv4CidrError) {\n    console.log(e.message); // \"192.168.0.0/33 is not a valid IPv4 CIDR range\"\n  }\n}\n\n// Invalid subnet operation throws error\ntry {\n  const cidr = ipv4.cidr('192.168.0.0/24');\n  cidr.subnet(20); // Can't create larger subnets\n} catch (e) {\n  if (e instanceof InvalidIpv4CidrRangeError) {\n    console.log('Invalid subnet range');\n  }\n}\n\n// Use validation to avoid exceptions\nif (ipv4.isValidAddress(userInput)) {\n  const addr = ipv4.address(userInput);\n  // Safe to use\n}\n```\n\n### Constants\n\n```typescript\nimport { ipv4, ipv6 } from 'cidr-block';\n\n// IPv4 constants\nipv4.MAX_SIZE;   // 0xffffffff (4294967295)\nipv4.MIN_SIZE;   // 0x00000000\nipv4.MAX_RANGE;  // 32\nipv4.MIN_RANGE;  // 0\n\n// IPv6 constants\nipv6.MAX_SIZE;   // (1n << 128n) - 1n\nipv6.MIN_SIZE;   // 0n\nipv6.MAX_RANGE;  // 128\nipv6.MIN_RANGE;  // 0\n```\n\n### Type Definitions\n\n```typescript\nimport type {\n  // IPv4 types\n  Ipv4AddressLiteral,  // string | number | number[]\n  Ipv4AddressString,   // \"${number}.${number}.${number}.${number}\"\n  Ipv4AddressOctets,   // [number, number, number, number]\n  Ipv4CidrLiteral,     // string | { address, range } | [address, range]\n  Ipv4CidrString,      // \"${number}.${number}.${number}.${number}/${number}\"\n\n  // IPv6 types\n  Ipv6AddressLiteral,  // string | bigint | number[]\n  Ipv6AddressHextets,  // [number, number, number, number, number, number, number, number]\n  Ipv6CidrLiteral,     // string | { address, range } | [address, range]\n} from 'cidr-block';\n```\n\n## Common Use Cases\n\n### Checking if an IP is in a Private Network\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nfunction isInternalIP(ip: string): boolean {\n  if (!ipv4.isValidAddress(ip)) return false;\n  const addr = ipv4.address(ip);\n  return addr.isPrivateAddress() || addr.isLoopbackAddress();\n}\n\nisInternalIP('192.168.1.1');  // true\nisInternalIP('10.0.0.1');     // true\nisInternalIP('8.8.8.8');      // false\n```\n\n### Allocating Subnets from a Pool\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nfunction allocateSubnets(poolCidr: string, subnetSize: number, count: number) {\n  const pool = ipv4.cidr(poolCidr);\n  const subnets = pool.subnet(subnetSize);\n  return subnets.slice(0, count);\n}\n\nconst allocated = allocateSubnets('10.0.0.0/16', 24, 3);\nallocated.forEach(s => console.log(s.toString()));\n// 10.0.0.0/24\n// 10.0.1.0/24\n// 10.0.2.0/24\n```\n\n### Checking for CIDR Conflicts\n\n```typescript\nimport { ipv4, Ipv4Cidr } from 'cidr-block';\n\nfunction findConflicts(newCidr: string, existing: string[]): string[] {\n  const cidr = ipv4.cidr(newCidr);\n  return existing.filter(e => cidr.overlaps(e));\n}\n\nconst existingRanges = ['10.0.0.0/24', '10.0.1.0/24', '192.168.0.0/16'];\nconst conflicts = findConflicts('10.0.0.0/16', existingRanges);\n// ['10.0.0.0/24', '10.0.1.0/24']\n```\n\n### Generating IP Addresses in a Range\n\n```typescript\nimport { ipv4 } from 'cidr-block';\n\nfunction getUsableIPs(cidrStr: string): string[] {\n  const cidr = ipv4.cidr(cidrStr);\n  const ips: string[] = [];\n\n  for (const addr of cidr.addresses()) {\n    // Skip network and broadcast addresses for practical use\n    if (addr.equals(cidr.baseAddress())) continue;\n\n    const lastOctet = addr.octets()[3];\n    if (lastOctet === 255) continue; // Skip broadcast\n\n    ips.push(addr.toString());\n  }\n\n  return ips;\n}\n\nconst usable = getUsableIPs('192.168.1.0/29');\n// ['192.168.1.1', '192.168.1.2', '192.168.1.3', '192.168.1.4', '192.168.1.5', '192.168.1.6']\n```\n\n### Normalizing CIDR Blocks\n\n```typescript\nimport { ipv4, ipv6 } from 'cidr-block';\n\n// Normalize IPv4 CIDR by removing host bits\nfunction normalizeIPv4CIDR(cidrStr: string): string {\n  const cidr = ipv4.cidr(cidrStr);\n  return cidr.networkCIDR().toString();\n}\n\nnormalizeIPv4CIDR('192.168.1.5/24');    // \"192.168.1.0/24\"\nnormalizeIPv4CIDR('10.5.10.20/8');      // \"10.0.0.0/8\"\nnormalizeIPv4CIDR('172.16.50.100/12');  // \"172.16.0.0/12\"\n\n// Normalize IPv6 CIDR by removing host bits\nfunction normalizeIPv6CIDR(cidrStr: string): string {\n  const cidr = ipv6.cidr(cidrStr);\n  return cidr.networkCIDR().toString();\n}\n\nnormalizeIPv6CIDR('2001:db8::1234/32');                   // \"2001:db8::/32\"\nnormalizeIPv6CIDR('2001:db8:1:2:3:4:5:6/64');             // \"2001:db8:1:2::/64\"\nnormalizeIPv6CIDR('2001:db8:abcd:ef01::/48');             // \"2001:db8:abcd::/48\"\n```\n","readmeFilename":"README.md"}