{"_id":"@bybrave/string-similarity2","_rev":"2-bf209645f122b80b5520d008e1a52f7f","name":"@bybrave/string-similarity2","dist-tags":{"latest":"5.0.1"},"versions":{"5.0.0":{"name":"@bybrave/string-similarity2","version":"5.0.0","keywords":["string","similarity","dice","compare","match","fuzzy","esm","typescript"],"author":{"name":"bybrave"},"license":"MIT","_id":"@bybrave/string-similarity2@5.0.0","maintainers":[{"name":"bybrave","email":"opmybrave@gmail.com"}],"homepage":"https://github.com/bybraveHQ/string-similarity2#readme","bugs":{"url":"https://github.com/bybraveHQ/string-similarity2/issues"},"dist":{"shasum":"e4677519dd63bfa20feeee1e63292f471a064ee3","tarball":"https://registry.npmjs.org/@bybrave/string-similarity2/-/string-similarity2-5.0.0.tgz","fileCount":7,"integrity":"sha512-4t3yabfXy556+H6qmJj8h1uJVLw8gifhoKhpQ2069KF+X+bscz+SKickiqA9FwTxQLVMSLpgLr718+uekbc1Gw==","signatures":[{"sig":"MEUCIQDPXSMCETojfrlwr1LnLk/lGkL7fFszShB16dhqJa8/PgIgaxwPcrxio6lb5JXFoj7bhefB8rgNdBrq/2TJ6eRVBG4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12965},"main":"./dist/index.cjs","type":"module","types":"./index.d.ts","module":"./index.js","engines":{"node":">=18"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"9810ca57ce83788ee5df3d6f89b4ff8b39449269","scripts":{"test":"node --test","build":"node build/build.js","test-types":"tsc --strict --noEmit --moduleResolution bundler --target es2020 --types node test/types.ts","prepublishOnly":"npm run build && npm test && npm run test-types"},"_npmUser":{"name":"bybrave","email":"opmybrave@gmail.com"},"repository":{"url":"git+https://github.com/bybraveHQ/string-similarity2.git","type":"git"},"_npmVersion":"10.8.2","description":"Maintained string-similarity fork: zero dependencies, ESM + CommonJS, built-in TypeScript types, findBestMatch keySelector for object arrays. Drop-in for string-similarity.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.24.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/string-similarity2_5.0.0_1783265005734_0.7085374274933514","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@bybrave/string-similarity2","version":"5.0.1","description":"Maintained string-similarity fork: zero dependencies, ESM + CommonJS, built-in TypeScript types, findBestMatch keySelector for object arrays. Drop-in for string-similarity.","type":"module","main":"./dist/index.cjs","module":"./index.js","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"sideEffects":false,"scripts":{"build":"node build/build.js","test":"node --test","test-types":"tsc --strict --noEmit --moduleResolution bundler --target es2020 --types node test/types.ts","prepublishOnly":"npm run build && npm test && npm run test-types"},"keywords":["string","similarity","dice","compare","match","fuzzy","esm","typescript"],"author":{"name":"bybrave"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/bybraveHQ/string-similarity2.git"},"bugs":{"url":"https://github.com/bybraveHQ/string-similarity2/issues"},"homepage":"https://github.com/bybraveHQ/string-similarity2#readme","engines":{"node":">=18"},"devDependencies":{"esbuild":"^0.24.0","typescript":"^5.6.0","@types/node":"^22.0.0"},"_id":"@bybrave/string-similarity2@5.0.1","gitHead":"4388324dab116bca7fe4819f5f58f9581a25fe54","_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Y+siDPDPi+kURlQux9tcd1yiXYgNyxbOCd7Ngc7JUxbEkEAFCoEN5d7zy2nr26W1Ltv6ERhUgOQVxyu4rqkE4A==","shasum":"cad983b44fdd7453e0261e295b74f5bf2cd598fb","tarball":"https://registry.npmjs.org/@bybrave/string-similarity2/-/string-similarity2-5.0.1.tgz","fileCount":7,"unpackedSize":13332,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDPKpNsXLmf+eNjp9hffhLa/wCJjkFwhkPOsY6gtJptYAiBprqwsmmo1S15TsjGg/OyDNmJhdR+g66c+QD9Oyb4IOw=="}]},"_npmUser":{"name":"bybrave","email":"opmybrave@gmail.com"},"directories":{},"maintainers":[{"name":"bybrave","email":"opmybrave@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/string-similarity2_5.0.1_1783297278836_0.6252815953258613"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-05T15:23:25.521Z","modified":"2026-07-06T00:21:19.082Z","5.0.0":"2026-07-05T15:23:25.878Z","5.0.1":"2026-07-06T00:21:18.959Z"},"bugs":{"url":"https://github.com/bybraveHQ/string-similarity2/issues"},"author":{"name":"bybrave"},"license":"MIT","homepage":"https://github.com/bybraveHQ/string-similarity2#readme","keywords":["string","similarity","dice","compare","match","fuzzy","esm","typescript"],"repository":{"type":"git","url":"git+https://github.com/bybraveHQ/string-similarity2.git"},"description":"Maintained string-similarity fork: zero dependencies, ESM + CommonJS, built-in TypeScript types, findBestMatch keySelector for object arrays. Drop-in for string-similarity.","maintainers":[{"name":"bybrave","email":"opmybrave@gmail.com"}],"readme":"# @bybrave/string-similarity2\n\nMaintained fork of [`string-similarity`](https://www.npmjs.com/package/string-similarity) — finds the degree of similarity between two strings, based on the [Sørensen–Dice coefficient](https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient).\n\nThe original is **deprecated by its author**. This fork keeps the exact same ratings, and adds **zero dependencies**, dual **ESM + CommonJS**, **built-in TypeScript types**, and a `keySelector` for matching against object arrays.\n\n## Install\n\n```sh\nnpm install @bybrave/string-similarity2\n```\n\n## Usage\n\n```js\nimport { compareTwoStrings, findBestMatch } from '@bybrave/string-similarity2';\n\ncompareTwoStrings('healed', 'sealed'); // 0.8\n\nfindBestMatch('healed', ['edward', 'sealed', 'theatre']);\n// {\n//   ratings: [ { target: 'edward', rating: 0.2 }, { target: 'sealed', rating: 0.8 }, ... ],\n//   bestMatch: { target: 'sealed', rating: 0.8 },\n//   bestMatchIndex: 1\n// }\n```\n\nCommonJS works too — `require` returns the same `{ compareTwoStrings, findBestMatch }` object as the original:\n\n```js\nconst stringSimilarity = require('@bybrave/string-similarity2');\nstringSimilarity.compareTwoStrings('france', 'france'); // 1\n```\n\n### Matching object arrays (#125)\n\nPass a third `keySelector` argument to rate against a property while keeping the original objects in `ratings[].target`:\n\n```js\nconst users = [\n  { id: 1, name: 'edward' },\n  { id: 2, name: 'sealed' },\n];\nconst { bestMatch } = findBestMatch('healed', users, (u) => u.name);\nbestMatch.target; // { id: 2, name: 'sealed' }\n```\n\n## What's changed vs `string-similarity@4.0.4`\n\n| Issue | Change |\n|---|---|\n| [#128](https://github.com/aceakash/string-similarity/issues/128), [#20](https://github.com/aceakash/string-similarity/issues/20) | Ships as native ESM with a CommonJS build via the `exports` map — no CJS optimization bailouts, bundler-friendly. |\n| [#125](https://github.com/aceakash/string-similarity/issues/125) | `findBestMatch` accepts an optional `keySelector` to match against an array of objects. |\n| [#127](https://github.com/aceakash/string-similarity/issues/127) | License is consistently MIT (the original's `package.json` said ISC while its `LICENSE` said MIT). |\n| — | Built-in TypeScript types (no separate `@types/string-similarity` needed). |\n| — | Zero dependencies; maintained (the original is deprecated). |\n\n## Migration from `string-similarity`\n\nDrop-in — replace the import:\n\n```diff\n- const stringSimilarity = require('string-similarity');\n+ const stringSimilarity = require('@bybrave/string-similarity2');\n```\n\nRatings are **identical** to `string-similarity@4.0.4` (the Dice-coefficient formula is unchanged, including its whitespace stripping and the `length < 2 → 0` behaviour).\n\n## Support\n\nIf this package saves you time, you can support maintenance:\n\n[![Ko-fi](https://img.shields.io/badge/Ko--fi-buy%20me%20a%20coffee-FF5E5B?logo=kofi&logoColor=white)](https://ko-fi.com/bybrave)\n[![Bitcoin](https://img.shields.io/badge/Bitcoin-BTC-F7931A?logo=bitcoin&logoColor=white)](#support)\n\nBitcoin (BTC): `bc1q37557q5jpeaxqydzwvf3jgj7zhnfpn2td3q40q`\n\n## License\n\nMIT. Copyright © Akash Kurdekar; fork © bybrave.\n","readmeFilename":"README.md"}