{"_id":"@elsikora/pluralizer","_rev":"12-f26579ab05f6b2836c3def808cb421cd","name":"@elsikora/pluralizer","dist-tags":{"latest":"2.0.0","beta":"2.0.0-dev.2"},"versions":{"1.0.1":{"name":"@elsikora/pluralizer","version":"1.0.1","keywords":["pluralize","pluralization","english","russian","i18n"],"author":{"name":"ElsiKora"},"license":"MIT","_id":"@elsikora/pluralizer@1.0.1","maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"homepage":"https://github.com/ElsiKora/Pluralizer#readme","bugs":{"url":"https://github.com/ElsiKora/Pluralizer/issues"},"dist":{"shasum":"dc510f16883b205a3d3386715fd81ee853053c46","tarball":"https://registry.npmjs.org/@elsikora/pluralizer/-/pluralizer-1.0.1.tgz","fileCount":71,"integrity":"sha512-mMy81C+VQ3I5p1SnX9gGDYvPOpDoAUNDhk3U5OrJY2pI3XjDU09p+ewlz1/Mk8PKwOTJdJDTc17euI120oCWxA==","signatures":[{"sig":"MEUCIQCfzL9ElqMjHCPPYzPUiAgY5MAHQf9Km1lbNKjiRxN+kgIgcCRDOHo9J8AEG89IQeK8ot3oBc4uy6zgasgR7h2vgsU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138232},"type":"module","config":{"commitizen":{"path":"@elsikora/commitizen-plugin-commitlint-ai"}},"exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"00d1c60312eb619d010b7cd32c7fe88a60876af6","scripts":{"lint":"eslint ./","build":"npm run prebuild && rollup -c","commit":"cz","format":"prettier --check .","prepare":"husky","release":"semantic-release","lint:all":"npm run lint && npm run lint:types","lint:fix":"eslint --fix ./","prebuild":"rimraf dist","test:all":"npm run test:unit && npm run test:e2e","test:e2e":"npm run build && vitest --config vitest.config.e2e.js --typecheck.tsconfig tsconfig.json","test:unit":"vitest run test/unit --config vitest.config.unit.js","format:fix":"prettier --write .","lint:types":"tsc --noEmit","lint:all:fix":"npm run lint:fix && npm run lint:types:fix","lint:types:fix":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"admin-elsikora","email":"admin@elsikora.com"},"repository":{"url":"git+https://github.com/ElsiKora/Pluralizer.git","type":"git"},"_npmVersion":"10.9.2","description":"A library for pluralizing words in different languages","directories":{},"_nodeVersion":"20.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.22.0","rimraf":"^6.0.1","rollup":"^4.35.0","vitest":"^3.0.8","prettier":"^3.5.3","commitizen":"^4.3.1","typescript":"^5.8.2","lint-staged":"^15.5.0","@commitlint/cli":"^19.8.0","eslint-plugin-n":"^17.16.2","semantic-release":"^24.2.3","@vitest/coverage-v8":"^3.0.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","@elsikora/eslint-config":"^3.7.7","@semantic-release/github":"^11.0.1","eslint-plugin-no-secrets":"^2.2.1","@rollup/plugin-typescript":"^12.1.2","@typescript-eslint/parser":"^8.26.1","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.0","@typescript-eslint/eslint-plugin":"^8.26.1","@semantic-release/commit-analyzer":"^13.0.1","@saithodev/semantic-release-backmerge":"^4.0.1","@elsikora/commitizen-plugin-commitlint-ai":"^1.0.0","@semantic-release/release-notes-generator":"^14.0.3","conventional-changelog-conventionalcommits":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pluralizer_1.0.1_1742249415447_0.7311782875686326","host":"s3://npm-registry-packages-npm-production"}},"1.0.2-dev.1":{"name":"@elsikora/pluralizer","version":"1.0.2-dev.1","keywords":["pluralize","pluralization","english","russian","i18n"],"author":{"name":"ElsiKora"},"license":"MIT","_id":"@elsikora/pluralizer@1.0.2-dev.1","maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"homepage":"https://github.com/ElsiKora/Pluralizer#readme","bugs":{"url":"https://github.com/ElsiKora/Pluralizer/issues"},"dist":{"shasum":"f61b9b1dabf25309db31ee51eaddb6b1919ac064","tarball":"https://registry.npmjs.org/@elsikora/pluralizer/-/pluralizer-1.0.2-dev.1.tgz","fileCount":97,"integrity":"sha512-OFGbk1UC9EKrkWyh5otEz8wNDn+I9tKKmGHgcP4h25KcK6sbiMxOfSN1YbD6ck4wI5uk/JXRhlMUYek3VccMEQ==","signatures":[{"sig":"MEYCIQDj2ctoyaiq3BioWhG5Urf9EJcuQC9EIe5M6tB/AeOtJgIhAJy0iRnwWVRI/3Hv/bD58sMJwTAauz3rOPxxFfIdaMtv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205139},"main":"dist/cjs/index.js","type":"module","types":"./dist/cjs/index.d.ts","config":{"commitizen":{"path":"@elsikora/commitizen-plugin-commitlint-ai"}},"module":"dist/esm/index.js","exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"e4a2e99ec33e04cfda4aaa3a3b66e567905352ba","scripts":{"lint":"eslint ./","build":"npm run prebuild && rollup -c","commit":"cz","format":"prettier --check .","prepare":"husky","release":"semantic-release","lint:all":"npm run lint && npm run lint:types","lint:fix":"eslint --fix ./","prebuild":"rimraf dist","test:all":"npm run test:unit && npm run test:e2e","test:e2e":"npm run build && vitest --config vitest.config.e2e.js --typecheck.tsconfig tsconfig.json","test:unit":"vitest run test/unit --config vitest.config.unit.js","format:fix":"prettier --write .","lint:types":"tsc --noEmit","lint:all:fix":"npm run lint:fix && npm run lint:types:fix","lint:types:fix":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"admin-elsikora","email":"admin@elsikora.com"},"repository":{"url":"git+https://github.com/ElsiKora/Pluralizer.git","type":"git"},"_npmVersion":"10.9.2","description":"A library for pluralizing words in different languages","directories":{},"_nodeVersion":"20.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.22.0","rimraf":"^6.0.1","rollup":"^4.35.0","vitest":"^3.0.8","prettier":"^3.5.3","commitizen":"^4.3.1","typescript":"^5.8.2","lint-staged":"^15.5.0","@commitlint/cli":"^19.8.0","eslint-plugin-n":"^17.16.2","semantic-release":"^24.2.3","@vitest/coverage-v8":"^3.0.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","@elsikora/eslint-config":"^3.7.7","@semantic-release/github":"^11.0.1","eslint-plugin-no-secrets":"^2.2.1","@rollup/plugin-typescript":"^12.1.2","@typescript-eslint/parser":"^8.26.1","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.0","@typescript-eslint/eslint-plugin":"^8.26.1","@semantic-release/commit-analyzer":"^13.0.1","@saithodev/semantic-release-backmerge":"^4.0.1","@elsikora/commitizen-plugin-commitlint-ai":"^1.0.0","@semantic-release/release-notes-generator":"^14.0.3","conventional-changelog-conventionalcommits":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pluralizer_1.0.2-dev.1_1742361637350_0.582994123190564","host":"s3://npm-registry-packages-npm-production"}},"1.0.2-dev.2":{"name":"@elsikora/pluralizer","version":"1.0.2-dev.2","keywords":["pluralize","pluralization","english","russian","i18n"],"author":{"name":"ElsiKora"},"license":"MIT","_id":"@elsikora/pluralizer@1.0.2-dev.2","maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"homepage":"https://github.com/ElsiKora/Pluralizer#readme","bugs":{"url":"https://github.com/ElsiKora/Pluralizer/issues"},"dist":{"shasum":"ea87de3002bb9a5aa0a2bdd2ae196d005452a9a5","tarball":"https://registry.npmjs.org/@elsikora/pluralizer/-/pluralizer-1.0.2-dev.2.tgz","fileCount":97,"integrity":"sha512-NT/JJaES2pUt7M6/vL8jIilU2IGJ3oBRVtDHldaQo5nng+QTuDI9VkWH5yVNlje4WDZLR/7EE59Ogsgzc/1FfA==","signatures":[{"sig":"MEUCIQC8OBFYUKBPjIQLjF//KFsUjF/oQBRQlEk2BJF4HoPvQAIgWKaz/2Sm0CHui6VPoFDUi1Sw4koRuOq+/iEZI1Tamaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206419},"main":"dist/cjs/index.js","type":"module","types":"./dist/cjs/index.d.ts","config":{"commitizen":{"path":"@elsikora/commitizen-plugin-commitlint-ai"}},"module":"dist/esm/index.js","exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"afb88d6b9a099a86fbb66b69872c9270e6ed7d3d","scripts":{"lint":"eslint ./","build":"npm run prebuild && rollup -c","commit":"cz","format":"prettier --check .","prepare":"husky","release":"semantic-release","lint:all":"npm run lint && npm run lint:types","lint:fix":"eslint --fix ./","prebuild":"rimraf dist","test:all":"npm run test:unit && npm run test:e2e","test:e2e":"npm run build && vitest --config vitest.config.e2e.js --typecheck.tsconfig tsconfig.json","test:unit":"vitest run test/unit --config vitest.config.unit.js","format:fix":"prettier --write .","lint:types":"tsc --noEmit","lint:all:fix":"npm run lint:fix && npm run lint:types:fix","lint:types:fix":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"admin-elsikora","email":"admin@elsikora.com"},"repository":{"url":"git+https://github.com/ElsiKora/Pluralizer.git","type":"git"},"_npmVersion":"10.9.2","description":"A library for pluralizing words in different languages","directories":{},"_nodeVersion":"20.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.22.0","rimraf":"^6.0.1","rollup":"^4.35.0","vitest":"^3.0.8","prettier":"^3.5.3","commitizen":"^4.3.1","typescript":"^5.8.2","lint-staged":"^15.5.0","@commitlint/cli":"^19.8.0","eslint-plugin-n":"^17.16.2","semantic-release":"^24.2.3","@vitest/coverage-v8":"^3.0.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","@elsikora/eslint-config":"^3.7.7","@semantic-release/github":"^11.0.1","eslint-plugin-no-secrets":"^2.2.1","@rollup/plugin-typescript":"^12.1.2","@typescript-eslint/parser":"^8.26.1","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.0","@typescript-eslint/eslint-plugin":"^8.26.1","@semantic-release/commit-analyzer":"^13.0.1","@saithodev/semantic-release-backmerge":"^4.0.1","@elsikora/commitizen-plugin-commitlint-ai":"^1.0.0","@semantic-release/release-notes-generator":"^14.0.3","conventional-changelog-conventionalcommits":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pluralizer_1.0.2-dev.2_1742361893422_0.8855438847155643","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@elsikora/pluralizer","version":"1.0.2","keywords":["pluralize","pluralization","english","russian","i18n"],"author":{"name":"ElsiKora"},"license":"MIT","_id":"@elsikora/pluralizer@1.0.2","maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"homepage":"https://github.com/ElsiKora/Pluralizer#readme","bugs":{"url":"https://github.com/ElsiKora/Pluralizer/issues"},"dist":{"shasum":"01e899ecb6adf119af86a4d701b6560576723e7a","tarball":"https://registry.npmjs.org/@elsikora/pluralizer/-/pluralizer-1.0.2.tgz","fileCount":97,"integrity":"sha512-/xN1j+QiOBLF27ZKYksmvAfIWKpY3tdTBeZ3I3zS2Gc7v74FixwjTtI8E28nYq7xBu7o5QT8paiigXWjD3UhPA==","signatures":[{"sig":"MEQCIA1nj1hYB44jE8uGwhbwLI74GqShTfzYimn1jgOdtZJEAiBeAiSiy9LIyDVj2jojK/0oMaF29ZDlXtszbSbZtWJzxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206413},"main":"dist/cjs/index.js","type":"module","types":"./dist/cjs/index.d.ts","config":{"commitizen":{"path":"@elsikora/commitizen-plugin-commitlint-ai"}},"module":"dist/esm/index.js","exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"8b6524d1b8f437c9a3d1eecf399c27bd2284618c","scripts":{"lint":"eslint ./","build":"npm run prebuild && rollup -c","commit":"cz","format":"prettier --check .","prepare":"husky","release":"semantic-release","lint:all":"npm run lint && npm run lint:types","lint:fix":"eslint --fix ./","prebuild":"rimraf dist","test:all":"npm run test:unit && npm run test:e2e","test:e2e":"npm run build && vitest --config vitest.config.e2e.js --typecheck.tsconfig tsconfig.json","test:unit":"vitest run test/unit --config vitest.config.unit.js","format:fix":"prettier --write .","lint:types":"tsc --noEmit","lint:all:fix":"npm run lint:fix && npm run lint:types:fix","lint:types:fix":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"admin-elsikora","email":"admin@elsikora.com"},"repository":{"url":"git+https://github.com/ElsiKora/Pluralizer.git","type":"git"},"_npmVersion":"10.9.2","description":"A library for pluralizing words in different languages","directories":{},"_nodeVersion":"20.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.22.0","rimraf":"^6.0.1","rollup":"^4.35.0","vitest":"^3.0.8","prettier":"^3.5.3","commitizen":"^4.3.1","typescript":"^5.8.2","lint-staged":"^15.5.0","@commitlint/cli":"^19.8.0","eslint-plugin-n":"^17.16.2","semantic-release":"^24.2.3","@vitest/coverage-v8":"^3.0.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","@elsikora/eslint-config":"^3.7.7","@semantic-release/github":"^11.0.1","eslint-plugin-no-secrets":"^2.2.1","@rollup/plugin-typescript":"^12.1.2","@typescript-eslint/parser":"^8.26.1","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.0","@typescript-eslint/eslint-plugin":"^8.26.1","@semantic-release/commit-analyzer":"^13.0.1","@saithodev/semantic-release-backmerge":"^4.0.1","@elsikora/commitizen-plugin-commitlint-ai":"^1.0.0","@semantic-release/release-notes-generator":"^14.0.3","conventional-changelog-conventionalcommits":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pluralizer_1.0.2_1742362075582_0.9522333960289757","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-dev.1":{"name":"@elsikora/pluralizer","version":"2.0.0-dev.1","keywords":["pluralize","pluralization","english","russian","i18n"],"author":{"name":"ElsiKora"},"license":"MIT","_id":"@elsikora/pluralizer@2.0.0-dev.1","maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"homepage":"https://github.com/ElsiKora/Pluralizer#readme","bugs":{"url":"https://github.com/ElsiKora/Pluralizer/issues"},"dist":{"shasum":"b7d216b81b1a65099bbac9dfa44f0584bbb1ddc2","tarball":"https://registry.npmjs.org/@elsikora/pluralizer/-/pluralizer-2.0.0-dev.1.tgz","fileCount":99,"integrity":"sha512-yqopFyJ3I22InY/TwXAZGpfLpJdWZOstD1q2zAWQ6OSZYJGRgWOfvtQt5FtvIoult7yaV8N2PeAfKewB3K711Q==","signatures":[{"sig":"MEUCIQD7Uq73RGzDidcq8s+AeKmpVfe5b7gwmLV1HQgO6WcGSgIgFtm9A5DUTjOAryAgw2EyQDXt07f27mLpfxVFS4lwD+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206056},"main":"dist/cjs/index.js","type":"module","types":"./dist/cjs/index.d.ts","config":{"commitizen":{"path":"@elsikora/commitizen-plugin-commitlint-ai"}},"module":"dist/esm/index.js","exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"3577cd49dc196ea66dc833b2bd72e9f406007f2d","scripts":{"lint":"eslint ./","build":"npm run prebuild && rollup -c","commit":"cz","format":"prettier --check .","prepare":"husky","release":"semantic-release","lint:all":"npm run lint && npm run lint:types","lint:fix":"eslint --fix ./","prebuild":"rimraf dist","test:all":"npm run test:unit && npm run test:e2e","test:e2e":"npm run build && vitest --config vitest.config.e2e.js --typecheck.tsconfig tsconfig.json","test:unit":"vitest run test/unit --config vitest.config.unit.js","format:fix":"prettier --write .","lint:types":"tsc --noEmit","lint:all:fix":"npm run lint:fix && npm run lint:types:fix","lint:types:fix":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"admin-elsikora","email":"admin@elsikora.com"},"repository":{"url":"git+https://github.com/ElsiKora/Pluralizer.git","type":"git"},"_npmVersion":"10.9.2","description":"A library for pluralizing words in different languages","directories":{},"_nodeVersion":"20.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.22.0","rimraf":"^6.0.1","rollup":"^4.35.0","vitest":"^3.0.8","prettier":"^3.5.3","commitizen":"^4.3.1","typescript":"^5.8.2","lint-staged":"^15.5.0","@commitlint/cli":"^19.8.0","eslint-plugin-n":"^17.16.2","semantic-release":"^24.2.3","@vitest/coverage-v8":"^3.0.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","@elsikora/eslint-config":"^3.7.7","@semantic-release/github":"^11.0.1","eslint-plugin-no-secrets":"^2.2.1","@rollup/plugin-typescript":"^12.1.2","@typescript-eslint/parser":"^8.26.1","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.0","@typescript-eslint/eslint-plugin":"^8.26.1","@semantic-release/commit-analyzer":"^13.0.1","rollup-plugin-generate-package-json":"^3.2.0","@saithodev/semantic-release-backmerge":"^4.0.1","@elsikora/commitizen-plugin-commitlint-ai":"^1.0.0","@semantic-release/release-notes-generator":"^14.0.3","conventional-changelog-conventionalcommits":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pluralizer_2.0.0-dev.1_1742402506644_0.28313134185829303","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-dev.2":{"name":"@elsikora/pluralizer","version":"2.0.0-dev.2","keywords":["pluralize","pluralization","english","russian","i18n"],"author":{"name":"ElsiKora"},"license":"MIT","_id":"@elsikora/pluralizer@2.0.0-dev.2","maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"homepage":"https://github.com/ElsiKora/Pluralizer#readme","bugs":{"url":"https://github.com/ElsiKora/Pluralizer/issues"},"dist":{"shasum":"2c9070ceb36c9ca8c01f6ef1f4288538d5d11ef1","tarball":"https://registry.npmjs.org/@elsikora/pluralizer/-/pluralizer-2.0.0-dev.2.tgz","fileCount":99,"integrity":"sha512-XjWvkC/iL76kgUMCjnrQbQOtSwfC/F9q6wuGWgNHQSdtxt7b+FRQ+FgbBkYI7jkb3UfrfS+YC2CzgCjl6Vy6xQ==","signatures":[{"sig":"MEYCIQCk3/45UZh5O9VJB1qL6kBaU1OkCscZrYXgvrHBzWKD4wIhAKdioiXAYzqh4W6x0ernRaMnaSWtTFG4CBHpVR/20lt3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209187},"main":"dist/cjs/index.js","type":"module","types":"./dist/cjs/index.d.ts","config":{"commitizen":{"path":"@elsikora/commitizen-plugin-commitlint-ai"}},"module":"dist/esm/index.js","exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"90c5fbae4afb87c49e98689ccb95c6bd3c6ab96a","scripts":{"lint":"eslint ./","build":"npm run prebuild && rollup -c","commit":"cz","format":"prettier --check .","prepare":"husky","release":"semantic-release","lint:all":"npm run lint && npm run lint:types","lint:fix":"eslint --fix ./","prebuild":"rimraf dist","test:all":"npm run test:unit && npm run test:e2e","test:e2e":"npm run build && vitest --config vitest.config.e2e.js --typecheck.tsconfig tsconfig.json","test:unit":"vitest run test/unit --config vitest.config.unit.js","format:fix":"prettier --write .","lint:types":"tsc --noEmit","lint:all:fix":"npm run lint:fix && npm run lint:types:fix","lint:types:fix":"tsc --noEmit --skipLibCheck"},"_npmUser":{"name":"admin-elsikora","email":"admin@elsikora.com"},"repository":{"url":"git+https://github.com/ElsiKora/Pluralizer.git","type":"git"},"_npmVersion":"10.9.2","description":"A library for pluralizing words in different languages","directories":{},"_nodeVersion":"20.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.22.0","rimraf":"^6.0.1","rollup":"^4.35.0","vitest":"^3.0.8","prettier":"^3.5.3","commitizen":"^4.3.1","typescript":"^5.8.2","lint-staged":"^15.5.0","@commitlint/cli":"^19.8.0","eslint-plugin-n":"^17.16.2","semantic-release":"^24.2.3","@vitest/coverage-v8":"^3.0.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","@elsikora/eslint-config":"^3.7.7","@semantic-release/github":"^11.0.1","eslint-plugin-no-secrets":"^2.2.1","@rollup/plugin-typescript":"^12.1.2","@typescript-eslint/parser":"^8.26.1","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.0","@typescript-eslint/eslint-plugin":"^8.26.1","@semantic-release/commit-analyzer":"^13.0.1","rollup-plugin-generate-package-json":"^3.2.0","@saithodev/semantic-release-backmerge":"^4.0.1","@elsikora/commitizen-plugin-commitlint-ai":"^1.0.0","@semantic-release/release-notes-generator":"^14.0.3","conventional-changelog-conventionalcommits":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pluralizer_2.0.0-dev.2_1742406329407_0.1630436259190613","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@elsikora/pluralizer","version":"2.0.0","description":"A library for pluralizing words in different languages","main":"dist/cjs/index.js","module":"dist/esm/index.js","exports":{".":{"require":"./dist/cjs/index.js","import":"./dist/esm/index.js"}},"scripts":{"prebuild":"rimraf dist","build":"npm run prebuild && rollup -c","commit":"cz","format":"prettier --check .","format:fix":"prettier --write .","lint":"eslint ./","lint:all":"npm run lint && npm run lint:types","lint:all:fix":"npm run lint:fix && npm run lint:types:fix","lint:fix":"eslint --fix ./","lint:types":"tsc --noEmit","lint:types:fix":"tsc --noEmit --skipLibCheck","prepare":"husky","release":"semantic-release","test:all":"npm run test:unit && npm run test:e2e","test:e2e":"npm run build && vitest --config vitest.config.e2e.js --typecheck.tsconfig tsconfig.json","test:unit":"vitest run test/unit --config vitest.config.unit.js"},"homepage":"https://github.com/ElsiKora/Pluralizer#readme","bugs":{"url":"https://github.com/ElsiKora/Pluralizer/issues"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/ElsiKora/Pluralizer.git"},"type":"module","keywords":["pluralize","pluralization","english","russian","i18n"],"author":{"name":"ElsiKora"},"license":"MIT","devDependencies":{"@commitlint/cli":"^19.8.0","@commitlint/config-conventional":"^19.8.0","@elsikora/commitizen-plugin-commitlint-ai":"^1.0.0","@elsikora/eslint-config":"^3.7.7","@rollup/plugin-typescript":"^12.1.2","@saithodev/semantic-release-backmerge":"^4.0.1","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.1","@semantic-release/npm":"^12.0.1","@semantic-release/release-notes-generator":"^14.0.3","@typescript-eslint/eslint-plugin":"^8.26.1","@typescript-eslint/parser":"^8.26.1","@vitest/coverage-v8":"^3.0.8","commitizen":"^4.3.1","conventional-changelog-conventionalcommits":"^8.0.0","eslint":"^9.22.0","eslint-plugin-n":"^17.16.2","eslint-plugin-no-secrets":"^2.2.1","husky":"^9.1.7","lint-staged":"^15.5.0","prettier":"^3.5.3","rimraf":"^6.0.1","rollup":"^4.35.0","rollup-plugin-generate-package-json":"^3.2.0","semantic-release":"^24.2.3","tslib":"^2.8.1","typescript":"^5.8.2","vitest":"^3.0.8"},"config":{"commitizen":{"path":"@elsikora/commitizen-plugin-commitlint-ai"}},"_id":"@elsikora/pluralizer@2.0.0","gitHead":"ec08e6ef3a0f6fe2d13c0571d74868228fb8a136","types":"./dist/cjs/index.d.ts","_nodeVersion":"20.19.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-G5PoKxuBdxCDgUFKdYELn6KHN8lrEjtrnPOdzXg9CR7Wk1s6sgevlAezaqY3IJRs9wZIzFVPAtwvDJgiOEU1GA==","shasum":"c2ae2373c90e780414298f86f96a49e5f14ff0ea","tarball":"https://registry.npmjs.org/@elsikora/pluralizer/-/pluralizer-2.0.0.tgz","fileCount":99,"unpackedSize":209181,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDkFXmLFAHv7aCHbz/DhA6Pd0UvyTyUkQk+xV7EfRGzLgIhAMHjWfCJbDhT/AKlmUfR646WfLtvsjcEUWA5+JjQNLWc"}]},"_npmUser":{"name":"admin-elsikora","email":"admin@elsikora.com"},"directories":{},"maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pluralizer_2.0.0_1742406640589_0.4975203077701744"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-17T22:10:15.333Z","modified":"2025-03-19T17:50:41.132Z","1.0.0-dev.1":"2025-03-16T17:01:18.728Z","1.0.0-dev.2":"2025-03-16T17:05:11.999Z","1.0.0":"2025-03-16T17:06:39.539Z","1.0.1":"2025-03-17T22:10:15.638Z","1.0.2-dev.1":"2025-03-19T05:20:37.556Z","1.0.2-dev.2":"2025-03-19T05:24:53.607Z","1.0.2":"2025-03-19T05:27:55.779Z","2.0.0-dev.1":"2025-03-19T16:41:46.867Z","2.0.0-dev.2":"2025-03-19T17:45:29.693Z","2.0.0":"2025-03-19T17:50:40.926Z"},"bugs":{"url":"https://github.com/ElsiKora/Pluralizer/issues"},"author":{"name":"ElsiKora"},"license":"MIT","homepage":"https://github.com/ElsiKora/Pluralizer#readme","keywords":["pluralize","pluralization","english","russian","i18n"],"repository":{"type":"git","url":"git+https://github.com/ElsiKora/Pluralizer.git"},"description":"A library for pluralizing words in different languages","maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://6jft62zmy9nx2oea.public.blob.vercel-storage.com/pluralizer-lPXqraLoCOMWLAiOFInjgemLC5rcNJ.png\" width=\"500\" alt=\"project-logo\">\n</p>\n\n<h1 align=\"center\">Pluralizer 🔄</h1>\n<p align=\"center\"><em>A powerful, multilingual library for pluralizing and singularizing words</em></p>\n\n<p align=\"center\">\n    <a aria-label=\"ElsiKora logo\" href=\"https://elsikora.com\">\n  <img src=\"https://img.shields.io/badge/MADE%20BY%20ElsiKora-333333.svg?style=for-the-badge\" alt=\"ElsiKora\">\n</a> <img src=\"https://img.shields.io/badge/version-blue.svg?style=for-the-badge&logo=npm&logoColor=white\" alt=\"version\"> <img src=\"https://img.shields.io/badge/license-green.svg?style=for-the-badge&logo=license&logoColor=white\" alt=\"license\"> <img src=\"https://img.shields.io/badge/typescript-blue.svg?style=for-the-badge&logo=typescript&logoColor=white\" alt=\"typescript\"> <img src=\"https://img.shields.io/badge/codecov-brightgreen.svg?style=for-the-badge&logo=codecov&logoColor=white\" alt=\"codecov\"> <img src=\"https://img.shields.io/badge/dependencies-brightgreen.svg?style=for-the-badge&logo=npm&logoColor=white\" alt=\"dependencies\"> <img src=\"https://img.shields.io/badge/build-success.svg?style=for-the-badge&logo=github-actions&logoColor=white\" alt=\"build\">\n</p>\n\n\n## 📚 Table of Contents\n- [Description](#-description)\n- [Features](#-features)\n- [Installation](#-installation)\n- [Usage](#-usage)\n- [Roadmap](#-roadmap)\n- [FAQ](#-faq)\n- [License](#-license)\n\n\n## 📖 Description\nPluralizer is a sophisticated, zero-dependency TypeScript library designed to handle word pluralization across multiple languages. Unlike simpler solutions, Pluralizer respects language-specific rules, grammatical gender, and irregular forms, ensuring linguistically correct transformations. It provides comprehensive support for English and Russian, with a flexible architecture that allows easy extension to other languages. Whether you're building an internationalized application, creating natural language interfaces, or developing educational tools, Pluralizer offers a robust solution for grammatically correct word transformations that maintains the nuances of each supported language.\n\n## 🚀 Features\n- ✨ **Zero dependencies - lightweight and portable**\n- ✨ **Full TypeScript support with comprehensive type definitions**\n- ✨ **Multilingual architecture with initial support for English and Russian**\n- ✨ **Gender-aware pluralization (especially important for Slavic languages)**\n- ✨ **Extensive handling of irregular plural forms in all supported languages**\n- ✨ **Automatic language detection based on character patterns**\n- ✨ **Case preservation for maintaining proper capitalization**\n- ✨ **Comprehensive API for checking if words are singular or plural**\n- ✨ **Clean domain-driven design architecture for easy extensibility**\n- ✨ **Modular design that allows adding new languages without modifying existing code**\n- ✨ **ESM and CommonJS module support for maximum compatibility**\n- ✨ **High test coverage with unit and end-to-end tests**\n\n## 🛠 Installation\n```bash\n### NPM\n\nnpm install @elsikora/pluralizer\n\n\n### Yarn\n\nyarn add @elsikora/pluralizer\n\n\n### PNPM\n\npnpm add @elsikora/pluralizer\n\n\n### Bun\n\nbun add @elsikora/pluralizer\n\n\n### Direct Import (ESM)\njavascript\nimport { pluralizer } from '@elsikora/pluralizer';\n\n\n### CommonJS Import\njavascript\nconst { pluralizer } = require('@elsikora/pluralizer');\n```\n\n## 💡 Usage\n## Basic Usage\n\nThe Pluralizer library provides a straightforward API for working with word pluralization in different languages. The simplest way to use it is with the default singleton instance:\n\n```typescript\nimport { pluralizer } from '@elsikora/pluralizer';\n\n// Simple English pluralization\nconsole.log(pluralizer.pluralize('book'));  // Output: books\nconsole.log(pluralizer.pluralize('child')); // Output: children\nconsole.log(pluralizer.pluralize('box'));   // Output: boxes\n\n// Respect count parameter\nconsole.log(pluralizer.pluralize('book', { count: 1 })); // Output: book\nconsole.log(pluralizer.pluralize('book', { count: 2 })); // Output: books\n```\n\n## Working with Multiple Languages\n\nPluralizer supports automatic language detection and explicit language specification:\n\n```typescript\nimport { pluralizer, EGender } from '@elsikora/pluralizer';\n\n// Russian pluralization (requires gender specification)\nconsole.log(pluralizer.pluralize('книга', { language: 'ru', gender: EGender.FEMININE })); // Output: книги\nconsole.log(pluralizer.pluralize('стол', { language: 'ru', gender: EGender.MASCULINE })); // Output: столы\nconsole.log(pluralizer.pluralize('окно', { language: 'ru', gender: EGender.NEUTER }));   // Output: окна\n\n// Automatic language detection\nconsole.log(pluralizer.pluralize('книга', { gender: EGender.FEMININE })); // Output: книги (detects Russian)\nconsole.log(pluralizer.pluralize('book')); // Output: books (detects English)\n```\n\n## Converting Between Singular and Plural Forms\n\nPluralizer provides methods to explicitly convert between singular and plural forms:\n\n```typescript\nimport { pluralizer, EGender } from '@elsikora/pluralizer';\n\n// Converting to plural\nconsole.log(pluralizer.toPlural('book')); // Output: books\nconsole.log(pluralizer.toPlural('child')); // Output: children\nconsole.log(pluralizer.toPlural('книга', { gender: EGender.FEMININE })); // Output: книги\n\n// Converting to singular\nconsole.log(pluralizer.toSingular('books')); // Output: book\nconsole.log(pluralizer.toSingular('children')); // Output: child\nconsole.log(pluralizer.toSingular('книги', 'ru')); // Output: книга\n```\n\n## Checking Word Forms\n\nUse these methods to check if a word is in singular or plural form:\n\n```typescript\nimport { pluralizer } from '@elsikora/pluralizer';\n\n// Check if a word is plural\nconsole.log(pluralizer.isPlural('books')); // Output: true\nconsole.log(pluralizer.isPlural('book'));  // Output: false\nconsole.log(pluralizer.isPlural('children')); // Output: true\nconsole.log(pluralizer.isPlural('книги', 'ru')); // Output: true\n\n// Check if a word is singular\nconsole.log(pluralizer.isSingular('book')); // Output: true\nconsole.log(pluralizer.isSingular('books')); // Output: false\nconsole.log(pluralizer.isSingular('стол', 'ru')); // Output: true\n```\n\n## Advanced Usage with Word Entity\n\nFor more control, you can create Word entities directly:\n\n```typescript\nimport { Word, PluralizerFactory, EGender } from '@elsikora/pluralizer';\n\n// Create a factory and get a specific language pluralizer\nconst factory = new PluralizerFactory();\nconst englishPluralizer = factory.createPluralizer('en');\n\n// Create a Word entity with properties\nconst word = new Word('phenomenon', { language: 'en' });\n\n// Pluralize using the entity\nconsole.log(englishPluralizer.pluralize(word)); // Output: phenomena\n\n// Russian word with gender\nconst russianPluralizer = factory.createPluralizer('ru');\nconst russianWord = new Word('книга', { language: 'ru', gender: EGender.FEMININE });\nconsole.log(russianPluralizer.pluralize(russianWord)); // Output: книги\n```\n\n## Creating a Custom Instance\n\nIf you need a custom configuration, you can create your own Pluralizer instance:\n\n```typescript\nimport { Pluralizer, LanguageDetector } from '@elsikora/pluralizer';\n\n// Create a custom pluralizer instance\nconst customPluralizer = new Pluralizer();\n\n// Get supported languages\nconst languages = customPluralizer.getSupportedLanguages();\nconsole.log(languages); // Output: ['en', 'ru']\n\n// Check language support\nconsole.log(customPluralizer.supportsLanguage('en')); // Output: true\nconsole.log(customPluralizer.supportsLanguage('fr')); // Output: false\n\n// Create a custom language detector and add patterns\nconst detector = new LanguageDetector('es'); // Set Spanish as default\ndetector.addLanguagePattern('fr', /[àâäæçéèêëîïôœùûüÿ]/i); // Add French pattern\n```\n\n## Handling Special Cases\n\nPluralizer includes special handling for irregular forms and uncountable words:\n\n```typescript\nimport { pluralizer } from '@elsikora/pluralizer';\n\n// English irregular plurals\nconsole.log(pluralizer.toPlural('phenomenon')); // Output: phenomena\nconsole.log(pluralizer.toPlural('criterion')); // Output: criteria\nconsole.log(pluralizer.toPlural('analysis')); // Output: analyses\nconsole.log(pluralizer.toPlural('cactus')); // Output: cacti\n\n// Russian irregular plurals\nconsole.log(pluralizer.toPlural('человек', { gender: EGender.MASCULINE })); // Output: люди\nconsole.log(pluralizer.toPlural('ребёнок', { gender: EGender.MASCULINE })); // Output: дети\n\n// Uncountable words remain unchanged\nconsole.log(pluralizer.toPlural('equipment')); // Output: equipment\nconsole.log(pluralizer.toPlural('information')); // Output: information\nconsole.log(pluralizer.toPlural('ножницы', { language: 'ru' })); // Output: ножницы\n```\n\n## Case Preservation\n\nPluralizer intelligently preserves the original case pattern:\n\n```typescript\nimport { pluralizer } from '@elsikora/pluralizer';\n\n// Upper case preservation\nconsole.log(pluralizer.toPlural('BOOK')); // Output: BOOKS\nconsole.log(pluralizer.toPlural('CHILD')); // Output: CHILDREN\n\n// First letter capitalization\nconsole.log(pluralizer.toPlural('Book')); // Output: Books\nconsole.log(pluralizer.toPlural('Child')); // Output: Children\n\n// Mixed case preservation\nconsole.log(pluralizer.toPlural('CamelCase')); // Output: CamelCases\nconsole.log(pluralizer.toPlural('iPod')); // Output: iPods\n```\n\n## React/Next.js Integration Example\n\n```tsx\nimport { useState } from 'react';\nimport { pluralizer } from '@elsikora/pluralizer';\n\nfunction ItemCounter() {\n  const [count, setCount] = useState(1);\n  const itemText = pluralizer.pluralize('item', { count });\n  \n  return (\n    <div>\n      <button onClick={() => setCount(c => Math.max(0, c - 1))}>-</button>\n      <span>{count} {itemText}</span>\n      <button onClick={() => setCount(c => c + 1)}>+</button>\n    </div>\n  );\n}\n```\n\n## Internationalization (i18n) Integration\n\n```typescript\nimport { pluralizer, EGender } from '@elsikora/pluralizer';\n\nfunction formatMessage(key, count, language = 'en') {\n  const messages = {\n    'item.count': {\n      en: `You have ${count} {item}`,\n      ru: `У вас ${count} {item}`\n    }\n  };\n  \n  const template = messages[key][language];\n  const itemWord = language === 'en' ? 'item' : 'предмет';\n  const gender = language === 'ru' ? EGender.MASCULINE : undefined;\n  \n  return template.replace('{item}', pluralizer.pluralize(itemWord, { count, language, gender }));\n}\n\nconsole.log(formatMessage('item.count', 1, 'en')); // Output: You have 1 item\nconsole.log(formatMessage('item.count', 5, 'en')); // Output: You have 5 items\nconsole.log(formatMessage('item.count', 1, 'ru')); // Output: У вас 1 предмет\nconsole.log(formatMessage('item.count', 5, 'ru')); // Output: У вас 5 предметов\n```\n\n## 🛣 Roadmap\n| Task / Feature | Status |\n|---------------|--------|\n| ## Future Development | 🚧 In Progress |\n| - Add support for Spanish language pluralization rules | 🚧 In Progress |\n| - Expand language support to include French, German, Italian, and more | 🚧 In Progress |\n| - Create specialized handling for proper nouns and names | 🚧 In Progress |\n| - Develop additional detection mechanisms for ambiguous words | 🚧 In Progress |\n| - Add context-aware pluralization for languages with complex number agreement | 🚧 In Progress |\n| - Implement browser-specific optimizations for web applications | 🚧 In Progress |\n| - Create plugins for popular frameworks (React, Vue, Angular) | 🚧 In Progress |\n| - Build integrations with common i18n libraries | 🚧 In Progress |\n| - Develop a web-based demo and playground | 🚧 In Progress |\n| - Support for numerical words (\"one\" → \"ones\", \"first\" → \"firsts\") | 🚧 In Progress |\n| - Implement count-specific forms for languages with complex countable forms | 🚧 In Progress |\n| (done) Zero dependencies - lightweight and portable | 🚧 In Progress |\n| (done) Full TypeScript support with comprehensive type definitions | 🚧 In Progress |\n| (done) Multilingual architecture with initial support for English and Russian | 🚧 In Progress |\n\n## ❓ FAQ\n## Frequently Asked Questions\n\n### How does Pluralizer handle words that are the same in both singular and plural forms?\n\nPluralizer maintains a comprehensive list of uncountable words for each supported language. Words like \"sheep\", \"fish\", \"series\" in English or \"ножницы\", \"брюки\" in Russian are recognized as special cases and will not be transformed.\n\n### Does Pluralizer work with proper nouns and names?\n\nYes, Pluralizer can handle proper nouns and names. However, because names often follow special pluralization rules or maintain their form, results may vary. We recommend testing with your specific use cases.\n\n### How accurate is the automatic language detection?\n\nThe language detector uses character pattern recognition that's highly reliable for distinguishing between Latin-based languages and Cyrillic. For languages sharing the same alphabet, explicit language specification is recommended for best results.\n\n### Can I add support for a new language?\n\nYes! Pluralizer is designed with extensibility in mind. You can create a new language implementation by extending the appropriate interfaces and registering it with the PluralizerFactory. The documentation includes examples for implementing new language support.\n\n### How does Pluralizer handle case sensitivity?\n\nPluralizer intelligently preserves the case pattern of the original word. Whether your word is lowercase, UPPERCASE, Title Case, camelCase, or a miXeD case pattern, Pluralizer will maintain that pattern in the transformed word.\n\n### Does Pluralizer support non-standard pluralization rules in technical contexts?\n\nYes, Pluralizer is built to handle specialized terminology. For example, it correctly transforms technical terms like \"index\" to \"indices\" and \"matrix\" to \"matrices\". If you encounter specialized terms not handled correctly, you can extend the irregular words list.\n\n### How does Pluralizer handle hyphenated or compound words?\n\nFor compound words, Pluralizer typically pluralizes the last word component. For example, \"mother-in-law\" becomes \"mothers-in-law\". However, some compound words follow special rules and are included in the irregular words lists.\n\n### Is Pluralizer suitable for large-scale applications?\n\nYes, Pluralizer is designed for performance and has zero dependencies, making it suitable for large-scale applications. Its modular design allows you to load only the languages you need.\n\n## 🔒 License\nThis project is licensed under **MIT License\n\nCopyright (c) 2025 ElsiKora\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.**.\n","readmeFilename":"README.md"}