cry-search 2.4.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
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"}
|
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",
|
|
@@ -1368,7 +1367,7 @@ var enoteNormalizator = {
|
|
|
1368
1367
|
return `${stevilo} ${crke}`;
|
|
1369
1368
|
});
|
|
1370
1369
|
const izhod = razbito.replace(BESEDA, (ujemanje) => {
|
|
1371
|
-
const kanonicna = ENOTE_SINONIMI[kljucBesede(ujemanje)]
|
|
1370
|
+
const kanonicna = ENOTE_SINONIMI[kljucBesede(ujemanje)];
|
|
1372
1371
|
if (!kanonicna)
|
|
1373
1372
|
return ujemanje;
|
|
1374
1373
|
spremenjeno = true;
|
|
@@ -1392,8 +1391,28 @@ var VELIKOSTNE_BESEDE = new Set([
|
|
|
1392
1391
|
function kanonicaVelika(enota) {
|
|
1393
1392
|
return enota.toUpperCase();
|
|
1394
1393
|
}
|
|
1395
|
-
var
|
|
1396
|
-
|
|
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;
|
|
1397
1416
|
var PAKIRANJE = /(\d+)\s*(?:x\s*)?(tbl|kps|amp|kos|kom|vrecka|vrecke|konzerva)\b/gi;
|
|
1398
1417
|
var RAZMERJE_PAKIRANJA = /(\d{1,3})\s*\/\s*(\d{1,3})\b/g;
|
|
1399
1418
|
var kolicinaNormalizator = {
|
|
@@ -1402,13 +1421,19 @@ var kolicinaNormalizator = {
|
|
|
1402
1421
|
let besedilo = v;
|
|
1403
1422
|
const razpon = RAZPON.exec(besedilo);
|
|
1404
1423
|
if (razpon && razpon[1] && razpon[3]) {
|
|
1405
|
-
|
|
1406
|
-
const
|
|
1407
|
-
|
|
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} ` : " ");
|
|
1408
1432
|
}
|
|
1409
1433
|
besedilo = besedilo.replace(KOLICINA_Z_ENOTO, (_ujemanje, stevilo, enota) => {
|
|
1410
1434
|
const kljuc = razredi["kolicina"] === undefined ? "kolicina" : "pakiranje";
|
|
1411
|
-
const
|
|
1435
|
+
const kanonicna = kanonicnaMera(stevilo, enota);
|
|
1436
|
+
const vrednost = kanonicna.vrednost;
|
|
1412
1437
|
const obstojece = razredi[kljuc];
|
|
1413
1438
|
if (obstojece === undefined)
|
|
1414
1439
|
razredi[kljuc] = vrednost;
|
|
@@ -1416,7 +1441,7 @@ var kolicinaNormalizator = {
|
|
|
1416
1441
|
obstojece.push(vrednost);
|
|
1417
1442
|
else
|
|
1418
1443
|
razredi[kljuc] = [obstojece, vrednost];
|
|
1419
|
-
return ` ${enota
|
|
1444
|
+
return ` ${kanonicna.enota} `;
|
|
1420
1445
|
});
|
|
1421
1446
|
besedilo = besedilo.replace(RAZMERJE_PAKIRANJA, (_ujemanje, a, b) => {
|
|
1422
1447
|
const vrednost = `${a}/${b}`;
|
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",
|
|
@@ -1292,7 +1291,7 @@ var enoteNormalizator = {
|
|
|
1292
1291
|
return `${stevilo} ${crke}`;
|
|
1293
1292
|
});
|
|
1294
1293
|
const izhod = razbito.replace(BESEDA, (ujemanje) => {
|
|
1295
|
-
const kanonicna = ENOTE_SINONIMI[kljucBesede(ujemanje)]
|
|
1294
|
+
const kanonicna = ENOTE_SINONIMI[kljucBesede(ujemanje)];
|
|
1296
1295
|
if (!kanonicna)
|
|
1297
1296
|
return ujemanje;
|
|
1298
1297
|
spremenjeno = true;
|
|
@@ -1316,8 +1315,28 @@ var VELIKOSTNE_BESEDE = new Set([
|
|
|
1316
1315
|
function kanonicaVelika(enota) {
|
|
1317
1316
|
return enota.toUpperCase();
|
|
1318
1317
|
}
|
|
1319
|
-
var
|
|
1320
|
-
|
|
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;
|
|
1321
1340
|
var PAKIRANJE = /(\d+)\s*(?:x\s*)?(tbl|kps|amp|kos|kom|vrecka|vrecke|konzerva)\b/gi;
|
|
1322
1341
|
var RAZMERJE_PAKIRANJA = /(\d{1,3})\s*\/\s*(\d{1,3})\b/g;
|
|
1323
1342
|
var kolicinaNormalizator = {
|
|
@@ -1326,13 +1345,19 @@ var kolicinaNormalizator = {
|
|
|
1326
1345
|
let besedilo = v;
|
|
1327
1346
|
const razpon = RAZPON.exec(besedilo);
|
|
1328
1347
|
if (razpon && razpon[1] && razpon[3]) {
|
|
1329
|
-
|
|
1330
|
-
const
|
|
1331
|
-
|
|
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} ` : " ");
|
|
1332
1356
|
}
|
|
1333
1357
|
besedilo = besedilo.replace(KOLICINA_Z_ENOTO, (_ujemanje, stevilo, enota) => {
|
|
1334
1358
|
const kljuc = razredi["kolicina"] === undefined ? "kolicina" : "pakiranje";
|
|
1335
|
-
const
|
|
1359
|
+
const kanonicna = kanonicnaMera(stevilo, enota);
|
|
1360
|
+
const vrednost = kanonicna.vrednost;
|
|
1336
1361
|
const obstojece = razredi[kljuc];
|
|
1337
1362
|
if (obstojece === undefined)
|
|
1338
1363
|
razredi[kljuc] = vrednost;
|
|
@@ -1340,7 +1365,7 @@ var kolicinaNormalizator = {
|
|
|
1340
1365
|
obstojece.push(vrednost);
|
|
1341
1366
|
else
|
|
1342
1367
|
razredi[kljuc] = [obstojece, vrednost];
|
|
1343
|
-
return ` ${enota
|
|
1368
|
+
return ` ${kanonicna.enota} `;
|
|
1344
1369
|
});
|
|
1345
1370
|
besedilo = besedilo.replace(RAZMERJE_PAKIRANJA, (_ujemanje, a, b) => {
|
|
1346
1371
|
const vrednost = `${a}/${b}`;
|
|
@@ -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",
|