cmpstr 3.2.0 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -18
- package/dist/CmpStr.esm.js +490 -220
- package/dist/CmpStr.esm.min.js +2 -3
- package/dist/CmpStr.umd.js +489 -220
- package/dist/CmpStr.umd.min.js +2 -3
- package/dist/cjs/CmpStr.cjs +58 -36
- package/dist/cjs/CmpStrAsync.cjs +30 -24
- package/dist/cjs/index.cjs +1 -2
- package/dist/cjs/metric/Cosine.cjs +1 -2
- package/dist/cjs/metric/DamerauLevenshtein.cjs +1 -2
- package/dist/cjs/metric/DiceSorensen.cjs +1 -2
- package/dist/cjs/metric/Hamming.cjs +5 -4
- package/dist/cjs/metric/Jaccard.cjs +1 -2
- package/dist/cjs/metric/JaroWinkler.cjs +1 -2
- package/dist/cjs/metric/LCS.cjs +1 -2
- package/dist/cjs/metric/Levenshtein.cjs +1 -2
- package/dist/cjs/metric/Metric.cjs +57 -38
- package/dist/cjs/metric/NeedlemanWunsch.cjs +1 -2
- package/dist/cjs/metric/QGram.cjs +1 -2
- package/dist/cjs/metric/SmithWaterman.cjs +1 -2
- package/dist/cjs/phonetic/Caverphone.cjs +1 -2
- package/dist/cjs/phonetic/Cologne.cjs +1 -2
- package/dist/cjs/phonetic/Metaphone.cjs +1 -2
- package/dist/cjs/phonetic/Phonetic.cjs +55 -35
- package/dist/cjs/phonetic/Soundex.cjs +1 -2
- package/dist/cjs/root.cjs +3 -2
- package/dist/cjs/utils/DeepMerge.cjs +10 -5
- package/dist/cjs/utils/DiffChecker.cjs +1 -2
- package/dist/cjs/utils/Errors.cjs +103 -0
- package/dist/cjs/utils/Filter.cjs +56 -27
- package/dist/cjs/utils/HashTable.cjs +1 -2
- package/dist/cjs/utils/Normalizer.cjs +54 -34
- package/dist/cjs/utils/Pool.cjs +42 -18
- package/dist/cjs/utils/Profiler.cjs +1 -2
- package/dist/cjs/utils/Registry.cjs +46 -22
- package/dist/cjs/utils/StructuredData.cjs +13 -5
- package/dist/cjs/utils/TextAnalyzer.cjs +1 -2
- package/dist/esm/CmpStr.mjs +56 -32
- package/dist/esm/CmpStrAsync.mjs +26 -20
- package/dist/esm/index.mjs +1 -2
- package/dist/esm/metric/Cosine.mjs +1 -2
- package/dist/esm/metric/DamerauLevenshtein.mjs +1 -2
- package/dist/esm/metric/DiceSorensen.mjs +1 -2
- package/dist/esm/metric/Hamming.mjs +5 -4
- package/dist/esm/metric/Jaccard.mjs +1 -2
- package/dist/esm/metric/JaroWinkler.mjs +1 -2
- package/dist/esm/metric/LCS.mjs +1 -2
- package/dist/esm/metric/Levenshtein.mjs +1 -2
- package/dist/esm/metric/Metric.mjs +59 -38
- package/dist/esm/metric/NeedlemanWunsch.mjs +1 -2
- package/dist/esm/metric/QGram.mjs +1 -2
- package/dist/esm/metric/SmithWaterman.mjs +1 -2
- package/dist/esm/phonetic/Caverphone.mjs +1 -2
- package/dist/esm/phonetic/Cologne.mjs +1 -2
- package/dist/esm/phonetic/Metaphone.mjs +1 -2
- package/dist/esm/phonetic/Phonetic.mjs +55 -35
- package/dist/esm/phonetic/Soundex.mjs +1 -2
- package/dist/esm/root.mjs +3 -2
- package/dist/esm/utils/DeepMerge.mjs +10 -5
- package/dist/esm/utils/DiffChecker.mjs +1 -2
- package/dist/esm/utils/Errors.mjs +103 -0
- package/dist/esm/utils/Filter.mjs +56 -27
- package/dist/esm/utils/HashTable.mjs +1 -2
- package/dist/esm/utils/Normalizer.mjs +54 -34
- package/dist/esm/utils/Pool.mjs +38 -18
- package/dist/esm/utils/Profiler.mjs +1 -2
- package/dist/esm/utils/Registry.mjs +46 -22
- package/dist/esm/utils/StructuredData.mjs +13 -5
- package/dist/esm/utils/TextAnalyzer.mjs +1 -2
- package/dist/types/CmpStr.d.ts +12 -6
- package/dist/types/CmpStrAsync.d.ts +6 -4
- package/dist/types/index.d.ts +3 -2
- package/dist/types/metric/Cosine.d.ts +2 -1
- package/dist/types/metric/DamerauLevenshtein.d.ts +2 -1
- package/dist/types/metric/DiceSorensen.d.ts +2 -1
- package/dist/types/metric/Hamming.d.ts +2 -1
- package/dist/types/metric/Jaccard.d.ts +2 -1
- package/dist/types/metric/JaroWinkler.d.ts +2 -1
- package/dist/types/metric/LCS.d.ts +2 -1
- package/dist/types/metric/Levenshtein.d.ts +2 -1
- package/dist/types/metric/Metric.d.ts +7 -5
- package/dist/types/metric/NeedlemanWunsch.d.ts +2 -1
- package/dist/types/metric/QGram.d.ts +2 -1
- package/dist/types/metric/SmithWaterman.d.ts +2 -1
- package/dist/types/metric/index.d.ts +1 -0
- package/dist/types/phonetic/Caverphone.d.ts +2 -1
- package/dist/types/phonetic/Cologne.d.ts +2 -1
- package/dist/types/phonetic/Metaphone.d.ts +2 -1
- package/dist/types/phonetic/Phonetic.d.ts +4 -1
- package/dist/types/phonetic/Soundex.d.ts +2 -1
- package/dist/types/phonetic/index.d.ts +1 -0
- package/dist/types/root.d.ts +2 -1
- package/dist/types/utils/DeepMerge.d.ts +3 -2
- package/dist/types/utils/DiffChecker.d.ts +2 -1
- package/dist/types/utils/Errors.d.ts +137 -0
- package/dist/types/utils/Filter.d.ts +33 -22
- package/dist/types/utils/HashTable.d.ts +2 -1
- package/dist/types/utils/Normalizer.d.ts +5 -1
- package/dist/types/utils/Pool.d.ts +4 -1
- package/dist/types/utils/Profiler.d.ts +3 -2
- package/dist/types/utils/Registry.d.ts +5 -4
- package/dist/types/utils/StructuredData.d.ts +5 -2
- package/dist/types/utils/TextAnalyzer.d.ts +2 -1
- package/dist/types/utils/Types.d.ts +34 -2
- package/package.json +10 -7
- package/dist/CmpStr.esm.js.map +0 -1
- package/dist/CmpStr.esm.min.js.map +0 -1
- package/dist/CmpStr.umd.js.map +0 -1
- package/dist/CmpStr.umd.min.js.map +0 -1
- package/dist/cjs/CmpStr.cjs.map +0 -1
- package/dist/cjs/CmpStrAsync.cjs.map +0 -1
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/metric/Cosine.cjs.map +0 -1
- package/dist/cjs/metric/DamerauLevenshtein.cjs.map +0 -1
- package/dist/cjs/metric/DiceSorensen.cjs.map +0 -1
- package/dist/cjs/metric/Hamming.cjs.map +0 -1
- package/dist/cjs/metric/Jaccard.cjs.map +0 -1
- package/dist/cjs/metric/JaroWinkler.cjs.map +0 -1
- package/dist/cjs/metric/LCS.cjs.map +0 -1
- package/dist/cjs/metric/Levenshtein.cjs.map +0 -1
- package/dist/cjs/metric/Metric.cjs.map +0 -1
- package/dist/cjs/metric/NeedlemanWunsch.cjs.map +0 -1
- package/dist/cjs/metric/QGram.cjs.map +0 -1
- package/dist/cjs/metric/SmithWaterman.cjs.map +0 -1
- package/dist/cjs/phonetic/Caverphone.cjs.map +0 -1
- package/dist/cjs/phonetic/Cologne.cjs.map +0 -1
- package/dist/cjs/phonetic/Metaphone.cjs.map +0 -1
- package/dist/cjs/phonetic/Phonetic.cjs.map +0 -1
- package/dist/cjs/phonetic/Soundex.cjs.map +0 -1
- package/dist/cjs/root.cjs.map +0 -1
- package/dist/cjs/utils/DeepMerge.cjs.map +0 -1
- package/dist/cjs/utils/DiffChecker.cjs.map +0 -1
- package/dist/cjs/utils/Filter.cjs.map +0 -1
- package/dist/cjs/utils/HashTable.cjs.map +0 -1
- package/dist/cjs/utils/Normalizer.cjs.map +0 -1
- package/dist/cjs/utils/Pool.cjs.map +0 -1
- package/dist/cjs/utils/Profiler.cjs.map +0 -1
- package/dist/cjs/utils/Registry.cjs.map +0 -1
- package/dist/cjs/utils/StructuredData.cjs.map +0 -1
- package/dist/cjs/utils/TextAnalyzer.cjs.map +0 -1
- package/dist/esm/CmpStr.mjs.map +0 -1
- package/dist/esm/CmpStrAsync.mjs.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/metric/Cosine.mjs.map +0 -1
- package/dist/esm/metric/DamerauLevenshtein.mjs.map +0 -1
- package/dist/esm/metric/DiceSorensen.mjs.map +0 -1
- package/dist/esm/metric/Hamming.mjs.map +0 -1
- package/dist/esm/metric/Jaccard.mjs.map +0 -1
- package/dist/esm/metric/JaroWinkler.mjs.map +0 -1
- package/dist/esm/metric/LCS.mjs.map +0 -1
- package/dist/esm/metric/Levenshtein.mjs.map +0 -1
- package/dist/esm/metric/Metric.mjs.map +0 -1
- package/dist/esm/metric/NeedlemanWunsch.mjs.map +0 -1
- package/dist/esm/metric/QGram.mjs.map +0 -1
- package/dist/esm/metric/SmithWaterman.mjs.map +0 -1
- package/dist/esm/phonetic/Caverphone.mjs.map +0 -1
- package/dist/esm/phonetic/Cologne.mjs.map +0 -1
- package/dist/esm/phonetic/Metaphone.mjs.map +0 -1
- package/dist/esm/phonetic/Phonetic.mjs.map +0 -1
- package/dist/esm/phonetic/Soundex.mjs.map +0 -1
- package/dist/esm/root.mjs.map +0 -1
- package/dist/esm/utils/DeepMerge.mjs.map +0 -1
- package/dist/esm/utils/DiffChecker.mjs.map +0 -1
- package/dist/esm/utils/Filter.mjs.map +0 -1
- package/dist/esm/utils/HashTable.mjs.map +0 -1
- package/dist/esm/utils/Normalizer.mjs.map +0 -1
- package/dist/esm/utils/Pool.mjs.map +0 -1
- package/dist/esm/utils/Profiler.mjs.map +0 -1
- package/dist/esm/utils/Registry.mjs.map +0 -1
- package/dist/esm/utils/StructuredData.mjs.map +0 -1
- package/dist/esm/utils/TextAnalyzer.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
# CmpStr – Modern String Similarity Package
|
|
2
2
|
|
|
3
|
-
[](LICENSE)
|
|
4
3
|
[](https://github.com/komed3/cmpstr/wiki)
|
|
5
|
-
[](https://komed3.github.io/cmpstr)
|
|
5
|
+
[](https://github.com/komed3/cmpstr/blob/master/LICENSE)
|
|
6
6
|
[](https://npmjs.com/package/cmpstr)
|
|
7
|
-
[](https://bundlephobia.com/package/cmpstr)
|
|
8
|
-
[](https://npm-stat.com/charts.html?package=cmpstr)
|
|
9
7
|
[](https://github.com/komed3/cmpstr/actions/workflows/build.yml)
|
|
8
|
+
[](https://npm-stat.com/charts.html?package=cmpstr)
|
|
9
|
+
[](https://jsdelivr.com/package/npm/cmpstr)
|
|
10
|
+
[](https://bundlephobia.com/package/cmpstr)
|
|
10
11
|
[](https://github.com/komed3/cmpstr/wiki/Installation-&-Setup#import-in-your-project)
|
|
11
12
|
[](https://github.com/komed3/cmpstr/wiki/Installation-&-Setup#browser)
|
|
12
13
|
|
|
13
14
|
[](https://ko-fi.com/W7W21SQV2Q)
|
|
14
15
|
|
|
15
|
-
**CmpStr** is a modern TypeScript library for advanced string comparison, similarity measurement, phonetic indexing, and text analysis. It provides a comprehensive collection of established algorithms such as Levenshtein, Dice–Sørensen, Jaro-Winkler, LCS, q-Gram, and more.
|
|
16
|
+
**CmpStr** is a modern TypeScript library for [advanced string comparison](https://github.com/komed3/cmpstr/wiki/Comparison-Modes), [similarity measurement](https://github.com/komed3/cmpstr/wiki/Similarity-Metrics), [phonetic indexing](https://github.com/komed3/cmpstr/wiki/Phonetic-Algorithms), and [text analysis](https://github.com/komed3/cmpstr/wiki/Diff-&-Text-Analysis). It provides a comprehensive collection of established algorithms such as Levenshtein, Dice–Sørensen, Jaro-Winkler, LCS, q-Gram, and more.
|
|
16
17
|
|
|
17
|
-
The library is dependency-free, fully typed, and designed with extensibility in mind. Custom metrics, phonetic mappings, normalization filters, and processing pipelines can be integrated without modifying the core. CmpStr offers a unified, consistent API for single comparisons, batch processing, and pairwise matching across synchronous and asynchronous workflows.
|
|
18
|
+
The library is dependency-free, fully typed, and designed with [extensibility](https://github.com/komed3/cmpstr/wiki/Extending-CmpStr) in mind. Custom metrics, phonetic mappings, [normalization filters, and processing pipelines](https://github.com/komed3/cmpstr/wiki/Normalization-&-Filtering) can be integrated without modifying the core. CmpStr offers a [unified, consistent API](https://github.com/komed3/cmpstr/wiki/API-Reference) for single comparisons, batch processing, and pairwise matching across synchronous and [asynchronous workflows](https://github.com/komed3/cmpstr/wiki/Asynchronous-API).
|
|
18
19
|
|
|
19
|
-
Originally released in 2023 with a minimal feature set, CmpStr was fundamentally redesigned in 2025 to support a broader range of algorithms, scalable processing, and more demanding real-world use cases.
|
|
20
|
+
Originally released in 2023 with a minimal feature set, CmpStr was [fundamentally redesigned in 2025](https://github.com/komed3/cmpstr/wiki/Changelog) to support a broader range of algorithms, scalable processing, and more demanding real-world use cases.
|
|
20
21
|
|
|
21
22
|
## Key Features
|
|
22
23
|
|
|
23
|
-
* Unified API for string similarity, distance measurement, and matching
|
|
24
|
-
* Modular metric system with built-in support for 11 different metrics
|
|
25
|
-
* Integrated phonetic algorithms (e.g. Soundex, Metaphone) with a configurable registry
|
|
26
|
-
* Configurable normalization and filtering pipeline for consistent input processing
|
|
27
|
-
* Single, batch, and pairwise comparisons with structured, type-safe results
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* Utilities for text structure and readability analysis (e.g. syllables, word statistics)
|
|
24
|
+
* [Unified API](https://github.com/komed3/cmpstr/wiki/API-Reference) for string similarity, distance measurement, and matching
|
|
25
|
+
* Modular metric system with [built-in support for 11 different metrics](https://github.com/komed3/cmpstr/wiki/Similarity-Metrics)
|
|
26
|
+
* Integrated [phonetic algorithms](https://github.com/komed3/cmpstr/wiki/Phonetic-Algorithms) (e.g. Soundex, Metaphone) with a configurable registry
|
|
27
|
+
* Configurable [normalization and filtering pipeline](https://github.com/komed3/cmpstr/wiki/Normalization-&-Filtering) for consistent input processing
|
|
28
|
+
* [Single, batch, and pairwise comparisons](https://github.com/komed3/cmpstr/wiki/Comparison-Modes) with structured, type-safe results
|
|
29
|
+
* [Structured data comparison](https://github.com/komed3/cmpstr/wiki/Structured-Data) via property extraction
|
|
30
|
+
* Utilities for [text structure and readability analysis](https://github.com/komed3/cmpstr/wiki/Diff-&-Text-Analysis) (e.g. syllables, word statistics)
|
|
31
31
|
* Diffing utilities with CLI-friendly output formats
|
|
32
32
|
* TypeScript-native design with full type declarations
|
|
33
|
-
* Optional asynchronous
|
|
34
|
-
* Extensible architecture for custom algorithms, processors, and filters
|
|
33
|
+
* Optional [asynchronous API](https://github.com/komed3/cmpstr/wiki/Asynchronous-API) for scalable, non-blocking workloads
|
|
34
|
+
* [Extensible architecture](https://github.com/komed3/cmpstr/wiki/Extending-CmpStr) for custom algorithms, processors, and filters
|
|
35
35
|
|
|
36
36
|
## Getting Started
|
|
37
37
|
|
|
@@ -41,6 +41,12 @@ Install CmpStr using npm:
|
|
|
41
41
|
npm install cmpstr
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
+
or with yarn:
|
|
45
|
+
|
|
46
|
+
```sh
|
|
47
|
+
yarn add cmpstr
|
|
48
|
+
```
|
|
49
|
+
|
|
44
50
|
### Minimal Example
|
|
45
51
|
|
|
46
52
|
```ts
|
|
@@ -80,6 +86,8 @@ CmpStr can also be used directly from the command line via **[cmpstr-cli](https:
|
|
|
80
86
|
|
|
81
87
|
Comprehensive documentation, API references, and advanced usage examples are available in the [GitHub Wiki](https://github.com/komed3/cmpstr/wiki).
|
|
82
88
|
|
|
89
|
+
Check out the [technical documentation](https://komed3.github.io/cmpstr) created with TypeDoc, which exposes all classes, methods and types.
|
|
90
|
+
|
|
83
91
|
## License
|
|
84
92
|
|
|
85
|
-
MIT License © 2023–2026 Paul Köhler (komed3)
|
|
93
|
+
[MIT License](https://github.com/komed3/cmpstr/blob/master/LICENSE) — © 2023–2026 Paul Köhler (komed3)
|