cry-search 1.0.6 → 1.0.8
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 +79 -78
- package/README.md +93 -17
- package/UNIVERSE.md +29 -20
- package/dist/common/SearchUniverse.d.ts +28 -13
- package/dist/common/SearchUniverse.d.ts.map +1 -1
- package/dist/common/numeric/AugmentedMetadata.d.ts +27 -92
- package/dist/common/numeric/AugmentedMetadata.d.ts.map +1 -1
- package/dist/common/numeric/createSearchArrayMetadata.d.ts +47 -7
- package/dist/common/numeric/createSearchArrayMetadata.d.ts.map +1 -1
- package/dist/common/numeric/findInLinkedArrays.d.ts +7 -4
- package/dist/common/numeric/findInLinkedArrays.d.ts.map +1 -1
- package/dist/common/numeric/scoring.d.ts +95 -0
- package/dist/common/numeric/scoring.d.ts.map +1 -0
- package/dist/common/numeric/searchAndRank.d.ts +48 -0
- package/dist/common/numeric/searchAndRank.d.ts.map +1 -0
- package/dist/common/numeric/searchInData.d.ts +17 -9
- package/dist/common/numeric/searchInData.d.ts.map +1 -1
- package/dist/common/numeric/syncSearchArrayMetadata.d.ts +7 -50
- package/dist/common/numeric/syncSearchArrayMetadata.d.ts.map +1 -1
- package/dist/common/numeric/updateSearchLinkedMetadata.d.ts +11 -110
- package/dist/common/numeric/updateSearchLinkedMetadata.d.ts.map +1 -1
- package/dist/common/numeric/updateSearchMetadata.d.ts.map +1 -1
- package/dist/index.cjs +646 -312
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +646 -312
- package/dist/types/index.d.ts +35 -50
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/matchTokenNumeric.d.ts.map +1 -1
- package/dist/utils/prepareStringForSearchNumeric.d.ts +24 -29
- package/dist/utils/prepareStringForSearchNumeric.d.ts.map +1 -1
- package/package.json +4 -14
- package/dist/common/findInArray.d.ts +0 -37
- package/dist/common/findInArray.d.ts.map +0 -1
- package/dist/common/findInArrayReturnDataAndMeta.d.ts +0 -52
- package/dist/common/findInArrayReturnDataAndMeta.d.ts.map +0 -1
- package/dist/common/findInLinkedArrays.d.ts +0 -66
- package/dist/common/findInLinkedArrays.d.ts.map +0 -1
- package/dist/common/string/createSearchArrayMetadata.d.ts +0 -117
- package/dist/common/string/createSearchArrayMetadata.d.ts.map +0 -1
- package/dist/common/string/createSearchLinkedMetadata.d.ts +0 -36
- package/dist/common/string/createSearchLinkedMetadata.d.ts.map +0 -1
- package/dist/common/string/index.d.ts +0 -10
- package/dist/common/string/index.d.ts.map +0 -1
- package/dist/common/string/updateSearchMetadata.d.ts +0 -103
- package/dist/common/string/updateSearchMetadata.d.ts.map +0 -1
- package/dist/common/syncSearchArrayMetadata.d.ts +0 -68
- package/dist/common/syncSearchArrayMetadata.d.ts.map +0 -1
- package/dist/common/updateSearchLinkedMetadata.d.ts +0 -139
- package/dist/common/updateSearchLinkedMetadata.d.ts.map +0 -1
- package/dist/string.cjs +0 -930
- package/dist/string.d.cts +0 -26
- package/dist/string.d.ts +0 -26
- package/dist/string.d.ts.map +0 -1
- package/dist/string.js +0 -898
- package/dist/utils/matchToken.d.ts +0 -65
- package/dist/utils/matchToken.d.ts.map +0 -1
|
@@ -2,129 +2,30 @@ import type { Id, SearchableData, SearchableObject, SearchableObjectSpec, Upsert
|
|
|
2
2
|
import type { NumericLinkedSearchMetadataWithData } from './createSearchLinkedMetadata.js';
|
|
3
3
|
export type { UpsertResult, SyncLinkedResult } from '../../types/index.js';
|
|
4
4
|
/**
|
|
5
|
-
* Upserts a primary item into
|
|
5
|
+
* Upserts a primary item into linked metadata.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @typeParam TPrimary - Type of primary items
|
|
12
|
-
* @typeParam TLinked - Type of linked items
|
|
13
|
-
* @typeParam C - Type of the search context
|
|
14
|
-
*
|
|
15
|
-
* @param linked - The linked metadata to update (mutated in place)
|
|
16
|
-
* @param item - The primary item to upsert
|
|
17
|
-
* @param spec - Optional specification for how to extract searchable text
|
|
18
|
-
* @returns UpsertResult indicating if item was added or updated
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const stranka = { _id: 's1', ime: 'Janez', priimek: 'Novak' };
|
|
23
|
-
* const result = upsertPrimaryItemNumeric(linkedMeta, stranka, spec);
|
|
24
|
-
* // result.added === true if stranka was new
|
|
25
|
-
* ```
|
|
7
|
+
* Adds or updates the primary in `primaryData`, refreshes its tokens in `primaryMeta`,
|
|
8
|
+
* and initializes its `primaryToLinked` entry on first insertion. Items marked
|
|
9
|
+
* `_deleted`/`_blocked` get their metadata cleared (kept in data for reference).
|
|
26
10
|
*/
|
|
27
11
|
export declare function upsertPrimaryItemNumeric<TPrimary extends SearchableObject, TLinked extends SearchableObject, C = unknown>(linked: NumericLinkedSearchMetadataWithData<TPrimary, TLinked>, item: TPrimary, spec?: SearchableObjectSpec<TPrimary, C>): UpsertResult;
|
|
28
12
|
/**
|
|
29
|
-
* Removes a primary item
|
|
30
|
-
*
|
|
31
|
-
* Removes the item from data, metadata, and the primaryToLinked index.
|
|
32
|
-
* Note: This does NOT automatically remove linked items - they will become orphans.
|
|
33
|
-
* If you want to also remove linked items, call {@link removeLinkedItemNumeric} for each.
|
|
34
|
-
*
|
|
35
|
-
* @typeParam TPrimary - Type of primary items
|
|
36
|
-
* @typeParam TLinked - Type of linked items
|
|
37
|
-
*
|
|
38
|
-
* @param linked - The linked metadata to update (mutated in place)
|
|
39
|
-
* @param primaryId - The ID of the primary item to remove
|
|
40
|
-
* @returns true if item was found and removed, false if not found
|
|
13
|
+
* Removes a primary item entirely. Linked items become orphans (caller must
|
|
14
|
+
* call {@link removeLinkedItemNumeric} on each if needed).
|
|
41
15
|
*/
|
|
42
16
|
export declare function removePrimaryItemNumeric<TPrimary extends SearchableObject, TLinked extends SearchableObject>(linked: NumericLinkedSearchMetadataWithData<TPrimary, TLinked>, primaryId: Id): boolean;
|
|
43
17
|
/**
|
|
44
|
-
* Upserts a linked item
|
|
45
|
-
*
|
|
46
|
-
* - If the item doesn't exist, adds it
|
|
47
|
-
* - If the item exists, updates it
|
|
48
|
-
* - Handles foreign key changes by updating the primaryToLinked index
|
|
49
|
-
* (removes from old primary's list, adds to new primary's list)
|
|
50
|
-
* - Handles `_deleted`/`_blocked` items by removing their metadata
|
|
51
|
-
*
|
|
52
|
-
* @typeParam TPrimary - Type of primary items
|
|
53
|
-
* @typeParam TLinked - Type of linked items
|
|
54
|
-
* @typeParam C - Type of the search context
|
|
55
|
-
*
|
|
56
|
-
* @param linked - The linked metadata to update (mutated in place)
|
|
57
|
-
* @param item - The linked item to upsert
|
|
58
|
-
* @param foreignKeyGetter - Function to get the primary ID from a linked item
|
|
59
|
-
* @param spec - Optional specification for how to extract searchable text
|
|
60
|
-
* @returns UpsertResult indicating if item was added or updated, and previous primary ID if FK changed
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* ```typescript
|
|
64
|
-
* const pacient = { _id: 'p1', ime: 'Rex', stranka_id: 's1' };
|
|
65
|
-
* const result = upsertLinkedItemNumeric(linkedMeta, pacient, (p) => p.stranka_id, spec);
|
|
66
|
-
*
|
|
67
|
-
* // If the pacient moved to a different stranka:
|
|
68
|
-
* pacient.stranka_id = 's2';
|
|
69
|
-
* const result2 = upsertLinkedItemNumeric(linkedMeta, pacient, (p) => p.stranka_id, spec);
|
|
70
|
-
* // result2.previousPrimaryId === 's1'
|
|
71
|
-
* ```
|
|
18
|
+
* Upserts a linked item; if its foreign key changed since previous state, moves
|
|
19
|
+
* the id in `primaryToLinked` from the old primary's bucket to the new one.
|
|
72
20
|
*/
|
|
73
21
|
export declare function upsertLinkedItemNumeric<TPrimary extends SearchableObject, TLinked extends SearchableObject, C = unknown>(linked: NumericLinkedSearchMetadataWithData<TPrimary, TLinked>, item: TLinked, foreignKeyGetter: (item: TLinked) => Id | undefined, spec?: SearchableObjectSpec<TLinked, C>): UpsertResult;
|
|
74
22
|
/**
|
|
75
|
-
* Removes a linked item from the
|
|
76
|
-
*
|
|
77
|
-
* Removes the item from data, metadata, and the primaryToLinked index.
|
|
78
|
-
*
|
|
79
|
-
* @typeParam TPrimary - Type of primary items
|
|
80
|
-
* @typeParam TLinked - Type of linked items
|
|
81
|
-
*
|
|
82
|
-
* @param linked - The linked metadata to update (mutated in place)
|
|
83
|
-
* @param linkedId - The ID of the linked item to remove
|
|
84
|
-
* @param foreignKeyGetter - Function to get the primary ID from a linked item
|
|
85
|
-
* @returns true if item was found and removed, false if not found
|
|
86
|
-
*
|
|
87
|
-
* @example
|
|
88
|
-
* ```typescript
|
|
89
|
-
* removeLinkedItemNumeric(linkedMeta, 'pacient-id', (p) => p.stranka_id);
|
|
90
|
-
* ```
|
|
23
|
+
* Removes a linked item from data, metadata, and the parent primary's index entry.
|
|
91
24
|
*/
|
|
92
25
|
export declare function removeLinkedItemNumeric<TPrimary extends SearchableObject, TLinked extends SearchableObject>(linked: NumericLinkedSearchMetadataWithData<TPrimary, TLinked>, linkedId: Id, foreignKeyGetter: (item: TLinked) => Id | undefined): boolean;
|
|
93
26
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* This function performs a full sync of linked items belonging to a single primary:
|
|
97
|
-
* - Removes linked items that are no longer in the new data
|
|
98
|
-
* - Updates existing linked items if their tokens changed
|
|
99
|
-
* - Adds new linked items
|
|
100
|
-
* - Only processes items whose foreign key points to the given primary
|
|
101
|
-
*
|
|
102
|
-
* Use this when you have a complete new set of linked items for a primary
|
|
103
|
-
* and want to update the metadata to match.
|
|
104
|
-
*
|
|
105
|
-
* @typeParam TPrimary - Type of primary items
|
|
106
|
-
* @typeParam TLinked - Type of linked items
|
|
107
|
-
* @typeParam C - Type of the search context
|
|
108
|
-
*
|
|
109
|
-
* @param linked - The linked metadata to update (mutated in place)
|
|
110
|
-
* @param primaryId - The primary ID to sync linked items for
|
|
111
|
-
* @param newLinkedItems - The new linked items (only items with matching FK will be processed)
|
|
112
|
-
* @param foreignKeyGetter - Function to get the primary ID from a linked item
|
|
113
|
-
* @param spec - Optional specification for how to extract searchable text
|
|
114
|
-
* @returns SyncLinkedResult with counts of added/updated/removed items
|
|
115
|
-
*
|
|
116
|
-
* @example
|
|
117
|
-
* ```typescript
|
|
118
|
-
* const newPacienti = arrayToSearchableData(freshPacientiFromServer);
|
|
119
|
-
* const result = syncLinkedItemsForPrimaryNumeric(
|
|
120
|
-
* linkedMeta,
|
|
121
|
-
* 'stranka-1',
|
|
122
|
-
* newPacienti,
|
|
123
|
-
* (p) => p.stranka_id,
|
|
124
|
-
* spec
|
|
125
|
-
* );
|
|
126
|
-
* console.log(`Added: ${result.added}, Updated: ${result.updated}, Removed: ${result.removed}`);
|
|
127
|
-
* ```
|
|
27
|
+
* Full sync of linked items for one primary: removes missing, updates changed,
|
|
28
|
+
* adds new. Only items whose foreign key equals `primaryId` are processed.
|
|
128
29
|
*/
|
|
129
30
|
export declare function syncLinkedItemsForPrimaryNumeric<TPrimary extends SearchableObject, TLinked extends SearchableObject, C = unknown>(linked: NumericLinkedSearchMetadataWithData<TPrimary, TLinked>, primaryId: Id, newLinkedItems: SearchableData<TLinked>, foreignKeyGetter: (item: TLinked) => Id | undefined, spec?: SearchableObjectSpec<TLinked, C>): SyncLinkedResult;
|
|
130
31
|
//# sourceMappingURL=updateSearchLinkedMetadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateSearchLinkedMetadata.d.ts","sourceRoot":"","sources":["../../../src/common/numeric/updateSearchLinkedMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,EAAE,
|
|
1
|
+
{"version":3,"file":"updateSearchLinkedMetadata.d.ts","sourceRoot":"","sources":["../../../src/common/numeric/updateSearchLinkedMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,EAAE,EAEF,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAGjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,iCAAiC,CAAA;AAK1F,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AA8C1E;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,SAAS,gBAAgB,EACjC,OAAO,SAAS,gBAAgB,EAChC,CAAC,GAAG,OAAO,EAEX,MAAM,EAAE,mCAAmC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC9D,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC,GACvC,YAAY,CAiBd;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,SAAS,gBAAgB,EACjC,OAAO,SAAS,gBAAgB,EAChC,MAAM,EAAE,mCAAmC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,CAOxF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,SAAS,gBAAgB,EACjC,OAAO,SAAS,gBAAgB,EAChC,CAAC,GAAG,OAAO,EAEX,MAAM,EAAE,mCAAmC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC9D,IAAI,EAAE,OAAO,EACb,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,EAAE,GAAG,SAAS,EACnD,IAAI,CAAC,EAAE,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,GACtC,YAAY,CAwCd;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,SAAS,gBAAgB,EACjC,OAAO,SAAS,gBAAgB,EAEhC,MAAM,EAAE,mCAAmC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC9D,QAAQ,EAAE,EAAE,EACZ,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,EAAE,GAAG,SAAS,GAClD,OAAO,CAkBT;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,SAAS,gBAAgB,EACjC,OAAO,SAAS,gBAAgB,EAChC,CAAC,GAAG,OAAO,EAEX,MAAM,EAAE,mCAAmC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC9D,SAAS,EAAE,EAAE,EACb,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,EACvC,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,EAAE,GAAG,SAAS,EACnD,IAAI,CAAC,EAAE,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,GACtC,gBAAgB,CAqDlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateSearchMetadata.d.ts","sourceRoot":"","sources":["../../../src/common/numeric/updateSearchMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,EAAE,EACF,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AAIrB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,gBAAgB,EAAE,CAAC,GAAG,OAAO,EACjF,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,EAAE,EACZ,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EACzB,IAAI,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,EAC5C,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"updateSearchMetadata.d.ts","sourceRoot":"","sources":["../../../src/common/numeric/updateSearchMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,EAAE,EACF,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AAIrB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,gBAAgB,EAAE,CAAC,GAAG,OAAO,EACjF,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,EAAE,EACZ,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EACzB,IAAI,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,EAC5C,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAgBT;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,gBAAgB,EAAE,CAAC,GAAG,OAAO,EACtF,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,6BAA6B,CAAC,CAAC,CAAC,EAAE,EACzC,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,GAChC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA0BtC;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,EAAE,GACX,OAAO,CAIT;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,qBAAqB,EAC/B,SAAS,EAAE,EAAE,EAAE,GACd,MAAM,CAYR"}
|