coptic-transliterator 0.0.2 → 0.0.3

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/index.d.ts CHANGED
@@ -4,5 +4,6 @@ export declare enum VowelType {
4
4
  E = "e",
5
5
  O = "o"
6
6
  }
7
+ export declare const __VERSION__ = "0.0.3";
7
8
  export declare function transliterate(input: string): string;
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;CACR;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqBnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;CACR;AACD,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAwBnD"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { shiftPunc } from "./utils.js";
1
2
  export var VowelType;
2
3
  (function (VowelType) {
3
4
  VowelType["ALL"] = "all";
@@ -5,7 +6,10 @@ export var VowelType;
5
6
  VowelType["E"] = "e";
6
7
  VowelType["O"] = "o";
7
8
  })(VowelType || (VowelType = {}));
9
+ export const __VERSION__ = "0.0.3";
8
10
  export function transliterate(input) {
11
+ const originalInput = input;
12
+ input = shiftPunc(input.split(""), ["\u0300"], "left").join("");
9
13
  const output = input
10
14
  .match(/[\u2c80-\u2cb1]|[\u03e2-\u03ef]|[ \.\:\n\t\r\u0300]/g)
11
15
  ?.map((char, index, array) => {
@@ -14,6 +18,7 @@ export function transliterate(input) {
14
18
  next: index < array.length - 1 ? array[index + 1] : "",
15
19
  index,
16
20
  text: input,
21
+ word: getWordAtIndex(originalInput.split(""), index),
17
22
  };
18
23
  const rule = arabicMapping[char];
19
24
  if (typeof rule === "string") {
@@ -34,10 +39,18 @@ const arabicMapping = {
34
39
  "\u2c83": (ctx) => (isVowel(ctx.next) ? "ڤ" : "ب"),
35
40
  "\u2c84": (ctx) => isVowel(ctx.next, VowelType.E) ? "ج" : isGuttural(ctx.next) ? "ن" : "غ",
36
41
  "\u2c85": (ctx) => isVowel(ctx.next, VowelType.E) ? "ج" : isGuttural(ctx.next) ? "ن" : "غ",
37
- "\u2c86": "ذ",
38
- "\u2c87": "ذ",
39
- "\u2c88": (ctx) => isFirstLetterInWord(ctx) ? "إ" : isLastLetterInWord(ctx) ? "يه" : "ي",
40
- "\u2c89": (ctx) => isFirstLetterInWord(ctx) ? "إ" : isLastLetterInWord(ctx) ? "يه" : "ي",
42
+ "\u2c86": (ctx) => (isNameException(ctx.word) ? "د" : "ذ"),
43
+ "\u2c87": (ctx) => (isNameException(ctx.word) ? "د" : "ذ"),
44
+ "\u2c88": (ctx) => isFirstLetterInWord(ctx) || isJenkem(ctx.prev)
45
+ ? "إ"
46
+ : isLastLetterInWord(ctx)
47
+ ? "يه"
48
+ : "ي",
49
+ "\u2c89": (ctx) => isFirstLetterInWord(ctx) || isJenkem(ctx.prev)
50
+ ? "إ"
51
+ : isLastLetterInWord(ctx)
52
+ ? "يه"
53
+ : "ي",
41
54
  "\u2c8a": "6",
42
55
  "\u2c8b": "6",
43
56
  "\u2c8c": "ز",
@@ -58,8 +71,8 @@ const arabicMapping = {
58
71
  "\u2c9b": "ن",
59
72
  "\u2c9c": "كس",
60
73
  "\u2c9d": "كس",
61
- "\u2c9e": (ctx) => (isFirstLetterInWord(ctx) ? "أو" : "و"),
62
- "\u2c9f": (ctx) => (isFirstLetterInWord(ctx) ? "أو" : "و"),
74
+ "\u2c9e": (ctx) => isFirstLetterInWord(ctx) || isJenkem(ctx.prev) ? "أو" : "و",
75
+ "\u2c9f": (ctx) => isFirstLetterInWord(ctx) || isJenkem(ctx.prev) ? "أو" : "و",
63
76
  "\u2ca0": "ب",
64
77
  "\u2ca1": "ب",
65
78
  "\u2ca2": "ر",
@@ -92,7 +105,9 @@ const arabicMapping = {
92
105
  "\u03ed": "تش",
93
106
  "\u03ee": "تي",
94
107
  "\u03ef": "تي",
95
- "\u0300": "إ",
108
+ "\u0300": (ctx) => {
109
+ return !isVowel(ctx.next) ? (isFirstLetterInWord(ctx) ? "إ" : " إ") : "";
110
+ },
96
111
  };
97
112
  const isVowel = (char, type = VowelType.ALL) => {
98
113
  const aVowels = [
@@ -137,10 +152,10 @@ const isGuttural = (char) => {
137
152
  return gutturals.includes(char);
138
153
  };
139
154
  const isFirstLetterInWord = (ctx) => {
140
- return ctx.index === 0 || ctx.prev === " " || ctx.prev === "\n";
155
+ return ctx.index === 0 || (!isCopticLetter(ctx.prev) && !isJenkem(ctx.prev));
141
156
  };
142
157
  const isLastLetterInWord = (ctx) => {
143
- return (ctx.index === ctx.text.length - 1 || ctx.next === " " || ctx.next === "\n");
158
+ return ctx.index === ctx.text.length - 1 || !isCopticLetter(ctx.next);
144
159
  };
145
160
  const isCimaOrShai = (char) => {
146
161
  const cima = ["\u2ca4", "\u2ca5"];
@@ -156,4 +171,68 @@ const isOmicron = (char) => {
156
171
  const omicron = ["\u2c9e", "\u2c9f"];
157
172
  return omicron.includes(char);
158
173
  };
174
+ const isNameException = (word) => {
175
+ word = toCopticLowerCase(word);
176
+ const exceptions = ["ⲇⲁⲩⲓⲇ", "ⲇⲁⲛⲓⲏⲗ", "ⲓⲟⲣⲇⲁⲛⲏⲥ", "ⲡ̀ⲣⲟⲇⲣⲟⲙⲟⲥ"];
177
+ return exceptions.includes(word);
178
+ };
179
+ const isJenkem = (char) => {
180
+ return char === "\u0300";
181
+ };
182
+ const isCopticLetter = (char) => {
183
+ return char.match(/[\u2c80-\u2cb1]|[\u03e2-\u03ef]/) !== null;
184
+ };
185
+ const getWordAtIndex = (array, index) => {
186
+ let start = index;
187
+ let end = index;
188
+ while (start > 0 &&
189
+ (isCopticLetter(array[start - 1]) || isJenkem(array[start - 1]))) {
190
+ start--;
191
+ }
192
+ while (end < array.length - 1 &&
193
+ (isCopticLetter(array[end + 1]) || isJenkem(array[end + 1]))) {
194
+ end++;
195
+ }
196
+ return array.slice(start, end + 1).join("");
197
+ };
198
+ const toCopticLowerCase = (str) => {
199
+ const upperToLowerMap = {
200
+ "\u2C80": "\u2C81",
201
+ "\u2C82": "\u2C83",
202
+ "\u2C84": "\u2C85",
203
+ "\u2C86": "\u2C87",
204
+ "\u2C88": "\u2C89",
205
+ "\u2C8A": "\u2C8B",
206
+ "\u2C8C": "\u2C8D",
207
+ "\u2C8E": "\u2C8F",
208
+ "\u2C90": "\u2C91",
209
+ "\u2C92": "\u2C93",
210
+ "\u2C94": "\u2C95",
211
+ "\u2C96": "\u2C97",
212
+ "\u2C98": "\u2C99",
213
+ "\u2C9A": "\u2C9B",
214
+ "\u2C9C": "\u2C9D",
215
+ "\u2C9E": "\u2C9F",
216
+ "\u2CA0": "\u2CA1",
217
+ "\u2CA2": "\u2CA3",
218
+ "\u2CA4": "\u2CA5",
219
+ "\u2CA6": "\u2CA7",
220
+ "\u2CA8": "\u2CA9",
221
+ "\u2CAA": "\u2CAB",
222
+ "\u2CAC": "\u2CAD",
223
+ "\u2CAE": "\u2CAF",
224
+ "\u2CB0": "\u2CB1",
225
+ "\u03E2": "\u03E3",
226
+ "\u03E4": "\u03E5",
227
+ "\u03E6": "\u03E7",
228
+ "\u03E8": "\u03E9",
229
+ "\u03EA": "\u03EB",
230
+ "\u03EC": "\u03ED",
231
+ "\u03EE": "\u03EF",
232
+ };
233
+ return str
234
+ .split("")
235
+ .map((char) => upperToLowerMap[char] || char)
236
+ .join("");
237
+ };
159
238
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function shiftPunc(text: string[], puncChars: string[], direction: "left" | "right"): string[];
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,GAAG,OAAO,YAiB5B"}
package/dist/utils.js ADDED
@@ -0,0 +1,19 @@
1
+ export function shiftPunc(text, puncChars, direction) {
2
+ if (direction === "left") {
3
+ const length = text.length;
4
+ for (let i = 1; i < length; i++) {
5
+ if (puncChars.includes(text[i])) {
6
+ [text[i - 1], text[i]] = [text[i], text[i - 1]];
7
+ }
8
+ }
9
+ }
10
+ else if (direction === "right") {
11
+ for (let i = length - 2; i >= 0; i--) {
12
+ if (puncChars.includes(text[i])) {
13
+ [text[i], text[i + 1]] = [text[i + 1], text[i]];
14
+ }
15
+ }
16
+ }
17
+ return text;
18
+ }
19
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CACvB,IAAc,EACd,SAAmB,EACnB,SAA2B;IAE3B,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "coptic-transliterator",
3
3
  "author": "ADHG",
4
- "version": "0.0.2",
4
+ "version": "0.0.3",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "type": "module",