word-aligner 1.0.1-alpha.2 → 1.0.1-beta

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/.idea/misc.xml CHANGED
@@ -1,4 +1,3 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
1
  <project version="4">
3
2
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
4
3
  <output url="file://$PROJECT_DIR$/out" />
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getMorphLocalizationKeysGreekSR = exports.getMorphLocalizationKeysGreek = exports.getMorphLocalizationKeysHebrewAramaic = exports.getMorphLocalizationKeys = undefined;
6
+ exports.getMorphLocalizationKeysGreek = exports.getMorphLocalizationKeysHebrewAramaic = exports.getMorphLocalizationKeys = undefined;
7
7
 
8
8
  var _getIterator2 = require('babel-runtime/core-js/get-iterator');
9
9
 
@@ -29,9 +29,6 @@ var getMorphLocalizationKeys = exports.getMorphLocalizationKeys = function getMo
29
29
 
30
30
  case 'gr':
31
31
  default:
32
- if (morph && morph.length === 12) {
33
- return getMorphLocalizationKeysGreekSR(morph);
34
- }
35
32
  return getMorphLocalizationKeysGreek(morph);
36
33
  }
37
34
  };
@@ -154,53 +151,4 @@ var getMorphLocalizationKeysGreek = exports.getMorphLocalizationKeysGreek = func
154
151
  } // unknown code, prefixing with '*'
155
152
  });
156
153
  return morphKeys;
157
- };
158
- /**
159
- * @description - Get a list of all the localization keys for a morph string in Greek
160
- * @param {String} morph - the morph string, e.g. Gr,N,,,,,GMS,
161
- * @return {Array} - List of localization keys (unknown codes are prefixed with `*`)
162
- */
163
- var getMorphLocalizationKeysGreekSR = exports.getMorphLocalizationKeysGreekSR = function getMorphLocalizationKeysGreekSR(morph) {
164
- if (!morph || typeof morph !== 'string' || !morph.trim().length) {
165
- return [];
166
- }
167
-
168
- var morphKeys = [];
169
- // Will parsed out the morph string to its 12 places, the 1st being language,
170
- // 2nd always empty, 3rd role, 4th type, and so on
171
- var regex = /([A-Z0-9,.][a-z]*)/g; // Delimited by boundry of a comma, period, or uppercase letter
172
- var codes = morph.match(regex).map(function (code) {
173
- return [',', '.'].includes(code) ? null : code;
174
- });
175
- if (codes.length < 3) {
176
- return morph;
177
- }
178
-
179
- var morpMapGrk = _morphCodeLocalizationMap.morphCodeLocalizationMapSrGrk;
180
- if (morpMapGrk[2].hasOwnProperty(codes[2])) {
181
- morphKeys.push(morpMapGrk[2][codes[2]].key);
182
- } else {
183
- morphKeys.push('*' + codes[2]); // no known localization key, so prefixing with '*'
184
- }
185
- if (codes[4]) {
186
- var col2 = morpMapGrk[2];
187
- var col2Form = col2[codes[2]];
188
- if (col2.hasOwnProperty(codes[2]) && col2Form[4] && col2Form[4].hasOwnProperty(codes[4])) {
189
- morphKeys.push(col2Form[4][codes[4]]);
190
- } else {
191
- morphKeys.push('*' + codes[4]);
192
- } // unknown type, prefixing with '*'
193
- }
194
- codes.forEach(function (code, index) {
195
- // 0 and 1 are ignored, already did 2 and 3 above
196
- if (index < 5 || !code) {
197
- return;
198
- }
199
- if (morpMapGrk[index].hasOwnProperty(code)) {
200
- morphKeys.push(morpMapGrk[index][code]);
201
- } else {
202
- morphKeys.push('*' + code);
203
- } // unknown code, prefixing with '*'
204
- });
205
- return morphKeys;
206
154
  };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.morphCodeLocalizationMapGrk = exports.morphCodeLocalizationMapSrGrk = exports.morphCodeLocalizationMapAr = exports.morphCodeLocalizationMapHeb = undefined;
6
+ exports.morphCodeLocalizationMapGrk = exports.morphCodeLocalizationMapAr = exports.morphCodeLocalizationMapHeb = undefined;
7
7
 
8
8
  var _lodash = require('lodash');
9
9
 
@@ -190,104 +190,6 @@ morphCodeLocalizationMapAr.verb_stems = {
190
190
  G: 'ittaphal'
191
191
  };
192
192
 
193
- // These reflect the columns on for the SR on pages 9 and 10 of: https://greekcntr.org/resources/NTGRG.pdf
194
- var formVI = { // Form for VI
195
- I: 'indicative',
196
- M: 'imperative',
197
- S: 'subjunctive',
198
- O: 'optative',
199
- N: 'infinitive',
200
- P: 'participle'
201
- };
202
-
203
- var formNADX = { // Form for NADX
204
- C: 'comparative',
205
- S: 'superlatives',
206
- D: 'diminutive',
207
- I: 'indeclinable'
208
- };
209
-
210
- var morphCodeLocalizationMapSrGrk = exports.morphCodeLocalizationMapSrGrk = {
211
- 2: { // Function
212
- N: {
213
- key: 'noun',
214
- 4: formNADX
215
- },
216
- R: {
217
- key: 'pronoun'
218
- },
219
- A: {
220
- key: 'adjective',
221
- 4: formNADX
222
- },
223
- S: {
224
- key: 'substantive_adjective'
225
- },
226
- V: {
227
- key: 'verb',
228
- 4: formVI
229
- },
230
- D: {
231
- key: 'adverb',
232
- 4: formNADX
233
- },
234
- P: {
235
- key: 'preposition'
236
- },
237
- C: {
238
- key: 'conjunction'
239
- },
240
- I: {
241
- key: 'interjection',
242
- 4: formVI
243
- },
244
- E: {
245
- key: 'determiner', // new
246
- 4: formNADX
247
- },
248
- X: {
249
- key: 'extraneous', // new
250
- 4: formNADX
251
- }
252
- },
253
- 5: { // Tense
254
- P: 'present',
255
- I: 'imperfect',
256
- F: 'future',
257
- A: 'aorist',
258
- E: 'perfect',
259
- L: 'pluperfect'
260
- },
261
- 6: { // Voice
262
- A: 'active',
263
- M: 'middle',
264
- P: 'passive'
265
- },
266
- 7: { // Person
267
- 1: 'first',
268
- 2: 'second',
269
- 3: 'third'
270
- },
271
- 8: { // Case
272
- N: 'nominative',
273
- G: 'genitive',
274
- D: 'dative',
275
- A: 'accusative',
276
- V: 'vocative'
277
- },
278
- 9: { // Gender
279
- M: 'masculine',
280
- F: 'feminine',
281
- N: 'neuter',
282
- A: 'any' // new
283
- },
284
- 10: { // Number
285
- S: 'singular',
286
- P: 'plural',
287
- A: 'any' // new
288
- }
289
- };
290
-
291
193
  // These reflect the columns on page 55 of https://greekcntr.org/downloads/project.pdf
292
194
  // This helps us translate codes starting and the 3rd place (the 2nd index) of a morph string
293
195
  // The numbered keys are the index of that code in the string, where the letter index is the code
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "word-aligner",
3
- "version": "1.0.1-alpha.2",
3
+ "version": "1.0.1-beta",
4
4
  "description": "A library for handling word alignment",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -51,18 +51,18 @@
51
51
  "eslint": "^5.12.1",
52
52
  "eslint-config-google": "^0.12.0",
53
53
  "eslint-plugin-jest": "^22.1.3",
54
+ "fs-extra": "6.0.1",
54
55
  "json-stringify-safe": "5.0.1",
55
56
  "jest": "^23.6.0",
56
57
  "ospath": "1.2.2",
58
+ "path": "0.12.7",
59
+ "path-extra": "^4.2.1",
60
+ "rimraf": "^2.6.2",
57
61
  "usfm-js": "2.1.0"
58
62
  },
59
63
  "dependencies": {
60
64
  "babel-runtime": "^6.26.0",
61
- "fs-extra": "6.0.1",
62
65
  "lodash": "^4.17.11",
63
- "path": "0.12.7",
64
- "path-extra": "^4.2.1",
65
- "rimraf": "^2.6.2",
66
66
  "string-punctuation-tokenizer": "2.0.0",
67
67
  "transform-runtime": "0.0.0"
68
68
  }
package/src/js/aligner.js CHANGED
@@ -29,14 +29,14 @@ export const hasAlignments = (alignments) => {
29
29
  * @return {Array} - sorted array of verseObjects to be used for verseText of targetLanguage
30
30
  */
31
31
  export const merge = (alignments, wordBank, verseString,
32
- useVerseText = false) => {
32
+ useVerseText = false) => {
33
33
  // get the definitive list of verseObjects from the verse, unaligned but in order
34
34
  const {newVerseObjects: unalignedOrdered, wordMap} =
35
35
  VerseObjectUtils.getOrderedVerseObjectsFromString(verseString);
36
36
  // assign verseObjects with unaligned objects to be replaced with aligned ones
37
37
  // check each word in the verse string is also in the word bank or alignments
38
38
  const verseObjectsNotInAlignmentData = verseStringWordsContainedInAlignments(
39
- alignments, wordBank, wordMap);
39
+ alignments, wordBank, wordMap);
40
40
  if (verseObjectsNotInAlignmentData.length > 0) {
41
41
  if (hasAlignments(alignments)) { // if verse has some alignments
42
42
  const verseWordsJoined = verseObjectsNotInAlignmentData.map(({text}) => text).join(', ');
@@ -53,9 +53,9 @@ export const merge = (alignments, wordBank, verseString,
53
53
  for (let i = 0; i < wbLen; i++) {
54
54
  const bottomWord = wordBank[i];
55
55
  const verseObject = VerseObjectUtils.wordVerseObjectFromBottomWord(
56
- bottomWord);
56
+ bottomWord);
57
57
  const index = VerseObjectUtils.indexOfVerseObject(
58
- wordMap, verseObject);
58
+ wordMap, verseObject);
59
59
  if (index > -1) {
60
60
  const location = wordMap[index];
61
61
  location.array[location.pos] = verseObject;
@@ -132,7 +132,7 @@ export const merge = (alignments, wordBank, verseString,
132
132
  * the given alignments
133
133
  */
134
134
  export function verseStringWordsContainedInAlignments(
135
- alignments, wordBank, wordMap) {
135
+ alignments, wordBank, wordMap) {
136
136
  const unalignedMap = wordMap.filter((wordItem) => {
137
137
  const verseObject = wordItem.array[wordItem.pos];
138
138
  const checkIfWordMatches = function(verseObject) {
@@ -251,7 +251,7 @@ export const orderAlignments = function(alignmentVerse, alignmentUnOrdered) {
251
251
  let orderedObjects = null;
252
252
  if (typeof alignmentVerse === 'string') {
253
253
  orderedObjects = VerseObjectUtils.getOrderedVerseObjectsFromString(
254
- alignmentVerse);
254
+ alignmentVerse);
255
255
  } else {
256
256
  orderedObjects = VerseObjectUtils.getOrderedVerseObjects(alignmentVerse);
257
257
  }
@@ -288,7 +288,7 @@ export const orderAlignments = function(alignmentVerse, alignmentUnOrdered) {
288
288
  }
289
289
  if (index < 0) { // if still not found in topWords, it's an unaligned topWord
290
290
  const wordObject = VerseObjectUtils.alignmentObjectFromVerseObject(
291
- nextWord);
291
+ nextWord);
292
292
  alignment.push({topWords: [wordObject], bottomWords: []});
293
293
  }
294
294
  }
@@ -309,7 +309,7 @@ export const orderAlignments = function(alignmentVerse, alignmentUnOrdered) {
309
309
  export const addVerseObjectToAlignment = (verseObject, alignment) => {
310
310
  if (verseObject.type === 'milestone' && verseObject.children.length > 0) {
311
311
  const wordObject = VerseObjectUtils.alignmentObjectFromVerseObject(
312
- verseObject);
312
+ verseObject);
313
313
  const duplicate = alignment.topWords.find(function(obj) {
314
314
  return (obj.word === wordObject.word) &&
315
315
  (obj.occurrence === wordObject.occurrence);
@@ -322,7 +322,7 @@ export const addVerseObjectToAlignment = (verseObject, alignment) => {
322
322
  });
323
323
  } else if (verseObject.type === 'word' && !verseObject.children) {
324
324
  const wordObject = VerseObjectUtils.alignmentObjectFromVerseObject(
325
- verseObject);
325
+ verseObject);
326
326
  alignment.bottomWords.push(wordObject);
327
327
  }
328
328
  };
@@ -457,7 +457,7 @@ export const generateWordBank = (verseData) => {
457
457
  * @return {{alignments, wordBank}} - Reset alignments data
458
458
  */
459
459
  export const getBlankAlignmentDataForVerse = (
460
- ugntVerse, targetLanguageVerse) => {
460
+ ugntVerse, targetLanguageVerse) => {
461
461
  const alignments = generateBlankAlignments(ugntVerse);
462
462
  const wordBank = generateWordBank(targetLanguageVerse);
463
463
  return {alignments, wordBank};
@@ -1,10 +1,5 @@
1
1
  /* eslint-disable no-use-before-define */
2
- import {
3
- morphCodeLocalizationMapGrk,
4
- morphCodeLocalizationMapAr,
5
- morphCodeLocalizationMapHeb,
6
- morphCodeLocalizationMapSrGrk
7
- } from './morphCodeLocalizationMap';
2
+ import {morphCodeLocalizationMapGrk, morphCodeLocalizationMapAr, morphCodeLocalizationMapHeb} from './morphCodeLocalizationMap';
8
3
 
9
4
  /**
10
5
  * @description - Get a list of all the localization keys for a morph string in Greek
@@ -22,9 +17,6 @@ export const getMorphLocalizationKeys = (morph) => {
22
17
 
23
18
  case 'gr':
24
19
  default:
25
- if (morph && morph.length === 12) {
26
- return getMorphLocalizationKeysGreekSR(morph);
27
- }
28
20
  return getMorphLocalizationKeysGreek(morph);
29
21
  }
30
22
  };
@@ -123,51 +115,3 @@ export const getMorphLocalizationKeysGreek = (morph) => {
123
115
  });
124
116
  return morphKeys;
125
117
  };
126
- /**
127
- * @description - Get a list of all the localization keys for a morph string in Greek
128
- * @param {String} morph - the morph string, e.g. Gr,N,,,,,GMS,
129
- * @return {Array} - List of localization keys (unknown codes are prefixed with `*`)
130
- */
131
- export const getMorphLocalizationKeysGreekSR = (morph) => {
132
- if (!morph || typeof morph !== 'string' || !morph.trim().length) {
133
- return [];
134
- }
135
-
136
- const morphKeys = [];
137
- // Will parsed out the morph string to its 12 places, the 1st being language,
138
- // 2nd always empty, 3rd role, 4th type, and so on
139
- const regex = /([A-Z0-9,.][a-z]*)/g; // Delimited by boundry of a comma, period, or uppercase letter
140
- const codes = morph.match(regex).map((code) => [',', '.'].includes(code) ? null : code);
141
- if (codes.length < 3) {
142
- return morph;
143
- }
144
-
145
- const morpMapGrk = morphCodeLocalizationMapSrGrk;
146
- if (morpMapGrk[2].hasOwnProperty(codes[2])) {
147
- morphKeys.push(morpMapGrk[2][codes[2]].key);
148
- } else {
149
- morphKeys.push('*' + codes[2]); // no known localization key, so prefixing with '*'
150
- }
151
- if (codes[4]) {
152
- const col2 = morpMapGrk[2];
153
- const col2Form = col2[codes[2]];
154
- if (col2.hasOwnProperty(codes[2]) && col2Form[4] && col2Form[4].hasOwnProperty(codes[4])) {
155
- morphKeys.push(col2Form[4][codes[4]]);
156
- } else {
157
- morphKeys.push('*' + codes[4]);
158
- } // unknown type, prefixing with '*'
159
- }
160
- codes.forEach((code, index) => {
161
- // 0 and 1 are ignored, already did 2 and 3 above
162
- if (index < 5 || !code) {
163
- return;
164
- }
165
- if (morpMapGrk[index].hasOwnProperty(code)) {
166
- morphKeys.push(morpMapGrk[index][code]);
167
- } else {
168
- morphKeys.push('*' + code);
169
- } // unknown code, prefixing with '*'
170
- });
171
- return morphKeys;
172
- };
173
-
@@ -183,104 +183,6 @@ morphCodeLocalizationMapAr.verb_stems = {
183
183
  G: 'ittaphal',
184
184
  };
185
185
 
186
- // These reflect the columns on for the SR on pages 9 and 10 of: https://greekcntr.org/resources/NTGRG.pdf
187
- const formVI = { // Form for VI
188
- I: 'indicative',
189
- M: 'imperative',
190
- S: 'subjunctive',
191
- O: 'optative',
192
- N: 'infinitive',
193
- P: 'participle',
194
- };
195
-
196
- const formNADX = { // Form for NADX
197
- C: 'comparative',
198
- S: 'superlatives',
199
- D: 'diminutive',
200
- I: 'indeclinable',
201
- };
202
-
203
- export const morphCodeLocalizationMapSrGrk = {
204
- 2: { // Function
205
- N: {
206
- key: 'noun',
207
- 4: formNADX,
208
- },
209
- R: {
210
- key: 'pronoun',
211
- },
212
- A: {
213
- key: 'adjective',
214
- 4: formNADX,
215
- },
216
- S: {
217
- key: 'substantive_adjective'
218
- },
219
- V: {
220
- key: 'verb',
221
- 4: formVI,
222
- },
223
- D: {
224
- key: 'adverb',
225
- 4: formNADX,
226
- },
227
- P: {
228
- key: 'preposition',
229
- },
230
- C: {
231
- key: 'conjunction',
232
- },
233
- I: {
234
- key: 'interjection',
235
- 4: formVI,
236
- },
237
- E: {
238
- key: 'determiner', // new
239
- 4: formNADX,
240
- },
241
- X: {
242
- key: 'extraneous', // new
243
- 4: formNADX,
244
- },
245
- },
246
- 5: { // Tense
247
- P: 'present',
248
- I: 'imperfect',
249
- F: 'future',
250
- A: 'aorist',
251
- E: 'perfect',
252
- L: 'pluperfect',
253
- },
254
- 6: { // Voice
255
- A: 'active',
256
- M: 'middle',
257
- P: 'passive',
258
- },
259
- 7: { // Person
260
- 1: 'first',
261
- 2: 'second',
262
- 3: 'third',
263
- },
264
- 8: { // Case
265
- N: 'nominative',
266
- G: 'genitive',
267
- D: 'dative',
268
- A: 'accusative',
269
- V: 'vocative',
270
- },
271
- 9: { // Gender
272
- M: 'masculine',
273
- F: 'feminine',
274
- N: 'neuter',
275
- A: 'any', // new
276
- },
277
- 10: { // Number
278
- S: 'singular',
279
- P: 'plural',
280
- A: 'any', // new
281
- },
282
- };
283
-
284
186
  // These reflect the columns on page 55 of https://greekcntr.org/downloads/project.pdf
285
187
  // This helps us translate codes starting and the 3rd place (the 2nd index) of a morph string
286
188
  // The numbered keys are the index of that code in the string, where the letter index is the code
@@ -1,279 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="AutoImportSettings">
4
- <option name="autoReloadType" value="ALL" />
5
- </component>
6
- <component name="ChangeListManager">
7
- <list default="true" id="0557423a-f59a-40db-af07-9e6f26fd3bd6" name="Default Changelist" comment="Added support for new SR morph format">
8
- <change afterPath="$PROJECT_DIR$/__tests__/fixtures/SR/1.json" afterDir="false" />
9
- <change afterPath="$PROJECT_DIR$/__tests__/fixtures/SR/2.json" afterDir="false" />
10
- <change afterPath="$PROJECT_DIR$/__tests__/fixtures/SR/3.json" afterDir="false" />
11
- <change beforePath="$PROJECT_DIR$/__tests__/MorphUtils.test.js" beforeDir="false" afterPath="$PROJECT_DIR$/__tests__/MorphUtils.test.js" afterDir="false" />
12
- <change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
13
- <change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
14
- <change beforePath="$PROJECT_DIR$/src/js/utils/morphCodeLocalizationMap.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/js/utils/morphCodeLocalizationMap.js" afterDir="false" />
15
- </list>
16
- <option name="SHOW_DIALOG" value="false" />
17
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
18
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
19
- <option name="LAST_RESOLUTION" value="IGNORE" />
20
- </component>
21
- <component name="ComposerSettings">
22
- <execution />
23
- </component>
24
- <component name="Git.Settings">
25
- <option name="RECENT_BRANCH_BY_REPOSITORY">
26
- <map>
27
- <entry key="$PROJECT_DIR$" value="testing-SR-ugnt" />
28
- </map>
29
- </option>
30
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
31
- </component>
32
- <component name="GithubProjectSettings">
33
- <option name="branchProtectionPatterns">
34
- <list>
35
- <option value="develop" />
36
- <option value="master" />
37
- </list>
38
- </option>
39
- </component>
40
- <component name="MarkdownSettingsMigration">
41
- <option name="stateVersion" value="1" />
42
- </component>
43
- <component name="ProjectId" id="1lYS6RA6wMLDN0hx29OTPOVl0gg" />
44
- <component name="ProjectViewState">
45
- <option name="showLibraryContents" value="true" />
46
- <option name="showMembers" value="true" />
47
- </component>
48
- <component name="PropertiesComponent"><![CDATA[{
49
- "keyToString": {
50
- "Git.Branch.Popup.ShowAllRemotes": "true",
51
- "WebServerToolWindowFactoryState": "false",
52
- "last_opened_file_path": "/Users/blm/Development/Electron/word-aligner/__tests__/fixtures/SR",
53
- "node.js.detected.package.eslint": "true",
54
- "node.js.selected.package.eslint": "(autodetect)",
55
- "nodejs.jest.jest_package": "/Users/blm/Development/Electron/word-aligner/node_modules/jest",
56
- "nodejs_package_manager_path": "npm"
57
- }
58
- }]]></component>
59
- <component name="PyCoverageOptionsProvider">
60
- <option name="myUseBundledCoveragePy" value="true" />
61
- </component>
62
- <component name="RecentsManager">
63
- <key name="CopyFile.RECENT_KEYS">
64
- <recent name="$PROJECT_DIR$/__tests__/fixtures/SR" />
65
- </key>
66
- </component>
67
- <component name="RunManager" selected="Jest.MorphUtils tests.Greek">
68
- <configuration default="true" type="Applet" factoryName="Applet">
69
- <option name="WIDTH" value="400" />
70
- <option name="HEIGHT" value="300" />
71
- <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
72
- <module />
73
- <method />
74
- </configuration>
75
- <configuration default="true" type="Application" factoryName="Application">
76
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
77
- <method v="2">
78
- <option name="Make" enabled="true" />
79
- </method>
80
- </configuration>
81
- <configuration default="true" type="JUnit" factoryName="JUnit">
82
- <option name="TEST_OBJECT" value="class" />
83
- <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
84
- <method v="2">
85
- <option name="Make" enabled="true" />
86
- </method>
87
- </configuration>
88
- <configuration name="MorphUtils tests.Greek" type="JavaScriptTestRunnerJest" temporary="true" nameIsGenerated="true">
89
- <node-interpreter value="project" />
90
- <node-options value="" />
91
- <jest-package value="$PROJECT_DIR$/node_modules/jest" />
92
- <working-dir value="$PROJECT_DIR$" />
93
- <envs />
94
- <scope-kind value="SUITE" />
95
- <test-file value="$PROJECT_DIR$/__tests__/MorphUtils.test.js" />
96
- <test-names>
97
- <test-name value="MorphUtils tests" />
98
- <test-name value="Greek" />
99
- </test-names>
100
- <method v="2" />
101
- </configuration>
102
- <configuration name="MorphUtils tests.Greek.Test MorphUtils.getMorphLocalizationKeys() - test ἐπιδιορθώσῃ" type="JavaScriptTestRunnerJest" temporary="true" nameIsGenerated="true">
103
- <node-interpreter value="project" />
104
- <node-options value="" />
105
- <jest-package value="$PROJECT_DIR$/node_modules/jest" />
106
- <working-dir value="$PROJECT_DIR$" />
107
- <envs />
108
- <scope-kind value="TEST" />
109
- <test-file value="$PROJECT_DIR$/__tests__/MorphUtils.test.js" />
110
- <test-names>
111
- <test-name value="MorphUtils tests" />
112
- <test-name value="Greek" />
113
- <test-name value="Test MorphUtils.getMorphLocalizationKeys() - test ἐπιδιορθώσῃ" />
114
- </test-names>
115
- <method v="2" />
116
- </configuration>
117
- <configuration name="MorphUtils tests.Greek.Test MorphUtils.getMorphLocalizationKeys() - test SR paul" type="JavaScriptTestRunnerJest" temporary="true" nameIsGenerated="true">
118
- <node-interpreter value="project" />
119
- <node-options value="" />
120
- <jest-package value="$PROJECT_DIR$/node_modules/jest" />
121
- <working-dir value="$PROJECT_DIR$" />
122
- <envs />
123
- <scope-kind value="TEST" />
124
- <test-file value="$PROJECT_DIR$/__tests__/MorphUtils.test.js" />
125
- <test-names>
126
- <test-name value="MorphUtils tests" />
127
- <test-name value="Greek" />
128
- <test-name value="Test MorphUtils.getMorphLocalizationKeys() - test SR paul" />
129
- </test-names>
130
- <method v="2" />
131
- </configuration>
132
- <configuration name="MorphUtils tests.Greek.Test MorphUtils.getMorphLocalizationKeys() - test paul" type="JavaScriptTestRunnerJest" temporary="true" nameIsGenerated="true">
133
- <node-interpreter value="project" />
134
- <node-options value="" />
135
- <jest-package value="$PROJECT_DIR$/node_modules/jest" />
136
- <working-dir value="$PROJECT_DIR$" />
137
- <envs />
138
- <scope-kind value="TEST" />
139
- <test-file value="$PROJECT_DIR$/__tests__/MorphUtils.test.js" />
140
- <test-names>
141
- <test-name value="MorphUtils tests" />
142
- <test-name value="Greek" />
143
- <test-name value="Test MorphUtils.getMorphLocalizationKeys() - test paul" />
144
- </test-names>
145
- <method v="2" />
146
- </configuration>
147
- <configuration name="MorphUtils tests.Greek.Test MorphUtils.getMorphLocalizationKeys() - test ἐκλεκτῶν" type="JavaScriptTestRunnerJest" temporary="true" nameIsGenerated="true">
148
- <node-interpreter value="project" />
149
- <node-options value="" />
150
- <jest-package value="$PROJECT_DIR$/node_modules/jest" />
151
- <working-dir value="$PROJECT_DIR$" />
152
- <envs />
153
- <scope-kind value="TEST" />
154
- <test-file value="$PROJECT_DIR$/__tests__/MorphUtils.test.js" />
155
- <test-names>
156
- <test-name value="MorphUtils tests" />
157
- <test-name value="Greek" />
158
- <test-name value="Test MorphUtils.getMorphLocalizationKeys() - test ἐκλεκτῶν" />
159
- </test-names>
160
- <method v="2" />
161
- </configuration>
162
- <configuration default="true" type="TestNG">
163
- <option name="TEST_OBJECT" value="CLASS" />
164
- <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
165
- <properties />
166
- <listeners />
167
- <method v="2">
168
- <option name="Make" enabled="true" />
169
- </method>
170
- </configuration>
171
- <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType">
172
- <module name="" />
173
- <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
174
- <option name="PROGRAM_PARAMETERS" />
175
- <predefined_log_file enabled="true" id="idea.log" />
176
- <method v="2">
177
- <option name="Make" enabled="true" />
178
- </method>
179
- </configuration>
180
- <recent_temporary>
181
- <list>
182
- <item itemvalue="Jest.MorphUtils tests.Greek" />
183
- <item itemvalue="Jest.MorphUtils tests.Greek.Test MorphUtils.getMorphLocalizationKeys() - test ἐπιδιορθώσῃ" />
184
- <item itemvalue="Jest.MorphUtils tests.Greek.Test MorphUtils.getMorphLocalizationKeys() - test ἐκλεκτῶν" />
185
- <item itemvalue="Jest.MorphUtils tests.Greek.Test MorphUtils.getMorphLocalizationKeys() - test SR paul" />
186
- <item itemvalue="Jest.MorphUtils tests.Greek.Test MorphUtils.getMorphLocalizationKeys() - test paul" />
187
- </list>
188
- </recent_temporary>
189
- </component>
190
- <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
191
- <component name="TaskManager">
192
- <task active="true" id="Default" summary="Default task">
193
- <changelist id="0557423a-f59a-40db-af07-9e6f26fd3bd6" name="Default Changelist" comment="" />
194
- <created>1607772356243</created>
195
- <option name="number" value="Default" />
196
- <option name="presentableId" value="Default" />
197
- <updated>1607772356243</updated>
198
- <workItem from="1607772357632" duration="829000" />
199
- <workItem from="1607818082198" duration="1689000" />
200
- <workItem from="1607853465330" duration="2024000" />
201
- <workItem from="1607894197915" duration="602000" />
202
- <workItem from="1634297398636" duration="1368000" />
203
- <workItem from="1634548519554" duration="1242000" />
204
- <workItem from="1669227932079" duration="750000" />
205
- <workItem from="1669842210403" duration="588000" />
206
- <workItem from="1669851149700" duration="587000" />
207
- <workItem from="1669904980177" duration="2458000" />
208
- <workItem from="1669944724896" duration="599000" />
209
- <workItem from="1670113884923" duration="599000" />
210
- <workItem from="1670186707404" duration="587000" />
211
- <workItem from="1672950758072" duration="14050000" />
212
- </task>
213
- <task id="LOCAL-00001" summary="Added support for new SR morph format">
214
- <created>1672962554084</created>
215
- <option name="number" value="00001" />
216
- <option name="presentableId" value="LOCAL-00001" />
217
- <option name="project" value="LOCAL" />
218
- <updated>1672962554084</updated>
219
- </task>
220
- <task id="LOCAL-00002" summary="Added support for new SR morph format">
221
- <created>1672963360800</created>
222
- <option name="number" value="00002" />
223
- <option name="presentableId" value="LOCAL-00002" />
224
- <option name="project" value="LOCAL" />
225
- <updated>1672963360800</updated>
226
- </task>
227
- <option name="localTasksCounter" value="3" />
228
- <servers />
229
- </component>
230
- <component name="TypeScriptGeneratedFilesManager">
231
- <option name="version" value="3" />
232
- </component>
233
- <component name="VcsManagerConfiguration">
234
- <MESSAGE value="Added support for new SR morph format" />
235
- <option name="LAST_COMMIT_MESSAGE" value="Added support for new SR morph format" />
236
- </component>
237
- <component name="XDebuggerManager">
238
- <breakpoint-manager>
239
- <breakpoints>
240
- <line-breakpoint enabled="true" type="javascript">
241
- <url>file://$PROJECT_DIR$/src/js/utils/MorphUtils.js</url>
242
- <line>138</line>
243
- <properties lambdaOrdinal="-1" />
244
- <option name="timeStamp" value="2" />
245
- </line-breakpoint>
246
- <line-breakpoint enabled="true" type="javascript">
247
- <url>file://$PROJECT_DIR$/src/js/utils/MorphUtils.js</url>
248
- <line>164</line>
249
- <properties lambdaOrdinal="-1" />
250
- <option name="timeStamp" value="8" />
251
- </line-breakpoint>
252
- <line-breakpoint enabled="true" type="javascript">
253
- <url>file://$PROJECT_DIR$/src/js/utils/MorphUtils.js</url>
254
- <line>170</line>
255
- <properties lambdaOrdinal="-1" />
256
- <option name="timeStamp" value="9" />
257
- </line-breakpoint>
258
- <line-breakpoint enabled="true" type="javascript">
259
- <url>file://$PROJECT_DIR$/__tests__/MorphUtils.test.js</url>
260
- <line>89</line>
261
- <properties lambdaOrdinal="-1" />
262
- <option name="timeStamp" value="12" />
263
- </line-breakpoint>
264
- <line-breakpoint enabled="true" type="javascript">
265
- <url>file://$PROJECT_DIR$/__tests__/MorphUtils.test.js</url>
266
- <line>88</line>
267
- <properties lambdaOrdinal="-1" />
268
- <option name="timeStamp" value="13" />
269
- </line-breakpoint>
270
- <line-breakpoint enabled="true" type="javascript">
271
- <url>file://$PROJECT_DIR$/src/js/utils/MorphUtils.js</url>
272
- <line>150</line>
273
- <properties lambdaOrdinal="-1" />
274
- <option name="timeStamp" value="14" />
275
- </line-breakpoint>
276
- </breakpoints>
277
- </breakpoint-manager>
278
- </component>
279
- </project>