cmpstr 3.0.3 → 3.1.0

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 (139) hide show
  1. package/README.md +2 -1
  2. package/dist/CmpStr.esm.js +2487 -4948
  3. package/dist/CmpStr.esm.js.map +1 -1
  4. package/dist/CmpStr.esm.min.js +3 -3
  5. package/dist/CmpStr.esm.min.js.map +1 -1
  6. package/dist/CmpStr.umd.js +2601 -5040
  7. package/dist/CmpStr.umd.js.map +1 -1
  8. package/dist/CmpStr.umd.min.js +3 -3
  9. package/dist/CmpStr.umd.min.js.map +1 -1
  10. package/dist/cjs/CmpStr.cjs +41 -405
  11. package/dist/cjs/CmpStr.cjs.map +1 -1
  12. package/dist/cjs/CmpStrAsync.cjs +38 -221
  13. package/dist/cjs/CmpStrAsync.cjs.map +1 -1
  14. package/dist/cjs/index.cjs +1 -1
  15. package/dist/cjs/metric/Cosine.cjs +1 -56
  16. package/dist/cjs/metric/Cosine.cjs.map +1 -1
  17. package/dist/cjs/metric/DamerauLevenshtein.cjs +2 -64
  18. package/dist/cjs/metric/DamerauLevenshtein.cjs.map +1 -1
  19. package/dist/cjs/metric/DiceSorensen.cjs +1 -56
  20. package/dist/cjs/metric/DiceSorensen.cjs.map +1 -1
  21. package/dist/cjs/metric/Hamming.cjs +2 -51
  22. package/dist/cjs/metric/Hamming.cjs.map +1 -1
  23. package/dist/cjs/metric/Jaccard.cjs +1 -48
  24. package/dist/cjs/metric/Jaccard.cjs.map +1 -1
  25. package/dist/cjs/metric/JaroWinkler.cjs +1 -53
  26. package/dist/cjs/metric/JaroWinkler.cjs.map +1 -1
  27. package/dist/cjs/metric/LCS.cjs +1 -54
  28. package/dist/cjs/metric/LCS.cjs.map +1 -1
  29. package/dist/cjs/metric/Levenshtein.cjs +2 -60
  30. package/dist/cjs/metric/Levenshtein.cjs.map +1 -1
  31. package/dist/cjs/metric/Metric.cjs +1 -261
  32. package/dist/cjs/metric/Metric.cjs.map +1 -1
  33. package/dist/cjs/metric/NeedlemanWunsch.cjs +4 -56
  34. package/dist/cjs/metric/NeedlemanWunsch.cjs.map +1 -1
  35. package/dist/cjs/metric/SmithWaterman.cjs +4 -58
  36. package/dist/cjs/metric/SmithWaterman.cjs.map +1 -1
  37. package/dist/cjs/metric/qGram.cjs +1 -55
  38. package/dist/cjs/metric/qGram.cjs.map +1 -1
  39. package/dist/cjs/phonetic/Caverphone.cjs +1 -78
  40. package/dist/cjs/phonetic/Caverphone.cjs.map +1 -1
  41. package/dist/cjs/phonetic/Cologne.cjs +1 -43
  42. package/dist/cjs/phonetic/Cologne.cjs.map +1 -1
  43. package/dist/cjs/phonetic/Metaphone.cjs +1 -76
  44. package/dist/cjs/phonetic/Metaphone.cjs.map +1 -1
  45. package/dist/cjs/phonetic/Phonetic.cjs +1 -261
  46. package/dist/cjs/phonetic/Phonetic.cjs.map +1 -1
  47. package/dist/cjs/phonetic/Soundex.cjs +1 -47
  48. package/dist/cjs/phonetic/Soundex.cjs.map +1 -1
  49. package/dist/cjs/root.cjs +49 -0
  50. package/dist/cjs/root.cjs.map +1 -0
  51. package/dist/cjs/utils/DeepMerge.cjs +8 -75
  52. package/dist/cjs/utils/DeepMerge.cjs.map +1 -1
  53. package/dist/cjs/utils/DiffChecker.cjs +2 -190
  54. package/dist/cjs/utils/DiffChecker.cjs.map +1 -1
  55. package/dist/cjs/utils/Filter.cjs +1 -112
  56. package/dist/cjs/utils/Filter.cjs.map +1 -1
  57. package/dist/cjs/utils/HashTable.cjs +1 -99
  58. package/dist/cjs/utils/HashTable.cjs.map +1 -1
  59. package/dist/cjs/utils/Normalizer.cjs +3 -94
  60. package/dist/cjs/utils/Normalizer.cjs.map +1 -1
  61. package/dist/cjs/utils/Pool.cjs +10 -105
  62. package/dist/cjs/utils/Pool.cjs.map +1 -1
  63. package/dist/cjs/utils/Profiler.cjs +1 -133
  64. package/dist/cjs/utils/Profiler.cjs.map +1 -1
  65. package/dist/cjs/utils/Registry.cjs +1 -89
  66. package/dist/cjs/utils/Registry.cjs.map +1 -1
  67. package/dist/cjs/utils/StructuredData.cjs +145 -0
  68. package/dist/cjs/utils/StructuredData.cjs.map +1 -0
  69. package/dist/cjs/utils/TextAnalyzer.cjs +1 -180
  70. package/dist/cjs/utils/TextAnalyzer.cjs.map +1 -1
  71. package/dist/esm/CmpStr.mjs +41 -405
  72. package/dist/esm/CmpStr.mjs.map +1 -1
  73. package/dist/esm/CmpStrAsync.mjs +38 -221
  74. package/dist/esm/CmpStrAsync.mjs.map +1 -1
  75. package/dist/esm/index.mjs +1 -1
  76. package/dist/esm/metric/Cosine.mjs +1 -56
  77. package/dist/esm/metric/Cosine.mjs.map +1 -1
  78. package/dist/esm/metric/DamerauLevenshtein.mjs +2 -64
  79. package/dist/esm/metric/DamerauLevenshtein.mjs.map +1 -1
  80. package/dist/esm/metric/DiceSorensen.mjs +1 -56
  81. package/dist/esm/metric/DiceSorensen.mjs.map +1 -1
  82. package/dist/esm/metric/Hamming.mjs +2 -51
  83. package/dist/esm/metric/Hamming.mjs.map +1 -1
  84. package/dist/esm/metric/Jaccard.mjs +1 -48
  85. package/dist/esm/metric/Jaccard.mjs.map +1 -1
  86. package/dist/esm/metric/JaroWinkler.mjs +1 -53
  87. package/dist/esm/metric/JaroWinkler.mjs.map +1 -1
  88. package/dist/esm/metric/LCS.mjs +1 -54
  89. package/dist/esm/metric/LCS.mjs.map +1 -1
  90. package/dist/esm/metric/Levenshtein.mjs +2 -60
  91. package/dist/esm/metric/Levenshtein.mjs.map +1 -1
  92. package/dist/esm/metric/Metric.mjs +1 -261
  93. package/dist/esm/metric/Metric.mjs.map +1 -1
  94. package/dist/esm/metric/NeedlemanWunsch.mjs +4 -56
  95. package/dist/esm/metric/NeedlemanWunsch.mjs.map +1 -1
  96. package/dist/esm/metric/SmithWaterman.mjs +4 -58
  97. package/dist/esm/metric/SmithWaterman.mjs.map +1 -1
  98. package/dist/esm/metric/qGram.mjs +1 -55
  99. package/dist/esm/metric/qGram.mjs.map +1 -1
  100. package/dist/esm/phonetic/Caverphone.mjs +1 -78
  101. package/dist/esm/phonetic/Caverphone.mjs.map +1 -1
  102. package/dist/esm/phonetic/Cologne.mjs +1 -43
  103. package/dist/esm/phonetic/Cologne.mjs.map +1 -1
  104. package/dist/esm/phonetic/Metaphone.mjs +1 -76
  105. package/dist/esm/phonetic/Metaphone.mjs.map +1 -1
  106. package/dist/esm/phonetic/Phonetic.mjs +1 -261
  107. package/dist/esm/phonetic/Phonetic.mjs.map +1 -1
  108. package/dist/esm/phonetic/Soundex.mjs +1 -47
  109. package/dist/esm/phonetic/Soundex.mjs.map +1 -1
  110. package/dist/esm/root.mjs +35 -0
  111. package/dist/esm/root.mjs.map +1 -0
  112. package/dist/esm/utils/DeepMerge.mjs +8 -76
  113. package/dist/esm/utils/DeepMerge.mjs.map +1 -1
  114. package/dist/esm/utils/DiffChecker.mjs +2 -190
  115. package/dist/esm/utils/DiffChecker.mjs.map +1 -1
  116. package/dist/esm/utils/Filter.mjs +1 -112
  117. package/dist/esm/utils/Filter.mjs.map +1 -1
  118. package/dist/esm/utils/HashTable.mjs +1 -99
  119. package/dist/esm/utils/HashTable.mjs.map +1 -1
  120. package/dist/esm/utils/Normalizer.mjs +3 -94
  121. package/dist/esm/utils/Normalizer.mjs.map +1 -1
  122. package/dist/esm/utils/Pool.mjs +10 -105
  123. package/dist/esm/utils/Pool.mjs.map +1 -1
  124. package/dist/esm/utils/Profiler.mjs +1 -133
  125. package/dist/esm/utils/Profiler.mjs.map +1 -1
  126. package/dist/esm/utils/Registry.mjs +1 -89
  127. package/dist/esm/utils/Registry.mjs.map +1 -1
  128. package/dist/esm/utils/StructuredData.mjs +143 -0
  129. package/dist/esm/utils/StructuredData.mjs.map +1 -0
  130. package/dist/esm/utils/TextAnalyzer.mjs +1 -180
  131. package/dist/esm/utils/TextAnalyzer.mjs.map +1 -1
  132. package/dist/types/CmpStr.d.ts +90 -8
  133. package/dist/types/CmpStrAsync.d.ts +82 -8
  134. package/dist/types/index.d.ts +3 -2
  135. package/dist/types/root.d.ts +39 -0
  136. package/dist/types/utils/Pool.d.ts +2 -2
  137. package/dist/types/utils/StructuredData.d.ts +162 -0
  138. package/dist/types/utils/Types.d.ts +35 -1
  139. package/package.json +63 -22
@@ -1,184 +1,73 @@
1
- // CmpStr v3.0.3 build-462b952-250813 by Paul Köhler @komed3 / MIT License
2
- /**
3
- * Filter Utility
4
- * src/utils/Filter.ts
5
- *
6
- * This module provides a Filter class that allows for the management and application of
7
- * filters to strings based on hooks. Filters can be added, removed, paused, resumed, and
8
- * applied to input strings. Each filter has an id, a function, a priority, and options
9
- * for activation and overrideability.
10
- *
11
- * @module Utils/Filter
12
- * @author Paul Köhler (komed3)
13
- * @license MIT
14
- */
15
- /**
16
- * The Filter class provides a way to manage and apply filters to strings based on hooks.
17
- */
1
+ // CmpStr v3.1.0 build-76aadb9-260117 by Paul Köhler @komed3 / MIT License
18
2
  class Filter {
19
- /**
20
- * A static map to hold all filters.
21
- * The key is the hook name, and the value is an array of FilterEntry objects.
22
- */
23
3
  static filters = new Map();
24
- /**
25
- * Finds a filter by its hook and id.
26
- *
27
- * @param {string} hook - The name of the hook
28
- * @param {string} id - The id of the filter
29
- * @returns {FilterEntry|undefined} - The FilterEntry if found, otherwise undefined
30
- */
31
4
  static find(hook, id) {
32
5
  return Filter.filters.get(hook)?.find((f) => f.id === id);
33
6
  }
34
- /**
35
- * Adds a filter to the specified hook.
36
- *
37
- * @param {string} hook - The name of the hook
38
- * @param {string} id - The id of the filter
39
- * @param {FilterFn} fn - The filter function
40
- * @param {FilterOptions} [opt] - Additional options for the filter
41
- * @returns {boolean} - Returns true if the filter was added, false if it was not added due to override restrictions
42
- */
43
7
  static add(hook, id, fn, opt = {}) {
44
8
  const { priority = 10, active = true, overrideable = true } = opt;
45
- // Check if the filter already exists
46
9
  const filter = Filter.filters.get(hook) ?? [];
47
10
  const index = filter.findIndex((f) => f.id === id);
48
- // If the filter already exists and is not overrideable, return false
49
11
  if (index >= 0) {
50
12
  const f = filter[index];
51
13
  if (!f.overrideable) return false;
52
14
  filter.splice(index, 1);
53
15
  }
54
- // Add the new filter entry
55
16
  filter.push({ id, fn, priority, active, overrideable });
56
- // Sort the filters by priority
57
17
  filter.sort((a, b) => a.priority - b.priority);
58
- // Update the filters map
59
18
  Filter.filters.set(hook, filter);
60
19
  return true;
61
20
  }
62
- /**
63
- * Removes a filter by its hook and id.
64
- *
65
- * @param {string} hook - The name of the hook
66
- * @param {string} id - The id of the filter
67
- * @returns {boolean} - Returns true if the filter was removed, false if it was not found
68
- */
69
21
  static remove(hook, id) {
70
- // Get the filter array for the specified hook
71
22
  const filter = Filter.filters.get(hook);
72
- // If the filter array does not exist, return false
73
23
  if (!filter) return false;
74
- // Find the index of the filter with the specified id
75
24
  const index = filter.findIndex((f) => f.id === id);
76
- // If the filter is found, remove it and return true
77
25
  if (index >= 0) {
78
26
  filter.splice(index, 1);
79
27
  return true;
80
28
  }
81
29
  return false;
82
30
  }
83
- /**
84
- * Pauses a filter by its hook and id.
85
- *
86
- * @param {string} hook - The name of the hook
87
- * @param {string} id - The id of the filter
88
- * @returns {boolean} - Returns true if the filter was paused, false if it was not found
89
- */
90
31
  static pause(hook, id) {
91
- // Find the filter entry by hook and id
92
32
  const f = Filter.find(hook, id);
93
33
  if (!f) return false;
94
- // Set the active property to false to pause the filter
95
34
  f.active = false;
96
35
  return true;
97
36
  }
98
- /**
99
- * Resumes a filter by its hook and id.
100
- *
101
- * @param {string} hook - The name of the hook
102
- * @param {string} id - The id of the filter
103
- * @returns {boolean} - Returns true if the filter was resumed, false if it was not found
104
- */
105
37
  static resume(hook, id) {
106
- // Find the filter entry by hook and id
107
38
  const f = Filter.find(hook, id);
108
39
  if (!f) return false;
109
- // Set the active property to true to resume the filter
110
40
  f.active = true;
111
41
  return true;
112
42
  }
113
- /**
114
- * Lists all filters for a given hook.
115
- *
116
- * @param {string} hook - The name of the hook
117
- * @param {boolean} active - If true, only list active filters
118
- * @returns {string[]} - An array of filter ids
119
- */
120
43
  static list(hook, active = false) {
121
- // Get the filter array for the specified hook
122
44
  const filter = Filter.filters.get(hook) ?? [];
123
45
  const list = [];
124
- // If active is true, filter the entries based on their active status
125
46
  for (const f of filter) if (!active || f.active) list.push(f.id);
126
47
  return list;
127
48
  }
128
- /**
129
- * Applies all active filters for a given hook to the input string(s).
130
- *
131
- * @param {string} hook - The name of the hook
132
- * @param {string|string[]} input - The input string(s) to be filtered
133
- * @returns {string|string[]} - The filtered string(s)
134
- */
135
49
  static apply(hook, input) {
136
- // Get the filter array for the specified hook
137
50
  const filter = Filter.filters.get(hook);
138
- // If no filters are found for the hook or if no filters are active, return the input unchanged
139
51
  if (!filter || filter.every((f) => !f.active)) return input;
140
- // Apply each active filter function to the given string
141
52
  const applyOne = (s) => {
142
53
  for (const f of filter) if (f.active) s = f.fn(s);
143
54
  return s;
144
55
  };
145
- // If the input is an array, apply the filter to each element, otherwise just once
146
56
  return Array.isArray(input) ? input.map(applyOne) : applyOne(input);
147
57
  }
148
- /**
149
- * Applies all active filters for a given hook to the input string(s) asynchronously.
150
- * Each filter function may return a Promise or a plain string; all are awaited in order.
151
- *
152
- * @param {string} hook - The name of the hook
153
- * @param {string|string[]} input - The input string(s) to be filtered
154
- * @returns {Promise<string|string[]>} - The filtered string(s)
155
- */
156
58
  static async applyAsync(hook, input) {
157
- // Get the filter array for the specified hook
158
59
  const filter = Filter.filters.get(hook);
159
- // If no filters are found for the hook or if no filters are active, return the input unchanged
160
60
  if (!filter || filter.every((f) => !f.active)) return input;
161
- // Apply each active filter function to the given string
162
- // Support both sync and async filter functions
163
61
  const applyOne = async (s) => {
164
62
  for (const f of filter) if (f.active) s = await Promise.resolve(f.fn(s));
165
63
  return s;
166
64
  };
167
- // If the input is an array, apply the filter to each element, otherwise just once
168
- // Use Promise.all to handle multiple promises if input is an array
169
65
  return Array.isArray(input)
170
66
  ? Promise.all(input.map(applyOne))
171
67
  : applyOne(input);
172
68
  }
173
- /**
174
- * Clears all filters or filters for a specific hook.
175
- *
176
- * @param {string} [hook] - Optional name of the hook to clear filters for
177
- */
178
69
  static clear(hook) {
179
- // If a specific hook is provided, delete its filters
180
70
  if (hook) Filter.filters.delete(hook);
181
- // If no hook is provided, clear all filters
182
71
  else Filter.filters.clear();
183
72
  }
184
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.mjs","sources":["../../../src/utils/Filter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Filter.mjs","sources":["../../../src/utils/Filter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,46 +1,13 @@
1
- // CmpStr v3.0.3 build-462b952-250813 by Paul Köhler @komed3 / MIT License
2
- /**
3
- * Hash Table Utility
4
- * src/utils/HashTable.ts
5
- *
6
- * @see https://en.wikipedia.org/wiki/Fowler–Noll–Vo_hash_function
7
- * @see https://en.wikipedia.org/wiki/Hash_table
8
- *
9
- * This module implements an instantiable hash table/cache using the FNV-1a hash algorithm.
10
- * It allows for multiple independent caches (e.g. for metrics, normalization, etc.) with
11
- * type safety and high performance. The FNV-1a algorithm is factored out into its own
12
- * static utility class to avoid code duplication and memory overhead.
13
- *
14
- * The key() method supports any number of string arguments, enabling flexible cache keys
15
- * for different use cases (e.g. normalization, metrics, etc.).
16
- *
17
- * @module Utils/HashTable
18
- * @author Paul Köhler (komed3)
19
- * @license MIT
20
- */
21
- /**
22
- * Hasher Utility
23
- * Static class for FNV-1a hash calculation.
24
- */
1
+ // CmpStr v3.1.0 build-76aadb9-260117 by Paul Köhler @komed3 / MIT License
25
2
  class Hasher {
26
- // Constants for the FNV-1a hash algorithm
27
3
  static FNV_PRIME = 0x01000193;
28
4
  static HASH_OFFSET = 0x811c9dc5;
29
- /**
30
- * Computes a hash value for a given string using the FNV-1a algorithm.
31
- * Processes the string in chunks of 4 characters for better performance.
32
- *
33
- * @param {string} str - The string to hash
34
- * @return {number} - The computed hash value as an unsigned 32-bit integer
35
- */
36
5
  static fnv1a(str) {
37
6
  const len = str.length;
38
7
  let hash = this.HASH_OFFSET;
39
- // Process 4 characters at a time for better performance
40
8
  const chunks = Math.floor(len / 4);
41
9
  for (let i = 0; i < chunks; i++) {
42
10
  const pos = i * 4;
43
- // Combine 4 chars into a single number for faster processing
44
11
  const chunk =
45
12
  str.charCodeAt(pos) |
46
13
  (str.charCodeAt(pos + 1) << 8) |
@@ -49,7 +16,6 @@ class Hasher {
49
16
  hash ^= chunk;
50
17
  hash *= this.FNV_PRIME;
51
18
  }
52
- // Handle remaining characters
53
19
  const remaining = len % 4;
54
20
  if (remaining > 0) {
55
21
  const pos = chunks * 4;
@@ -58,83 +24,33 @@ class Hasher {
58
24
  hash *= this.FNV_PRIME;
59
25
  }
60
26
  }
61
- // Final mixing to improve distribution
62
27
  hash ^= hash >>> 16;
63
28
  hash *= 0x85ebca6b;
64
29
  hash ^= hash >>> 13;
65
30
  hash *= 0xc2b2ae35;
66
31
  hash ^= hash >>> 16;
67
- // Convert to unsigned 32-bit integer
68
32
  return hash >>> 0;
69
33
  }
70
34
  }
71
- /**
72
- * HashTable class implements an instantiable hash table/cache.
73
- * Allows for multiple independent caches with type safety and high performance.
74
- *
75
- * @template K - The type of the label for the key (e.g. string, MetricName, …)
76
- * @template T - The type of value to be stored in the hash table (e.g. MetricCompute, string, …)
77
- */
78
35
  class HashTable {
79
- // The max. length of a string to hash, which is set to 2048 characters.
80
36
  static MAX_LEN = 2048;
81
- // The max. size of the hash table, which is set to 10,000.
82
37
  static TABLE_SIZE = 10_000;
83
- /**
84
- * The internal map to store entries.
85
- * The key is a string generated from the label and any number of hashed strings.
86
- * The value is of type T.
87
- */
88
38
  table = new Map();
89
- /**
90
- * Generates a unique hash key for any number of string arguments.
91
- * The key is in the format "label-H1-H2-H3-..."
92
- *
93
- * @param {K} label - Label for this key (e.g. metric name, normalization flags, …)
94
- * @param {string[]} strs - Array of strings to hash (e.g. input, params, …)
95
- * @param {boolean} [sorted=false] - Whether to sort the hashes before creating the key
96
- * @returns {string|false} - A unique hash key or false if any string is too long
97
- */
98
39
  key(label, strs, sorted = false) {
99
- // Return false if any string exceeds the maximum length
100
40
  for (const str of strs) {
101
41
  if (str.length > HashTable.MAX_LEN) return false;
102
42
  }
103
- // Hash all strings
104
43
  const hashes = strs.map((s) => Hasher.fnv1a(s));
105
- // Sort them in ascending order
106
44
  if (sorted) hashes.sort();
107
- // Build key: label-H1-H2-H3-...
108
45
  return [label, ...hashes].join('-');
109
46
  }
110
- /**
111
- * Checks if a key exists in the hash table.
112
- *
113
- * @param {string} key - The key to check
114
- * @returns {boolean} - True if the key exists, false otherwise
115
- */
116
47
  has(key) {
117
48
  return this.table.has(key);
118
49
  }
119
- /**
120
- * Retrieves the entry from the hash table by its key.
121
- *
122
- * @param {string} key - The key to look up
123
- * @returns {T|undefined} - The entry if found, undefined otherwise
124
- */
125
50
  get(key) {
126
51
  return this.table.get(key);
127
52
  }
128
- /**
129
- * Adds an entry to the hash table.
130
- *
131
- * @param {string} key - The hashed key for the entry
132
- * @param {T} entry - The entry itself to add
133
- * @param {boolean} [update=true] - Whether to update the entry if it already exists
134
- * @returns {boolean} - True if added successfully, false if the table is full
135
- */
136
53
  set(key, entry, update = true) {
137
- // If the table is not full and the key does not exist or update is true, add the entry
138
54
  if (
139
55
  this.table.size < HashTable.TABLE_SIZE &&
140
56
  (update || !this.table.has(key))
@@ -144,26 +60,12 @@ class HashTable {
144
60
  }
145
61
  return false;
146
62
  }
147
- /**
148
- * Deletes an entry from the hash table by its key.
149
- *
150
- * @param {string} key - The key of the entry to delete
151
- */
152
63
  delete(key) {
153
64
  this.table.delete(key);
154
65
  }
155
- /**
156
- * Clears the hash table.
157
- * This method removes all entries from the hash table.
158
- */
159
66
  clear() {
160
67
  this.table.clear();
161
68
  }
162
- /**
163
- * Returns the current size of the hash table.
164
- *
165
- * @returns {number} - The number of entries in the hash table
166
- */
167
69
  size() {
168
70
  return this.table.size;
169
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HashTable.mjs","sources":["../../../src/utils/HashTable.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HashTable.mjs","sources":["../../../src/utils/HashTable.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,137 +1,46 @@
1
- // CmpStr v3.0.3 build-462b952-250813 by Paul Köhler @komed3 / MIT License
1
+ // CmpStr v3.1.0 build-76aadb9-260117 by Paul Köhler @komed3 / MIT License
2
2
  import { HashTable } from './HashTable.mjs';
3
3
 
4
- /**
5
- * Normalizer Utility
6
- * src/utils/Normalizer.ts
7
- *
8
- * @see https://en.wikipedia.org/wiki/Text_normalization
9
- * @see https://en.wikipedia.org/wiki/Unicode_equivalence
10
- *
11
- * This module provides a Normalizer class that allows for string normalization based
12
- * on various flags. It uses a pipeline of normalization functions that can be reused
13
- * and cached for efficiency. The Normalizer can handle both single strings and arrays
14
- * of strings, and supports synchronous and asynchronous normalization.
15
- *
16
- * Supported flags:
17
- * 'd' :: Normalize to NFD (Normalization Form Decomposed)
18
- * 'u' :: Normalize to NFC (Normalization Form Composed)
19
- * 'x' :: Normalize to NFKC (Normalization Form Compatibility Composed)
20
- * 'w' :: Collapse whitespace
21
- * 't' :: Remove leading and trailing whitespace
22
- * 'r' :: Remove double characters
23
- * 's' :: Remove punctuation / special characters
24
- * 'k' :: Remove non-letter characters
25
- * 'n' :: Remove non-number characters
26
- * 'i' :: Case insensitive (convert to lowercase)
27
- *
28
- * @module Utils/Normalizer
29
- * @author Paul Köhler (komed3)
30
- * @license MIT
31
- */
32
- /**
33
- * The Normalizer class providing methods to normalize strings based on various flags.
34
- */
35
4
  class Normalizer {
36
- /**
37
- * A map that holds normalization functions based on the flags.
38
- * This allows for reusing normalization logic without recomputing it.
39
- */
40
5
  static pipeline = new Map();
41
- /**
42
- * A cache to store normalized strings based on the flags and input.
43
- * This helps avoid recomputing normalization for the same input and flags.
44
- */
45
6
  static cache = new HashTable();
46
- /**
47
- * Returns a normalization function based on the provided flags.
48
- * The flags are a string of characters that define the normalization steps.
49
- *
50
- * @param {NormalizeFlags} flags - A string of characters representing the normalization steps
51
- * @returns {NormalizerFn} - A function that normalizes a string based on the provided flags
52
- */
53
7
  static getPipeline(flags) {
54
- // Return the cached pipeline if it exists
55
8
  if (Normalizer.pipeline.has(flags)) return Normalizer.pipeline.get(flags);
56
- // Define the normalization steps based on the flags
57
9
  const steps = [];
58
- // Normalize to NFD (Normalization Form Decomposed)
59
10
  if (flags.includes('d')) steps.push((str) => str.normalize('NFD'));
60
- // Normalize to NFC (Normalization Form Composed)
61
11
  if (flags.includes('u')) steps.push((str) => str.normalize('NFC'));
62
- // Normalize to NFKC (Normalization Form Compatibility Composed)
63
12
  if (flags.includes('x')) steps.push((str) => str.normalize('NFKC'));
64
- // Collapse whitespace
65
13
  if (flags.includes('w')) steps.push((str) => str.replace(/\s+/g, ' '));
66
- // Remove leading and trailing whitespace
67
14
  if (flags.includes('t')) steps.push((str) => str.trim());
68
- // Remove double characters
69
15
  if (flags.includes('r')) steps.push((str) => str.replace(/(.)\1+/g, '$1'));
70
- // Remove punctuation / special characters
71
16
  if (flags.includes('s'))
72
17
  steps.push((str) => str.replace(/[^\p{L}\p{N}\s]/gu, ''));
73
- // Remove non-letter characters
74
18
  if (flags.includes('k')) steps.push((str) => str.replace(/[^\p{L}]/gu, ''));
75
- // Remove non-number characters
76
19
  if (flags.includes('n')) steps.push((str) => str.replace(/\p{N}/gu, ''));
77
- // Case insensitive
78
20
  if (flags.includes('i')) steps.push((str) => str.toLowerCase());
79
- // Build the normalization function from the steps
80
21
  const compiled = (input) => {
81
22
  let res = input;
82
23
  for (const step of steps) res = step(res);
83
24
  return res;
84
25
  };
85
- // Cache the compiled function for the given flags
86
26
  Normalizer.pipeline.set(flags, compiled);
87
- // Return the compiled normalization function
88
27
  return compiled;
89
28
  }
90
- /**
91
- * Normalizes the input string or array of strings based on the provided flags.
92
- * The flags are a string of characters that define the normalization steps.
93
- *
94
- * @param {string|string[]} input - The string or array of strings to normalize
95
- * @param {NormalizeFlags} flags - A string of characters representing the normalization steps
96
- * @returns {string|string[]} - The normalized string(s)
97
- */
98
29
  static normalize(input, flags) {
99
- // If input is an array, normalize each string in the array
100
30
  if (Array.isArray(input))
101
31
  return input.map((s) => Normalizer.normalize(s, flags));
102
- // If input or flags are not provided, return the input as is
103
32
  if (!flags || typeof flags !== 'string' || !input) return input;
104
- // Generate a cache key based on the flags and input
105
33
  const key = Normalizer.cache.key(flags, [input]);
106
- // If the key exists in the cache, return the cached result
107
34
  if (key && Normalizer.cache.has(key)) return Normalizer.cache.get(key);
108
- // Normalize the input using the pipeline for the given flags
109
35
  const res = Normalizer.getPipeline(flags)(input);
110
- // If a key was generated, store the result in the cache
111
36
  if (key) Normalizer.cache.set(key, res);
112
- // Return the normalized result
113
37
  return res;
114
38
  }
115
- /**
116
- * Asynchronously normalizes the input string or array of strings based on the
117
- * provided flags. This method is useful for handling large inputs or when
118
- * normalization needs to be done in a non-blocking way.
119
- *
120
- * @param {string|string[]} input - The string or array of strings to normalize
121
- * @param {NormalizeFlags} flags - A string of characters representing the normalization steps
122
- * @returns {Promise<string|string[]>} - A promise that resolves to the normalized string(s)
123
- */
124
39
  static async normalizeAsync(input, flags) {
125
40
  return await (Array.isArray(input)
126
- ? // If input is an array, normalize each string in the array asynchronously
127
- Promise.all(input.map((s) => Normalizer.normalize(s, flags)))
128
- : // If input is a single string, normalize it asynchronously
129
- Promise.resolve(Normalizer.normalize(input, flags)));
41
+ ? Promise.all(input.map((s) => Normalizer.normalize(s, flags)))
42
+ : Promise.resolve(Normalizer.normalize(input, flags)));
130
43
  }
131
- /**
132
- * Clears the normalization pipeline and cache.
133
- * This is useful for resetting the state of the Normalizer.
134
- */
135
44
  static clear() {
136
45
  Normalizer.pipeline.clear();
137
46
  Normalizer.cache.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"Normalizer.mjs","sources":["../../../src/utils/Normalizer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Normalizer.mjs","sources":["../../../src/utils/Normalizer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}