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.
@@ -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: `250m` → `250 ml`, a `BALL M` ostane `M` (velikost, ne mililitri).
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;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAcpD,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"}
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-04T14:12:11.296Z
9
- * Vrstic: 76 okrajšav, 14 linij, 8 dobaviteljev, 2 oznak, 94 tipskih oznak.
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;CA2sBvB,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"}
@@ -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-Laga",
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: "Pramy Prama",
752
- zaupanje: "verjetno",
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)] ?? ENOTE_SESTAVLJENE[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 KOLICINA_Z_ENOTO = /(\d+(?:\.\d+)?)\s*(ml|dl|l|g|mg|mcg|kg|ie|tbl|kps|amp|inj|kos|kom|vrecka|vrecke|tuba|steklenicka|zlicka|plocevinka|konzerva|viala)\b/gi;
1378
- var RAZPON = /(\d+(?:\.\d+)?)\s*(kg)?\s*[-\u2013]\s*(\d+(?:\.\d+)?)\s*(kg)?/i;
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
- razredi["razpon"] = `${razpon[1]}-${razpon[3]}`;
1388
- const enotaRazpona = razpon[2] ?? razpon[4] ?? "";
1389
- besedilo = besedilo.replace(razpon[0], enotaRazpona ? ` ${enotaRazpona.toUpperCase()} ` : " ");
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 vrednost = `${stevilo} ${enota.toUpperCase()}`;
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.toUpperCase()} `;
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-Laga",
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: "Pramy Prama",
676
- zaupanje: "verjetno",
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)] ?? ENOTE_SESTAVLJENE[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 KOLICINA_Z_ENOTO = /(\d+(?:\.\d+)?)\s*(ml|dl|l|g|mg|mcg|kg|ie|tbl|kps|amp|inj|kos|kom|vrecka|vrecke|tuba|steklenicka|zlicka|plocevinka|konzerva|viala)\b/gi;
1302
- var RAZPON = /(\d+(?:\.\d+)?)\s*(kg)?\s*[-\u2013]\s*(\d+(?:\.\d+)?)\s*(kg)?/i;
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
- razredi["razpon"] = `${razpon[1]}-${razpon[3]}`;
1312
- const enotaRazpona = razpon[2] ?? razpon[4] ?? "";
1313
- besedilo = besedilo.replace(razpon[0], enotaRazpona ? ` ${enotaRazpona.toUpperCase()} ` : " ");
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 vrednost = `${stevilo} ${enota.toUpperCase()}`;
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.toUpperCase()} `;
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,eAmB/B,CAAC;AAkDF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAmDlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,eA0B/B,CAAC;AAYF;;;;;;;;;;;;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;AAoEF;;;;;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;;;;;;;;;;CAUtB,CAAC"}
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.0",
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",