cry-search 2.3.0 → 2.5.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/dist/vet/data/enote.d.ts +6 -1
- package/dist/vet/data/enote.d.ts.map +1 -1
- package/dist/vet/data/znamke.gen.d.ts +2 -2
- package/dist/vet/data/znamke.gen.d.ts.map +1 -1
- package/dist/vet/index.cjs +58 -14
- package/dist/vet/index.js +58 -14
- package/dist/vet/normalizatorji.d.ts +1 -0
- package/dist/vet/normalizatorji.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/vet/data/enote.d.ts
CHANGED
|
@@ -11,7 +11,12 @@
|
|
|
11
11
|
export declare const ENOTE_SINONIMI: Record<string, string>;
|
|
12
12
|
/**
|
|
13
13
|
* Enote, ki veljajo LE v sestavljenem zapisu (cifra + enota), ne kot samostojna
|
|
14
|
-
* beseda: `
|
|
14
|
+
* beseda: `250gr` → `250 g`, a `BALL M` ostane `M` (velikost).
|
|
15
|
+
*
|
|
16
|
+
* `m` tu NI: v nazivih pomeni **meter** (`FLEXI VARIO S TRAK 5M`, `Vata v roli 4m`,
|
|
17
|
+
* `Omnipor 2,5cm x 9,2m`), prostornino pa katalogi pišejo z `ml` (`200ml`). Merilo:
|
|
18
|
+
* 696 nazivov v SI_TACKA s samostojnim `m` ob številu, med njimi skoraj izključno
|
|
19
|
+
* dolžine; pretvorbo zdaj dela `kolicinaNormalizator` (2 m → 200 CM, 5 m → 500 CM).
|
|
15
20
|
*/
|
|
16
21
|
export declare const ENOTE_SESTAVLJENE: Record<string, string>;
|
|
17
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enote.d.ts","sourceRoot":"","sources":["../../../src/vet/data/enote.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0EjD,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"enote.d.ts","sourceRoot":"","sources":["../../../src/vet/data/enote.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0EjD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAapD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoBrD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwBjD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAC"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* - analysed/znamke-okrajsave.csv
|
|
6
6
|
* - analysed/znamke-dobavitelji.csv
|
|
7
7
|
* - src/znamke/dodatne-znamke.ts
|
|
8
|
-
* Ustvarjeno: 2026-10-
|
|
9
|
-
* Vrstic:
|
|
8
|
+
* Ustvarjeno: 2026-10-04T18:32:44.074Z
|
|
9
|
+
* Vrstic: 77 okrajšav, 14 linij, 8 dobaviteljev, 2 oznak, 94 tipskih oznak.
|
|
10
10
|
*
|
|
11
11
|
* Regeneracija: `bun run gen:vet-data` (iz korena cry-search).
|
|
12
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"znamke.gen.d.ts","sourceRoot":"","sources":["../../../src/vet/data/znamke.gen.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,UAAU,EAAE;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"znamke.gen.d.ts","sourceRoot":"","sources":["../../../src/vet/data/znamke.gen.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,UAAU,EAAE;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;CA6tBvB,CAAC"}
|
package/dist/vet/index.cjs
CHANGED
|
@@ -144,7 +144,6 @@ var ENOTE_SINONIMI = {
|
|
|
144
144
|
kapsula1: "kps"
|
|
145
145
|
};
|
|
146
146
|
var ENOTE_SESTAVLJENE = {
|
|
147
|
-
m: "ml",
|
|
148
147
|
gr: "g",
|
|
149
148
|
grm: "g",
|
|
150
149
|
ml: "ml",
|
|
@@ -694,7 +693,7 @@ var ZNAMKE_GEN = {
|
|
|
694
693
|
},
|
|
695
694
|
{
|
|
696
695
|
okrajsava: "VL",
|
|
697
|
-
znamka: "Versele
|
|
696
|
+
znamka: "Versele Laga",
|
|
698
697
|
zaupanje: "potrjeno",
|
|
699
698
|
pojavitve: 260
|
|
700
699
|
},
|
|
@@ -748,8 +747,8 @@ var ZNAMKE_GEN = {
|
|
|
748
747
|
},
|
|
749
748
|
{
|
|
750
749
|
okrajsava: "PP",
|
|
751
|
-
znamka: "
|
|
752
|
-
zaupanje: "
|
|
750
|
+
znamka: "Pro Plan",
|
|
751
|
+
zaupanje: "potrjeno",
|
|
753
752
|
pojavitve: 117
|
|
754
753
|
},
|
|
755
754
|
{
|
|
@@ -1075,6 +1074,12 @@ var ZNAMKE_GEN = {
|
|
|
1075
1074
|
znamka: "Fish4Dogs",
|
|
1076
1075
|
zaupanje: "potrjeno",
|
|
1077
1076
|
pojavitve: 0
|
|
1077
|
+
},
|
|
1078
|
+
{
|
|
1079
|
+
okrajsava: "TR",
|
|
1080
|
+
znamka: "Trixie",
|
|
1081
|
+
zaupanje: "potrjeno",
|
|
1082
|
+
pojavitve: 0
|
|
1078
1083
|
}
|
|
1079
1084
|
],
|
|
1080
1085
|
znamke: [
|
|
@@ -1105,7 +1110,19 @@ var ZNAMKE_GEN = {
|
|
|
1105
1110
|
"Vet's Best",
|
|
1106
1111
|
"Taste of the Wild",
|
|
1107
1112
|
"Fish4Dogs",
|
|
1108
|
-
"Royal Canin"
|
|
1113
|
+
"Royal Canin",
|
|
1114
|
+
"Trixie",
|
|
1115
|
+
"Kerbl",
|
|
1116
|
+
"Hunter",
|
|
1117
|
+
"Croci",
|
|
1118
|
+
"Flexi",
|
|
1119
|
+
"Ferplast",
|
|
1120
|
+
"Rinti",
|
|
1121
|
+
"JBL",
|
|
1122
|
+
"Sera",
|
|
1123
|
+
"Dubex",
|
|
1124
|
+
"Versele Laga",
|
|
1125
|
+
"Pro Plan"
|
|
1109
1126
|
],
|
|
1110
1127
|
linije: [
|
|
1111
1128
|
{
|
|
@@ -1350,7 +1367,7 @@ var enoteNormalizator = {
|
|
|
1350
1367
|
return `${stevilo} ${crke}`;
|
|
1351
1368
|
});
|
|
1352
1369
|
const izhod = razbito.replace(BESEDA, (ujemanje) => {
|
|
1353
|
-
const kanonicna = ENOTE_SINONIMI[kljucBesede(ujemanje)]
|
|
1370
|
+
const kanonicna = ENOTE_SINONIMI[kljucBesede(ujemanje)];
|
|
1354
1371
|
if (!kanonicna)
|
|
1355
1372
|
return ujemanje;
|
|
1356
1373
|
spremenjeno = true;
|
|
@@ -1374,8 +1391,28 @@ var VELIKOSTNE_BESEDE = new Set([
|
|
|
1374
1391
|
function kanonicaVelika(enota) {
|
|
1375
1392
|
return enota.toUpperCase();
|
|
1376
1393
|
}
|
|
1377
|
-
var
|
|
1378
|
-
|
|
1394
|
+
var KANONICNE_ENOTE = {
|
|
1395
|
+
mm: { dim: "cm", faktor: 0.1 },
|
|
1396
|
+
cm: { dim: "cm", faktor: 1 },
|
|
1397
|
+
m: { dim: "cm", faktor: 100 },
|
|
1398
|
+
km: { dim: "cm", faktor: 1e5 },
|
|
1399
|
+
mg: { dim: "g", faktor: 0.001 },
|
|
1400
|
+
g: { dim: "g", faktor: 1 },
|
|
1401
|
+
kg: { dim: "g", faktor: 1000 },
|
|
1402
|
+
ml: { dim: "ml", faktor: 1 },
|
|
1403
|
+
dl: { dim: "ml", faktor: 100 },
|
|
1404
|
+
l: { dim: "ml", faktor: 1000 }
|
|
1405
|
+
};
|
|
1406
|
+
var MERE = new Set(Object.keys(KANONICNE_ENOTE));
|
|
1407
|
+
function kanonicnaMera(stevilo, enota) {
|
|
1408
|
+
const mera = KANONICNE_ENOTE[enota.toLowerCase()];
|
|
1409
|
+
if (!mera)
|
|
1410
|
+
return { vrednost: `${stevilo} ${enota.toUpperCase()}`, enota: enota.toUpperCase() };
|
|
1411
|
+
const vrednost = Number((Number(stevilo) * mera.faktor).toFixed(4));
|
|
1412
|
+
return { vrednost: `${vrednost} ${mera.dim.toUpperCase()}`, enota: mera.dim.toUpperCase() };
|
|
1413
|
+
}
|
|
1414
|
+
var KOLICINA_Z_ENOTO = /(\d+(?:\.\d+)?)\s*(mm|cm|km|ml|dl|mg|kg|mcg|m|l|g|kg|ie|tbl|kps|amp|inj|kos|kom|vrecka|vrecke|tuba|steklenicka|zlicka|plocevinka|konzerva|viala)\b/gi;
|
|
1415
|
+
var RAZPON = /(\d+(?:\.\d+)?)\s*([a-z]{1,4})?\s*[-\u2013]\s*(\d+(?:\.\d+)?)\s*([a-z]{1,4})?\b/i;
|
|
1379
1416
|
var PAKIRANJE = /(\d+)\s*(?:x\s*)?(tbl|kps|amp|kos|kom|vrecka|vrecke|konzerva)\b/gi;
|
|
1380
1417
|
var RAZMERJE_PAKIRANJA = /(\d{1,3})\s*\/\s*(\d{1,3})\b/g;
|
|
1381
1418
|
var kolicinaNormalizator = {
|
|
@@ -1384,13 +1421,19 @@ var kolicinaNormalizator = {
|
|
|
1384
1421
|
let besedilo = v;
|
|
1385
1422
|
const razpon = RAZPON.exec(besedilo);
|
|
1386
1423
|
if (razpon && razpon[1] && razpon[3]) {
|
|
1387
|
-
|
|
1388
|
-
const
|
|
1389
|
-
|
|
1424
|
+
const enotaRazpona = (razpon[2] ?? razpon[4] ?? "").toLowerCase();
|
|
1425
|
+
const spodnja = kanonicnaMera(razpon[1], enotaRazpona || "");
|
|
1426
|
+
const zgornja = kanonicnaMera(razpon[3], enotaRazpona || "");
|
|
1427
|
+
const [spodnjaVrednost] = spodnja.vrednost.split(" ");
|
|
1428
|
+
const [zgornjaVrednost] = zgornja.vrednost.split(" ");
|
|
1429
|
+
const enotaKanonicna = MERE.has(enotaRazpona) ? spodnja.enota : enotaRazpona.toUpperCase();
|
|
1430
|
+
razredi["razpon"] = `${spodnjaVrednost}-${zgornjaVrednost}`;
|
|
1431
|
+
besedilo = besedilo.replace(razpon[0], enotaKanonicna ? ` ${enotaKanonicna} ` : " ");
|
|
1390
1432
|
}
|
|
1391
1433
|
besedilo = besedilo.replace(KOLICINA_Z_ENOTO, (_ujemanje, stevilo, enota) => {
|
|
1392
1434
|
const kljuc = razredi["kolicina"] === undefined ? "kolicina" : "pakiranje";
|
|
1393
|
-
const
|
|
1435
|
+
const kanonicna = kanonicnaMera(stevilo, enota);
|
|
1436
|
+
const vrednost = kanonicna.vrednost;
|
|
1394
1437
|
const obstojece = razredi[kljuc];
|
|
1395
1438
|
if (obstojece === undefined)
|
|
1396
1439
|
razredi[kljuc] = vrednost;
|
|
@@ -1398,7 +1441,7 @@ var kolicinaNormalizator = {
|
|
|
1398
1441
|
obstojece.push(vrednost);
|
|
1399
1442
|
else
|
|
1400
1443
|
razredi[kljuc] = [obstojece, vrednost];
|
|
1401
|
-
return ` ${enota
|
|
1444
|
+
return ` ${kanonicna.enota} `;
|
|
1402
1445
|
});
|
|
1403
1446
|
besedilo = besedilo.replace(RAZMERJE_PAKIRANJA, (_ujemanje, a, b) => {
|
|
1404
1447
|
const vrednost = `${a}/${b}`;
|
|
@@ -1456,7 +1499,6 @@ var vrstaNormalizator = {
|
|
|
1456
1499
|
return najdene.length ? { text: ocisceno, classes: { vrsta: najdene } } : ocisceno;
|
|
1457
1500
|
}
|
|
1458
1501
|
};
|
|
1459
|
-
var TIPSKE_OZNAKE = new Set(ZNAMKE_GEN.tipskeOznake.map(kljucBesede).filter((t) => t.length >= 2 && !PREVODI[t]));
|
|
1460
1502
|
var razdeljevalciNormalizator = {
|
|
1461
1503
|
fn: (v) => {
|
|
1462
1504
|
let spremenjeno = false;
|
|
@@ -1543,6 +1585,7 @@ for (const linija of ZNAMKE_GEN.linije) {
|
|
|
1543
1585
|
if (!LINIJE_ZNAMK.has(kljuc))
|
|
1544
1586
|
LINIJE_ZNAMK.set(kljuc, linija.znamka);
|
|
1545
1587
|
}
|
|
1588
|
+
var TIPSKE_OZNAKE = new Set(ZNAMKE_GEN.tipskeOznake.map(kljucBesede).filter((t) => t.length >= 2 && !PREVODI[t] && !OKRAJSAVE_ZNAMK.has(t)));
|
|
1546
1589
|
var znamkaNormalizator = {
|
|
1547
1590
|
fn: (v) => {
|
|
1548
1591
|
let spremenjeno = false;
|
|
@@ -1661,6 +1704,7 @@ var VET_NORMALIZATORJI = [
|
|
|
1661
1704
|
];
|
|
1662
1705
|
var VET_TABELA = {
|
|
1663
1706
|
okrajsave: OKRAJSAVE_ZNAMK,
|
|
1707
|
+
znamke: ZNAMKE_GEN.znamke,
|
|
1664
1708
|
linije: LINIJE_ZNAMK,
|
|
1665
1709
|
dobavitelji: DOBAVITELJI,
|
|
1666
1710
|
oznake: OZNAKE,
|
package/dist/vet/index.js
CHANGED
|
@@ -68,7 +68,6 @@ var ENOTE_SINONIMI = {
|
|
|
68
68
|
kapsula1: "kps"
|
|
69
69
|
};
|
|
70
70
|
var ENOTE_SESTAVLJENE = {
|
|
71
|
-
m: "ml",
|
|
72
71
|
gr: "g",
|
|
73
72
|
grm: "g",
|
|
74
73
|
ml: "ml",
|
|
@@ -618,7 +617,7 @@ var ZNAMKE_GEN = {
|
|
|
618
617
|
},
|
|
619
618
|
{
|
|
620
619
|
okrajsava: "VL",
|
|
621
|
-
znamka: "Versele
|
|
620
|
+
znamka: "Versele Laga",
|
|
622
621
|
zaupanje: "potrjeno",
|
|
623
622
|
pojavitve: 260
|
|
624
623
|
},
|
|
@@ -672,8 +671,8 @@ var ZNAMKE_GEN = {
|
|
|
672
671
|
},
|
|
673
672
|
{
|
|
674
673
|
okrajsava: "PP",
|
|
675
|
-
znamka: "
|
|
676
|
-
zaupanje: "
|
|
674
|
+
znamka: "Pro Plan",
|
|
675
|
+
zaupanje: "potrjeno",
|
|
677
676
|
pojavitve: 117
|
|
678
677
|
},
|
|
679
678
|
{
|
|
@@ -999,6 +998,12 @@ var ZNAMKE_GEN = {
|
|
|
999
998
|
znamka: "Fish4Dogs",
|
|
1000
999
|
zaupanje: "potrjeno",
|
|
1001
1000
|
pojavitve: 0
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
okrajsava: "TR",
|
|
1004
|
+
znamka: "Trixie",
|
|
1005
|
+
zaupanje: "potrjeno",
|
|
1006
|
+
pojavitve: 0
|
|
1002
1007
|
}
|
|
1003
1008
|
],
|
|
1004
1009
|
znamke: [
|
|
@@ -1029,7 +1034,19 @@ var ZNAMKE_GEN = {
|
|
|
1029
1034
|
"Vet's Best",
|
|
1030
1035
|
"Taste of the Wild",
|
|
1031
1036
|
"Fish4Dogs",
|
|
1032
|
-
"Royal Canin"
|
|
1037
|
+
"Royal Canin",
|
|
1038
|
+
"Trixie",
|
|
1039
|
+
"Kerbl",
|
|
1040
|
+
"Hunter",
|
|
1041
|
+
"Croci",
|
|
1042
|
+
"Flexi",
|
|
1043
|
+
"Ferplast",
|
|
1044
|
+
"Rinti",
|
|
1045
|
+
"JBL",
|
|
1046
|
+
"Sera",
|
|
1047
|
+
"Dubex",
|
|
1048
|
+
"Versele Laga",
|
|
1049
|
+
"Pro Plan"
|
|
1033
1050
|
],
|
|
1034
1051
|
linije: [
|
|
1035
1052
|
{
|
|
@@ -1274,7 +1291,7 @@ var enoteNormalizator = {
|
|
|
1274
1291
|
return `${stevilo} ${crke}`;
|
|
1275
1292
|
});
|
|
1276
1293
|
const izhod = razbito.replace(BESEDA, (ujemanje) => {
|
|
1277
|
-
const kanonicna = ENOTE_SINONIMI[kljucBesede(ujemanje)]
|
|
1294
|
+
const kanonicna = ENOTE_SINONIMI[kljucBesede(ujemanje)];
|
|
1278
1295
|
if (!kanonicna)
|
|
1279
1296
|
return ujemanje;
|
|
1280
1297
|
spremenjeno = true;
|
|
@@ -1298,8 +1315,28 @@ var VELIKOSTNE_BESEDE = new Set([
|
|
|
1298
1315
|
function kanonicaVelika(enota) {
|
|
1299
1316
|
return enota.toUpperCase();
|
|
1300
1317
|
}
|
|
1301
|
-
var
|
|
1302
|
-
|
|
1318
|
+
var KANONICNE_ENOTE = {
|
|
1319
|
+
mm: { dim: "cm", faktor: 0.1 },
|
|
1320
|
+
cm: { dim: "cm", faktor: 1 },
|
|
1321
|
+
m: { dim: "cm", faktor: 100 },
|
|
1322
|
+
km: { dim: "cm", faktor: 1e5 },
|
|
1323
|
+
mg: { dim: "g", faktor: 0.001 },
|
|
1324
|
+
g: { dim: "g", faktor: 1 },
|
|
1325
|
+
kg: { dim: "g", faktor: 1000 },
|
|
1326
|
+
ml: { dim: "ml", faktor: 1 },
|
|
1327
|
+
dl: { dim: "ml", faktor: 100 },
|
|
1328
|
+
l: { dim: "ml", faktor: 1000 }
|
|
1329
|
+
};
|
|
1330
|
+
var MERE = new Set(Object.keys(KANONICNE_ENOTE));
|
|
1331
|
+
function kanonicnaMera(stevilo, enota) {
|
|
1332
|
+
const mera = KANONICNE_ENOTE[enota.toLowerCase()];
|
|
1333
|
+
if (!mera)
|
|
1334
|
+
return { vrednost: `${stevilo} ${enota.toUpperCase()}`, enota: enota.toUpperCase() };
|
|
1335
|
+
const vrednost = Number((Number(stevilo) * mera.faktor).toFixed(4));
|
|
1336
|
+
return { vrednost: `${vrednost} ${mera.dim.toUpperCase()}`, enota: mera.dim.toUpperCase() };
|
|
1337
|
+
}
|
|
1338
|
+
var KOLICINA_Z_ENOTO = /(\d+(?:\.\d+)?)\s*(mm|cm|km|ml|dl|mg|kg|mcg|m|l|g|kg|ie|tbl|kps|amp|inj|kos|kom|vrecka|vrecke|tuba|steklenicka|zlicka|plocevinka|konzerva|viala)\b/gi;
|
|
1339
|
+
var RAZPON = /(\d+(?:\.\d+)?)\s*([a-z]{1,4})?\s*[-\u2013]\s*(\d+(?:\.\d+)?)\s*([a-z]{1,4})?\b/i;
|
|
1303
1340
|
var PAKIRANJE = /(\d+)\s*(?:x\s*)?(tbl|kps|amp|kos|kom|vrecka|vrecke|konzerva)\b/gi;
|
|
1304
1341
|
var RAZMERJE_PAKIRANJA = /(\d{1,3})\s*\/\s*(\d{1,3})\b/g;
|
|
1305
1342
|
var kolicinaNormalizator = {
|
|
@@ -1308,13 +1345,19 @@ var kolicinaNormalizator = {
|
|
|
1308
1345
|
let besedilo = v;
|
|
1309
1346
|
const razpon = RAZPON.exec(besedilo);
|
|
1310
1347
|
if (razpon && razpon[1] && razpon[3]) {
|
|
1311
|
-
|
|
1312
|
-
const
|
|
1313
|
-
|
|
1348
|
+
const enotaRazpona = (razpon[2] ?? razpon[4] ?? "").toLowerCase();
|
|
1349
|
+
const spodnja = kanonicnaMera(razpon[1], enotaRazpona || "");
|
|
1350
|
+
const zgornja = kanonicnaMera(razpon[3], enotaRazpona || "");
|
|
1351
|
+
const [spodnjaVrednost] = spodnja.vrednost.split(" ");
|
|
1352
|
+
const [zgornjaVrednost] = zgornja.vrednost.split(" ");
|
|
1353
|
+
const enotaKanonicna = MERE.has(enotaRazpona) ? spodnja.enota : enotaRazpona.toUpperCase();
|
|
1354
|
+
razredi["razpon"] = `${spodnjaVrednost}-${zgornjaVrednost}`;
|
|
1355
|
+
besedilo = besedilo.replace(razpon[0], enotaKanonicna ? ` ${enotaKanonicna} ` : " ");
|
|
1314
1356
|
}
|
|
1315
1357
|
besedilo = besedilo.replace(KOLICINA_Z_ENOTO, (_ujemanje, stevilo, enota) => {
|
|
1316
1358
|
const kljuc = razredi["kolicina"] === undefined ? "kolicina" : "pakiranje";
|
|
1317
|
-
const
|
|
1359
|
+
const kanonicna = kanonicnaMera(stevilo, enota);
|
|
1360
|
+
const vrednost = kanonicna.vrednost;
|
|
1318
1361
|
const obstojece = razredi[kljuc];
|
|
1319
1362
|
if (obstojece === undefined)
|
|
1320
1363
|
razredi[kljuc] = vrednost;
|
|
@@ -1322,7 +1365,7 @@ var kolicinaNormalizator = {
|
|
|
1322
1365
|
obstojece.push(vrednost);
|
|
1323
1366
|
else
|
|
1324
1367
|
razredi[kljuc] = [obstojece, vrednost];
|
|
1325
|
-
return ` ${enota
|
|
1368
|
+
return ` ${kanonicna.enota} `;
|
|
1326
1369
|
});
|
|
1327
1370
|
besedilo = besedilo.replace(RAZMERJE_PAKIRANJA, (_ujemanje, a, b) => {
|
|
1328
1371
|
const vrednost = `${a}/${b}`;
|
|
@@ -1380,7 +1423,6 @@ var vrstaNormalizator = {
|
|
|
1380
1423
|
return najdene.length ? { text: ocisceno, classes: { vrsta: najdene } } : ocisceno;
|
|
1381
1424
|
}
|
|
1382
1425
|
};
|
|
1383
|
-
var TIPSKE_OZNAKE = new Set(ZNAMKE_GEN.tipskeOznake.map(kljucBesede).filter((t) => t.length >= 2 && !PREVODI[t]));
|
|
1384
1426
|
var razdeljevalciNormalizator = {
|
|
1385
1427
|
fn: (v) => {
|
|
1386
1428
|
let spremenjeno = false;
|
|
@@ -1467,6 +1509,7 @@ for (const linija of ZNAMKE_GEN.linije) {
|
|
|
1467
1509
|
if (!LINIJE_ZNAMK.has(kljuc))
|
|
1468
1510
|
LINIJE_ZNAMK.set(kljuc, linija.znamka);
|
|
1469
1511
|
}
|
|
1512
|
+
var TIPSKE_OZNAKE = new Set(ZNAMKE_GEN.tipskeOznake.map(kljucBesede).filter((t) => t.length >= 2 && !PREVODI[t] && !OKRAJSAVE_ZNAMK.has(t)));
|
|
1470
1513
|
var znamkaNormalizator = {
|
|
1471
1514
|
fn: (v) => {
|
|
1472
1515
|
let spremenjeno = false;
|
|
@@ -1585,6 +1628,7 @@ var VET_NORMALIZATORJI = [
|
|
|
1585
1628
|
];
|
|
1586
1629
|
var VET_TABELA = {
|
|
1587
1630
|
okrajsave: OKRAJSAVE_ZNAMK,
|
|
1631
|
+
znamke: ZNAMKE_GEN.znamke,
|
|
1588
1632
|
linije: LINIJE_ZNAMK,
|
|
1589
1633
|
dobavitelji: DOBAVITELJI,
|
|
1590
1634
|
oznake: OZNAKE,
|
|
@@ -134,6 +134,7 @@ export declare const VET_NORMALIZATORJI: ValueNormalizer[];
|
|
|
134
134
|
/** Izvoz za teste in diagnostične skripte. */
|
|
135
135
|
export declare const VET_TABELA: {
|
|
136
136
|
okrajsave: Map<string, string>;
|
|
137
|
+
znamke: string[];
|
|
137
138
|
linije: Map<string, string>;
|
|
138
139
|
dobavitelji: Set<string>;
|
|
139
140
|
oznake: Set<string>;
|
|
@@ -1 +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;AAKhD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,
|
|
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;AAKhD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAsB/B,CAAC;AAuFF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,eA6DlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,eA0B/B,CAAC;AAGF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,EAAE,eAuBvC,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAgBjC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAYjC,CAAC;AAoFF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,eA0BhC,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAkBhC,CAAC;AAGF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAkBlC,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;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAc/C,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,UAAU;;;;;;;;;;;CAWtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cry-search",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.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",
|