cry-search 2.0.3 → 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.
Files changed (38) hide show
  1. package/CLAUDE.md +8 -2
  2. package/README.md +53 -0
  3. package/UNIVERSE.md +12 -0
  4. package/dist/common/numeric/createSearchArrayMetadata.d.ts +10 -0
  5. package/dist/common/numeric/createSearchArrayMetadata.d.ts.map +1 -1
  6. package/dist/common/numeric/matchMany.d.ts +111 -0
  7. package/dist/common/numeric/matchMany.d.ts.map +1 -0
  8. package/dist/common/numeric/prepareQueryVariants.d.ts +24 -0
  9. package/dist/common/numeric/prepareQueryVariants.d.ts.map +1 -1
  10. package/dist/common/numeric/searchAndRank.d.ts.map +1 -1
  11. package/dist/common/numeric/searchInData.d.ts.map +1 -1
  12. package/dist/common/numeric/syncSearchArrayMetadata.d.ts.map +1 -1
  13. package/dist/common/numeric/updateSearchMetadata.d.ts.map +1 -1
  14. package/dist/index.cjs +300 -113
  15. package/dist/index.d.cts +5 -1
  16. package/dist/index.d.ts +5 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +300 -113
  19. package/dist/types/index.d.ts +65 -0
  20. package/dist/types/index.d.ts.map +1 -1
  21. package/dist/vet/data/enote.d.ts +40 -0
  22. package/dist/vet/data/enote.d.ts.map +1 -0
  23. package/dist/vet/data/znamke.gen.d.ts +41 -0
  24. package/dist/vet/data/znamke.gen.d.ts.map +1 -0
  25. package/dist/vet/index.cjs +2468 -0
  26. package/dist/vet/index.d.cts +24 -0
  27. package/dist/vet/index.d.ts +24 -0
  28. package/dist/vet/index.d.ts.map +1 -0
  29. package/dist/vet/index.js +2426 -0
  30. package/dist/vet/normalizatorji.d.ts +104 -0
  31. package/dist/vet/normalizatorji.d.ts.map +1 -0
  32. package/dist/vet/ocena.d.ts +46 -0
  33. package/dist/vet/ocena.d.ts.map +1 -0
  34. package/dist/vet/spec.d.ts +35 -0
  35. package/dist/vet/spec.d.ts.map +1 -0
  36. package/dist/vet/uparjanje.d.ts +72 -0
  37. package/dist/vet/uparjanje.d.ts.map +1 -0
  38. package/package.json +29 -11
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Vet normalizatorji — jedro domenske logike za veterino.
3
+ *
4
+ * Vsak normalizator je `ValueNormalizer` (`{ fields?, fn }`), zato ga lahko
5
+ * uporabimo na obeh straneh: pri indeksiranju (`SearchableObjectSpec.valueNormalizers`)
6
+ * in pri poizvedbi (`SearchOpts.queryNormalizers`).
7
+ *
8
+ * Delitev dela (dogovorjeno v grillingu 2026-10-04):
9
+ *
10
+ * - **trdi žetoni** so tisto, kar bi morala imeti oba zapisa, da se ujameta:
11
+ * poenotene enote (`tbl`), preslikave znamk (`rc` → `royal canin`) in linije
12
+ * (`shn` → `royal canin shn`);
13
+ * - **količine, razponi, živalske vrste, dobavitelji in strokovne oznake** se iz
14
+ * besedila ODSTRANIJO in shranijo kot domenski razredi (`kolicina`, `razpon`,
15
+ * `vrsta`, `dobavitelj`, `oznaka`). Tako ne izločajo kandidatov (mehka semantika),
16
+ * razliko pa oceni domenski ocenjevalec (`ocena.ts`).
17
+ *
18
+ * Zakaj odstranjevanje: merjeno v praksi — če količina ostane žeton, artikel
19
+ * „Nexgard Spectra 15-30 kg 3 tbl“ ne najde „NEXGARD SPECTRA 1TABL“, ker poizvedba
20
+ * zahteva `3`; 745 od 904 artiklov je ostalo brez kandidata prav zaradi tega.
21
+ */
22
+ import type { ValueNormalizer } from '../types';
23
+ /**
24
+ * Normalizira decimalke: `2,5 mg` → `2.5 mg`.
25
+ *
26
+ * cry-search decimalno vejico sicer pretvori v piko, a le kadar ni presledka za
27
+ * vejico; pri `2,5 mg/25 mg` se je zato „2,5“ izgubil (postal `25`). Ta popravek
28
+ * teče pred vsemi drugimi normalizatorji.
29
+ */
30
+ export declare const decimalkeNormalizator: ValueNormalizer;
31
+ /**
32
+ * Poenoti enote: `tableta`, `tabl`, `tab`, `1TABL` → `tbl`; `ampul` → `amp`.
33
+ *
34
+ * Enote ostanejo v besedilu (trdi žetoni), ker jih imata oba zapisa: gre za
35
+ * *zapis* istega podatka, ne za dodaten podatek.
36
+ */
37
+ export declare const enoteNormalizator: ValueNormalizer;
38
+ /**
39
+ * Količine, razponi in pakiranja → razredi, iz besedila odstranjeni.
40
+ *
41
+ * Razredi: `razpon` (`15-30`), `kolicina` (`4 ML`, `200 ML`), `pakiranje` (`3 TBL`).
42
+ * Ocena parov jih primerja (enako = bonus, nasprotno = kazen), zadetka pa ne
43
+ * zahtevajo — zato „3 tbl“ v enem in „1TABL“ v drugem nazivu ni ovira za kandidata.
44
+ */
45
+ export declare const kolicinaNormalizator: ValueNormalizer;
46
+ /**
47
+ * Živalske vrste → razred `vrsta`, iz besedila odstranjene.
48
+ *
49
+ * Vrsta je močan razločevalnik (pasje proti mačjem izdelku), a jo nazivi navajajo
50
+ * nedosledno — zato razred (kazen ob nasprotju), ne trdi žeton.
51
+ */
52
+ export declare const vrstaNormalizator: ValueNormalizer;
53
+ /**
54
+ * Znamke in linije: `RC` → `ROYAL CANIN`, `SHN` → `ROYAL CANIN SHN`, `N&D` → `NATURAL DELICIOUS`.
55
+ *
56
+ * Ostanejo trdi žetoni: preslikava mora veljati na obeh straneh, da se zapisa
57
+ * „RC Cat Urinary“ in „Royal Canin Cat Urinary“ ujameta.
58
+ */
59
+ export declare const znamkaNormalizator: ValueNormalizer;
60
+ /**
61
+ * Dobavitelji (`IPH`-ju podobni) in strokovne oznake (`IPV`, `IPH`) → razred, iz besedila odstranjeni.
62
+ *
63
+ * Dogovor: oznako smemo odstraniti iz primerjave; če jo imata oba zapisa, je razred
64
+ * enak (brez kazni), če le eden, pa razlike ne štejemo kot vsebinsko.
65
+ */
66
+ export declare const oznakeNormalizator: ValueNormalizer;
67
+ /**
68
+ * VELIKOST → razred `velikost`, beseda se odstrani.
69
+ *
70
+ * Enočrkovne velikosti (`s`, `m`, `l`) štejejo le, kadar niso del količine
71
+ * („40 l“ je volumen, ne velikost L); zato preverimo, da pred besedo ne stoji cifra.
72
+ */
73
+ export declare const velikostNormalizator: ValueNormalizer;
74
+ /** Pantheonove oznake v nazivu: `**` = neaktiven artikel, `*` = prosta postavka. */
75
+ export declare const pantheonOznakaNormalizator: ValueNormalizer;
76
+ /**
77
+ * Kodirni artefakti iz izvozov (Excel/ODBC): `tuna_x001E_&rakci` → `tuna&rakci`.
78
+ * Take sekvence podrejo iskanje, ker dodajo žeton `x001e`, ki ga drug zapis nima.
79
+ */
80
+ export declare const kodiranjeNormalizator: ValueNormalizer;
81
+ /**
82
+ * Tipske oznake (`PRIB`, `IGR`, `OVR`, `POS`, `OPR`, `TR` …) → iz besedila odstranjene
83
+ * (razred `tip`, ki ne vpliva na oceno). Razlog (izmerjeno): kot trdi žetoni so ovirale
84
+ * ISKANJE — „PRIB SLOW DOWN 2“ proti „POS SLOW DOWN 2“, „SEA JERKY“ proti „PRIB SEA JERKY“.
85
+ * Enočrkovne oznake (`A`, `M`, `S`) namenoma ostanejo: zanje skrbijo `velikost` in jedro.
86
+ */
87
+ export declare const tipskeOznakeNormalizator: ValueNormalizer;
88
+ /**
89
+ * Vsi vet normalizatorji v pravem vrstnem redu.
90
+ *
91
+ * Vrstni red je pomemben: decimalke → enote → znamke → količine → vrste → oznake
92
+ * (znamke pred količinami, ker `RC` ni količina; količine pred vrstami, ker se
93
+ * `2 kg` ne sme razumeti kot vrsta).
94
+ */
95
+ export declare const VET_NORMALIZATORJI: ValueNormalizer[];
96
+ /** Izvoz za teste in diagnostične skripte. */
97
+ export declare const VET_TABELA: {
98
+ okrajsave: Map<string, string>;
99
+ linije: Map<string, string>;
100
+ dobavitelji: Set<string>;
101
+ oznake: Set<string>;
102
+ vir: string;
103
+ };
104
+ //# sourceMappingURL=normalizatorji.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizatorji.d.ts","sourceRoot":"","sources":["../../src/vet/normalizatorji.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIhD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAmB/B,CAAC;AAsCF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAmDlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,eA0B/B,CAAC;AAsBF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAwBhC,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAkBhC,CAAC;AAGF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAiBlC,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,0BAA0B,EAAE,eAUxC,CAAC;AAGF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,eAYtC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAW/C,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC"}
@@ -0,0 +1,46 @@
1
+ /** Razredi, ki jih primerjamo (iz normalizatorjev). */
2
+ export interface VetRazredi {
3
+ razpon?: string | string[];
4
+ kolicina?: string | string[];
5
+ pakiranje?: string | string[];
6
+ vrsta?: string | string[];
7
+ /** Velikost (S/M/L/XL/XXL + mala/srednja/velika). */
8
+ velikost?: string | string[];
9
+ /** Pantheonova oznaka v nazivu: `neaktivno` (`**`), `prosto` (`*`). */
10
+ pantheon?: string | string[];
11
+ dobavitelj?: string | string[];
12
+ oznaka?: string | string[];
13
+ }
14
+ export interface VetOcena {
15
+ /** Skupna ocena (višja = bolje); 0 pomeni, da vratar ni spustil para. */
16
+ ocena: number;
17
+ /** Ali par prestane vratar IN pravilo pokritosti. */
18
+ sprejeto: boolean;
19
+ /** Človeško berljiva razlaga (za UI in dokumentacijo). */
20
+ razlog: string;
21
+ pokritostKandidata: number;
22
+ pokritostPoizvedbe: number;
23
+ /** Skupne cele besede (največ 5). */
24
+ skupneBesede: string[];
25
+ /** Nasprotja v razredih (npr. `razpon: 15-30 ≠ 7.5-15`). */
26
+ nasprotja: string[];
27
+ }
28
+ export interface VetOcenaNastavitve {
29
+ /** Delež dolžine, pri katerem predpona šteje kot beseda (privzeto 0,8). */
30
+ predponaDelez?: number;
31
+ /** Zahtevana pokritost kandidata (privzeto 0,75). */
32
+ pokritostKandidata?: number;
33
+ /** Zahtevana pokritost poizvedbe (privzeto 0,5). */
34
+ pokritostPoizvedbe?: number;
35
+ /** Dodatni prag ocene (privzeto 0 — odloča pokritost). */
36
+ minOcena?: number;
37
+ }
38
+ /**
39
+ * Oceni par dveh nazivov (surova naziva, ne normalizirana — normalizatorji veljajo
40
+ * za iskanje, ocena pa gleda dejanski zapis, ker pozna doze in enote).
41
+ */
42
+ export declare function oceniPar(poizvedba: string, kandidat: string, nastavitve?: VetOcenaNastavitve, razredi?: {
43
+ poizvedba?: VetRazredi | Record<string, string | string[]>;
44
+ kandidat?: VetRazredi | Record<string, string | string[]>;
45
+ } | undefined): VetOcena;
46
+ //# sourceMappingURL=ocena.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocena.d.ts","sourceRoot":"","sources":["../../src/vet/ocena.ts"],"names":[],"mappings":"AAsBA,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAoFD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,kBAAuB,EACnC,OAAO,CAAC,EACJ;IAAE,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;CAAE,GACzH,SAAS,GACZ,QAAQ,CA4FV"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Vet spec: indeks in poizvedba z ISTIMI normalizatorji.
3
+ *
4
+ * Bistvo je simetrija — če bi se indeks in poizvedba normalizirala različno, bi se
5
+ * žetoni razhajali (npr. `RC` shranjen kot `RC`, poizvedba `Royal Canin`).
6
+ */
7
+ import type { SearchOpts, SearchableObject, SearchableObjectSpec, ValueNormalizer } from '../types';
8
+ /** Nastavitve vet specifikacije. */
9
+ export interface VetSpecNastavitve {
10
+ /** Polja, ki se iščejo in rangirajo (privzeto `['naziv']`). */
11
+ polja?: readonly string[];
12
+ /** Polja za pozicijsko rangiranje (privzeto isto kot `polja`). */
13
+ keyFields?: readonly string[];
14
+ /** Največ žetonov za rangiranje (privzeto 8, kot v jedru). */
15
+ prviTokeni?: number;
16
+ /** Dodatni normalizatorji (tečejo za vet normalizatorji). */
17
+ dodatniNormalizatorji?: readonly ValueNormalizer[];
18
+ }
19
+ /**
20
+ * Spec za klik.vet/Pantheon artikel (ali drugo veterinarsko zbirko).
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const data = arrayToSearchableData(artikli);
25
+ * const metadata = createSearchArrayMetadata(data, vetArtikelSpec());
26
+ * const opts = vetQueryOpts();
27
+ * ```
28
+ */
29
+ export declare function vetArtikelSpec<T extends SearchableObject>(nastavitve?: VetSpecNastavitve): SearchableObjectSpec<T>;
30
+ /**
31
+ * Iskalne nastavitve za poizvedbo — isti normalizatorji kot pri indeksu.
32
+ * Uporabi jih vsak klic iskanja/uparjanja nad vet indeksom.
33
+ */
34
+ export declare function vetQueryOpts(dodatni?: SearchOpts): SearchOpts;
35
+ //# sourceMappingURL=spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/vet/spec.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGpG,oCAAoC;AACpC,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,kEAAkE;IAClE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,gBAAgB,EACvD,UAAU,GAAE,iBAAsB,GACjC,oBAAoB,CAAC,CAAC,CAAC,CAQzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,UAAe,GAAG,UAAU,CAEjE"}
@@ -0,0 +1,72 @@
1
+ import type { NumericSearchMetadata, SearchableData, SearchableObject, ValueNormalizer } from '../types';
2
+ import { oceniPar, type VetOcena } from './ocena';
3
+ /** Artikel z nazivom (klik.vet ali Pantheon zapis). */
4
+ export interface VetArtikel extends SearchableObject {
5
+ _id: string;
6
+ naziv: string;
7
+ }
8
+ /** Kandidat z vet oceno. */
9
+ export interface VetKandidat<T extends SearchableObject = VetArtikel> {
10
+ id: string;
11
+ item: T;
12
+ /** Ocena po `oceniPar` (višja = bolje). */
13
+ score: number;
14
+ /** Ali par prestane pravilo sprejema. */
15
+ sprejeto: boolean;
16
+ /** Razlaga in podrobnosti ocene. */
17
+ ocena: VetOcena;
18
+ /** Domenski razredi kandidata (razpon, kolicina, vrsta …). */
19
+ classes?: Record<string, string[]>;
20
+ }
21
+ /** Rezultat za en element leve strani. */
22
+ export interface VetPar<T extends SearchableObject = VetArtikel> {
23
+ id: string;
24
+ kandidati: VetKandidat<T>[];
25
+ }
26
+ /**
27
+ * Zožene poizvedbe: kadar glavna poizvedba ne da sprejetega kandidata, poskusimo
28
+ * še različice z enim odbitim žetonom. Vrstni red je od najmanj informativnih
29
+ * (števila in kratki žetoni) proti daljšim besedam; vsak kandidat mora še vedno
30
+ * prestati `oceniPar`, zato natančnost ne more pasti.
31
+ *
32
+ * @param naziv - Surov naziv (klik.vet ali Pantheon).
33
+ * @param najvec - Največ poskusov (privzeto 4).
34
+ */
35
+ export declare function zoziPoizvedbo(naziv: string, najvec?: number): string[];
36
+ export interface VetUparjanjeNastavitve {
37
+ /** Največ kandidatov na artikel (privzeto 3). */
38
+ limit?: number;
39
+ /** Koliko kandidatov prebere jedro, preden oceni domena (privzeto `max(20, limit*4)`). */
40
+ retrievalLimit?: number;
41
+ /** Velikost kosa izhodnega iteratorja (privzeto 50). */
42
+ kos?: number;
43
+ /** Poželjiva 1:1 dodelitev (vsak pantheonov artikel porabljen največ enkrat). */
44
+ samoEnolicno?: boolean;
45
+ /** Prag pokritosti in ocene (glej `ocena.ts`). */
46
+ ocena?: Parameters<typeof oceniPar>[2];
47
+ /** Dodatni normalizatorji (redko potrebno). */
48
+ dodatniNormalizatorji?: readonly ValueNormalizer[];
49
+ /** Ali naj se poskusi drugi prehod z zoženo poizvedbo (privzeto da). */
50
+ zozenaPoizvedba?: boolean;
51
+ }
52
+ /** Pripravi indeks desne strani (npr. Pantheonovi artikli). */
53
+ export declare function pripraviVetIndeks<T extends VetArtikel>(artikli: readonly T[], nastavitve?: {
54
+ polja?: readonly string[];
55
+ }): {
56
+ data: SearchableData<T>;
57
+ metadata: NumericSearchMetadata;
58
+ };
59
+ /**
60
+ * Upari artikle po kosih. Za vsak element vrne največ `limit` kandidatov,
61
+ * urejenih po vet oceni; `sprejeto` pove, ali par prestane pravilo sprejema.
62
+ */
63
+ export declare function upariArtikle<T extends VetArtikel>(prepared: {
64
+ data: SearchableData<T>;
65
+ metadata: NumericSearchMetadata;
66
+ }, artikli: readonly VetArtikel[], nastavitve?: VetUparjanjeNastavitve): AsyncGenerator<VetPar<T>[], void, void>;
67
+ /** Zbere vse pare (za teste in manjše nabore). */
68
+ export declare function upariVse<T extends VetArtikel>(prepared: {
69
+ data: SearchableData<T>;
70
+ metadata: NumericSearchMetadata;
71
+ }, artikli: readonly VetArtikel[], nastavitve?: VetUparjanjeNastavitve): Promise<VetPar<T>[]>;
72
+ //# sourceMappingURL=uparjanje.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uparjanje.d.ts","sourceRoot":"","sources":["../../src/vet/uparjanje.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKlD,uDAAuD;AACvD,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4BAA4B;AAC5B,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,gBAAgB,GAAG,UAAU;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,CAAC,CAAC;IACR,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,oCAAoC;IACpC,KAAK,EAAE,QAAQ,CAAC;IAChB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpC;AAED,0CAA0C;AAC1C,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,gBAAgB,GAAG,UAAU;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,EAAE,CAoBjE;AAED,MAAM,WAAW,sBAAsB;IACrC,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kDAAkD;IAClD,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,+CAA+C;IAC/C,qBAAqB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACnD,wEAAwE;IACxE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,UAAU,EACpD,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,UAAU,GAAE;IAAE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC7C;IAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAAC,QAAQ,EAAE,qBAAqB,CAAA;CAAE,CAO9D;AAED;;;GAGG;AACH,wBAAuB,YAAY,CAAC,CAAC,SAAS,UAAU,EACtD,QAAQ,EAAE;IAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAAC,QAAQ,EAAE,qBAAqB,CAAA;CAAE,EACtE,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,UAAU,GAAE,sBAA2B,GACtC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAkFzC;AAED,kDAAkD;AAClD,wBAAsB,QAAQ,CAAC,CAAC,SAAS,UAAU,EACjD,QAAQ,EAAE;IAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAAC,QAAQ,EAAE,qBAAqB,CAAA;CAAE,EACtE,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,UAAU,GAAE,sBAA2B,GACtC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAItB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cry-search",
3
- "version": "2.0.3",
3
+ "version": "2.1.0",
4
4
  "description": "A fast, memory-efficient search library for large datasets with support for tokenized matching, linked collections, and per-field match modes.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,6 +16,16 @@
16
16
  "types": "./dist/index.d.cts",
17
17
  "default": "./dist/index.cjs"
18
18
  }
19
+ },
20
+ "./vet": {
21
+ "import": {
22
+ "types": "./dist/vet/index.d.ts",
23
+ "default": "./dist/vet/index.js"
24
+ },
25
+ "require": {
26
+ "types": "./dist/vet/index.d.cts",
27
+ "default": "./dist/vet/index.cjs"
28
+ }
19
29
  }
20
30
  },
21
31
  "files": [
@@ -27,13 +37,16 @@
27
37
  ],
28
38
  "scripts": {
29
39
  "build": "bun run build:js && bun run build:types",
30
- "build:esm": "bun build ./src/index.ts --outdir ./dist --target browser --format esm",
31
- "build:cjs": "bun build ./src/index.ts --target browser --format cjs --outfile ./dist/index.cjs",
40
+ "build:esm": "bun build ./src/index.ts --outdir ./dist --target browser --format esm && bun build ./src/vet/index.ts --external cry-vetzdravila --outdir ./dist/vet --target browser --format esm",
41
+ "build:cjs": "bun build ./src/index.ts --target browser --format cjs --outfile ./dist/index.cjs && bun build ./src/vet/index.ts --external cry-vetzdravila --target browser --format cjs --outfile ./dist/vet/index.cjs",
32
42
  "build:js": "bun run build:esm && bun run build:cjs",
33
- "build:types": "tsc -p tsconfig.build.json && cp ./dist/index.d.ts ./dist/index.d.cts",
43
+ "build:types": "tsc -p tsconfig.build.json && cp ./dist/index.d.ts ./dist/index.d.cts && cp ./dist/vet/index.d.ts ./dist/vet/index.d.cts",
34
44
  "clean": "rm -rf dist",
35
45
  "test": "bun test",
36
- "prepublishOnly": "bun run clean && bun run build"
46
+ "typecheck": "tsc --noEmit",
47
+ "gen:vet-data": "bun run scripts/gen-vet-data.ts",
48
+ "prepublishOnly": "bun run clean && bun run build",
49
+ "pripravi:pari": "bun run scripts/pripravi-pari.ts"
37
50
  },
38
51
  "keywords": [
39
52
  "search",
@@ -51,17 +64,22 @@
51
64
  "url": ""
52
65
  },
53
66
  "devDependencies": {
54
- "@types/bun": "latest"
67
+ "@types/bun": "latest",
68
+ "bun-types": "^1.3.6",
69
+ "typescript": "^5.9.3",
70
+ "undici-types": "^7.16.0",
71
+ "cry-vetzdravila": "1.0.36"
55
72
  },
56
73
  "peerDependencies": {
57
- "typescript": "^5"
74
+ "typescript": "^5",
75
+ "cry-vetzdravila": "^1.0.36"
58
76
  },
59
77
  "directories": {
60
78
  "test": "test"
61
79
  },
62
- "dependencies": {
63
- "bun-types": "^1.3.6",
64
- "typescript": "^5.9.3",
65
- "undici-types": "^7.16.0"
80
+ "peerDependenciesMeta": {
81
+ "cry-vetzdravila": {
82
+ "optional": true
83
+ }
66
84
  }
67
85
  }