cry-search 2.0.2 → 2.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.
- package/CLAUDE.md +8 -2
- package/README.md +53 -0
- package/UNIVERSE.md +12 -0
- package/dist/common/numeric/createSearchArrayMetadata.d.ts +10 -0
- package/dist/common/numeric/createSearchArrayMetadata.d.ts.map +1 -1
- package/dist/common/numeric/matchMany.d.ts +111 -0
- package/dist/common/numeric/matchMany.d.ts.map +1 -0
- package/dist/common/numeric/prepareQueryVariants.d.ts +24 -0
- package/dist/common/numeric/prepareQueryVariants.d.ts.map +1 -1
- package/dist/common/numeric/searchAndRank.d.ts.map +1 -1
- package/dist/common/numeric/searchInData.d.ts.map +1 -1
- package/dist/common/numeric/syncSearchArrayMetadata.d.ts.map +1 -1
- package/dist/common/numeric/updateSearchMetadata.d.ts.map +1 -1
- package/dist/index.cjs +316 -112
- package/dist/index.d.cts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +316 -112
- package/dist/types/index.d.ts +65 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/compareTokenized.d.ts +24 -0
- package/dist/utils/compareTokenized.d.ts.map +1 -0
- package/dist/vet/data/enote.d.ts +40 -0
- package/dist/vet/data/enote.d.ts.map +1 -0
- package/dist/vet/data/znamke.gen.d.ts +41 -0
- package/dist/vet/data/znamke.gen.d.ts.map +1 -0
- package/dist/vet/index.cjs +2468 -0
- package/dist/vet/index.d.cts +24 -0
- package/dist/vet/index.d.ts +24 -0
- package/dist/vet/index.d.ts.map +1 -0
- package/dist/vet/index.js +2426 -0
- package/dist/vet/normalizatorji.d.ts +104 -0
- package/dist/vet/normalizatorji.d.ts.map +1 -0
- package/dist/vet/ocena.d.ts +46 -0
- package/dist/vet/ocena.d.ts.map +1 -0
- package/dist/vet/spec.d.ts +35 -0
- package/dist/vet/spec.d.ts.map +1 -0
- package/dist/vet/uparjanje.d.ts +72 -0
- package/dist/vet/uparjanje.d.ts.map +1 -0
- package/package.json +29 -11
package/dist/index.cjs
CHANGED
|
@@ -39,69 +39,73 @@ var __export = (target, all) => {
|
|
|
39
39
|
// src/index.ts
|
|
40
40
|
var exports_src = {};
|
|
41
41
|
__export(exports_src, {
|
|
42
|
-
|
|
43
|
-
upsertLinkedItem: () => upsertLinkedItemNumeric,
|
|
44
|
-
updateSearchMetadataBatch: () => updateSearchMetadataBatchNumeric,
|
|
45
|
-
updateSearchMetadata: () => updateSearchMetadataNumeric,
|
|
46
|
-
tokens: () => tokens,
|
|
47
|
-
tokenize: () => tokenize,
|
|
48
|
-
syncSearchArrayMetadataWithPrevious: () => syncSearchArrayMetadataNumericWithPrevious,
|
|
49
|
-
syncSearchArrayMetadata: () => syncSearchArrayMetadataNumeric,
|
|
50
|
-
syncLinkedItemsForPrimary: () => syncLinkedItemsForPrimaryNumeric,
|
|
51
|
-
searchableDataToArray: () => searchableDataToArray,
|
|
52
|
-
searchInDataWithLimit: () => searchInDataReturnIdsWithLimitNumeric,
|
|
53
|
-
searchInDataReturnObjects: () => searchInDataReturnObjectsNumeric,
|
|
54
|
-
searchInDataReturnIds: () => searchInDataReturnIdsNumeric,
|
|
55
|
-
searchInData: () => searchInDataReturnIdsNumeric,
|
|
56
|
-
searchAndRankNumeric: () => searchAndRankNumeric,
|
|
57
|
-
searchAndRank: () => searchAndRankNumeric,
|
|
58
|
-
scoreOrderAndPresence: () => scoreOrderAndPresence,
|
|
59
|
-
scoreOne: () => scoreOne,
|
|
60
|
-
scoreBag: () => scoreBag,
|
|
61
|
-
sanitiseString: () => sanitiseString,
|
|
62
|
-
resolvePhoneQueryNormalizer: () => resolvePhoneQueryNormalizer,
|
|
63
|
-
resetTokenRegistry: () => resetTokenRegistry,
|
|
64
|
-
removePrimaryItem: () => removePrimaryItemNumeric,
|
|
65
|
-
removeLinkedItem: () => removeLinkedItemNumeric,
|
|
66
|
-
removeFromSearchMetadataBatch: () => removeFromSearchMetadataBatchNumeric,
|
|
67
|
-
removeFromSearchMetadata: () => removeFromSearchMetadataNumeric,
|
|
68
|
-
registerToken: () => registerToken,
|
|
69
|
-
preprocessString: () => preprocessString,
|
|
70
|
-
prepareStringForSearch: () => prepareStringForSearch,
|
|
71
|
-
prepareQueryTokens: () => prepareQueryTokens,
|
|
72
|
-
prepareObjectForSearch: () => prepareObjectForSearchNumeric,
|
|
73
|
-
orderedTokenize: () => orderedTokenize,
|
|
74
|
-
normalizeDates: () => normalizeDates,
|
|
75
|
-
matchTokenInSortedListNumeric: () => matchTokenInSortedListNumeric,
|
|
76
|
-
matchPreparedTokenInSortedList: () => matchPreparedTokenInSortedList,
|
|
77
|
-
isDeletedOrBlocked: () => isDeletedOrBlocked,
|
|
78
|
-
getTokenCount: () => getTokenCount,
|
|
79
|
-
getTokenById: () => getTokenById,
|
|
80
|
-
getOrCreateTokenId: () => getOrCreateTokenId,
|
|
81
|
-
findTokenId: () => findTokenId,
|
|
82
|
-
findInLinkedArraysSimpleNumeric: () => findInLinkedArraysSimpleNumeric,
|
|
83
|
-
findInLinkedArraysNumeric: () => findInLinkedArraysNumeric,
|
|
84
|
-
encodeTokenWithMode: () => encodeTokenWithMode,
|
|
85
|
-
defaultQueryPhoneNormalizer: () => defaultQueryPhoneNormalizer,
|
|
86
|
-
defaultPhoneNormalizer: () => defaultPhoneNormalizer,
|
|
87
|
-
decodeTokenId: () => decodeTokenId,
|
|
88
|
-
decodeMatchMode: () => decodeMatchMode,
|
|
89
|
-
createTokensMap: () => createTokensMap,
|
|
90
|
-
createSearchLinkedMetadata: () => createSearchLinkedMetadataNumeric,
|
|
91
|
-
createSearchArrayMetadata: () => createSearchArrayMetadataNumeric,
|
|
92
|
-
clearTokensMap: () => clearTokensMap,
|
|
93
|
-
binarySearchUint32: () => binarySearchUint32,
|
|
94
|
-
arrayToSearchableData: () => arrayToSearchableData,
|
|
95
|
-
allTokensMatchNumeric: () => allTokensMatchNumeric,
|
|
96
|
-
allPreparedTokensMatch: () => allPreparedTokensMatch,
|
|
97
|
-
TOKEN_ID_MASK: () => TOKEN_ID_MASK,
|
|
98
|
-
SearchUniverse: () => SearchUniverse,
|
|
99
|
-
PREFIX_TO_MATCH_MODE: () => PREFIX_TO_MATCH_MODE,
|
|
100
|
-
MATCH_MODE_PREFIXES: () => MATCH_MODE_PREFIXES,
|
|
101
|
-
MATCH_MODE_BITS: () => MATCH_MODE_BITS,
|
|
102
|
-
DEFAULT_SEARCH_OPTS: () => DEFAULT_SEARCH_OPTS,
|
|
42
|
+
AugmentedMetadata: () => AugmentedMetadata,
|
|
103
43
|
DEFAULT_PHONE_FIELDS: () => DEFAULT_PHONE_FIELDS,
|
|
104
|
-
|
|
44
|
+
DEFAULT_SEARCH_OPTS: () => DEFAULT_SEARCH_OPTS,
|
|
45
|
+
MATCH_MODE_BITS: () => MATCH_MODE_BITS,
|
|
46
|
+
MATCH_MODE_PREFIXES: () => MATCH_MODE_PREFIXES,
|
|
47
|
+
PREFIX_TO_MATCH_MODE: () => PREFIX_TO_MATCH_MODE,
|
|
48
|
+
SearchUniverse: () => SearchUniverse,
|
|
49
|
+
TOKEN_ID_MASK: () => TOKEN_ID_MASK,
|
|
50
|
+
allPreparedTokensMatch: () => allPreparedTokensMatch,
|
|
51
|
+
allTokensMatchNumeric: () => allTokensMatchNumeric,
|
|
52
|
+
arrayToSearchableData: () => arrayToSearchableData,
|
|
53
|
+
binarySearchUint32: () => binarySearchUint32,
|
|
54
|
+
clearTokensMap: () => clearTokensMap,
|
|
55
|
+
compareTokenized: () => compareTokenized,
|
|
56
|
+
createSearchArrayMetadata: () => createSearchArrayMetadataNumeric,
|
|
57
|
+
createSearchLinkedMetadata: () => createSearchLinkedMetadataNumeric,
|
|
58
|
+
createTokensMap: () => createTokensMap,
|
|
59
|
+
decodeMatchMode: () => decodeMatchMode,
|
|
60
|
+
decodeTokenId: () => decodeTokenId,
|
|
61
|
+
defaultPhoneNormalizer: () => defaultPhoneNormalizer,
|
|
62
|
+
defaultQueryPhoneNormalizer: () => defaultQueryPhoneNormalizer,
|
|
63
|
+
encodeTokenWithMode: () => encodeTokenWithMode,
|
|
64
|
+
findInLinkedArraysNumeric: () => findInLinkedArraysNumeric,
|
|
65
|
+
findInLinkedArraysSimpleNumeric: () => findInLinkedArraysSimpleNumeric,
|
|
66
|
+
findTokenId: () => findTokenId,
|
|
67
|
+
getOrCreateTokenId: () => getOrCreateTokenId,
|
|
68
|
+
getTokenById: () => getTokenById,
|
|
69
|
+
getTokenCount: () => getTokenCount,
|
|
70
|
+
isDeletedOrBlocked: () => isDeletedOrBlocked,
|
|
71
|
+
itemClasses: () => itemClasses,
|
|
72
|
+
matchMany: () => matchMany,
|
|
73
|
+
matchPreparedTokenInSortedList: () => matchPreparedTokenInSortedList,
|
|
74
|
+
matchTokenInSortedListNumeric: () => matchTokenInSortedListNumeric,
|
|
75
|
+
normalizeDates: () => normalizeDates,
|
|
76
|
+
normalizeQueryWithOpts: () => normalizeQueryWithOpts,
|
|
77
|
+
orderedTokenize: () => orderedTokenize,
|
|
78
|
+
prepareObjectForSearch: () => prepareObjectForSearchNumeric,
|
|
79
|
+
prepareQueryTokens: () => prepareQueryTokens,
|
|
80
|
+
prepareStringForSearch: () => prepareStringForSearch,
|
|
81
|
+
preprocessString: () => preprocessString,
|
|
82
|
+
registerToken: () => registerToken,
|
|
83
|
+
removeFromSearchMetadata: () => removeFromSearchMetadataNumeric,
|
|
84
|
+
removeFromSearchMetadataBatch: () => removeFromSearchMetadataBatchNumeric,
|
|
85
|
+
removeLinkedItem: () => removeLinkedItemNumeric,
|
|
86
|
+
removePrimaryItem: () => removePrimaryItemNumeric,
|
|
87
|
+
resetTokenRegistry: () => resetTokenRegistry,
|
|
88
|
+
resolvePhoneQueryNormalizer: () => resolvePhoneQueryNormalizer,
|
|
89
|
+
sanitiseString: () => sanitiseString,
|
|
90
|
+
scoreBag: () => scoreBag,
|
|
91
|
+
scoreOne: () => scoreOne,
|
|
92
|
+
scoreOrderAndPresence: () => scoreOrderAndPresence,
|
|
93
|
+
searchAndRank: () => searchAndRankNumeric,
|
|
94
|
+
searchAndRankNumeric: () => searchAndRankNumeric,
|
|
95
|
+
searchInData: () => searchInDataReturnIdsNumeric,
|
|
96
|
+
searchInDataReturnIds: () => searchInDataReturnIdsNumeric,
|
|
97
|
+
searchInDataReturnObjects: () => searchInDataReturnObjectsNumeric,
|
|
98
|
+
searchInDataWithLimit: () => searchInDataReturnIdsWithLimitNumeric,
|
|
99
|
+
searchableDataToArray: () => searchableDataToArray,
|
|
100
|
+
syncLinkedItemsForPrimary: () => syncLinkedItemsForPrimaryNumeric,
|
|
101
|
+
syncSearchArrayMetadata: () => syncSearchArrayMetadataNumeric,
|
|
102
|
+
syncSearchArrayMetadataWithPrevious: () => syncSearchArrayMetadataNumericWithPrevious,
|
|
103
|
+
tokenize: () => tokenize,
|
|
104
|
+
tokens: () => tokens,
|
|
105
|
+
updateSearchMetadata: () => updateSearchMetadataNumeric,
|
|
106
|
+
updateSearchMetadataBatch: () => updateSearchMetadataBatchNumeric,
|
|
107
|
+
upsertLinkedItem: () => upsertLinkedItemNumeric,
|
|
108
|
+
upsertPrimaryItem: () => upsertPrimaryItemNumeric
|
|
105
109
|
});
|
|
106
110
|
module.exports = __toCommonJS(exports_src);
|
|
107
111
|
|
|
@@ -319,6 +323,22 @@ function prepareStringForSearch(input) {
|
|
|
319
323
|
const tokens = tokenize(sanitised, DEFAULT_TOKENIZE_CONFIG);
|
|
320
324
|
return tokens.sort();
|
|
321
325
|
}
|
|
326
|
+
// src/utils/compareTokenized.ts
|
|
327
|
+
function compareTokenized(a, b) {
|
|
328
|
+
const aTokens = new Set(prepareStringForSearch(a));
|
|
329
|
+
const bTokens = new Set(prepareStringForSearch(b));
|
|
330
|
+
if (aTokens.size === 0 && bTokens.size === 0)
|
|
331
|
+
return 1;
|
|
332
|
+
let intersection = 0;
|
|
333
|
+
for (const token of aTokens) {
|
|
334
|
+
if (bTokens.has(token))
|
|
335
|
+
intersection++;
|
|
336
|
+
}
|
|
337
|
+
const union = aTokens.size + bTokens.size - intersection;
|
|
338
|
+
if (union === 0)
|
|
339
|
+
return 0;
|
|
340
|
+
return intersection / union;
|
|
341
|
+
}
|
|
322
342
|
// src/utils/phoneNormalization.ts
|
|
323
343
|
var RE_ASCII_DIGITS = /^[0-9]+$/;
|
|
324
344
|
var RE_PHONE_LIKE_QUERY = /^[\d+()/\-. ]+$/;
|
|
@@ -517,6 +537,38 @@ function extractStringsFromValue(value, results) {
|
|
|
517
537
|
}
|
|
518
538
|
}
|
|
519
539
|
}
|
|
540
|
+
function applyValueNormalizers(value, field, normalizers) {
|
|
541
|
+
let text = value;
|
|
542
|
+
const classes = {};
|
|
543
|
+
if (!normalizers?.length)
|
|
544
|
+
return { text, classes };
|
|
545
|
+
for (const normalizer of normalizers) {
|
|
546
|
+
if (normalizer.fields && !normalizer.fields.includes(field))
|
|
547
|
+
continue;
|
|
548
|
+
const izhod = normalizer.fn(text, field);
|
|
549
|
+
if (izhod === undefined)
|
|
550
|
+
continue;
|
|
551
|
+
if (typeof izhod === "string") {
|
|
552
|
+
text = izhod;
|
|
553
|
+
continue;
|
|
554
|
+
}
|
|
555
|
+
text = izhod.text;
|
|
556
|
+
for (const [kljuc, vrednost] of Object.entries(izhod.classes ?? {})) {
|
|
557
|
+
const seznam = Array.isArray(vrednost) ? vrednost : [vrednost];
|
|
558
|
+
const obstojeci = classes[kljuc] ?? [];
|
|
559
|
+
for (const v of seznam) {
|
|
560
|
+
if (v != null && v !== "" && !obstojeci.includes(String(v)))
|
|
561
|
+
obstojeci.push(String(v));
|
|
562
|
+
}
|
|
563
|
+
classes[kljuc] = obstojeci;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
return { text, classes };
|
|
567
|
+
}
|
|
568
|
+
function itemClasses(metadata, id) {
|
|
569
|
+
const zapis = metadata.classes?.get(id);
|
|
570
|
+
return zapis && Object.keys(zapis).length ? zapis : undefined;
|
|
571
|
+
}
|
|
520
572
|
function prepareObjectForSearchNumeric(obj, spec, tokensMap) {
|
|
521
573
|
if (isDeletedOrBlocked(obj)) {
|
|
522
574
|
return;
|
|
@@ -524,11 +576,12 @@ function prepareObjectForSearchNumeric(obj, spec, tokensMap) {
|
|
|
524
576
|
if (spec?.enrichSearchObjectFn) {
|
|
525
577
|
spec.enrichSearchObjectFn(obj, spec.searchContext);
|
|
526
578
|
}
|
|
527
|
-
const
|
|
579
|
+
const classes = {};
|
|
580
|
+
const sorted = spec?.extractSearchableStringFn ? buildSortedFromExtractFn(obj, spec.extractSearchableStringFn, tokensMap) : buildSortedFromFields(obj, spec, tokensMap, classes);
|
|
528
581
|
if (sorted === undefined)
|
|
529
582
|
return;
|
|
530
|
-
const firstN = spec?.keyFields && spec.keyFields.length > 0 ? buildFirstNFromKeyFields(obj, spec.keyFields, spec.firstTokensN ?? DEFAULT_FIRST_TOKENS_N, spec.phoneFields ?? DEFAULT_PHONE_FIELDS, tokensMap) : undefined;
|
|
531
|
-
return { sorted, firstN };
|
|
583
|
+
const firstN = spec?.keyFields && spec.keyFields.length > 0 ? buildFirstNFromKeyFields(obj, spec.keyFields, spec.firstTokensN ?? DEFAULT_FIRST_TOKENS_N, spec.phoneFields ?? DEFAULT_PHONE_FIELDS, tokensMap, spec.valueNormalizers) : undefined;
|
|
584
|
+
return Object.keys(classes).length ? { sorted, firstN, classes } : { sorted, firstN };
|
|
532
585
|
}
|
|
533
586
|
function buildSortedFromExtractFn(obj, extractFn, tokensMap) {
|
|
534
587
|
const str = extractFn(obj);
|
|
@@ -536,7 +589,7 @@ function buildSortedFromExtractFn(obj, extractFn, tokensMap) {
|
|
|
536
589
|
return;
|
|
537
590
|
return prepareStringForSearchNumeric(str, tokensMap).sorted;
|
|
538
591
|
}
|
|
539
|
-
function buildSortedFromFields(obj, spec, tokensMap) {
|
|
592
|
+
function buildSortedFromFields(obj, spec, tokensMap, classesOut = {}) {
|
|
540
593
|
const allTokens = [];
|
|
541
594
|
const fieldMatchModes = spec?.fieldMatchModes;
|
|
542
595
|
const fieldsToSearch = spec?.searchInFields ?? Object.keys(obj);
|
|
@@ -569,7 +622,19 @@ function buildSortedFromFields(obj, spec, tokensMap) {
|
|
|
569
622
|
}
|
|
570
623
|
if (fieldStrings.length === 0)
|
|
571
624
|
continue;
|
|
572
|
-
const
|
|
625
|
+
const normalizirane = spec?.valueNormalizers?.length ? fieldStrings.map((s) => applyValueNormalizers(s, keyStr, spec.valueNormalizers)) : undefined;
|
|
626
|
+
const fieldText = normalizirane ? normalizirane.map((n) => n.text).join(" ") : fieldStrings.join(" ");
|
|
627
|
+
if (normalizirane) {
|
|
628
|
+
for (const n of normalizirane) {
|
|
629
|
+
for (const [kljuc, vrednosti] of Object.entries(n.classes)) {
|
|
630
|
+
const obstojeci = classesOut[kljuc] ?? [];
|
|
631
|
+
for (const v of vrednosti)
|
|
632
|
+
if (!obstojeci.includes(v))
|
|
633
|
+
obstojeci.push(v);
|
|
634
|
+
classesOut[kljuc] = obstojeci;
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
}
|
|
573
638
|
const datesNormalized = normalizeDates(fieldText);
|
|
574
639
|
const preprocessed = preprocessString(datesNormalized);
|
|
575
640
|
const sanitised = sanitiseString(preprocessed);
|
|
@@ -587,7 +652,7 @@ function buildSortedFromFields(obj, spec, tokensMap) {
|
|
|
587
652
|
const uniqueTokens = [...new Set(allTokens)].sort((a, b) => a - b);
|
|
588
653
|
return new Uint32Array(uniqueTokens);
|
|
589
654
|
}
|
|
590
|
-
function buildFirstNFromKeyFields(obj, keyFields, n, phoneFields, tokensMap) {
|
|
655
|
+
function buildFirstNFromKeyFields(obj, keyFields, n, phoneFields, tokensMap, normalizers) {
|
|
591
656
|
const strings = [];
|
|
592
657
|
const phoneFieldPaths = new Set(phoneFields);
|
|
593
658
|
for (const field of keyFields) {
|
|
@@ -597,7 +662,9 @@ function buildFirstNFromKeyFields(obj, keyFields, n, phoneFields, tokensMap) {
|
|
|
597
662
|
const value = isDotNotation(keyStr) ? getValueByPath(obj, keyStr) : obj[field];
|
|
598
663
|
if (value == null)
|
|
599
664
|
continue;
|
|
600
|
-
|
|
665
|
+
const zacasno = [];
|
|
666
|
+
extractStringsFromValue(value, zacasno);
|
|
667
|
+
strings.push(...normalizers?.length ? zacasno.map((s) => applyValueNormalizers(s, keyStr, normalizers).text) : zacasno);
|
|
601
668
|
}
|
|
602
669
|
if (strings.length === 0)
|
|
603
670
|
return;
|
|
@@ -626,6 +693,9 @@ function createSearchArrayMetadataNumeric(data, spec) {
|
|
|
626
693
|
if (result.firstN !== undefined) {
|
|
627
694
|
metadata.unsorted.set(id, result.firstN);
|
|
628
695
|
}
|
|
696
|
+
if (result.classes !== undefined) {
|
|
697
|
+
(metadata.classes ??= new Map).set(id, result.classes);
|
|
698
|
+
}
|
|
629
699
|
}
|
|
630
700
|
}
|
|
631
701
|
return metadata;
|
|
@@ -661,6 +731,7 @@ function updateSearchMetadataNumeric(metadata, objectId, obj, spec, tokensMap) {
|
|
|
661
731
|
if (result === undefined) {
|
|
662
732
|
metadata.sorted.delete(objectId);
|
|
663
733
|
metadata.unsorted.delete(objectId);
|
|
734
|
+
metadata.classes?.delete(objectId);
|
|
664
735
|
return false;
|
|
665
736
|
}
|
|
666
737
|
metadata.sorted.set(objectId, result.sorted);
|
|
@@ -669,6 +740,11 @@ function updateSearchMetadataNumeric(metadata, objectId, obj, spec, tokensMap) {
|
|
|
669
740
|
} else {
|
|
670
741
|
metadata.unsorted.delete(objectId);
|
|
671
742
|
}
|
|
743
|
+
if (result.classes !== undefined) {
|
|
744
|
+
(metadata.classes ??= new Map).set(objectId, result.classes);
|
|
745
|
+
} else {
|
|
746
|
+
metadata.classes?.delete(objectId);
|
|
747
|
+
}
|
|
672
748
|
return true;
|
|
673
749
|
}
|
|
674
750
|
function updateSearchMetadataBatchNumeric(metadata, batch, spec) {
|
|
@@ -897,20 +973,49 @@ function allTokensMatchNumeric(searchTokenStrs, targetTokens, opts) {
|
|
|
897
973
|
}
|
|
898
974
|
|
|
899
975
|
// src/common/numeric/prepareQueryVariants.ts
|
|
976
|
+
function normalizeQueryWithOpts(query, opts) {
|
|
977
|
+
const normalizers = opts?.queryNormalizers;
|
|
978
|
+
if (!normalizers?.length)
|
|
979
|
+
return { text: query, classes: {} };
|
|
980
|
+
let text = query;
|
|
981
|
+
const classes = {};
|
|
982
|
+
for (const normalizer of normalizers) {
|
|
983
|
+
const fn = typeof normalizer === "function" ? normalizer : normalizer.fn;
|
|
984
|
+
const izhod = fn(text, "");
|
|
985
|
+
if (izhod === undefined)
|
|
986
|
+
continue;
|
|
987
|
+
if (typeof izhod === "string") {
|
|
988
|
+
text = izhod;
|
|
989
|
+
continue;
|
|
990
|
+
}
|
|
991
|
+
text = izhod.text;
|
|
992
|
+
for (const [kljuc, vrednost] of Object.entries(izhod.classes ?? {})) {
|
|
993
|
+
const seznam = Array.isArray(vrednost) ? vrednost : [vrednost];
|
|
994
|
+
const obstojeci = classes[kljuc] ?? [];
|
|
995
|
+
for (const v of seznam) {
|
|
996
|
+
if (v != null && v !== "" && !obstojeci.includes(String(v)))
|
|
997
|
+
obstojeci.push(String(v));
|
|
998
|
+
}
|
|
999
|
+
classes[kljuc] = obstojeci;
|
|
1000
|
+
}
|
|
1001
|
+
}
|
|
1002
|
+
return { text, classes };
|
|
1003
|
+
}
|
|
900
1004
|
function prepareQueryVariants(query, opts) {
|
|
901
|
-
const
|
|
1005
|
+
const { text: normalizirano, classes } = normalizeQueryWithOpts(query, opts);
|
|
1006
|
+
const rawTokenStrs = prepareStringForSearch(normalizirano);
|
|
902
1007
|
const rawTokens = prepareQueryTokens(rawTokenStrs);
|
|
903
1008
|
const normalizers = opts?.phoneQueryNormalizers ?? [defaultQueryPhoneNormalizer];
|
|
904
1009
|
const seenPhones = new Set;
|
|
905
1010
|
const phoneTokens = [];
|
|
906
1011
|
for (const normalizer of normalizers) {
|
|
907
|
-
const normalized = validateNormalizedPhone(normalizer(
|
|
1012
|
+
const normalized = validateNormalizedPhone(normalizer(normalizirano), "Phone query normalizer");
|
|
908
1013
|
if (normalized === undefined || seenPhones.has(normalized))
|
|
909
1014
|
continue;
|
|
910
1015
|
seenPhones.add(normalized);
|
|
911
1016
|
phoneTokens.push(prepareQueryTokens([normalized]));
|
|
912
1017
|
}
|
|
913
|
-
return { rawTokenStrs, rawTokens, phoneTokens };
|
|
1018
|
+
return { rawTokenStrs, rawTokens, phoneTokens, classes };
|
|
914
1019
|
}
|
|
915
1020
|
|
|
916
1021
|
// src/common/numeric/scoring.ts
|
|
@@ -1029,12 +1134,13 @@ function searchInDataReturnObjectsNumeric(query, metadata, data, opts) {
|
|
|
1029
1134
|
return results;
|
|
1030
1135
|
}
|
|
1031
1136
|
function searchInDataReturnIdsWithLimitNumeric(query, metadata, limit, opts) {
|
|
1032
|
-
const {
|
|
1137
|
+
const { rawTokens, phoneTokens } = prepareQueryVariants(query, opts);
|
|
1033
1138
|
const phoneCandidates = findMatchingCandidates(metadata, phoneTokens, opts);
|
|
1034
1139
|
const candidates = phoneCandidates.length > 0 ? phoneCandidates : findMatchingCandidates(metadata, rawTokens.length > 0 ? [rawTokens] : [], opts);
|
|
1035
1140
|
if (candidates.length === 0)
|
|
1036
1141
|
return [];
|
|
1037
|
-
const
|
|
1142
|
+
const qText = normalizeQueryWithOpts(query, opts).text;
|
|
1143
|
+
const qTokens = orderedTokenize(qText);
|
|
1038
1144
|
const hasUnsorted = metadata.unsorted.size > 0;
|
|
1039
1145
|
if (!hasUnsorted) {
|
|
1040
1146
|
if (limit === Infinity || limit >= candidates.length)
|
|
@@ -1053,7 +1159,7 @@ function searchInDataReturnIdsWithLimitNumeric(query, metadata, limit, opts) {
|
|
|
1053
1159
|
for (let j = 0;j < unsortedIds.length; j++) {
|
|
1054
1160
|
itemTokens[j] = tokens[unsortedIds[j]] ?? "";
|
|
1055
1161
|
}
|
|
1056
|
-
scored[i] = { id, score: scoreOne(
|
|
1162
|
+
scored[i] = { id, score: scoreOne(qText, qTokens, itemTokens), order: i };
|
|
1057
1163
|
}
|
|
1058
1164
|
scored.sort((a, b) => {
|
|
1059
1165
|
if (a.score !== b.score)
|
|
@@ -1505,10 +1611,16 @@ function applyPreparedTokens(metadata, id, result) {
|
|
|
1505
1611
|
} else {
|
|
1506
1612
|
metadata.unsorted.delete(id);
|
|
1507
1613
|
}
|
|
1614
|
+
if (result.classes !== undefined) {
|
|
1615
|
+
(metadata.classes ??= new Map).set(id, result.classes);
|
|
1616
|
+
} else {
|
|
1617
|
+
metadata.classes?.delete(id);
|
|
1618
|
+
}
|
|
1508
1619
|
}
|
|
1509
1620
|
function deletePreparedTokens(metadata, id) {
|
|
1510
1621
|
metadata.sorted.delete(id);
|
|
1511
1622
|
metadata.unsorted.delete(id);
|
|
1623
|
+
metadata.classes?.delete(id);
|
|
1512
1624
|
}
|
|
1513
1625
|
function syncSearchArrayMetadataNumeric(metadata, newData, spec) {
|
|
1514
1626
|
const result = {
|
|
@@ -1598,6 +1710,135 @@ function syncSearchArrayMetadataNumericWithPrevious(metadata, previousData, newD
|
|
|
1598
1710
|
clearTokensMap(tokensMap);
|
|
1599
1711
|
return result;
|
|
1600
1712
|
}
|
|
1713
|
+
// src/common/numeric/searchAndRank.ts
|
|
1714
|
+
function tokenIdsToStrings(tokenIds) {
|
|
1715
|
+
if (tokenIds === undefined)
|
|
1716
|
+
return;
|
|
1717
|
+
const out = new Array(tokenIds.length);
|
|
1718
|
+
for (let i = 0;i < tokenIds.length; i++) {
|
|
1719
|
+
out[i] = tokens[tokenIds[i]] ?? "";
|
|
1720
|
+
}
|
|
1721
|
+
return out;
|
|
1722
|
+
}
|
|
1723
|
+
function searchAndRankNumeric(query, data, metadata, options) {
|
|
1724
|
+
const { primaryTextFn, exactKeysFn, limit, opts } = options;
|
|
1725
|
+
const ids = searchInDataReturnIdsNumeric(query, metadata, opts);
|
|
1726
|
+
if (ids.length === 0)
|
|
1727
|
+
return [];
|
|
1728
|
+
const qText = normalizeQueryWithOpts(query, opts).text;
|
|
1729
|
+
const qTokens = orderedTokenize(qText);
|
|
1730
|
+
const scored = [];
|
|
1731
|
+
for (const id of ids) {
|
|
1732
|
+
const item = data.get(id);
|
|
1733
|
+
if (!item)
|
|
1734
|
+
continue;
|
|
1735
|
+
const itemTokens = tokenIdsToStrings(metadata.unsorted.get(id)) ?? orderedTokenize(primaryTextFn(item) || "");
|
|
1736
|
+
const exactKeys = exactKeysFn?.(item);
|
|
1737
|
+
const score = scoreOne(qText, qTokens, itemTokens, exactKeys);
|
|
1738
|
+
scored.push({ id, item, score });
|
|
1739
|
+
}
|
|
1740
|
+
scored.sort((x, y) => {
|
|
1741
|
+
if (y.score !== x.score)
|
|
1742
|
+
return y.score - x.score;
|
|
1743
|
+
const xText = primaryTextFn(x.item) || "";
|
|
1744
|
+
const yText = primaryTextFn(y.item) || "";
|
|
1745
|
+
return xText.localeCompare(yText);
|
|
1746
|
+
});
|
|
1747
|
+
if (limit === undefined || limit === Infinity || limit >= scored.length)
|
|
1748
|
+
return scored;
|
|
1749
|
+
return scored.slice(0, limit);
|
|
1750
|
+
}
|
|
1751
|
+
|
|
1752
|
+
// src/common/numeric/matchMany.ts
|
|
1753
|
+
function naSezname(classes) {
|
|
1754
|
+
if (!classes)
|
|
1755
|
+
return;
|
|
1756
|
+
const out = {};
|
|
1757
|
+
for (const [kljuc, vrednost] of Object.entries(classes)) {
|
|
1758
|
+
const seznam = Array.isArray(vrednost) ? vrednost.map(String) : [String(vrednost)];
|
|
1759
|
+
if (seznam.length)
|
|
1760
|
+
out[kljuc] = seznam;
|
|
1761
|
+
}
|
|
1762
|
+
return Object.keys(out).length ? out : undefined;
|
|
1763
|
+
}
|
|
1764
|
+
async function* matchMany(prepared, queries, options) {
|
|
1765
|
+
const { queryOf, idOf, limit = 3, minScore = 0, kos = 50, samoEnolicno, rank, accept, opts } = options;
|
|
1766
|
+
const retrievalLimit = options.retrievalLimit ?? Math.max(20, limit * 4);
|
|
1767
|
+
const primaryTextOf = options.primaryTextOf ?? ((item) => item["naziv"]);
|
|
1768
|
+
const porabljeni = samoEnolicno ? new Set : undefined;
|
|
1769
|
+
let kosZbirka = [];
|
|
1770
|
+
for (let indeks = 0;indeks < queries.length; indeks++) {
|
|
1771
|
+
const query = queries[indeks];
|
|
1772
|
+
const vhod = queryOf(query);
|
|
1773
|
+
const text = typeof vhod === "string" ? vhod : vhod.text;
|
|
1774
|
+
const queryClasses = typeof vhod === "string" ? undefined : naSezname(vhod.classes);
|
|
1775
|
+
const id = idOf ? idOf(query, indeks) : String(query["_id"] ?? query["id"] ?? indeks);
|
|
1776
|
+
const poisciKandidate = (besedilo, razredi) => {
|
|
1777
|
+
if (!besedilo.trim())
|
|
1778
|
+
return { kandidati: [], zadetkov: 0 };
|
|
1779
|
+
const zadetki = searchAndRankNumeric(besedilo, prepared.data, prepared.metadata, {
|
|
1780
|
+
primaryTextFn: primaryTextOf,
|
|
1781
|
+
...options.exactKeysOf ? { exactKeysFn: options.exactKeysOf } : {},
|
|
1782
|
+
...opts ? { opts } : {},
|
|
1783
|
+
limit: retrievalLimit
|
|
1784
|
+
});
|
|
1785
|
+
const poizvedbaZaDomeno = { text: besedilo, ...razredi ? { classes: razredi } : {} };
|
|
1786
|
+
const najdeni = [];
|
|
1787
|
+
for (const zadetek of zadetki) {
|
|
1788
|
+
const classes = itemClasses(prepared.metadata, zadetek.id);
|
|
1789
|
+
const kandidat = {
|
|
1790
|
+
id: zadetek.id,
|
|
1791
|
+
item: zadetek.item,
|
|
1792
|
+
...classes ? { classes } : {}
|
|
1793
|
+
};
|
|
1794
|
+
if (accept && !accept(kandidat, poizvedbaZaDomeno))
|
|
1795
|
+
continue;
|
|
1796
|
+
const ocena = rank ? rank(kandidat, poizvedbaZaDomeno) : zadetek.score;
|
|
1797
|
+
if (ocena < minScore)
|
|
1798
|
+
continue;
|
|
1799
|
+
if (porabljeni?.has(zadetek.id))
|
|
1800
|
+
continue;
|
|
1801
|
+
najdeni.push({ id: zadetek.id, item: zadetek.item, score: ocena, ...classes ? { classes } : {} });
|
|
1802
|
+
}
|
|
1803
|
+
najdeni.sort((a, b) => {
|
|
1804
|
+
if (b.score !== a.score)
|
|
1805
|
+
return b.score - a.score;
|
|
1806
|
+
return (primaryTextOf(a.item) ?? "").localeCompare(primaryTextOf(b.item) ?? "");
|
|
1807
|
+
});
|
|
1808
|
+
if (najdeni.length > limit)
|
|
1809
|
+
najdeni.length = limit;
|
|
1810
|
+
return { kandidati: najdeni, zadetkov: zadetki.length };
|
|
1811
|
+
};
|
|
1812
|
+
let { kandidati, zadetkov } = poisciKandidate(text, queryClasses);
|
|
1813
|
+
const poskusiAlternative = kandidati.length === 0 && (options.alternativneLeCeNiZadetkov ? zadetkov === 0 : true);
|
|
1814
|
+
if (poskusiAlternative && options.alternativnePoizvedbe) {
|
|
1815
|
+
for (const alternativa of options.alternativnePoizvedbe(query)) {
|
|
1816
|
+
const altBesedilo = typeof alternativa === "string" ? alternativa : alternativa.text;
|
|
1817
|
+
if (!altBesedilo?.trim() || altBesedilo === text)
|
|
1818
|
+
continue;
|
|
1819
|
+
const altRazredi = typeof alternativa === "string" ? undefined : naSezname(alternativa.classes);
|
|
1820
|
+
({ kandidati } = poisciKandidate(altBesedilo, altRazredi));
|
|
1821
|
+
if (kandidati.length)
|
|
1822
|
+
break;
|
|
1823
|
+
}
|
|
1824
|
+
}
|
|
1825
|
+
if (porabljeni) {
|
|
1826
|
+
for (const kandidat of kandidati)
|
|
1827
|
+
porabljeni.add(kandidat.id);
|
|
1828
|
+
}
|
|
1829
|
+
kosZbirka.push({
|
|
1830
|
+
id,
|
|
1831
|
+
...queryClasses ? { queryClasses } : {},
|
|
1832
|
+
kandidati
|
|
1833
|
+
});
|
|
1834
|
+
if (kosZbirka.length >= kos) {
|
|
1835
|
+
yield kosZbirka;
|
|
1836
|
+
kosZbirka = [];
|
|
1837
|
+
}
|
|
1838
|
+
}
|
|
1839
|
+
if (kosZbirka.length)
|
|
1840
|
+
yield kosZbirka;
|
|
1841
|
+
}
|
|
1601
1842
|
// src/common/numeric/updateSearchLinkedMetadata.ts
|
|
1602
1843
|
function tokensEqual2(a, b) {
|
|
1603
1844
|
if (a.length !== b.length)
|
|
@@ -1750,43 +1991,6 @@ function syncLinkedItemsForPrimaryNumeric(linked, primaryId, newLinkedItems, for
|
|
|
1750
1991
|
clearTokensMap(tokensMap);
|
|
1751
1992
|
return result;
|
|
1752
1993
|
}
|
|
1753
|
-
// src/common/numeric/searchAndRank.ts
|
|
1754
|
-
function tokenIdsToStrings(tokenIds) {
|
|
1755
|
-
if (tokenIds === undefined)
|
|
1756
|
-
return;
|
|
1757
|
-
const out = new Array(tokenIds.length);
|
|
1758
|
-
for (let i = 0;i < tokenIds.length; i++) {
|
|
1759
|
-
out[i] = tokens[tokenIds[i]] ?? "";
|
|
1760
|
-
}
|
|
1761
|
-
return out;
|
|
1762
|
-
}
|
|
1763
|
-
function searchAndRankNumeric(query, data, metadata, options) {
|
|
1764
|
-
const { primaryTextFn, exactKeysFn, limit, opts } = options;
|
|
1765
|
-
const ids = searchInDataReturnIdsNumeric(query, metadata, opts);
|
|
1766
|
-
if (ids.length === 0)
|
|
1767
|
-
return [];
|
|
1768
|
-
const qTokens = orderedTokenize(query);
|
|
1769
|
-
const scored = [];
|
|
1770
|
-
for (const id of ids) {
|
|
1771
|
-
const item = data.get(id);
|
|
1772
|
-
if (!item)
|
|
1773
|
-
continue;
|
|
1774
|
-
const itemTokens = tokenIdsToStrings(metadata.unsorted.get(id)) ?? orderedTokenize(primaryTextFn(item) || "");
|
|
1775
|
-
const exactKeys = exactKeysFn?.(item);
|
|
1776
|
-
const score = scoreOne(query, qTokens, itemTokens, exactKeys);
|
|
1777
|
-
scored.push({ id, item, score });
|
|
1778
|
-
}
|
|
1779
|
-
scored.sort((x, y) => {
|
|
1780
|
-
if (y.score !== x.score)
|
|
1781
|
-
return y.score - x.score;
|
|
1782
|
-
const xText = primaryTextFn(x.item) || "";
|
|
1783
|
-
const yText = primaryTextFn(y.item) || "";
|
|
1784
|
-
return xText.localeCompare(yText);
|
|
1785
|
-
});
|
|
1786
|
-
if (limit === undefined || limit === Infinity || limit >= scored.length)
|
|
1787
|
-
return scored;
|
|
1788
|
-
return scored.slice(0, limit);
|
|
1789
|
-
}
|
|
1790
1994
|
// src/common/SearchUniverse.ts
|
|
1791
1995
|
function tokensEqual3(a, b) {
|
|
1792
1996
|
if (a.length !== b.length)
|
package/dist/index.d.cts
CHANGED
|
@@ -11,15 +11,20 @@ export { preprocessString } from './utils/preprocessString';
|
|
|
11
11
|
export { sanitiseString } from './utils/sanitiseString';
|
|
12
12
|
export { tokenize } from './utils/tokenize';
|
|
13
13
|
export { normalizeDates } from './utils/normalizeDates';
|
|
14
|
+
export { compareTokenized } from './utils/compareTokenized';
|
|
14
15
|
export { defaultPhoneNormalizer, defaultQueryPhoneNormalizer, resolvePhoneQueryNormalizer, } from './utils/phoneNormalization';
|
|
15
16
|
export { tokens, getTokenCount, getTokenById, findTokenId, registerToken, getOrCreateTokenId, createTokensMap, clearTokensMap, resetTokenRegistry, } from './utils/tokenRegistry';
|
|
16
|
-
export { createSearchArrayMetadataNumeric as createSearchArrayMetadata, prepareObjectForSearchNumeric as prepareObjectForSearch, encodeTokenWithMode, decodeTokenId, decodeMatchMode, TOKEN_ID_MASK, MATCH_MODE_BITS, MATCH_MODE_PREFIXES, PREFIX_TO_MATCH_MODE, isDeletedOrBlocked,
|
|
17
|
+
export { createSearchArrayMetadataNumeric as createSearchArrayMetadata, prepareObjectForSearchNumeric as prepareObjectForSearch, encodeTokenWithMode, decodeTokenId, decodeMatchMode, TOKEN_ID_MASK, MATCH_MODE_BITS, MATCH_MODE_PREFIXES, PREFIX_TO_MATCH_MODE, isDeletedOrBlocked,
|
|
18
|
+
/** Domenski razredi elementa (`spec.valueNormalizers`). */
|
|
19
|
+
itemClasses, } from './common/numeric/createSearchArrayMetadata';
|
|
17
20
|
export { createSearchLinkedMetadataNumeric as createSearchLinkedMetadata, type NumericLinkedSearchMetadataWithData, } from './common/numeric/createSearchLinkedMetadata';
|
|
18
21
|
export { updateSearchMetadataNumeric as updateSearchMetadata, updateSearchMetadataBatchNumeric as updateSearchMetadataBatch, removeFromSearchMetadataNumeric as removeFromSearchMetadata, removeFromSearchMetadataBatchNumeric as removeFromSearchMetadataBatch, } from './common/numeric/updateSearchMetadata';
|
|
19
22
|
export { searchInDataReturnIdsNumeric as searchInData, searchInDataReturnIdsNumeric as searchInDataReturnIds, searchInDataReturnObjectsNumeric as searchInDataReturnObjects, searchInDataReturnIdsWithLimitNumeric as searchInDataWithLimit, } from './common/numeric/searchInData';
|
|
20
23
|
export { findInLinkedArraysNumeric, findInLinkedArraysSimpleNumeric, } from './common/numeric/findInLinkedArrays';
|
|
21
24
|
export { AugmentedMetadata } from './common/numeric/AugmentedMetadata';
|
|
22
25
|
export { syncSearchArrayMetadataNumeric as syncSearchArrayMetadata, syncSearchArrayMetadataNumericWithPrevious as syncSearchArrayMetadataWithPrevious, } from './common/numeric/syncSearchArrayMetadata';
|
|
26
|
+
export { normalizeQueryWithOpts } from './common/numeric/prepareQueryVariants';
|
|
27
|
+
export { matchMany, type MatchManyKandidat, type MatchManyOptions, type MatchManyRezultat, type PreparedCollection, } from './common/numeric/matchMany';
|
|
23
28
|
export { upsertPrimaryItemNumeric as upsertPrimaryItem, removePrimaryItemNumeric as removePrimaryItem, upsertLinkedItemNumeric as upsertLinkedItem, removeLinkedItemNumeric as removeLinkedItem, syncLinkedItemsForPrimaryNumeric as syncLinkedItemsForPrimary, } from './common/numeric/updateSearchLinkedMetadata';
|
|
24
29
|
export { matchTokenInSortedListNumeric, allTokensMatchNumeric, binarySearchUint32, prepareQueryTokens, matchPreparedTokenInSortedList, allPreparedTokensMatch, type PreparedQueryToken, } from './utils/matchTokenNumeric';
|
|
25
30
|
export { searchAndRankNumeric as searchAndRank, searchAndRankNumeric, scoreOne, scoreOrderAndPresence, scoreBag, orderedTokenize, type ScoredResult, type SearchAndRankOptions, type OrderAndPresenceWeights, } from './common/numeric/searchAndRank';
|
package/dist/index.d.ts
CHANGED
|
@@ -11,15 +11,20 @@ export { preprocessString } from './utils/preprocessString';
|
|
|
11
11
|
export { sanitiseString } from './utils/sanitiseString';
|
|
12
12
|
export { tokenize } from './utils/tokenize';
|
|
13
13
|
export { normalizeDates } from './utils/normalizeDates';
|
|
14
|
+
export { compareTokenized } from './utils/compareTokenized';
|
|
14
15
|
export { defaultPhoneNormalizer, defaultQueryPhoneNormalizer, resolvePhoneQueryNormalizer, } from './utils/phoneNormalization';
|
|
15
16
|
export { tokens, getTokenCount, getTokenById, findTokenId, registerToken, getOrCreateTokenId, createTokensMap, clearTokensMap, resetTokenRegistry, } from './utils/tokenRegistry';
|
|
16
|
-
export { createSearchArrayMetadataNumeric as createSearchArrayMetadata, prepareObjectForSearchNumeric as prepareObjectForSearch, encodeTokenWithMode, decodeTokenId, decodeMatchMode, TOKEN_ID_MASK, MATCH_MODE_BITS, MATCH_MODE_PREFIXES, PREFIX_TO_MATCH_MODE, isDeletedOrBlocked,
|
|
17
|
+
export { createSearchArrayMetadataNumeric as createSearchArrayMetadata, prepareObjectForSearchNumeric as prepareObjectForSearch, encodeTokenWithMode, decodeTokenId, decodeMatchMode, TOKEN_ID_MASK, MATCH_MODE_BITS, MATCH_MODE_PREFIXES, PREFIX_TO_MATCH_MODE, isDeletedOrBlocked,
|
|
18
|
+
/** Domenski razredi elementa (`spec.valueNormalizers`). */
|
|
19
|
+
itemClasses, } from './common/numeric/createSearchArrayMetadata';
|
|
17
20
|
export { createSearchLinkedMetadataNumeric as createSearchLinkedMetadata, type NumericLinkedSearchMetadataWithData, } from './common/numeric/createSearchLinkedMetadata';
|
|
18
21
|
export { updateSearchMetadataNumeric as updateSearchMetadata, updateSearchMetadataBatchNumeric as updateSearchMetadataBatch, removeFromSearchMetadataNumeric as removeFromSearchMetadata, removeFromSearchMetadataBatchNumeric as removeFromSearchMetadataBatch, } from './common/numeric/updateSearchMetadata';
|
|
19
22
|
export { searchInDataReturnIdsNumeric as searchInData, searchInDataReturnIdsNumeric as searchInDataReturnIds, searchInDataReturnObjectsNumeric as searchInDataReturnObjects, searchInDataReturnIdsWithLimitNumeric as searchInDataWithLimit, } from './common/numeric/searchInData';
|
|
20
23
|
export { findInLinkedArraysNumeric, findInLinkedArraysSimpleNumeric, } from './common/numeric/findInLinkedArrays';
|
|
21
24
|
export { AugmentedMetadata } from './common/numeric/AugmentedMetadata';
|
|
22
25
|
export { syncSearchArrayMetadataNumeric as syncSearchArrayMetadata, syncSearchArrayMetadataNumericWithPrevious as syncSearchArrayMetadataWithPrevious, } from './common/numeric/syncSearchArrayMetadata';
|
|
26
|
+
export { normalizeQueryWithOpts } from './common/numeric/prepareQueryVariants';
|
|
27
|
+
export { matchMany, type MatchManyKandidat, type MatchManyOptions, type MatchManyRezultat, type PreparedCollection, } from './common/numeric/matchMany';
|
|
23
28
|
export { upsertPrimaryItemNumeric as upsertPrimaryItem, removePrimaryItemNumeric as removePrimaryItem, upsertLinkedItemNumeric as upsertLinkedItem, removeLinkedItemNumeric as removeLinkedItem, syncLinkedItemsForPrimaryNumeric as syncLinkedItemsForPrimary, } from './common/numeric/updateSearchLinkedMetadata';
|
|
24
29
|
export { matchTokenInSortedListNumeric, allTokensMatchNumeric, binarySearchUint32, prepareQueryTokens, matchPreparedTokenInSortedList, allPreparedTokensMatch, type PreparedQueryToken, } from './utils/matchTokenNumeric';
|
|
25
30
|
export { searchAndRankNumeric as searchAndRank, searchAndRankNumeric, scoreOne, scoreOrderAndPresence, scoreBag, orderedTokenize, type ScoredResult, type SearchAndRankOptions, type OrderAndPresenceWeights, } from './common/numeric/searchAndRank';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA;;;GAGG;AAKH,YAAY,EAEV,EAAE,EACF,WAAW,EACX,qBAAqB,EACrB,cAAc,EAEd,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EAErB,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EAEpB,UAAU,EAEV,2BAA2B,EAC3B,kBAAkB,EAClB,0BAA0B,EAE1B,oBAAoB,EAEpB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,6BAA6B,EAE7B,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAGvE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAKvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,MAAM,EACN,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,gCAAgC,IAAI,yBAAyB,EAC7D,6BAA6B,IAAI,sBAAsB,EACvD,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|