cmpstr 3.0.2 → 3.0.4

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.
Files changed (130) hide show
  1. package/dist/CmpStr.esm.js +2228 -4930
  2. package/dist/CmpStr.esm.js.map +1 -1
  3. package/dist/CmpStr.esm.min.js +2 -2
  4. package/dist/CmpStr.esm.min.js.map +1 -1
  5. package/dist/CmpStr.umd.js +2348 -5026
  6. package/dist/CmpStr.umd.js.map +1 -1
  7. package/dist/CmpStr.umd.min.js +2 -2
  8. package/dist/CmpStr.umd.min.js.map +1 -1
  9. package/dist/cjs/CmpStr.cjs +10 -404
  10. package/dist/cjs/CmpStr.cjs.map +1 -1
  11. package/dist/cjs/CmpStrAsync.cjs +10 -220
  12. package/dist/cjs/CmpStrAsync.cjs.map +1 -1
  13. package/dist/cjs/index.cjs +1 -1
  14. package/dist/cjs/metric/Cosine.cjs +1 -56
  15. package/dist/cjs/metric/Cosine.cjs.map +1 -1
  16. package/dist/cjs/metric/DamerauLevenshtein.cjs +2 -64
  17. package/dist/cjs/metric/DamerauLevenshtein.cjs.map +1 -1
  18. package/dist/cjs/metric/DiceSorensen.cjs +1 -56
  19. package/dist/cjs/metric/DiceSorensen.cjs.map +1 -1
  20. package/dist/cjs/metric/Hamming.cjs +2 -51
  21. package/dist/cjs/metric/Hamming.cjs.map +1 -1
  22. package/dist/cjs/metric/Jaccard.cjs +1 -48
  23. package/dist/cjs/metric/Jaccard.cjs.map +1 -1
  24. package/dist/cjs/metric/JaroWinkler.cjs +1 -53
  25. package/dist/cjs/metric/JaroWinkler.cjs.map +1 -1
  26. package/dist/cjs/metric/LCS.cjs +1 -54
  27. package/dist/cjs/metric/LCS.cjs.map +1 -1
  28. package/dist/cjs/metric/Levenshtein.cjs +2 -60
  29. package/dist/cjs/metric/Levenshtein.cjs.map +1 -1
  30. package/dist/cjs/metric/Metric.cjs +2 -262
  31. package/dist/cjs/metric/Metric.cjs.map +1 -1
  32. package/dist/cjs/metric/NeedlemanWunsch.cjs +4 -56
  33. package/dist/cjs/metric/NeedlemanWunsch.cjs.map +1 -1
  34. package/dist/cjs/metric/SmithWaterman.cjs +4 -58
  35. package/dist/cjs/metric/SmithWaterman.cjs.map +1 -1
  36. package/dist/cjs/metric/qGram.cjs +1 -55
  37. package/dist/cjs/metric/qGram.cjs.map +1 -1
  38. package/dist/cjs/phonetic/Caverphone.cjs +1 -78
  39. package/dist/cjs/phonetic/Caverphone.cjs.map +1 -1
  40. package/dist/cjs/phonetic/Cologne.cjs +1 -43
  41. package/dist/cjs/phonetic/Cologne.cjs.map +1 -1
  42. package/dist/cjs/phonetic/Metaphone.cjs +1 -76
  43. package/dist/cjs/phonetic/Metaphone.cjs.map +1 -1
  44. package/dist/cjs/phonetic/Phonetic.cjs +1 -261
  45. package/dist/cjs/phonetic/Phonetic.cjs.map +1 -1
  46. package/dist/cjs/phonetic/Soundex.cjs +1 -47
  47. package/dist/cjs/phonetic/Soundex.cjs.map +1 -1
  48. package/dist/cjs/root.cjs +37 -0
  49. package/dist/cjs/root.cjs.map +1 -0
  50. package/dist/cjs/utils/DeepMerge.cjs +8 -75
  51. package/dist/cjs/utils/DeepMerge.cjs.map +1 -1
  52. package/dist/cjs/utils/DiffChecker.cjs +2 -190
  53. package/dist/cjs/utils/DiffChecker.cjs.map +1 -1
  54. package/dist/cjs/utils/Filter.cjs +1 -112
  55. package/dist/cjs/utils/Filter.cjs.map +1 -1
  56. package/dist/cjs/utils/HashTable.cjs +1 -99
  57. package/dist/cjs/utils/HashTable.cjs.map +1 -1
  58. package/dist/cjs/utils/Normalizer.cjs +3 -94
  59. package/dist/cjs/utils/Normalizer.cjs.map +1 -1
  60. package/dist/cjs/utils/Pool.cjs +1 -105
  61. package/dist/cjs/utils/Pool.cjs.map +1 -1
  62. package/dist/cjs/utils/Profiler.cjs +1 -133
  63. package/dist/cjs/utils/Profiler.cjs.map +1 -1
  64. package/dist/cjs/utils/Registry.cjs +2 -90
  65. package/dist/cjs/utils/Registry.cjs.map +1 -1
  66. package/dist/cjs/utils/TextAnalyzer.cjs +1 -180
  67. package/dist/cjs/utils/TextAnalyzer.cjs.map +1 -1
  68. package/dist/esm/CmpStr.mjs +10 -404
  69. package/dist/esm/CmpStr.mjs.map +1 -1
  70. package/dist/esm/CmpStrAsync.mjs +10 -220
  71. package/dist/esm/CmpStrAsync.mjs.map +1 -1
  72. package/dist/esm/index.mjs +1 -1
  73. package/dist/esm/metric/Cosine.mjs +1 -56
  74. package/dist/esm/metric/Cosine.mjs.map +1 -1
  75. package/dist/esm/metric/DamerauLevenshtein.mjs +2 -64
  76. package/dist/esm/metric/DamerauLevenshtein.mjs.map +1 -1
  77. package/dist/esm/metric/DiceSorensen.mjs +1 -56
  78. package/dist/esm/metric/DiceSorensen.mjs.map +1 -1
  79. package/dist/esm/metric/Hamming.mjs +2 -51
  80. package/dist/esm/metric/Hamming.mjs.map +1 -1
  81. package/dist/esm/metric/Jaccard.mjs +1 -48
  82. package/dist/esm/metric/Jaccard.mjs.map +1 -1
  83. package/dist/esm/metric/JaroWinkler.mjs +1 -53
  84. package/dist/esm/metric/JaroWinkler.mjs.map +1 -1
  85. package/dist/esm/metric/LCS.mjs +1 -54
  86. package/dist/esm/metric/LCS.mjs.map +1 -1
  87. package/dist/esm/metric/Levenshtein.mjs +2 -60
  88. package/dist/esm/metric/Levenshtein.mjs.map +1 -1
  89. package/dist/esm/metric/Metric.mjs +2 -262
  90. package/dist/esm/metric/Metric.mjs.map +1 -1
  91. package/dist/esm/metric/NeedlemanWunsch.mjs +4 -56
  92. package/dist/esm/metric/NeedlemanWunsch.mjs.map +1 -1
  93. package/dist/esm/metric/SmithWaterman.mjs +4 -58
  94. package/dist/esm/metric/SmithWaterman.mjs.map +1 -1
  95. package/dist/esm/metric/qGram.mjs +1 -55
  96. package/dist/esm/metric/qGram.mjs.map +1 -1
  97. package/dist/esm/phonetic/Caverphone.mjs +1 -78
  98. package/dist/esm/phonetic/Caverphone.mjs.map +1 -1
  99. package/dist/esm/phonetic/Cologne.mjs +1 -43
  100. package/dist/esm/phonetic/Cologne.mjs.map +1 -1
  101. package/dist/esm/phonetic/Metaphone.mjs +1 -76
  102. package/dist/esm/phonetic/Metaphone.mjs.map +1 -1
  103. package/dist/esm/phonetic/Phonetic.mjs +1 -261
  104. package/dist/esm/phonetic/Phonetic.mjs.map +1 -1
  105. package/dist/esm/phonetic/Soundex.mjs +1 -47
  106. package/dist/esm/phonetic/Soundex.mjs.map +1 -1
  107. package/dist/esm/root.mjs +29 -0
  108. package/dist/esm/root.mjs.map +1 -0
  109. package/dist/esm/utils/DeepMerge.mjs +8 -76
  110. package/dist/esm/utils/DeepMerge.mjs.map +1 -1
  111. package/dist/esm/utils/DiffChecker.mjs +2 -190
  112. package/dist/esm/utils/DiffChecker.mjs.map +1 -1
  113. package/dist/esm/utils/Filter.mjs +1 -112
  114. package/dist/esm/utils/Filter.mjs.map +1 -1
  115. package/dist/esm/utils/HashTable.mjs +1 -99
  116. package/dist/esm/utils/HashTable.mjs.map +1 -1
  117. package/dist/esm/utils/Normalizer.mjs +3 -94
  118. package/dist/esm/utils/Normalizer.mjs.map +1 -1
  119. package/dist/esm/utils/Pool.mjs +1 -105
  120. package/dist/esm/utils/Pool.mjs.map +1 -1
  121. package/dist/esm/utils/Profiler.mjs +1 -133
  122. package/dist/esm/utils/Profiler.mjs.map +1 -1
  123. package/dist/esm/utils/Registry.mjs +2 -90
  124. package/dist/esm/utils/Registry.mjs.map +1 -1
  125. package/dist/esm/utils/TextAnalyzer.mjs +1 -180
  126. package/dist/esm/utils/TextAnalyzer.mjs.map +1 -1
  127. package/dist/types/index.d.ts +3 -2
  128. package/dist/types/root.d.ts +38 -0
  129. package/dist/types/utils/Types.d.ts +1 -0
  130. package/package.json +15 -9
@@ -7,7 +7,7 @@
7
7
  * filtering, and text analysis. It is designed for both high-level application development
8
8
  * and research, offering a unified API for single, batch, and pairwise operations.
9
9
  *
10
- * Version: 3.0.2
10
+ * Version: 3.0.4
11
11
  * Author: Paul Köhler (komed3)
12
12
  * License: MIT
13
13
  *
@@ -19,6 +19,7 @@
19
19
  * - Phonetic algorithms (Cologne, Soundex, Metaphone) with mapping registry
20
20
  * - Flexible normalization and filtering pipeline for all inputs
21
21
  * - Batch, pairwise, and single comparison with detailed, type-safe results
22
+ * - Safe-mode for handling empty inputs gracefully
22
23
  * - Phonetic-aware search, indexing, and comparison
23
24
  * - Readability and text analysis utilities (syllables, word stats, etc.)
24
25
  * - Unified diff and difference reporting (line/word, ASCII/CLI)
@@ -39,7 +40,7 @@
39
40
  * For asynchronous workloads, use `CmpStrAsync`, which provides the same API with
40
41
  * Promise-based, non-blocking methods for large-scale or I/O-bound operations.
41
42
  *
42
- * @version 3.0.2
43
+ * @version 3.0.4
43
44
  * @author Paul Köhler (komed3)
44
45
  * @license MIT
45
46
  */
@@ -0,0 +1,38 @@
1
+ /**
2
+ * CmpStr Development Entry Point
3
+ * src/root.ts
4
+ *
5
+ * This entry point is intended for development and extension of the CmpStr library. It exposes
6
+ * core components and utilities that allow developers to create new metrics, phonetic algorithms,
7
+ * and other extensions to the library.
8
+ *
9
+ * Please visit CmpStr's documentation for more information:
10
+ * https://github.com/komed3/cmpstr/wiki/Extending-CmpStr
11
+ *
12
+ * @version 3.0.4
13
+ * @author Paul Köhler (komed3)
14
+ * @license MIT
15
+ */
16
+ export * from './utils/Types';
17
+ /**
18
+ * Export utils to implement new metrics
19
+ *
20
+ * - MetricRegistry: Metric registry service for managing metric implementations.
21
+ * - Metric: Abstract class representing a generic string metric.
22
+ * - MetricCls: Type definition for a class constructor that extends the Metric class.
23
+ */
24
+ export { MetricRegistry, Metric, MetricCls } from './metric';
25
+ /**
26
+ * Export utils to implement new phonetic algorithms
27
+ *
28
+ * - PhoneticRegistry: Phonetic registry service for managing phonetic algorithm implementations.
29
+ * - PhoneticMappingRegistry: Registry for managing phonetic character mappings.
30
+ * - Phonetic: Abstract class representing a generic phonetic algorithm.
31
+ * - PhoneticCls: Type definition for a class constructor that extends the Phonetic class.
32
+ */
33
+ export { PhoneticRegistry, PhoneticMappingRegistry, Phonetic, PhoneticCls } from './phonetic';
34
+ export * as DeepMerge from './utils/DeepMerge';
35
+ export { Filter } from './utils/Filter';
36
+ export { HashTable } from './utils/HashTable';
37
+ export { Pool } from './utils/Pool';
38
+ export { Profiler } from './utils/Profiler';
@@ -313,6 +313,7 @@ export interface CmpStrOptions {
313
313
  opt?: MetricOptions;
314
314
  processors?: CmpStrProcessors;
315
315
  output?: 'orig' | 'prep';
316
+ safeEmpty?: boolean;
316
317
  }
317
318
  /**
318
319
  * CmpStrResult represents a simplified result for user-facing API methods.
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "cmpstr",
3
3
  "description": "CmpStr is a lightweight, fast and well performing package for calculating string similarity",
4
4
  "license": "MIT",
5
- "version": "3.0.2",
5
+ "version": "3.0.4",
6
6
  "author": {
7
7
  "name": "komed3 (Paul Köhler)",
8
8
  "email": "webmaster@komed3.de",
@@ -31,23 +31,28 @@
31
31
  "README.md",
32
32
  "LICENSE"
33
33
  ],
34
- "engines": {
34
+ "engines": {
35
35
  "node": ">=18.0.0"
36
36
  },
37
+ "types": "./dist/types/index.d.ts",
37
38
  "browser": "./dist/CmpStr.umd.min.js",
38
39
  "main": "./dist/cjs/index.cjs",
39
40
  "module": "./dist/esm/index.mjs",
40
- "types": "./dist/types/index.d.ts",
41
41
  "exports": {
42
42
  ".": {
43
+ "types": "./dist/types/index.d.ts",
43
44
  "require": "./dist/cjs/index.cjs",
44
- "import": "./dist/esm/index.mjs",
45
- "types": "./dist/types/index.d.ts"
45
+ "import": "./dist/esm/index.mjs"
46
+ },
47
+ "./root": {
48
+ "types": "./dist/types/root.d.ts",
49
+ "require": "./dist/cjs/root.cjs",
50
+ "import": "./dist/esm/root.mjs"
46
51
  }
47
52
  },
48
53
  "scripts": {
49
54
  "test": "vitest run",
50
- "build": "rollup -c && tsc --project tsconfig.build.json",
55
+ "build": "rollup -c && tsc --project tsconfig.declaration.json",
51
56
  "lint": "tsc --project tsconfig.lint.json",
52
57
  "clean": "rm -rf dist"
53
58
  },
@@ -56,12 +61,13 @@
56
61
  "@rollup/plugin-node-resolve": "^16.0.1",
57
62
  "@rollup/plugin-terser": "^0.4.4",
58
63
  "@rollup/plugin-typescript": "^12.1.4",
59
- "@types/node": "^24.0.15",
64
+ "@types/node": "^24.4.0",
60
65
  "prettier": "^3.6.2",
61
- "rollup": "^4.45.1",
66
+ "rollup": "^4.50.2",
67
+ "rollup-plugin-cleanup": "^3.2.1",
62
68
  "rollup-plugin-prettier": "^4.1.2",
63
69
  "tslib": "^2.8.1",
64
- "typescript": "^5.8.3",
70
+ "typescript": "^5.9.2",
65
71
  "vitest": "^3.2.4"
66
72
  }
67
73
  }