{"_id":"@awiejacha/homiecountry","_rev":"9-e37debc989367659f479563895a36e87","name":"@awiejacha/homiecountry","dist-tags":{"latest":"1.1.4"},"versions":{"1.0.0":{"name":"@awiejacha/homiecountry","version":"1.0.0","keywords":[],"author":{"name":"Adrian Wiejacha"},"license":"UNLICENSED","_id":"@awiejacha/homiecountry@1.0.0","maintainers":[{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"}],"dist":{"shasum":"b066cd81168360917eba60718ba04474d24431f9","tarball":"https://registry.npmjs.org/@awiejacha/homiecountry/-/homiecountry-1.0.0.tgz","fileCount":3,"integrity":"sha512-/MX1zFZQHwM/Qjy24qrkPbHpLy1TRbKtjRf7ZYrpJ9gyzgyX8Y9nYBTnVg9GYwXk3vB2SplfV0G7N6xSsAmlqA==","signatures":[{"sig":"MEUCICrMLqGIuBmhXkF2HuGR66N6F7+u0mf69jnx1rENOcE2AiEAm8MMU6pCPLZEMYIoVa3x2TMaXDTsXN5NsCLtLDMgg6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15360},"main":"dist/country.js","types":"dist/country.d.ts","gitHead":"d8e720cb170dd803f0adab010648686ceee244a3","private":false,"scripts":{"knip":"knip","lint":"npx eslint . --ext .ts","test":"[ -d \"node_modules/\" ] || npm ci && npx jest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"},"_npmVersion":"10.9.4","description":"Homie Country utils","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^5.84.1","eslint":"^8.11.0","ts-jest":"^29.1.2","prettier":"^2.6.0","typescript":"^5.9.3","@types/jest":"^29.5.12","eslint-plugin-jest":"^27.9.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-prettier":"^3.4.1","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/homiecountry_1.0.0_1771685661512_0.7051491232447467","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@awiejacha/homiecountry","version":"1.0.1","keywords":[],"author":{"name":"Adrian Wiejacha"},"license":"UNLICENSED","_id":"@awiejacha/homiecountry@1.0.1","maintainers":[{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"}],"dist":{"shasum":"03af28975939c892d1f5f49dc4588f40e4f833cd","tarball":"https://registry.npmjs.org/@awiejacha/homiecountry/-/homiecountry-1.0.1.tgz","fileCount":4,"integrity":"sha512-UYP9cj0Hz8QJpfvyrkrr4PGqOdoSk80wkmFMLg7OJAXB2UYAsx7SEhBkqfKt+fMrhSmj52lozhPtnLk/IrtzDg==","signatures":[{"sig":"MEUCIDu4+D8V0QaeSDVE8FWl+0O+ezKLRIOayg/AGJpQO7weAiEAtyc4iI/zeZ1Fk/KvPGoGc3mwHbYvmPLFpNgs14vxeVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21342},"main":"dist/country.min.js","types":"dist/country.d.ts","gitHead":"d8e720cb170dd803f0adab010648686ceee244a3","private":false,"scripts":{"knip":"knip","lint":"npx eslint . --ext .ts","test":"[ -d \"node_modules/\" ] || npm ci && npx jest","build":"npm run transpile && npm run minify","minify":"find dist -type f -name \"*.min.js\" -delete && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -exec sh -c 'npx esbuild \"$1\" --platform=node --target=es2022 --minify --outfile=\"${1%.js}.min.js\"' _ {} \\;","transpile":"rm -rf dist && tsc","prepublishOnly":"npm test && npm run lint && npm run build"},"_npmUser":{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"},"_npmVersion":"10.9.4","description":"Homie Country utils","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^5.84.1","eslint":"^8.11.0","esbuild":"^0.27.3","ts-jest":"^29.1.2","prettier":"^2.6.0","typescript":"^5.9.3","@types/jest":"^29.5.12","eslint-plugin-jest":"^27.9.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^3.4.1","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/homiecountry_1.0.1_1771690633594_0.9995268632282421","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@awiejacha/homiecountry","version":"1.0.2","keywords":[],"author":{"name":"Adrian Wiejacha"},"license":"UNLICENSED","_id":"@awiejacha/homiecountry@1.0.2","maintainers":[{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"}],"dist":{"shasum":"fa05f2939ec8ae1c11009fe63cdf918beedc62d6","tarball":"https://registry.npmjs.org/@awiejacha/homiecountry/-/homiecountry-1.0.2.tgz","fileCount":5,"integrity":"sha512-GL7dD4VAX0nROkxcdDC4OS52fPBO6fPet3XXliSwdqO9ZPSeZX0aBILmCNFvyV9rYQK3PJICYV6LrfR14spkFQ==","signatures":[{"sig":"MEYCIQCyfWjEmAz7BsGYQQtiRTujFTr9/hViRVgjvTL58lHmpwIhAIZFEoo5UfrfDTxZM8ylrtIn3LEYluCFD/ZAXQWRmily","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19375},"main":"dist/country.min.js","types":"dist/country.d.ts","gitHead":"1e678464677ce95c8e6bd0c89eec9d1aa1885fcb","private":false,"scripts":{"knip":"knip","lint":"npx eslint . --ext .ts","test":"[ -d \"node_modules/\" ] || npm ci && npx jest","build":"npm run transpile && npm run minify","minify":"find dist -type f -name \"*.min.js\" -delete && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -exec sh -c 'npx esbuild \"$1\" --platform=node --target=es2022 --minify --outfile=\"${1%.js}.min.js\"' _ {} \\;","transpile":"rm -rf dist && tsc","prepublishOnly":"npm test && npm run lint && npm run build"},"_npmUser":{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"},"_npmVersion":"10.9.4","description":"Homie Country utils","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","knip":"^5.85.0","eslint":"^10.0.1","esbuild":"^0.27.3","globals":"^17.3.0","ts-jest":"^29.4.6","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@eslint/eslintrc":"^3.3.3","eslint-plugin-jest":"^29.15.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/homiecountry_1.0.2_1771704338481_0.7145130803933344","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@awiejacha/homiecountry","version":"1.0.3","keywords":[],"author":{"name":"Adrian Wiejacha"},"license":"UNLICENSED","_id":"@awiejacha/homiecountry@1.0.3","maintainers":[{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"}],"dist":{"shasum":"3fb6add084516347f96ffc57f98d242b7f4ae3e3","tarball":"https://registry.npmjs.org/@awiejacha/homiecountry/-/homiecountry-1.0.3.tgz","fileCount":5,"integrity":"sha512-vYY4qrxSSck/ET3FJ+a3mx3kJcpS/lzHVwOtTC5q0L0UH9bKTbzKmtY7+hMglChFd89FavXxOCxMoQsjFKfbXA==","signatures":[{"sig":"MEYCIQCGJjCGPnOJK1dXv3XjfJ4EZOrzItaychEWH09RqMhFegIhALD4OZUwUvan+9MXoAEzJjiQbovIBHFnIrn0EJnTc/cM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15620},"main":"dist/country.min.js","types":"dist/country.d.ts","gitHead":"e90ab4740b83362b5838c1c55cd4e5889ea28bd1","private":false,"scripts":{"knip":"knip","lint":"npx eslint . --ext .ts","test":"[ -d \"node_modules/\" ] || npm ci && npx jest","build":"npm run transpile && npm run minify","minify":"find dist -type f -name \"*.min.js\" -delete && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -exec sh -c 'npx esbuild \"$1\" --platform=node --target=es2022 --minify --outfile=\"${1%.js}.min.js\"' _ {} \\;","transpile":"rm -rf dist && tsc","prepublishOnly":"npm test && npm run lint && npm run build"},"_npmUser":{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"},"_npmVersion":"10.9.4","description":"Homie Country utils","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","knip":"^5.85.0","eslint":"^10.0.1","esbuild":"^0.27.3","globals":"^17.3.0","ts-jest":"^29.4.6","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@eslint/eslintrc":"^3.3.3","eslint-plugin-jest":"^29.15.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/homiecountry_1.0.3_1771715329679_0.6966152393738942","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@awiejacha/homiecountry","version":"1.1.0","keywords":[],"author":{"name":"Adrian Wiejacha"},"license":"UNLICENSED","_id":"@awiejacha/homiecountry@1.1.0","maintainers":[{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"}],"dist":{"shasum":"abbb96ea99fcb8f840fe672eca336cbc770a4ef5","tarball":"https://registry.npmjs.org/@awiejacha/homiecountry/-/homiecountry-1.1.0.tgz","fileCount":5,"integrity":"sha512-NUF2qPI1xrmrtME7v6ujglDsXE5LVFRLy0GN6eob4CpaYwT3xfk+Kjd19ZKXvsKDYRS6gX5g19Mk1pULjfOcog==","signatures":[{"sig":"MEQCIEc8nh6Jx+LWn29auJdKsBHc+vlhdGDLnVhJGKRFV5SZAiAiHdJBrXPWcvcsUwSTTtuEJZV/+JIvHdq3QgkEIMFd0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16053},"main":"dist/country.min.js","types":"dist/country.d.ts","gitHead":"93c45026494fa9ed8be4111e1786e7b1fc3f9626","private":false,"scripts":{"knip":"knip","lint":"npx eslint . --ext .ts","test":"[ -d \"node_modules/\" ] || npm ci && npx jest","build":"npm run transpile && npm run minify","minify":"find dist -type f -name \"*.min.js\" -delete && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -exec sh -c 'npx esbuild \"$1\" --platform=node --target=es2022 --minify --outfile=\"${1%.js}.min.js\"' _ {} \\;","transpile":"rm -rf dist && tsc","prepublishOnly":"npm test && npm run lint && npm run build"},"_npmUser":{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"},"_npmVersion":"10.9.4","description":"Homie Country utils","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","knip":"^5.85.0","eslint":"^10.0.1","esbuild":"^0.27.3","globals":"^17.3.0","ts-jest":"^29.4.6","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@eslint/eslintrc":"^3.3.3","eslint-plugin-jest":"^29.15.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/homiecountry_1.1.0_1771716870536_0.46822558969892625","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@awiejacha/homiecountry","version":"1.1.1","keywords":[],"author":{"name":"Adrian Wiejacha"},"license":"UNLICENSED","_id":"@awiejacha/homiecountry@1.1.1","maintainers":[{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"}],"dist":{"shasum":"c8c78c4d29f13ddf42aae651ec4f31e9402e64ea","tarball":"https://registry.npmjs.org/@awiejacha/homiecountry/-/homiecountry-1.1.1.tgz","fileCount":4,"integrity":"sha512-vieZxeAzxNg/sDt5iFW90rL+u/0xN50qeE04OwTkeO7lONX5UKtNzahV65K1J6/6fuay+XE3YSlNLKyeq/29xQ==","signatures":[{"sig":"MEQCIGr2YfktHKGSzQYUFOANy6P0MrzxFd62JLuMR9QDIeIZAiBL5SVJYlNn8P5SwBmOA+sbYCoFF2Po2IsRrom7XnmdIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10176},"main":"dist/country.min.js","types":"dist/country.d.ts","gitHead":"27934d7fcb31e6ea44d077906255d1f8a98b653e","private":false,"scripts":{"knip":"knip --production","lint":"npx eslint . --ext .ts","test":"[ -d \"node_modules/\" ] || npm ci && npx jest","build":"npm run transpile && npm run minify","minify":"find dist -type f -name \"*.min.js\" -delete && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -exec sh -c 'npx esbuild \"$1\" --platform=node --target=es2022 --minify --outfile=\"${1%.js}.min.js\"' _ {} \\; && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -delete","transpile":"rm -rf dist && tsc","prepublishOnly":"npm test && npm run lint && npm run knip && npm run build"},"_npmUser":{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"},"_npmVersion":"10.9.4","description":"Homie Country utils","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","knip":"^5.85.0","eslint":"^10.0.1","esbuild":"^0.27.3","globals":"^17.3.0","ts-jest":"^29.4.6","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@eslint/eslintrc":"^3.3.3","eslint-plugin-jest":"^29.15.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/homiecountry_1.1.1_1771741648903_0.20591318339404374","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@awiejacha/homiecountry","version":"1.1.2","keywords":[],"author":{"name":"Adrian Wiejacha"},"license":"UNLICENSED","_id":"@awiejacha/homiecountry@1.1.2","maintainers":[{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"}],"dist":{"shasum":"9bb46d6b8c57296aee43608942cae5445773cedd","tarball":"https://registry.npmjs.org/@awiejacha/homiecountry/-/homiecountry-1.1.2.tgz","fileCount":4,"integrity":"sha512-CU1JDG7TRsCNfJimjxdFpCBLYqtcxLi8jhvhK0ShPt8gCzSE/m0cOh/jH4NNSB4nv510sama2uMnAonb0GURTA==","signatures":[{"sig":"MEUCIE71RVewv3Mc1LWuPnPHddC+Gu+imFI5mY9tXtItB7e+AiEAu8fcKXoNmONjJmdx4abHqQNJKN1PYhYHqGob4SyGlvM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10114},"main":"dist/country.min.js","types":"dist/country.d.ts","gitHead":"28574746c4f754053b3108f30540ff0e6b0056ab","private":false,"scripts":{"knip":"knip --production","lint":"npx eslint . --ext .ts","test":"[ -d \"node_modules/\" ] || npm ci && npx jest","build":"npm run transpile && npm run minify","minify":"find dist -type f -name \"*.min.js\" -delete && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -exec sh -c 'npx esbuild \"$1\" --platform=node --target=es2022 --minify --outfile=\"${1%.js}.min.js\"' _ {} \\; && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -delete","transpile":"rm -rf dist && tsc","prepublish":"npm test && npm run lint && npm run knip && npm run build","prepublishOnly":"npm run prepublish"},"_npmUser":{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"},"_npmVersion":"10.9.4","description":"Homie Country utils","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","knip":"^5.85.0","eslint":"^10.0.1","esbuild":"^0.27.3","globals":"^17.3.0","ts-jest":"^29.4.6","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@eslint/eslintrc":"^3.3.3","eslint-plugin-jest":"^29.15.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/homiecountry_1.1.2_1771742799373_0.10694124523988813","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@awiejacha/homiecountry","version":"1.1.3","keywords":[],"author":{"name":"Adrian Wiejacha"},"license":"UNLICENSED","_id":"@awiejacha/homiecountry@1.1.3","maintainers":[{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"}],"dist":{"shasum":"79219b046e1a08f06b58c613c7082c58084ee921","tarball":"https://registry.npmjs.org/@awiejacha/homiecountry/-/homiecountry-1.1.3.tgz","fileCount":4,"integrity":"sha512-L1OJsi+/Ia3d4sH9Fl/Gv4NrdvBKwZtDwICaAKklmci4ojeHF6UX2O1F6FRQKoRv4yJ4sYNqWkBwHf5gnc+PHw==","signatures":[{"sig":"MEQCIErIkVMhRtVt3RFYxy03m4aBivXg7ZiQC5WQtJraVqjsAiAnTTGAARbEZd38Tyk/iKFlTygqhVTa5ipN+71h8bbt9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10709},"main":"dist/country.min.js","types":"dist/country.d.ts","gitHead":"64f5dd8c020d396a4fd19e901f34b5991ce88439","private":false,"scripts":{"knip":"knip --production","lint":"npx eslint . --ext .ts","test":"[ -d \"node_modules/\" ] || npm ci && npx jest","build":"npm run transpile && npm run minify","minify":"find dist -type f -name \"*.min.js\" -delete && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -exec sh -c 'npx esbuild \"$1\" --platform=node --target=es2022 --minify --outfile=\"${1%.js}.min.js\"' _ {} \\; && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -delete","transpile":"rm -rf dist && tsc","prepublish":"npm test && npm run lint && npm run knip && npm run build","prepublishOnly":"npm run prepublish"},"_npmUser":{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"},"_npmVersion":"10.9.4","description":"Homie Country utils","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","knip":"^5.85.0","eslint":"^10.0.1","esbuild":"^0.27.3","globals":"^17.3.0","ts-jest":"^29.4.6","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@eslint/eslintrc":"^3.3.3","eslint-plugin-jest":"^29.15.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0","eslint-import-resolver-typescript":"^4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/homiecountry_1.1.3_1776344262683_0.015308948497099406","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@awiejacha/homiecountry","version":"1.1.4","main":"dist/country.min.js","types":"dist/country.d.ts","keywords":[],"author":{"name":"Adrian Wiejacha"},"license":"UNLICENSED","description":"Homie Country utils","private":false,"scripts":{"transpile":"rm -rf dist && tsc","minify":"find dist -type f -name \"*.min.js\" -delete && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -exec sh -c 'npx esbuild \"$1\" --platform=node --target=es2022 --minify --outfile=\"${1%.js}.min.js\"' _ {} \\; && find dist -type f -name \"*.js\" ! -name \"*.min.js\" -delete","build":"npm run transpile && npm run minify","prepublish":"npm test && npm run lint && npm run knip && npm run build","prepublishOnly":"npm run prepublish","lint":"npx eslint . --ext .ts","test":"[ -d \"node_modules/\" ] || npm ci && npx jest","knip":"knip --production"},"devDependencies":{"@eslint/eslintrc":"^3.3.3","@eslint/js":"^10.0.1","@types/jest":"^30.0.0","@typescript-eslint/eslint-plugin":"^8.56.0","@typescript-eslint/parser":"^8.56.0","esbuild":"^0.27.3","eslint":"^10.0.1","eslint-config-prettier":"^10.1.8","eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-jest":"^29.15.0","eslint-plugin-prettier":"^5.5.5","globals":"^17.3.0","jest":"^30.2.0","knip":"^5.85.0","prettier":"^3.8.1","ts-jest":"^29.4.6","typescript":"^5.9.3"},"_id":"@awiejacha/homiecountry@1.1.4","gitHead":"4bf3bbc30a650fae218077cf73af7848c63091ed","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-JIWk0YlmIGoD1qtdWqip1w+tG550Q+0PzLsLkhZGwc3e93QV3gZlbgA5rUr2cWfSFfsDn5Wbis7cGBrxWrvd/Q==","shasum":"06ea81a9a6eae1bd99933cacec7211c7c873db6d","tarball":"https://registry.npmjs.org/@awiejacha/homiecountry/-/homiecountry-1.1.4.tgz","fileCount":4,"unpackedSize":10689,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGqbK5FahlgpYrfjD/FQ2CYO7xWbYBbtupg7uKFCyMjiAiAZ9X9DV0k5Jl4eN/olaw1k/NNM0QuZkk6ipn8hcEjWtg=="}]},"_npmUser":{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"},"directories":{},"maintainers":[{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/homiecountry_1.1.4_1776345753895_0.5602488218869164"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-21T14:54:21.425Z","modified":"2026-04-16T13:22:34.177Z","1.0.0":"2026-02-21T14:54:21.652Z","1.0.1":"2026-02-21T16:17:13.739Z","1.0.2":"2026-02-21T20:05:38.639Z","1.0.3":"2026-02-21T23:08:49.842Z","1.1.0":"2026-02-21T23:34:30.678Z","1.1.1":"2026-02-22T06:27:29.049Z","1.1.2":"2026-02-22T06:46:39.518Z","1.1.3":"2026-04-16T12:57:42.845Z","1.1.4":"2026-04-16T13:22:34.069Z"},"author":{"name":"Adrian Wiejacha"},"license":"UNLICENSED","keywords":[],"description":"Homie Country utils","maintainers":[{"name":"awiejacha","email":"adrian.wiejacha@gmail.com"}],"readme":"# @awiejacha/homiecountry\n\nHandy utilities for resolving European country codes, checking available languages, and calculating prices after VAT.\n\n## Installation\n\n```bash\nnpm install @awiejacha/homiecountry\n```\n\n## Features\n\n- **Tree-Shaking Support**: Designed to be effectively bundled, ensuring only the functions you import are included in your final build, minimizing bundle size.\n- **Country Code Resolution**: Map full country names, territories, and various formats to standard European country codes.\n- **Language Support**: Check default and available languages for each country.\n- **VAT Calculation**: Instantly compute the net price (after VAT) for a given gross price in a specific country.\n- **Object-Oriented & Functional APIs**: Choose between a stateful `Country` class or pure functions.\n- **Safe Execution**: Provides non-throwing `...In` / `...Of` variants for safer operations without `try/catch`.\n\n## API Documentation\n\n### 1. The `Country` Class\n\nIf you prefer an object-oriented approach, the `Country` class is the primary entry point. It wraps a specific country code and provides methods to query its properties.\n\n```typescript\nimport { Country } from '@awiejacha/homiecountry';\n\n// Instantiate with a country code, full name, or European territory\nconst poland = new Country('POLAND');\nconst germany = new Country('DE');\nconst reunion = new Country('RÉUNION'); // Resolves to 'FR'\n\nconsole.log(poland.getCode()); // 'PL'\nconsole.log(poland.getDefaultLang()); // 'PL'\nconsole.log(poland.afterVat(123)); // 100\n```\n\n#### Class Methods\n\n- `getCode(): CountryCode` - Returns the resolved country code.\n- `getDefaultLang(): string` - Returns the default language.\n- `afterVat(grossPrice: number): number` - Calculates the net price after removing the country's VAT from the gross price.\n- `toString(): string` / `valueOf(): string` - Returns the country code representation.\n\n---\n\n### 2. Functional API (Throws on Invalid Input)\n\nFor functional programming patterns. These functions will throw an `InvalidCountryError` if the country code cannot be resolved.\n\n```typescript\nimport { countryCodeFrom, defaultLangIn, afterVatIn } from '@awiejacha/homiecountry';\n\n// Resolve a country code\nconst code = countryCodeFrom('FRENCH GUIANA'); // 'FR'\n\n// Query properties\nconsole.log(defaultLangIn('FR')); // 'FR'\n\n// VAT calculation\nconst netPrice = afterVatIn('DE', 119); // 100\n```\n\n---\n\n### 3. Safe Functional API (Returns null/false on Invalid Input)\n\nIf you are dealing with untrusted user input and want to avoid try/catch blocks, use these safe variants.\n\n```typescript\nimport {\n  maybeCountryCodeFrom,\n  maybeAfterVatIn,\n  maybeDefaultLangIn,\n} from '@awiejacha/homiecountry';\n\n// Returns null instead of throwing an error\nconst code = maybeCountryCodeFrom('INVALID_COUNTRY'); // null\nconst validCode = maybeCountryCodeFrom('SPAIN'); // 'ES'\n\n// Safe VAT calculation\nconst netPrice = maybeAfterVatIn('ITALY', 122); // 100\nconst invalidPrice = maybeAfterVatIn('NARNIA', 122); // null\n\n// Safe language checks\nconst defaultLang = maybeDefaultLangIn('SPAIN'); // 'ES'\nconst invalidLang = maybeDefaultLangIn('NARNIA'); // null\n```\n\n---\n\n### 4. Types and Constants\n\nThe library exports several useful types and constants for TypeScript users.\n\n```typescript\nimport {\n  CountryCode,\n  LanguageCode,\n  COUNTRY_MAP,\n  InvalidCountryError,\n} from '@awiejacha/homiecountry';\n\n// CountryCode: 'DE' | 'CH' | 'AT' | 'FR' | ...\n// LanguageCode: 'DE' | 'EN' | 'FR' | ...\n```\n","readmeFilename":"README.md"}