synunu-libs 1.0.65 → 1.0.66

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.
@@ -2,4 +2,6 @@ export declare function removeVietnameseAccents(str: string, { removePunctuation
2
2
  removePunctuations?: boolean | undefined;
3
3
  }): string;
4
4
  export declare function slugify(str: string): string;
5
+ export declare function generateSearchTokens(text: string): string[];
6
+ export declare function generateSearchKeys(name: Record<string, string>): string[];
5
7
  //# sourceMappingURL=string.utiil.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"string.utiil.d.ts","sourceRoot":"","sources":["../../src/utils/string.utiil.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,EAAE,kBAA0B,EAAE;;CAAA,UA8B/B;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,UAQlC"}
1
+ {"version":3,"file":"string.utiil.d.ts","sourceRoot":"","sources":["../../src/utils/string.utiil.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,EAAE,kBAA0B,EAAE;;CAAA,UA8B/B;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,UAQlC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,YAUhD;AAiBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CA0BzE"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.removeVietnameseAccents = removeVietnameseAccents;
4
4
  exports.slugify = slugify;
5
+ exports.generateSearchTokens = generateSearchTokens;
6
+ exports.generateSearchKeys = generateSearchKeys;
5
7
  function removeVietnameseAccents(str, { removePunctuations = false }) {
6
8
  str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, "a");
7
9
  str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, "e");
@@ -22,7 +24,7 @@ function removeVietnameseAccents(str, { removePunctuations = false }) {
22
24
  str = str.replace(/\u02C6|\u0306|\u031B/g, ""); // ˆ ̆ ̛ Â, Ê, Ă, Ơ, Ư
23
25
  // Remove punctuations
24
26
  if (removePunctuations) {
25
- str = str.replace(/%|\^|\*|\(|\)|\+|=|<|>|\?|\/|'|"|&|#|\[|\]|~|\$|_|`|{|}|\||\\/g, "");
27
+ str = str.replace(/%|\^|\*|\(|\)|\+|=|<|>|\?|\/|'|@|!|"|&|#|\[|\]|~|\$|_|`|{|}|\||\\/g, "");
26
28
  }
27
29
  str = str.trim();
28
30
  return str;
@@ -35,4 +37,48 @@ function slugify(str) {
35
37
  .replace(/-+/g, "-")
36
38
  .replace(/^-+|-+$/g, "");
37
39
  }
40
+ function generateSearchTokens(text) {
41
+ if (!text)
42
+ return [];
43
+ const accentText = removeVietnameseAccents(text, {
44
+ removePunctuations: false,
45
+ });
46
+ const tokens = accentText.split(" ").filter((word) => word.length >= 2);
47
+ return tokens;
48
+ }
49
+ function extractChinese(text) {
50
+ const matches = text.match(/[\u4e00-\u9fff]+/g);
51
+ return matches ?? [];
52
+ }
53
+ function normalizeLatin(text) {
54
+ return text
55
+ .toLowerCase()
56
+ .normalize("NFD")
57
+ .replace(/[\u0300-\u036f]/g, "")
58
+ .replace(/[^a-z0-9\s]/g, " ")
59
+ .replace(/\s+/g, " ")
60
+ .trim();
61
+ }
62
+ function generateSearchKeys(name) {
63
+ const keys = new Set();
64
+ Object.values(name).forEach((text) => {
65
+ if (!text)
66
+ return;
67
+ // Latin (en, vi)
68
+ const textAccent = removeVietnameseAccents(text, {
69
+ removePunctuations: false,
70
+ });
71
+ const latin = normalizeLatin(textAccent);
72
+ latin.split(" ").forEach((word) => {
73
+ if (word.length >= 2)
74
+ keys.add(word);
75
+ });
76
+ // Chinese
77
+ extractChinese(text).forEach((word) => keys.add(word));
78
+ // Numbers
79
+ const numbers = text.match(/\d+/g);
80
+ numbers?.forEach((num) => keys.add(num));
81
+ });
82
+ return Array.from(keys);
83
+ }
38
84
  //# sourceMappingURL=string.utiil.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"string.utiil.js","sourceRoot":"","sources":["../../src/utils/string.utiil.ts"],"names":[],"mappings":";;AAAA,0DAgCC;AAED,0BAQC;AA1CD,SAAgB,uBAAuB,CACrC,GAAW,EACX,EAAE,kBAAkB,GAAG,KAAK,EAAE;IAE9B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;IAC7D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IACjD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACrC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;IAC7D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IACjD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACrC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;IAC7D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IACjD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACrC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;IAC7D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IACjD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACrC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7B,gFAAgF;IAChF,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU;IACxE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB;IAEvE,sBAAsB;IACtB,IAAI,kBAAkB,EAAE,CAAC;QACvB,GAAG,GAAG,GAAG,CAAC,OAAO,CACf,gEAAgE,EAChE,EAAE,CACH,CAAC;IACJ,CAAC;IAED,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,OAAO,CAAC,GAAW;IACjC,GAAG,GAAG,uBAAuB,CAAC,GAAG,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjE,OAAO,GAAG;SACP,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"string.utiil.js","sourceRoot":"","sources":["../../src/utils/string.utiil.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synunu-libs",
3
- "version": "1.0.65",
3
+ "version": "1.0.66",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "description": "Shared DTOs, constants, and utilities for Synunu microservices",