cmpstr 3.1.0 → 3.1.1

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 (83) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +1 -1
  3. package/dist/CmpStr.esm.js +37 -25
  4. package/dist/CmpStr.esm.js.map +1 -1
  5. package/dist/CmpStr.esm.min.js +2 -2
  6. package/dist/CmpStr.esm.min.js.map +1 -1
  7. package/dist/CmpStr.umd.js +37 -21
  8. package/dist/CmpStr.umd.js.map +1 -1
  9. package/dist/CmpStr.umd.min.js +2 -2
  10. package/dist/CmpStr.umd.min.js.map +1 -1
  11. package/dist/cjs/CmpStr.cjs +1 -1
  12. package/dist/cjs/CmpStrAsync.cjs +1 -1
  13. package/dist/cjs/index.cjs +1 -1
  14. package/dist/cjs/metric/Cosine.cjs +1 -1
  15. package/dist/cjs/metric/DamerauLevenshtein.cjs +1 -1
  16. package/dist/cjs/metric/DiceSorensen.cjs +1 -1
  17. package/dist/cjs/metric/Hamming.cjs +1 -1
  18. package/dist/cjs/metric/Jaccard.cjs +1 -1
  19. package/dist/cjs/metric/JaroWinkler.cjs +1 -1
  20. package/dist/cjs/metric/LCS.cjs +1 -1
  21. package/dist/cjs/metric/Levenshtein.cjs +1 -1
  22. package/dist/cjs/metric/Metric.cjs +1 -1
  23. package/dist/cjs/metric/NeedlemanWunsch.cjs +1 -1
  24. package/dist/cjs/metric/SmithWaterman.cjs +1 -1
  25. package/dist/cjs/metric/qGram.cjs +1 -1
  26. package/dist/cjs/phonetic/Caverphone.cjs +1 -1
  27. package/dist/cjs/phonetic/Cologne.cjs +1 -1
  28. package/dist/cjs/phonetic/Metaphone.cjs +1 -1
  29. package/dist/cjs/phonetic/Phonetic.cjs +1 -1
  30. package/dist/cjs/phonetic/Soundex.cjs +1 -1
  31. package/dist/cjs/root.cjs +1 -1
  32. package/dist/cjs/utils/DeepMerge.cjs +1 -1
  33. package/dist/cjs/utils/DiffChecker.cjs +1 -1
  34. package/dist/cjs/utils/Filter.cjs +1 -1
  35. package/dist/cjs/utils/HashTable.cjs +6 -6
  36. package/dist/cjs/utils/HashTable.cjs.map +1 -1
  37. package/dist/cjs/utils/Normalizer.cjs +1 -1
  38. package/dist/cjs/utils/Pool.cjs +6 -6
  39. package/dist/cjs/utils/Pool.cjs.map +1 -1
  40. package/dist/cjs/utils/Profiler.cjs +1 -1
  41. package/dist/cjs/utils/Registry.cjs +1 -1
  42. package/dist/cjs/utils/StructuredData.cjs +27 -15
  43. package/dist/cjs/utils/StructuredData.cjs.map +1 -1
  44. package/dist/cjs/utils/TextAnalyzer.cjs +1 -1
  45. package/dist/esm/CmpStr.mjs +1 -1
  46. package/dist/esm/CmpStrAsync.mjs +1 -1
  47. package/dist/esm/index.mjs +1 -1
  48. package/dist/esm/metric/Cosine.mjs +1 -1
  49. package/dist/esm/metric/DamerauLevenshtein.mjs +1 -1
  50. package/dist/esm/metric/DiceSorensen.mjs +1 -1
  51. package/dist/esm/metric/Hamming.mjs +1 -1
  52. package/dist/esm/metric/Jaccard.mjs +1 -1
  53. package/dist/esm/metric/JaroWinkler.mjs +1 -1
  54. package/dist/esm/metric/LCS.mjs +1 -1
  55. package/dist/esm/metric/Levenshtein.mjs +1 -1
  56. package/dist/esm/metric/Metric.mjs +1 -1
  57. package/dist/esm/metric/NeedlemanWunsch.mjs +1 -1
  58. package/dist/esm/metric/SmithWaterman.mjs +1 -1
  59. package/dist/esm/metric/qGram.mjs +1 -1
  60. package/dist/esm/phonetic/Caverphone.mjs +1 -1
  61. package/dist/esm/phonetic/Cologne.mjs +1 -1
  62. package/dist/esm/phonetic/Metaphone.mjs +1 -1
  63. package/dist/esm/phonetic/Phonetic.mjs +1 -1
  64. package/dist/esm/phonetic/Soundex.mjs +1 -1
  65. package/dist/esm/root.mjs +1 -1
  66. package/dist/esm/utils/DeepMerge.mjs +1 -1
  67. package/dist/esm/utils/DiffChecker.mjs +1 -1
  68. package/dist/esm/utils/Filter.mjs +1 -1
  69. package/dist/esm/utils/HashTable.mjs +6 -6
  70. package/dist/esm/utils/HashTable.mjs.map +1 -1
  71. package/dist/esm/utils/Normalizer.mjs +1 -1
  72. package/dist/esm/utils/Pool.mjs +6 -6
  73. package/dist/esm/utils/Pool.mjs.map +1 -1
  74. package/dist/esm/utils/Profiler.mjs +1 -1
  75. package/dist/esm/utils/Registry.mjs +1 -1
  76. package/dist/esm/utils/StructuredData.mjs +27 -15
  77. package/dist/esm/utils/StructuredData.mjs.map +1 -1
  78. package/dist/esm/utils/TextAnalyzer.mjs +1 -1
  79. package/dist/types/index.d.ts +2 -2
  80. package/dist/types/root.d.ts +1 -1
  81. package/dist/types/utils/StructuredData.d.ts +13 -11
  82. package/dist/types/utils/Types.d.ts +8 -0
  83. package/package.json +3 -2
@@ -1,4 +1,4 @@
1
- // CmpStr v3.1.0 build-76aadb9-260117 by Paul Köhler @komed3 / MIT License
1
+ // CmpStr v3.1.1 build-a140f52-260119 by Paul Köhler @komed3 / MIT License
2
2
  import { Pool } from './Pool.mjs';
3
3
 
4
4
  class StructuredData {
@@ -39,39 +39,51 @@ class StructuredData {
39
39
  normalizeResults(results) {
40
40
  if (!Array.isArray(results) || results.length === 0) return [];
41
41
  const first = results[0];
42
- if (this.isMetricResult(first)) return results;
43
- if (this.isCmpStrResult(first))
44
- return results.map((r) => ({
42
+ let normalized = [];
43
+ if (this.isMetricResult(first)) normalized = results;
44
+ else if (this.isCmpStrResult(first)) {
45
+ normalized = results.map((r) => ({
45
46
  metric: 'unknown',
46
47
  a: r.source,
47
48
  b: r.target,
48
49
  res: r.match,
49
50
  raw: r.raw
50
51
  }));
51
- return [];
52
+ }
53
+ return normalized.map((r, idx) => ({ ...r, __idx: idx }));
52
54
  }
53
55
  rebuild(results, sourceData, extractedStrings, removeZero, objectsOnly) {
56
+ const stringToIndices = new Map();
57
+ for (let i = 0; i < extractedStrings.length; i++) {
58
+ const str = extractedStrings[i];
59
+ if (!stringToIndices.has(str)) stringToIndices.set(str, []);
60
+ stringToIndices.get(str).push(i);
61
+ }
54
62
  const output = new Array(results.length);
63
+ const occurrenceCount = new Map();
55
64
  let out = 0;
56
65
  for (let i = 0; i < results.length; i++) {
57
66
  const result = results[i];
58
67
  if (removeZero && result.res === 0) continue;
59
- let dataIndex =
60
- result.b && extractedStrings.length
61
- ? extractedStrings.indexOf(result.b)
62
- : i;
63
- if (dataIndex < 0 || dataIndex >= sourceData.length) dataIndex = i;
68
+ const targetStr = result.b || '';
69
+ const indices = stringToIndices.get(targetStr);
70
+ let dataIndex;
71
+ if (indices && indices.length > 0) {
72
+ const occurrence = occurrenceCount.get(targetStr) ?? 0;
73
+ occurrenceCount.set(targetStr, occurrence + 1);
74
+ dataIndex = indices[occurrence % indices.length];
75
+ } else {
76
+ dataIndex = result.__idx ?? i;
77
+ }
78
+ if (dataIndex < 0 || dataIndex >= sourceData.length) continue;
64
79
  const sourceObj = sourceData[dataIndex];
80
+ const mappedTarget = extractedStrings[dataIndex] || targetStr;
65
81
  if (objectsOnly) output[out++] = sourceObj;
66
82
  else
67
83
  output[out++] = {
68
84
  obj: sourceObj,
69
85
  key: this.key,
70
- result: {
71
- source: result.a,
72
- target: extractedStrings[dataIndex] || result.b,
73
- match: result.res
74
- },
86
+ result: { source: result.a, target: mappedTarget, match: result.res },
75
87
  ...(result.raw ? { raw: result.raw } : null)
76
88
  };
77
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StructuredData.mjs","sources":["../../../src/utils/StructuredData.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StructuredData.mjs","sources":["../../../src/utils/StructuredData.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- // CmpStr v3.1.0 build-76aadb9-260117 by Paul Köhler @komed3 / MIT License
1
+ // CmpStr v3.1.1 build-a140f52-260119 by Paul Köhler @komed3 / MIT License
2
2
  class TextAnalyzer {
3
3
  text;
4
4
  words = [];
@@ -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.1.0
10
+ * Version: 3.1.1
11
11
  * Author: Paul Köhler (komed3)
12
12
  * License: MIT
13
13
  *
@@ -41,7 +41,7 @@
41
41
  * For asynchronous workloads, use `CmpStrAsync`, which provides the same API with
42
42
  * Promise-based, non-blocking methods for large-scale or I/O-bound operations.
43
43
  *
44
- * @version 3.1.0
44
+ * @version 3.1.1
45
45
  * @author Paul Köhler (komed3)
46
46
  * @license MIT
47
47
  */
@@ -9,7 +9,7 @@
9
9
  * Please visit CmpStr's documentation for more information:
10
10
  * https://github.com/komed3/cmpstr/wiki/Extending-CmpStr
11
11
  *
12
- * @version 3.1.0
12
+ * @version 3.1.1
13
13
  * @author Paul Köhler (komed3)
14
14
  * @license MIT
15
15
  */
@@ -30,7 +30,7 @@ export declare class StructuredData<T = any, R = MetricRaw> {
30
30
  * Creates a new StructuredData instance for processing structured data.
31
31
  *
32
32
  * @param {T[]} data - The array of objects to process
33
- * @param {string|number|symbol} key - The property key to extract for comparison
33
+ * @param {keyof T} key - The property key to extract for comparison
34
34
  * @returns {StructuredData<T, R>} - A new class instance
35
35
  */
36
36
  static create<T = any, R = MetricRaw>(data: T[], key: keyof T): StructuredData<T, R>;
@@ -74,18 +74,19 @@ export declare class StructuredData<T = any, R = MetricRaw> {
74
74
  private isCmpStrResult;
75
75
  /**
76
76
  * Normalizes metric results to a consistent format.
77
+ * Attaches original indices for correct mapping after sorting.
77
78
  * Handles both CmpStrResult[] and MetricResultBatch<R> formats.
78
79
  *
79
80
  * @param {any} results - The raw metric results
80
- * @returns {MetricResultSingle<R>[]} - Normalized single results array
81
+ * @returns {IndexedResult<R>[]} - Normalized results with indices
81
82
  */
82
83
  private normalizeResults;
83
84
  /**
84
85
  * Rebuilds results with original objects attached.
85
- * IMPORTANT: Results are assumed to be in the same order as sourceData,
86
- * or they must include index information via the source/target mapping.
86
+ * Maps results to source objects using target string matching with duplicate handling.
87
+ * Works correctly even when results are filtered or subset (e.g., from closest/furthest).
87
88
  *
88
- * @param {MetricResultSingle<R>[]} results - The normalized metric results
89
+ * @param {IndexedResult<R>[]} results - The normalized metric results
89
90
  * @param {T[]} sourceData - The source data array for object attachment
90
91
  * @param {string[]} extractedStrings - The extracted strings array for index mapping
91
92
  * @param {boolean} [removeZero] - Whether to remove zero similarity results
@@ -95,10 +96,11 @@ export declare class StructuredData<T = any, R = MetricRaw> {
95
96
  private rebuild;
96
97
  /**
97
98
  * Sorts results in-place by match score.
99
+ * Preserves __idx for tracking original positions.
98
100
  *
99
- * @param {MetricResultSingle<R>[]} results - The results to sort
100
- * @param {string|boolean} [sort] - Sort direction (asc, desc, or boolean true=desc)
101
- * @returns {MetricResultSingle<R>[]} - Sorted results
101
+ * @param {IndexedResult<R>[]} results - The results to sort
102
+ * @param {string | boolean} [sort] - Sort direction (asc, desc, or boolean true=desc)
103
+ * @returns {IndexedResult<R>[]} - Sorted results
102
104
  */
103
105
  private sort;
104
106
  /**
@@ -107,7 +109,7 @@ export declare class StructuredData<T = any, R = MetricRaw> {
107
109
  * @param {() => CmpFnResult<R>} fn - The comparison function
108
110
  * @param {string[]} extractedStrings - The extracted strings for index mapping
109
111
  * @param {StructuredDataOptions} [opt] - Additional options
110
- * @returns {StructuredDataBatchResult<T, R>|T[]} - The lookup results
112
+ * @returns {StructuredDataBatchResult<T, R> | T[]} - The lookup results
111
113
  */
112
114
  private performLookup;
113
115
  /**
@@ -116,7 +118,7 @@ export declare class StructuredData<T = any, R = MetricRaw> {
116
118
  * @param {() => Promise<CmpFnResult<R>>} fn - The async comparison function
117
119
  * @param {string[]} extractedStrings - The extracted strings for index mapping
118
120
  * @param {StructuredDataOptions} [opt] - Additional options
119
- * @returns {Promise<StructuredDataBatchResult<T, R>|T[]>} - The async lookup results
121
+ * @returns {Promise<StructuredDataBatchResult<T, R> | T[]>} - The async lookup results
120
122
  */
121
123
  private performLookupAsync;
122
124
  /**
@@ -125,7 +127,7 @@ export declare class StructuredData<T = any, R = MetricRaw> {
125
127
  * @param {() => CmpFnResult<R>} fn - The comparison function
126
128
  * @param {string} query - The query string to compare against
127
129
  * @param {StructuredDataOptions} [opt] - Optional lookup options
128
- * @returns {StructuredDataBatchResult<T, R>|T[]} - Results with objects or just objects
130
+ * @returns {StructuredDataBatchResult<T, R> | T[]} - Results with objects or just objects
129
131
  */
130
132
  lookup(fn: (a: string, b: string[], opt?: CmpStrOptions) => CmpFnResult<R>, query: string, opt?: StructuredDataOptions): StructuredDataBatchResult<T, R> | T[];
131
133
  /**
@@ -177,6 +177,14 @@ export type MetricResultBatch<R = MetricRaw> = MetricResultSingle<R>[];
177
177
  * @template R - The type of the raw result
178
178
  */
179
179
  export type MetricResult<R = MetricRaw> = MetricResultSingle<R> | MetricResultBatch<R>;
180
+ /**
181
+ * IndexedResult is an MetricResultSingle with optional index metadata.
182
+ *
183
+ * @template R - The type of the raw result
184
+ */
185
+ export type IndexedResult<R = MetricRaw> = MetricResultSingle<R> & {
186
+ __idx?: number;
187
+ };
180
188
  /**
181
189
  * PhoneticOptions configures the behavior of phonetic algorithms.
182
190
  */
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.1.0",
5
+ "version": "3.1.1",
6
6
  "author": {
7
7
  "name": "komed3 (Paul Köhler)",
8
8
  "email": "webmaster@komed3.de",
@@ -97,8 +97,9 @@
97
97
  "@rollup/plugin-terser": "^0.4.4",
98
98
  "@rollup/plugin-typescript": "^12.3.0",
99
99
  "@types/node": "^25.0.9",
100
+ "package-verify": "^1.0.3",
100
101
  "prettier": "^3.8.0",
101
- "rollup": "^4.55.1",
102
+ "rollup": "^4.55.2",
102
103
  "rollup-plugin-cleanup": "^3.2.1",
103
104
  "rollup-plugin-prettier": "^4.1.2",
104
105
  "tslib": "^2.8.1",