hebrew-transliteration 2.5.2 → 2.6.2-canary.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 (104) hide show
  1. package/dist/cjs/hebCharsTrans.js +73 -0
  2. package/dist/cjs/hebCharsTrans.js.map +7 -0
  3. package/dist/cjs/index.js +40 -0
  4. package/dist/cjs/index.js.map +7 -0
  5. package/dist/cjs/package.json +3 -0
  6. package/dist/cjs/remove.js +195 -0
  7. package/dist/cjs/remove.js.map +7 -0
  8. package/dist/cjs/rules.js +367 -0
  9. package/dist/cjs/rules.js.map +7 -0
  10. package/dist/cjs/schema.js +200 -0
  11. package/dist/cjs/schema.js.map +7 -0
  12. package/dist/cjs/schemas/brillAcademic.js +102 -0
  13. package/dist/cjs/schemas/brillAcademic.js.map +7 -0
  14. package/dist/cjs/schemas/brillSimple.js +101 -0
  15. package/dist/cjs/schemas/brillSimple.js.map +7 -0
  16. package/dist/cjs/schemas/index.js +49 -0
  17. package/dist/cjs/schemas/index.js.map +7 -0
  18. package/dist/cjs/schemas/jss.js +115 -0
  19. package/dist/cjs/schemas/jss.js.map +7 -0
  20. package/dist/cjs/schemas/michiganClaremont.js +95 -0
  21. package/dist/cjs/schemas/michiganClaremont.js.map +7 -0
  22. package/dist/cjs/schemas/romaniote.js +186 -0
  23. package/dist/cjs/schemas/romaniote.js.map +7 -0
  24. package/dist/cjs/schemas/sblAcademicSpirantization.js +101 -0
  25. package/dist/cjs/schemas/sblAcademicSpirantization.js.map +7 -0
  26. package/dist/cjs/schemas/sblSimple.js +110 -0
  27. package/dist/cjs/schemas/sblSimple.js.map +7 -0
  28. package/dist/cjs/schemas/tiberian.js +467 -0
  29. package/dist/cjs/schemas/tiberian.js.map +7 -0
  30. package/dist/cjs/sequence.js +34 -0
  31. package/dist/cjs/sequence.js.map +7 -0
  32. package/dist/cjs/transliterate.js +63 -0
  33. package/dist/cjs/transliterate.js.map +7 -0
  34. package/dist/esm/hebCharsTrans.js +54 -0
  35. package/dist/esm/hebCharsTrans.js.map +1 -0
  36. package/dist/esm/index.js +11 -0
  37. package/dist/esm/index.js.map +1 -0
  38. package/dist/esm/package.json +3 -0
  39. package/dist/esm/remove.js +214 -0
  40. package/dist/esm/remove.js.map +1 -0
  41. package/dist/{rules.js → esm/rules.js} +119 -59
  42. package/dist/esm/rules.js.map +1 -0
  43. package/dist/esm/schema.js +659 -0
  44. package/dist/esm/schema.js.map +1 -0
  45. package/dist/{schemas → esm/schemas}/brillAcademic.js +2 -4
  46. package/dist/esm/schemas/brillAcademic.js.map +1 -0
  47. package/dist/{schemas → esm/schemas}/brillSimple.js +2 -4
  48. package/dist/esm/schemas/brillSimple.js.map +1 -0
  49. package/dist/esm/schemas/index.js +10 -0
  50. package/dist/esm/schemas/index.js.map +1 -0
  51. package/dist/{schemas → esm/schemas}/jss.js +4 -7
  52. package/dist/esm/schemas/jss.js.map +1 -0
  53. package/dist/{schemas → esm/schemas}/michiganClaremont.js +2 -4
  54. package/dist/esm/schemas/michiganClaremont.js.map +1 -0
  55. package/dist/{schemas → esm/schemas}/romaniote.js +8 -10
  56. package/dist/esm/schemas/romaniote.js.map +1 -0
  57. package/dist/{schemas → esm/schemas}/sblAcademicSpirantization.js +2 -4
  58. package/dist/esm/schemas/sblAcademicSpirantization.js.map +1 -0
  59. package/dist/{schemas → esm/schemas}/sblSimple.js +2 -4
  60. package/dist/esm/schemas/sblSimple.js.map +1 -0
  61. package/dist/{schemas → esm/schemas}/tiberian.js +103 -60
  62. package/dist/esm/schemas/tiberian.js.map +1 -0
  63. package/dist/{sequence.js → esm/sequence.js} +4 -8
  64. package/dist/esm/sequence.js.map +1 -0
  65. package/dist/{transliterate.js → esm/transliterate.js} +14 -17
  66. package/dist/esm/transliterate.js.map +1 -0
  67. package/dist/{schema.d.ts → types/schema.d.ts} +4 -2
  68. package/dist/{schemas → types/schemas}/index.d.ts +2 -1
  69. package/package.json +38 -34
  70. package/dist/hebCharsTrans.js +0 -57
  71. package/dist/hebCharsTrans.js.map +0 -1
  72. package/dist/index.js +0 -14
  73. package/dist/index.js.map +0 -1
  74. package/dist/remove.js +0 -214
  75. package/dist/remove.js.map +0 -1
  76. package/dist/rules.js.map +0 -1
  77. package/dist/schema.js +0 -170
  78. package/dist/schema.js.map +0 -1
  79. package/dist/schemas/brillAcademic.js.map +0 -1
  80. package/dist/schemas/brillSimple.js.map +0 -1
  81. package/dist/schemas/index.js +0 -18
  82. package/dist/schemas/index.js.map +0 -1
  83. package/dist/schemas/jss.js.map +0 -1
  84. package/dist/schemas/michiganClaremont.js.map +0 -1
  85. package/dist/schemas/romaniote.js.map +0 -1
  86. package/dist/schemas/sblAcademicSpirantization.js.map +0 -1
  87. package/dist/schemas/sblSimple.js.map +0 -1
  88. package/dist/schemas/tiberian.js.map +0 -1
  89. package/dist/sequence.js.map +0 -1
  90. package/dist/transliterate.js.map +0 -1
  91. /package/dist/{hebCharsTrans.d.ts → types/hebCharsTrans.d.ts} +0 -0
  92. /package/dist/{index.d.ts → types/index.d.ts} +0 -0
  93. /package/dist/{remove.d.ts → types/remove.d.ts} +0 -0
  94. /package/dist/{rules.d.ts → types/rules.d.ts} +0 -0
  95. /package/dist/{schemas → types/schemas}/brillAcademic.d.ts +0 -0
  96. /package/dist/{schemas → types/schemas}/brillSimple.d.ts +0 -0
  97. /package/dist/{schemas → types/schemas}/jss.d.ts +0 -0
  98. /package/dist/{schemas → types/schemas}/michiganClaremont.d.ts +0 -0
  99. /package/dist/{schemas → types/schemas}/romaniote.d.ts +0 -0
  100. /package/dist/{schemas → types/schemas}/sblAcademicSpirantization.d.ts +0 -0
  101. /package/dist/{schemas → types/schemas}/sblSimple.d.ts +0 -0
  102. /package/dist/{schemas → types/schemas}/tiberian.d.ts +0 -0
  103. /package/dist/{sequence.d.ts → types/sequence.d.ts} +0 -0
  104. /package/dist/{transliterate.d.ts → types/transliterate.d.ts} +0 -0
@@ -0,0 +1,73 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var hebCharsTrans_exports = {};
19
+ __export(hebCharsTrans_exports, {
20
+ transliterateMap: () => transliterateMap
21
+ });
22
+ module.exports = __toCommonJS(hebCharsTrans_exports);
23
+ const transliterateMap = {
24
+ "\u05B0": "VOCAL_SHEVA",
25
+ "\u05B1": "HATAF_SEGOL",
26
+ "\u05B2": "HATAF_PATAH",
27
+ "\u05B3": "HATAF_QAMATS",
28
+ "\u05B4": "HIRIQ",
29
+ "\u05B5": "TSERE",
30
+ "\u05B6": "SEGOL",
31
+ "\u05B7": "PATAH",
32
+ "\u05B8": "QAMATS",
33
+ "\u05B9": "HOLAM",
34
+ "\u05BA": "HOLAM",
35
+ "\u05BB": "QUBUTS",
36
+ "\u05BC": "DAGESH",
37
+ "\u05BE": "MAQAF",
38
+ "\u05C0": "PASEQ",
39
+ "\u05C3": "SOF_PASUQ",
40
+ "\u05C7": "QAMATS_QATAN",
41
+ \u05D0: "ALEF",
42
+ \u05D1: "BET",
43
+ \u05D2: "GIMEL",
44
+ \u05D3: "DALET",
45
+ \u05D4: "HE",
46
+ \u05D5: "VAV",
47
+ \u05D6: "ZAYIN",
48
+ \u05D7: "HET",
49
+ \u05D8: "TET",
50
+ \u05D9: "YOD",
51
+ \u05DA: "FINAL_KAF",
52
+ \u05DB: "KAF",
53
+ \u05DC: "LAMED",
54
+ \u05DD: "FINAL_MEM",
55
+ \u05DE: "MEM",
56
+ \u05DF: "FINAL_NUN",
57
+ \u05E0: "NUN",
58
+ \u05E1: "SAMEKH",
59
+ \u05E2: "AYIN",
60
+ \u05E3: "FINAL_PE",
61
+ \u05E4: "PE",
62
+ \u05E5: "FINAL_TSADI",
63
+ \u05E6: "TSADI",
64
+ \u05E7: "QOF",
65
+ \u05E8: "RESH",
66
+ \u05E9: "SHIN",
67
+ \u05EA: "TAV"
68
+ };
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ transliterateMap
72
+ });
73
+ //# sourceMappingURL=hebCharsTrans.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/hebCharsTrans.ts"],
4
+ "sourcesContent": ["import { Schema } from \"./schema\";\n\ninterface map {\n [k: string]: keyof Schema;\n}\n\nexport const transliterateMap: map = {\n // niqqud\n \"\\u{05B0}\": \"VOCAL_SHEVA\", // HEBREW POINT SHEVA (U+05B0)\n \"\\u{05B1}\": \"HATAF_SEGOL\", // HEBREW POINT HATAF SEGOL (U+05B1)\n \"\\u{05B2}\": \"HATAF_PATAH\", // HEBREW POINT HATAF PATAH (U+05B2)\n \"\\u{05B3}\": \"HATAF_QAMATS\", // HEBREW POINT HATAF QAMATS (U+05B3)\n \"\\u{05B4}\": \"HIRIQ\", // HEBREW POINT HIRIQ (U+05B4)\n \"\\u{05B5}\": \"TSERE\", // HEBREW POINT TSERE (U+05B5)\n \"\\u{05B6}\": \"SEGOL\", // HEBREW POINT SEGOL (U+05B6)\n \"\\u{05B7}\": \"PATAH\", // HEBREW POINT PATAH (U+05B7)\n \"\\u{05B8}\": \"QAMATS\", // HEBREW POINT QAMATS (U+05B8)\n \"\\u{05B9}\": \"HOLAM\", // HEBREW POINT HOLAM (U+05B9)\n \"\\u{05BA}\": \"HOLAM\", // HEBREW POINT HOLAM HASER FOR VAV (U+05BA)\n \"\\u{05BB}\": \"QUBUTS\", // HEBREW POINT QUBUTS (U+05BB)\n \"\\u{05BC}\": \"DAGESH\", // HEBREW POINT DAGESH OR MAPIQ (U+05BC)\n // \"\\u{05BD}\": \"\", // HEBREW POINT METEG (U+05BD)\n \"\\u{05BE}\": \"MAQAF\", // HEBREW PUNCTUATION MAQAF (U+05BE)\n \"\\u{05C0}\": \"PASEQ\", // HEBREW PUNCTUATION PASEQ (U+05C0)\n \"\\u{05C3}\": \"SOF_PASUQ\", // HEBREW PUNCTUATION SOF PASUQ (U+05C3)\n \"\\u{05C7}\": \"QAMATS_QATAN\", // HEBREW POINT QAMATS QATAN (U+05C7)\n // consonants\n \u05D0: \"ALEF\", // HEBREW LETTER ALEF (U+05D0)\n \u05D1: \"BET\", // HEBREW LETTER BET (U+05D1)\n \u05D2: \"GIMEL\", // HEBREW LETTER GIMEL (U+05D2)\n \u05D3: \"DALET\", // HEBREW LETTER DALET (U+05D3)\n \u05D4: \"HE\", // HEBREW LETTER HE (U+05D4)\n \u05D5: \"VAV\", // HEBREW LETTER VAV (U+05D5)\n \u05D6: \"ZAYIN\", // HEBREW LETTER ZAYIN (U+05D6)\n \u05D7: \"HET\", // HEBREW LETTER HET (U+05D7)\n \u05D8: \"TET\", // HEBREW LETTER TET (U+05D8)\n \u05D9: \"YOD\", // HEBREW LETTER YOD (U+05D9)\n \u05DA: \"FINAL_KAF\", // HEBREW LETTER FINAL KAF (U+05DA)\n \u05DB: \"KAF\", // HEBREW LETTER KAF (U+05DB)\n \u05DC: \"LAMED\", // HEBREW LETTER LAMED (U+05DC)\n \u05DD: \"FINAL_MEM\", // HEBREW LETTER FINAL MEM (U+05DD)\n \u05DE: \"MEM\", // HEBREW LETTER MEM (U+05DE)\n \u05DF: \"FINAL_NUN\", // HEBREW LETTER FINAL NUN (U+05DF)\n \u05E0: \"NUN\", // HEBREW LETTER NUN (U+05E0)\n \u05E1: \"SAMEKH\", // HEBREW LETTER SAMEKH (U+05E1)\n \u05E2: \"AYIN\", // HEBREW LETTER AYIN (U+05E2)\n \u05E3: \"FINAL_PE\", // HEBREW LETTER FINAL PE (U+05E3)\n \u05E4: \"PE\", // HEBREW LETTER PE (U+05E4)\n \u05E5: \"FINAL_TSADI\", // HEBREW LETTER FINAL TSADI (U+05E5)\n \u05E6: \"TSADI\", // HEBREW LETTER TSADI (U+05E6)\n \u05E7: \"QOF\", // HEBREW LETTER QOF (U+05E7)\n \u05E8: \"RESH\", // HEBREW LETTER RESH (U+05E8)\n \u05E9: \"SHIN\", // HEBREW LETTER SHIN (U+05E9)\n \u05EA: \"TAV\" // HEBREW LETTER TAV (U+05EA)\n // \"\\u{05EF}\": \"\", // HEBREW YOD TRIANGLE (U+05EF)\n // \u05F0: \"\", // HEBREW LIGATURE YIDDISH DOUBLE VAV (U+05F0)\n // \u05F1: \"\", // HEBREW LIGATURE YIDDISH VAV YOD (U+05F1)\n // \u05F2: \"\" // HEBREW LIGATURE YIDDISH DOUBLE YOD (U+05F2)\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAMA;;;;;AAAO,MAAM,mBAAwB;EAEnC,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EAEZ,UAAY;EACZ,UAAY;EACZ,UAAY;EACZ,UAAY;EAEZ,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;EACH,QAAG;;",
6
+ "names": []
7
+ }
@@ -0,0 +1,40 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var esm_exports = {};
19
+ __export(esm_exports, {
20
+ Schema: () => import_schema.Schema,
21
+ Text: () => import_havarotjs.Text,
22
+ remove: () => import_remove.remove,
23
+ sequence: () => import_sequence.sequence,
24
+ transliterate: () => import_transliterate.transliterate
25
+ });
26
+ module.exports = __toCommonJS(esm_exports);
27
+ var import_havarotjs = require("havarotjs");
28
+ var import_transliterate = require("./transliterate.js");
29
+ var import_sequence = require("./sequence.js");
30
+ var import_remove = require("./remove.js");
31
+ var import_schema = require("./schema.js");
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ Schema,
35
+ Text,
36
+ remove,
37
+ sequence,
38
+ transliterate
39
+ });
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "sourcesContent": ["import { Text } from \"havarotjs\";\nimport { transliterate } from \"./transliterate\";\nimport { sequence } from \"./sequence\";\nimport { remove } from \"./remove\";\nimport { Schema } from \"./schema\";\n\n/**\n * I accidentally published a canary version without a tag, making it \"latest\".\n * Just adding this comment and creating a new version to make it latest\n */\n\nexport { remove, Schema, sequence, Text, transliterate };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;;;;;;;;;uBAAqB;AACrB,2BAA8B;AAC9B,sBAAyB;AACzB,oBAAuB;AACvB,oBAAuB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,195 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all2) => {
6
+ for (var name in all2)
7
+ __defProp(target, name, { get: all2[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var remove_exports = {};
19
+ __export(remove_exports, {
20
+ accents: () => accents,
21
+ all: () => all,
22
+ marks: () => marks,
23
+ points: () => points,
24
+ punctuation: () => punctuation,
25
+ remove: () => remove,
26
+ vowels: () => vowels
27
+ });
28
+ module.exports = __toCommonJS(remove_exports);
29
+ var import_sequence = require("./sequence.js");
30
+ const removeMap = {
31
+ ETNAHTA: "\u0591",
32
+ SEGOLTA: "\u0592",
33
+ SHALSHELET: "\u0593",
34
+ ZAQEF_QATAN: "\u0594",
35
+ ZAQEF_GADOL: "\u0595",
36
+ TIPEHA: "\u0596",
37
+ REVIA: "\u0597",
38
+ ZARQA: "\u0598",
39
+ PASHTA: "\u0599",
40
+ YETIV: "\u059A",
41
+ TEVIR: "\u059B",
42
+ GERESH: "\u059C",
43
+ GERESH_MUQDAM: "\u059D",
44
+ GERSHAYIM: "\u059E",
45
+ QARNEY_PARA: "\u059F",
46
+ TELISHA_GEDOLA: "\u05A0",
47
+ PAZER: "\u05A1",
48
+ ATNAH_HAFUKH: "\u05A2",
49
+ MUNAH: "\u05A3",
50
+ MAHAPAKH: "\u05A4",
51
+ MERKHA: "\u05A5",
52
+ MERKHA_KEFULA: "\u05A6",
53
+ DARGA: "\u05A7",
54
+ QADMA: "\u05A8",
55
+ TELISHA_QETANA: "\u05A9",
56
+ YERAH_BEN_YOMO: "\u05AA",
57
+ OLE: "\u05AB",
58
+ ILUY: "\u05AC",
59
+ DEHI: "\u05AD",
60
+ ZINOR: "\u05AE",
61
+ SHEVA: "\u05B0",
62
+ HATAF_SEGOL: "\u05B1",
63
+ HATAF_PATAH: "\u05B2",
64
+ HATAF_QAMATS: "\u05B3",
65
+ HIRIQ: "\u05B4",
66
+ TSERE: "\u05B5",
67
+ SEGOL: "\u05B6",
68
+ PATAH: "\u05B7",
69
+ QAMATS: "\u05B8",
70
+ HOLAM: "\u05B9",
71
+ QUBUTS: "\u05BB",
72
+ DAGESH: "\u05BC",
73
+ METEG: "\u05BD",
74
+ RAFE: "\u05BF",
75
+ SHIN_DOT: "\u05C1",
76
+ SIN_DOT: "\u05C2",
77
+ QAMATS_QATAN: "\u05C7",
78
+ MAQAF: "\u05BE",
79
+ PASEQ: "\u05C0",
80
+ SOF_PASUQ: "\u05C3",
81
+ NUN_HAFUKHA: "\u05C6",
82
+ PUNC_GERESH: "\u05F3",
83
+ PUNC_GERSHAYIM: "\u05F4",
84
+ MASORA_CIRCLE: "\u05AF",
85
+ UPPER_DOT: "\u05C4",
86
+ LOWER_DOT: "\u05C5"
87
+ };
88
+ const accents = {
89
+ ETNAHTA: true,
90
+ SEGOLTA: true,
91
+ SHALSHELET: true,
92
+ ZAQEF_QATAN: true,
93
+ ZAQEF_GADOL: true,
94
+ TIPEHA: true,
95
+ REVIA: true,
96
+ ZARQA: true,
97
+ PASHTA: true,
98
+ YETIV: true,
99
+ TEVIR: true,
100
+ GERESH: true,
101
+ GERESH_MUQDAM: true,
102
+ GERSHAYIM: true,
103
+ QARNEY_PARA: true,
104
+ TELISHA_GEDOLA: true,
105
+ PAZER: true,
106
+ ATNAH_HAFUKH: true,
107
+ MUNAH: true,
108
+ MAHAPAKH: true,
109
+ MERKHA: true,
110
+ MERKHA_KEFULA: true,
111
+ DARGA: true,
112
+ QADMA: true,
113
+ TELISHA_QETANA: true,
114
+ YERAH_BEN_YOMO: true,
115
+ OLE: true,
116
+ ILUY: true,
117
+ DEHI: true,
118
+ ZINOR: true
119
+ };
120
+ const points = {
121
+ SHEVA: true,
122
+ HATAF_SEGOL: true,
123
+ HATAF_PATAH: true,
124
+ HATAF_QAMATS: true,
125
+ HIRIQ: true,
126
+ TSERE: true,
127
+ SEGOL: true,
128
+ PATAH: true,
129
+ QAMATS: true,
130
+ HOLAM: true,
131
+ QUBUTS: true,
132
+ DAGESH: true,
133
+ SHIN_DOT: true,
134
+ SIN_DOT: true,
135
+ METEG: true,
136
+ RAFE: true,
137
+ QAMATS_QATAN: true
138
+ };
139
+ const vowels = {
140
+ SHEVA: true,
141
+ HATAF_SEGOL: true,
142
+ HATAF_PATAH: true,
143
+ HATAF_QAMATS: true,
144
+ HIRIQ: true,
145
+ TSERE: true,
146
+ SEGOL: true,
147
+ PATAH: true,
148
+ QAMATS: true,
149
+ HOLAM: true,
150
+ QUBUTS: true,
151
+ DAGESH: true,
152
+ QAMATS_QATAN: true
153
+ };
154
+ const punctuation = {
155
+ MAQAF: true,
156
+ PASEQ: true,
157
+ SOF_PASUQ: true,
158
+ NUN_HAFUKHA: true,
159
+ PUNC_GERESH: true,
160
+ PUNC_GERSHAYIM: true
161
+ };
162
+ const marks = {
163
+ MASORA_CIRCLE: true,
164
+ UPPER_DOT: true,
165
+ LOWER_DOT: true
166
+ };
167
+ const all = {
168
+ ...accents,
169
+ ...points,
170
+ ...punctuation,
171
+ ...marks
172
+ };
173
+ const remove = (text, options = { ...accents, METEG: true, RAFE: true }) => {
174
+ const keys = Object.keys(options).filter((k) => k in options ? options[k] : false);
175
+ const sequenced = (0, import_sequence.sequence)(text);
176
+ return keys.reduce((a, c) => {
177
+ var _a;
178
+ const key = (_a = removeMap[c]) != null ? _a : null;
179
+ if (key) {
180
+ return a.replace(new RegExp(key, "gu"), "");
181
+ }
182
+ return a;
183
+ }, sequenced);
184
+ };
185
+ // Annotate the CommonJS export names for ESM import in node:
186
+ 0 && (module.exports = {
187
+ accents,
188
+ all,
189
+ marks,
190
+ points,
191
+ punctuation,
192
+ remove,
193
+ vowels
194
+ });
195
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/remove.ts"],
4
+ "sourcesContent": ["import { sequence } from \"./sequence\";\n\ninterface RemoveOptions {\n // accents //\n /**\n * \u25CC\u0591\n */\n ETNAHTA?: boolean;\n /**\n * \u25CC\u0592\n */\n SEGOLTA?: boolean;\n /**\n * \u25CC\u0593\n */\n SHALSHELET?: boolean;\n /**\n * \u25CC\u0594\n */\n ZAQEF_QATAN?: boolean;\n /**\n * \u25CC\u0595\n */\n ZAQEF_GADOL?: boolean;\n /**\n * \u25CC\u0596\n */\n TIPEHA?: boolean;\n /**\n * \u25CC\u0597\n */\n REVIA?: boolean;\n /**\n * \u25CC\u0598\n */\n ZARQA?: boolean;\n /**\n * \u25CC\u0599\n */\n PASHTA?: boolean;\n /**\n * \u25CC\u059A\n */\n YETIV?: boolean;\n /**\n * \u25CC\u059B\n */\n TEVIR?: boolean;\n /**\n * \u25CC\u059C\n */\n GERESH?: boolean;\n /**\n * \u25CC\u059D\n */\n GERESH_MUQDAM?: boolean;\n /**\n * \u25CC\u059E\n */\n GERSHAYIM?: boolean;\n /**\n * \u25CC\u059F\n */\n QARNEY_PARA?: boolean;\n /**\n * \u25CC\u05A0\n */\n TELISHA_GEDOLA?: boolean;\n /**\n * \u25CC\u05A1\n */\n PAZER?: boolean;\n /**\n * \u25CC\u05A2\n */\n ATNAH_HAFUKH?: boolean;\n /**\n * \u25CC\u05A3\n */\n MUNAH?: boolean;\n /**\n * \u25CC\u05A4\n */\n MAHAPAKH?: boolean;\n /**\n * \u25CC\u05A5\n */\n MERKHA?: boolean;\n /**\n * \u25CC\u05A6\n */\n MERKHA_KEFULA?: boolean;\n /**\n * \u25CC\u05A7\n */\n DARGA?: boolean;\n /**\n * \u25CC\u05A8\n */\n QADMA?: boolean;\n /**\n * \u25CC\u05A9\n */\n TELISHA_QETANA?: boolean;\n /**\n * \u25CC\u05AA\n */\n YERAH_BEN_YOMO?: boolean;\n /**\n * \u25CC\u05AB\n */\n OLE?: boolean;\n /**\n * \u25CC\u05AC\n */\n ILUY?: boolean;\n /**\n * \u25CC\u05AD\n */\n DEHI?: boolean;\n /**\n * \u25CC\u05AE\n */\n ZINOR?: boolean;\n // points //\n /**\n * \u25CC\u05B0\n */\n SHEVA?: boolean;\n /**\n * \u25CC\u05B1\n */\n HATAF_SEGOL?: boolean;\n /**\n * \u25CC\u05B2\n */\n HATAF_PATAH?: boolean;\n /**\n * \u25CC\u05B3\n */\n HATAF_QAMATS?: boolean;\n /**\n * \u25CC\u05B4\n */\n HIRIQ?: boolean;\n /**\n * \u25CC\u05B5\n */\n TSERE?: boolean;\n /**\n * \u25CC\u05B6\n */\n SEGOL?: boolean;\n /**\n * \u25CC\u05B7\n */\n PATAH?: boolean;\n /**\n * \u25CC\u05B8\n */\n QAMATS?: boolean;\n /**\n * \u25CC\u05B9\n */\n HOLAM?: boolean;\n /**\n * \u25CC\u05BB\n */\n QUBUTS?: boolean;\n /**\n * \u25CC\u05BC\n */\n DAGESH?: boolean;\n /**\n * \u25CC\u05BD\n */\n METEG?: boolean;\n /**\n * \u25CC\u05BF\n */\n RAFE?: boolean;\n /**\n * \u25CC\u05C1\n */\n SHIN_DOT?: boolean;\n /**\n * \u25CC\u05C2\n */\n SIN_DOT?: boolean;\n /**\n * \u25CC\u05C7\n */\n QAMATS_QATAN?: boolean;\n // punctuation //\n /**\n * \u05BE\u25CC\n */\n MAQAF?: boolean;\n /**\n * \u05C0 \u25CC\n */\n PASEQ?: boolean;\n /**\n * \u05C3\u25CC\n */\n SOF_PASUQ?: boolean;\n /**\n * \u05C6\n */\n NUN_HAFUKHA?: boolean;\n /**\n * \u05F3\n */\n PUNC_GERESH?: boolean;\n /**\n * \u05F4\n */\n PUNC_GERSHAYIM?: boolean;\n // marks //\n /**\n * \u25CC\u05AF\n */\n MASORA_CIRCLE?: boolean;\n /**\n * \u25CC\u05C4\n */\n UPPER_DOT?: boolean;\n /**\n * \u25CC\u05C5\n */\n LOWER_DOT?: boolean;\n}\n\ntype OptionKey = keyof RemoveOptions;\n\ntype map = { [k in keyof RemoveOptions]: string };\n\nconst removeMap: map = {\n // accents //\n ETNAHTA: \"\\u{0591}\", // U+0591 HEBREW ACCENT ETNAHTA\n SEGOLTA: \"\\u{0592}\", // U+0592 HEBREW ACCENT SEGOL\n SHALSHELET: \"\\u{0593}\", // U+0593 HEBREW ACCENT SHALSHELET\n ZAQEF_QATAN: \"\\u{0594}\", // U+0594 HEBREW ACCENT ZAQEF QATAN\n ZAQEF_GADOL: \"\\u{0595}\", // U+0595 HEBREW ACCENT ZAQEF GADOL\n TIPEHA: \"\\u{0596}\", // U+0596 HEBREW ACCENT TIPEHA\n REVIA: \"\\u{0597}\", // U+0597 HEBREW ACCENT REVIA\n ZARQA: \"\\u{0598}\", // U+0598 HEBREW ACCENT ZARQA\n PASHTA: \"\\u{0599}\", // U+0599 HEBREW ACCENT PASHTA\n YETIV: \"\\u{059A}\", // U+059A HEBREW ACCENT YETIV\n TEVIR: \"\\u{059B}\", // U+059B HEBREW ACCENT TEVIR\n GERESH: \"\\u{059C}\", // U+059C HEBREW ACCENT GERESH\n GERESH_MUQDAM: \"\\u{059D}\", // U+059D HEBREW ACCENT GERESH MUQDAM\n GERSHAYIM: \"\\u{059E}\", // U+059E HEBREW ACCENT GERSHAYIM\n QARNEY_PARA: \"\\u{059F}\", // U+059F HEBREW ACCENT QARNEY PARA\n TELISHA_GEDOLA: \"\\u{05A0}\", // U+05A0 HEBREW ACCENT TELISHA GEDOLA\n PAZER: \"\\u{05A1}\", // U+05A1 HEBREW ACCENT PAZER\n ATNAH_HAFUKH: \"\\u{05A2}\", // U+05A2 HEBREW ACCENT ATNAH HAFUKH\n MUNAH: \"\\u{05A3}\", // U+05A3 HEBREW ACCENT MUNAH\n MAHAPAKH: \"\\u{05A4}\", // U+05A4 HEBREW ACCENT MAHAPAKH\n MERKHA: \"\\u{05A5}\", // U+05A5 HEBREW ACCENT MERKHA\n MERKHA_KEFULA: \"\\u{05A6}\", // U+05A6 HEBREW ACCENT MERKHA KEFULA\n DARGA: \"\\u{05A7}\", // U+05A7 HEBREW ACCENT DARGA\n QADMA: \"\\u{05A8}\", // U+05A8 HEBREW ACCENT QADMA\n TELISHA_QETANA: \"\\u{05A9}\", // U+05A9 HEBREW ACCENT TELISHA QETANA\n YERAH_BEN_YOMO: \"\\u{05AA}\", // U+05AA HEBREW ACCENT YERAH BEN YOMO\n OLE: \"\\u{05AB}\", // U+05AB HEBREW ACCENT OLE\n ILUY: \"\\u{05AC}\", // U+05AC HEBREW ACCENT ILUY\n DEHI: \"\\u{05AD}\", // U+05AD HEBREW ACCENT DEHI\n ZINOR: \"\\u{05AE}\", // U+05AE HEBREW ACCENT ZINOR\n // points //\n SHEVA: \"\\u{05B0}\", // HEBREW POINT SHEVA\n HATAF_SEGOL: \"\\u{05B1}\", // HEBREW POINT HATAF SEGOL\n HATAF_PATAH: \"\\u{05B2}\", // HEBREW POINT HATAF PATAH\n HATAF_QAMATS: \"\\u{05B3}\", // HEBREW POINT HATAF QAMATS\n HIRIQ: \"\\u{05B4}\", // HEBREW POINT HIRIQ\n TSERE: \"\\u{05B5}\", // HEBREW POINT TSERE\n SEGOL: \"\\u{05B6}\", // HEBREW POINT SEGOL\n PATAH: \"\\u{05B7}\", // HEBREW POINT PATAH\n QAMATS: \"\\u{05B8}\", // HEBREW POINT QAMATS\n HOLAM: \"\\u{05B9}\", // HEBREW POINT HOLAM\n // below is not needed because sequnce() does not output this\n // HOLAM_HASER_FOR_VAV: \"\\u{05BA}\", // HEBREW POINT HOLAM HASER FOR VAV\n QUBUTS: \"\\u{05BB}\", // HEBREW POINT QUBUTS\n DAGESH: \"\\u{05BC}\", // HEBREW POINT DAGESH OR MAPIQ\n METEG: \"\\u{05BD}\", // HEBREW POINT METEG\n RAFE: \"\\u{05BF}\", // HEBREW POINT RAFE\n SHIN_DOT: \"\\u{05C1}\", // HEBREW POINT SHIN DOT\n SIN_DOT: \"\\u{05C2}\", // HEBREW POINT SIN DOT\n QAMATS_QATAN: \"\\u{05C7}\", // HEBREW POINT QAMATS QATAN\n MAQAF: \"\\u{05BE}\", // HEBREW PUNCTUATION MAQAF\n PASEQ: \"\\u{05C0}\", // HEBREW PUNCTUATION PASEQ\n SOF_PASUQ: \"\\u{05C3}\", // HEBREW PUNCTUATION SOF_PASUQ\n NUN_HAFUKHA: \"\\u{05C6}\", // HEBREW PUNCTUATION NUN_HAFUKHA\n // the punctuation geresh/gereshayim is different then the accent ones\n PUNC_GERESH: \"\\u{05F3}\", // HEBREW PUNCTUATION GERESH\n PUNC_GERSHAYIM: \"\\u{05F4}\", // HEBREW PUNCTUATION GERSHAYIM\n MASORA_CIRCLE: \"\\u{05AF}\", // U+MASORA CIRCLE HEBREW MARK 05AF,\n UPPER_DOT: \"\\u{05C4}\", // U+UPPER DOT HEBREW MARK 05C4,\n LOWER_DOT: \"\\u{05C5}\" // U+LOWER DOT HEBREW MARK 05C5];\n};\n\n/**\n * removes all chars called HEBREW ACCENT (U+0591-05AF)\n */\nexport const accents: RemoveOptions = {\n ETNAHTA: true,\n SEGOLTA: true,\n SHALSHELET: true,\n ZAQEF_QATAN: true,\n ZAQEF_GADOL: true,\n TIPEHA: true,\n REVIA: true,\n ZARQA: true,\n PASHTA: true,\n YETIV: true,\n TEVIR: true,\n GERESH: true,\n GERESH_MUQDAM: true,\n GERSHAYIM: true,\n QARNEY_PARA: true,\n TELISHA_GEDOLA: true,\n PAZER: true,\n ATNAH_HAFUKH: true,\n MUNAH: true,\n MAHAPAKH: true,\n MERKHA: true,\n MERKHA_KEFULA: true,\n DARGA: true,\n QADMA: true,\n TELISHA_QETANA: true,\n YERAH_BEN_YOMO: true,\n OLE: true,\n ILUY: true,\n DEHI: true,\n ZINOR: true\n};\n\n/**\n * removes all chars called HEBREW POINT (U+05B0-05BD, U+05BF, U+05C1-05C2 and U+05C7)\n */\nexport const points: RemoveOptions = {\n SHEVA: true,\n HATAF_SEGOL: true,\n HATAF_PATAH: true,\n HATAF_QAMATS: true,\n HIRIQ: true,\n TSERE: true,\n SEGOL: true,\n PATAH: true,\n QAMATS: true,\n HOLAM: true,\n QUBUTS: true,\n DAGESH: true,\n SHIN_DOT: true,\n SIN_DOT: true,\n METEG: true,\n RAFE: true,\n QAMATS_QATAN: true\n};\n\n/**\n * removes chars called HEBREW POINT (U+05B0-05BC and U+05C7) except for:\n * - SHIN_DOT\n * - SIN_DOT\n * - METEG\n * - RAFE\n */\nexport const vowels: RemoveOptions = {\n SHEVA: true,\n HATAF_SEGOL: true,\n HATAF_PATAH: true,\n HATAF_QAMATS: true,\n HIRIQ: true,\n TSERE: true,\n SEGOL: true,\n PATAH: true,\n QAMATS: true,\n HOLAM: true,\n QUBUTS: true,\n DAGESH: true,\n QAMATS_QATAN: true\n};\n\n/**\n * removes all chars called HEBREW PUNCTUATION (U+05BE, U+05C0, U+05C3, and U+05C6)\n */\nexport const punctuation: RemoveOptions = {\n MAQAF: true,\n PASEQ: true,\n SOF_PASUQ: true,\n NUN_HAFUKHA: true,\n PUNC_GERESH: true,\n PUNC_GERSHAYIM: true\n};\n\n/**\n * removes all chars called HEBREW MARK (U+05AF, U+05C4, and U+05C5)\n */\nexport const marks: RemoveOptions = {\n MASORA_CIRCLE: true,\n UPPER_DOT: true,\n LOWER_DOT: true\n};\n\nexport const all: RemoveOptions = {\n ...accents,\n ...points,\n ...punctuation,\n ...marks\n};\n\n/**\n * removes niqqud from Hebrew text\n *\n * @param text - a string of Hebrew characters\n * @param options\n * @returns Hebrew characters with accents and niqqud optionally removed\n *\n * @example Default\n *\n * ```ts\n * // by default removes all accents and metheg and rafe\n * remove(\"\u05E9\u05C2\u05B8\u05E8\u05B7\u05A3\u05D9 \u05D0\u05B4\u05E9\u05C1\u05B0\u05EA\u05BC\u05B0\u05DA\u05B8\u0594, \u05D5\u05B7\u05BD\u05D9\u05B4\u05BC\u05DE\u05B0\u05E6\u05B0\u05D0\u0597\u05D5\u05BC\");\n * // \u05E9\u05C2\u05B8\u05E8\u05B7\u05D9 \u05D0\u05B4\u05E9\u05C1\u05B0\u05EA\u05BC\u05B0\u05DA\u05B8, \u05D5\u05B7\u05D9\u05B4\u05BC\u05DE\u05B0\u05E6\u05B0\u05D0\u05D5\u05BC\n * ```\n *\n * @example Remove accents and vowels, but not shin/sin dots\n *\n * ```ts\n * import { accents, vowelsl } from \"hebrew-transliteration/removeOptions\";\n *\n * remove(\"\u05E9\u05C2\u05B8\u05E8\u05B7\u05A3\u05D9 \u05D0\u05B4\u05E9\u05C1\u05B0\u05EA\u05BC\u05B0\u05DA\u05B8\u0594, \u05D5\u05B7\u05BD\u05D9\u05B4\u05BC\u05DE\u05B0\u05E6\u05B0\u05D0\u0597\u05D5\u05BC\", { ...accents, ...vowels, METEG: true });\n * // \u05E9\u05C2\u05E8\u05D9 \u05D0\u05E9\u05C1\u05EA\u05DA, \u05D5\u05D9\u05DE\u05E6\u05D0\u05D5\n * ```\n *\n * @example Remove all\n *\n * ```ts\n * import { all } from \"hebrew-transliteration/removeOptions\";\n *\n * remove(\"\u05E9\u05C2\u05B8\u05E8\u05B7\u05A3\u05D9 \u05D0\u05B4\u05E9\u05C1\u05B0\u05EA\u05BC\u05B0\u05DA\u05B8\u0594, \u05D5\u05B7\u05BD\u05D9\u05B4\u05BC\u05DE\u05B0\u05E6\u05B0\u05D0\u0597\u05D5\u05BC\", all);\n * // \u05E9\u05E8\u05D9 \u05D0\u05E9\u05EA\u05DA, \u05D5\u05D9\u05DE\u05E6\u05D0\u05D5\n * ```\n */\nexport const remove = (text: string, options: RemoveOptions = { ...accents, METEG: true, RAFE: true }): string => {\n /** all the keys of options that are to be removed */\n const keys = Object.keys(options).filter((k) => (k in options ? options[k as OptionKey] : false));\n const sequenced = sequence(text);\n return keys.reduce((a, c) => {\n const key = removeMap[c as OptionKey] ?? null;\n if (key) {\n return a.replace(new RegExp(key, \"gu\"), \"\");\n }\n return a;\n }, sequenced);\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;sBAAyB;AA6OzB,MAAM,YAAiB;EAErB,SAAS;EACT,SAAS;EACT,YAAY;EACZ,aAAa;EACb,aAAa;EACb,QAAQ;EACR,OAAO;EACP,OAAO;EACP,QAAQ;EACR,OAAO;EACP,OAAO;EACP,QAAQ;EACR,eAAe;EACf,WAAW;EACX,aAAa;EACb,gBAAgB;EAChB,OAAO;EACP,cAAc;EACd,OAAO;EACP,UAAU;EACV,QAAQ;EACR,eAAe;EACf,OAAO;EACP,OAAO;EACP,gBAAgB;EAChB,gBAAgB;EAChB,KAAK;EACL,MAAM;EACN,MAAM;EACN,OAAO;EAEP,OAAO;EACP,aAAa;EACb,aAAa;EACb,cAAc;EACd,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,QAAQ;EACR,OAAO;EAGP,QAAQ;EACR,QAAQ;EACR,OAAO;EACP,MAAM;EACN,UAAU;EACV,SAAS;EACT,cAAc;EACd,OAAO;EACP,OAAO;EACP,WAAW;EACX,aAAa;EAEb,aAAa;EACb,gBAAgB;EAChB,eAAe;EACf,WAAW;EACX,WAAW;;AAMN,MAAM,UAAyB;EACpC,SAAS;EACT,SAAS;EACT,YAAY;EACZ,aAAa;EACb,aAAa;EACb,QAAQ;EACR,OAAO;EACP,OAAO;EACP,QAAQ;EACR,OAAO;EACP,OAAO;EACP,QAAQ;EACR,eAAe;EACf,WAAW;EACX,aAAa;EACb,gBAAgB;EAChB,OAAO;EACP,cAAc;EACd,OAAO;EACP,UAAU;EACV,QAAQ;EACR,eAAe;EACf,OAAO;EACP,OAAO;EACP,gBAAgB;EAChB,gBAAgB;EAChB,KAAK;EACL,MAAM;EACN,MAAM;EACN,OAAO;;AAMF,MAAM,SAAwB;EACnC,OAAO;EACP,aAAa;EACb,aAAa;EACb,cAAc;EACd,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,SAAS;EACT,OAAO;EACP,MAAM;EACN,cAAc;;AAUT,MAAM,SAAwB;EACnC,OAAO;EACP,aAAa;EACb,aAAa;EACb,cAAc;EACd,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,cAAc;;AAMT,MAAM,cAA6B;EACxC,OAAO;EACP,OAAO;EACP,WAAW;EACX,aAAa;EACb,aAAa;EACb,gBAAgB;;AAMX,MAAM,QAAuB;EAClC,eAAe;EACf,WAAW;EACX,WAAW;;AAGN,MAAM,MAAqB;EAChC,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;;AAoCE,MAAM,SAAS,CAAC,MAAc,UAAyB,EAAE,GAAG,SAAS,OAAO,MAAM,MAAM,KAAI,MAAc;AAE/G,QAAM,OAAO,OAAO,KAAK,OAAO,EAAE,OAAO,CAAC,MAAO,KAAK,UAAU,QAAQ,KAAkB,KAAM;AAChG,QAAM,gBAAY,0BAAS,IAAI;AAC/B,SAAO,KAAK,OAAO,CAAC,GAAG,MAAK;AAhc9B;AAicI,UAAM,OAAM,eAAU,OAAV,YAA6B;AACzC,QAAI,KAAK;AACP,aAAO,EAAE,QAAQ,IAAI,OAAO,KAAK,IAAI,GAAG,EAAE;IAC5C;AACA,WAAO;EACT,GAAG,SAAS;AACd;",
6
+ "names": []
7
+ }