diff --git a/README.md b/README.md
index fc13f04d..2868374e 100644
--- a/README.md
+++ b/README.md
@@ -37,13 +37,13 @@ In addition, there are Styleguidist pages viewable at https://unfoldingword.gith
This code is designed to thoroughly check various types of Bible-related content data files. This includes:
1. [Unified Standard Format Marker](ubsicap.github.io/usfm/) (USFM) Bible content files, including original language Bibles and Bible translations aligned by word/phrase to the original words/phrases
-1. Translation Notes (TN) tables in Tab-Separated Values (TSV) files
+1. Translation Notes (TN2) tables in Tab-Separated Values (TSV) files
1. General annotation tables in Tab-Separated Values (TSV) files (work-in-progress)
1. Markdown files (and markdown fields in TSV files)
1. Plain-text files
1. Metadata (manifest) YAML files
-Note: There is also a separate function for checking individual TN/TSV lines which is intended to be able to provide immediate user feedback if built into a TSV editor.
+Note: There is also a separate function for checking individual TN2/TSV lines which is intended to be able to provide immediate user feedback if built into a TSV editor.
The top-level checking demonstrations return:
diff --git a/noticeList.txt b/noticeList.txt
index 1bc395c4..3401597e 100644
--- a/noticeList.txt
+++ b/noticeList.txt
@@ -1,276 +1,294 @@
-Last updated 2020-11-10 08:59:10.555207 by makeNoticeList.py
-Got 274 notices:
- checkRepoResult.noticeList.push( 997, "Repository doesn't exist", details, username, repoCode, repoName, location: givenLocation, extra: repoCode from checkRepo.js line 232
- marker === 's5' ? 111 : 809, `$marker === 's5' ? 'Deprecated' : 'Unexpected' '\\$marker' marker at start of line`, C, V, lineNumber, characterIndex: 1, location: lineLocation from usfm-text-check.js line 735
- `"`.indexOf(line[0]) < 0 ? 880 : 280, C, V, "Expected line to start with backslash", lineNumber: n, characterIndex: 0, extract: line[0], location: ourLocation from usfm-text-check.js line 814
- C === '1' ? 657 : 457, C, V, "Paragraph marker expected before first verse", lineNumber: n, characterIndex: 1, details: `('\\$marker' after '\\$lastMarker')`, location: ourLocation from usfm-text-check.js line 906
- leftChar === '“' ? 163 : 563, `Mismatched $leftChar$rightChar characters`, details: `(left=$leftCount.toLocaleString(), right=$rightCount.toLocaleString())`, location: ourLocation from field-text-check.js line 286
- leftChar === '“' ? 162 : 462, `Mismatched $leftChar$rightChar characters`, details: `(left=$leftCount.toLocaleString(), right=$rightCount.toLocaleString())`, location: ourLocation from plain-text-check.js line 198
+Last updated 2020-11-20 17:20:25.277130 by makeNoticeList.py
+Got 292 notices:
+ checkRepoResult.noticeList.push( 997, "Repository doesn't exist", details, username, repoCode, repoName, location: givenLocation, extra: repoCode from checkRepo.js line 243
+ languageCode === 'en' || languageCode === 'fr' ? 490 : 190, "Expected header field to contain a mixed-case string", fieldName: `\\$marker`, extract: rest, C, V, location: lineLocation from usfm-text-check.js line 729
+ marker === 's5' ? 111 : 809, `$marker === 's5' ? 'Deprecated' : 'Unexpected' '\\$marker' marker at start of line`, C, V, lineNumber, characterIndex: 1, location: lineLocation from usfm-text-check.js line 752
+ `"`.indexOf(line[0]) < 0 ? 880 : 280, C, V, "Expected line to start with backslash", lineNumber: n, characterIndex: 0, extract: line[0], location: ourLocation from usfm-text-check.js line 831
+ C === '1' ? 657 : 457, C, V, "Paragraph marker expected before first verse", lineNumber: n, characterIndex: 1, details: `('\\$marker' after '\\$lastMarker')`, location: ourLocation from usfm-text-check.js line 923
+ const notice = 95, "Unexpected trailing space(s)", extract, location: ourLocation ; from field-text-check.js line 174
+ notice from field-text-check.js line 176
+ const notice = 194, "Unexpected double spaces", extract, location: ourLocation from field-text-check.js line 199
+ notice from field-text-check.js line 201
+ const notice = 580, "Unexpected narrow non-break space character", extract, location: ourLocation ; from field-text-check.js line 220
+ notice from field-text-check.js line 222
+ const notice = 177, `Unexpected doubled $punctChar characters`, extract, location: ourLocation ; from field-text-check.js line 252
+ notice from field-text-check.js line 254
+ const notice = 191, `Unexpected $punctChar character after space`, extract, location: ourLocation ; from field-text-check.js line 267
+ notice from field-text-check.js line 269
+ const notice = 192, `Unexpected space after $punctChar character`, extract, location: ourLocation ; from field-text-check.js line 292
+ notice from field-text-check.js line 294
+ const notice = 193, `Unexpected $punctChar character at end of line`, extract, location: ourLocation ; from field-text-check.js line 299
+ notice from field-text-check.js line 301
+ leftChar === '“' ? 163 : 563, `Mismatched $leftChar$rightChar characters`, details: `(left=$leftCount.toLocaleString(), right=$rightCount.toLocaleString())`, location: ourLocation from field-text-check.js line 330
+ leftChar === '“' ? 162 : 462, `Mismatched $leftChar$rightChar characters`, details: `(left=$leftCount.toLocaleString(), right=$rightCount.toLocaleString())`, location: ourLocation from plain-text-check.js line 216
999, "checkRepo function FAILED", repoName, extract: checkRepoError, location: repoName from RepoCheck.js line 103
- 997, "Repository doesn't exist", details, username, repoCode, repoName, location: generalLocation, extra: repoCode from checkBookPackage.js line 102
- 997, "Repository doesn't exist", details, username, repoCode, repoName, location: generalLocation, extra: repoCode from checkBookPackage.js line 128
- 997, "Repository doesn't exist", details, username, repoCode, repoName, location: manifestLocation, extra: repoCode from checkBookPackage.js line 302
- 997, "Repository doesn't exist", details, username, repoCode, repoName, location: repoLocation, extra: repoCode from checkBookPackage.js line 438
- 996, "Unable to load", details, bookID, location: generalLocation, extra: repoCode from checkBookPackage.js line 104
- 996, "Unable to load", details, bookID, C, V, filename: thisPath, location: `$generalLocation $thisPath`, extra: repoCode from checkBookPackage.js line 132
- 996, "Unable to load", details: `username=$username error=$cBPgfError`, repoName, filename: MANIFEST_FILENAME, location: manifestLocation, extra: repoCode from checkBookPackage.js line 306
- 996, "Unable to load", details, repoCode, repoName, filename, location: repoLocation, extra: repoCode from checkBookPackage.js line 442
- 996, "Unable to load", details: `username=$username error=$cRgfError`, bookID: ourBookID, filename: thisFilename, location: `$givenLocation $thisFilepath`, extra: repoName from checkRepo.js line 236
- 995, "File extension is not recognized, so treated as plain text.", filename, location: filename from checkFileContents.js line 65
- 993, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from field-text-check.js line 101
- 993, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from plain-text-check.js line 178
- 992, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from field-text-check.js line 107
- 992, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from plain-text-check.js line 182
- 991, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from field-text-check.js line 113
- 991, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from plain-text-check.js line 186
+ 997, "Repository doesn't exist", details, username, repoCode, repoName, location: manifestLocation, extra: repoCode from checkBookPackage.js line 168
+ 997, "Repository doesn't exist", details, username, repoCode, repoName, location: manifestLocation, extra: repoCode from checkBookPackage.js line 225
+ 997, "Repository doesn't exist", details, username, repoCode, repoName, location: repoLocation, extra: repoCode from checkBookPackage.js line 365
+ 997, "Repository doesn't exist", details, username, repoCode, repoName, location: generalLocation, extra: repoCode from checkBookPackage.js line 527
+ 997, "Repository doesn't exist", details, username, repoCode, repoName, location: generalLocation, extra: repoCode from checkBookPackage.js line 553
+ 996, "Unable to load", details: `username=$username error=$cBPgfError`, repoName, filename: MANIFEST_FILENAME, location: manifestLocation, extra: repoCode from checkBookPackage.js line 172
+ 996, "Unable to load", details: `username=$username error=$cBPgfError`, repoName, filename: MANIFEST_FILENAME, location: manifestLocation, extra: repoCode from checkBookPackage.js line 229
+ 996, "Unable to load", details, repoCode, repoName, filename, location: repoLocation, extra: repoCode from checkBookPackage.js line 369
+ 996, "Unable to load", details, bookID, location: generalLocation, extra: repoCode from checkBookPackage.js line 529
+ 996, "Unable to load", details, bookID, C, V, filename: thisPath, location: `$generalLocation $thisPath`, extra: repoCode from checkBookPackage.js line 557
+ 996, "Unable to load", details: `username=$username error=$cRgfError`, bookID: ourBookID, filename: thisFilename, location: `$givenLocation $thisFilepath`, extra: repoName from checkRepo.js line 247
+ 995, "File extension is not recognized, so treated as plain text.", filename, location: filename from checkFileContents.js line 76
+ 993, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from field-text-check.js line 109
+ 993, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from plain-text-check.js line 128
+ 992, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from field-text-check.js line 115
+ 992, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from plain-text-check.js line 132
+ 991, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from field-text-check.js line 121
+ 991, "Unresolved GIT conflict", characterIndex, extract, location: ourLocation from plain-text-check.js line 136
990, "Unable to load file", details: `username=$username`, repoName, filename ], elapsedSeconds: 0 ; from FileCheck.js line 63
- 989, "Unable to find/load repository", location: ourLocation from checkRepo.js line 160
+ 989, "Unable to find/load repository", location: ourLocation from checkRepo.js line 170
988, `Wrong number of tabbed fields (expected $NUM_EXPECTED_TN_TSV_FIELDS)`, extract: `Found $fields.length field$fields.length === 1 ? '' : 's'`, C, V, rowID, lineNumber: n + 1, location: ourLocation from tn-table-text-check.js line 225
- 988, `Wrong number of tabbed fields (expected $NUM_EXPECTED_ANNOTATION_TSV_FIELDS)`, extract: `Found $fields.length field$fields.length === 1 ? '' : 's'`, C, V, rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 226
- 987, C, V, "Expected \\id line to start with book identifier", lineNumber: n, characterIndex: 4, extract, location: ourLocation from usfm-text-check.js line 891
- 986, "Repository doesn't seem to exist", details: `username=$username`, location: givenLocation, extra: repoName from checkRepo.js line 140
- 985, `Field does not match schema $errorObject.keyword`, details: errorObject.message, fieldName: errorObject.dataPath, location: ourLocation from manifest-text-check.js line 655
- 984, `Found wrong number of TSV fields (expected $NUM_EXPECTED_TN_TSV_FIELDS)`, details: `Found $fields.length field$fields.length === 1 ? '' : 's'`, rowID, location: ourRowLocation from tn-table-row-check.js line 515
- 984, `Found wrong number of TSV fields (expected $NUM_EXPECTED_ANNOTATION_TSV_FIELDS)`, details: `Found $fields.length field$fields.length === 1 ? '' : 's'`, rowID, location: ourRowLocation from annotation-row-check.js line 518
- 979, "Invalid book identifier passed to checkTN_TSVDataRow", location: ` '$bookID' in first parameter: $tlcNCerror` from tn-table-row-check.js line 319
- 979, "Invalid book identifier passed to checkAnnotationTSVDataRow", location: ` '$bookID' in first parameter: $tlcNCerror` from annotation-row-check.js line 329
- 978, "Wrong book identifier", details: `(expected '$bookID')`, fieldName: 'Book', rowID, extract: B, location: ourRowLocation from tn-table-row-check.js line 334
- 977, "Missing book identifier", characterIndex: 0, rowID, location: ourRowLocation from tn-table-row-check.js line 337
- 976, "Wrong chapter number", details: `(expected '$givenC')`, fieldName: 'Chapter', rowID, extract: C, location: ourRowLocation from tn-table-row-check.js line 342
- 976, "Wrong chapter number", details: `(expected '$givenC')`, fieldName: 'Reference', rowID, extract: C, location: ourRowLocation from annotation-row-check.js line 347
- 975, "Wrong verse number", details: `(expected '$givenV')`, rowID, fieldName: 'Verse', extract: V, location: ourRowLocation from tn-table-row-check.js line 374
- 975, "Wrong verse number", details: `(expected '$givenV')`, rowID, fieldName: 'Reference', extract: V, location: ourRowLocation from annotation-row-check.js line 383
- 956, "Got empty manifest file", repoName, filename: MANIFEST_FILENAME, location: manifestLocation, extra: `$repoCode MANIFEST` from checkBookPackage.js line 327
- 947, "Missing manifest.yaml", location: ourLocation, extra: `$repoName MANIFEST` from checkRepo.js line 261
- 946, "Missing LICENSE.md", location: ourLocation, extra: `$repoName LICENSE` from checkRepo.js line 259
+ 988, `Wrong number of tabbed fields (expected $NUM_EXPECTED_ANNOTATION_TSV_FIELDS)`, extract: `Found $fields.length field$fields.length === 1 ? '' : 's'`, C, V, rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 227
+ 987, C, V, "Expected \\id line to start with book identifier", lineNumber: n, characterIndex: 4, extract, location: ourLocation from usfm-text-check.js line 908
+ 986, "Repository doesn't seem to exist", details: `username=$username`, location: givenLocation, extra: repoName from checkRepo.js line 150
+ 985, `Field does not match schema $errorObject.keyword`, details: errorObject.message, fieldName: errorObject.dataPath, location: ourLocation from manifest-text-check.js line 656
+ 984, `Found wrong number of TSV fields (expected $NUM_EXPECTED_TN_TSV_FIELDS)`, details: `Found $fields.length field$fields.length === 1 ? '' : 's'`, rowID, location: ourRowLocation from tn-table-row-check.js line 523
+ 984, `Found wrong number of TSV fields (expected $NUM_EXPECTED_ANNOTATION_TSV_FIELDS)`, details: `Found $fields.length field$fields.length === 1 ? '' : 's'`, rowID, location: ourRowLocation from annotation-row-check.js line 528
+ 979, "Invalid book identifier passed to checkTN_TSVDataRow", location: ` '$bookID' in first parameter: $tlcNCerror` from tn-table-row-check.js line 326
+ 979, "Invalid book identifier passed to checkAnnotationTSVDataRow", location: ` '$bookID' in first parameter: $tlcNCerror` from annotation-row-check.js line 338
+ 978, "Wrong book identifier", details: `(expected '$bookID')`, fieldName: 'Book', rowID, extract: B, location: ourRowLocation from tn-table-row-check.js line 341
+ 977, "Missing book identifier", characterIndex: 0, rowID, location: ourRowLocation from tn-table-row-check.js line 344
+ 976, "Wrong chapter number", details: `(expected '$givenC')`, fieldName: 'Chapter', rowID, extract: C, location: ourRowLocation from tn-table-row-check.js line 349
+ 976, "Wrong chapter number", details: `(expected '$givenC')`, fieldName: 'Reference', rowID, extract: C, location: ourRowLocation from annotation-row-check.js line 356
+ 975, "Wrong verse number", details: `(expected '$givenV')`, rowID, fieldName: 'Verse', extract: V, location: ourRowLocation from tn-table-row-check.js line 381
+ 975, "Wrong verse number", details: `(expected '$givenV')`, rowID, fieldName: 'Reference', extract: V, location: ourRowLocation from annotation-row-check.js line 392
+ 956, "Got empty manifest file", repoName, filename: MANIFEST_FILENAME, location: manifestLocation, extra: `$repoCode MANIFEST` from checkBookPackage.js line 193
+ 956, "Got empty manifest file", repoName, filename: MANIFEST_FILENAME, location: manifestLocation, extra: `$repoCode MANIFEST` from checkBookPackage.js line 250
+ 947, "Missing manifest.yaml", location: ourLocation, extra: `$repoName MANIFEST` from checkRepo.js line 272
+ 946, "Missing LICENSE.md", location: ourLocation, extra: `$repoName LICENSE` from checkRepo.js line 270
944, `USFM3 Grammar Check ($strictnessString mode) doesn't pass`, filename, location: ourLocation from BCS-usfm-grammar-check.js line 177
- 943, `USFM3 toJSON Check doesn't pass`, location: ourLocation from usfm-js-check.js line 78
- 942, "USFM Grammar check fails", location from usfm-text-check.js line 940
- 929, "'projects' key is missing", location: ourLocation from manifest-text-check.js line 620
- 928, "'dublin_core' key is missing", location: ourLocation from manifest-text-check.js line 618
- 920, yamlError.message, location: ourLocation ) from yaml-text-check.js line 120
- 919, "Missing OrigQuote field", fieldName: 'OrigQuote', rowID, location: ourRowLocation from tn-table-row-check.js line 445
- 919, "Missing Quote field", fieldName: 'Quote', rowID, location: ourRowLocation from annotation-row-check.js line 459
- 917, "Unable to find duplicate original language quote in verse text", details: `occurrence=$occurrenceString, passage ⸢$verseText⸣`, extract, location: ourLocation from orig-quote-check.js line 303
- 916, "Unable to find original language quote in verse text", details: "quote which starts with 'word joiner'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 338
- 916, "Unable to find original language quote in verse text", details: "quote which ends with 'word joiner'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 341
- 916, "Unable to find original language quote in verse text", details: "quote which starts with 'zero-width space'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 344
- 916, "Unable to find original language quote in verse text", details: "quote which ends with 'zero-width space'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 347
- 916, "Unable to find original language quote in verse text", details: "quote which starts with 'zero-width joiner'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 350
- 916, "Unable to find original language quote in verse text", details: "quote which ends with 'zero-width joiner'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 353
- 916, "Unable to find original language quote in verse text", details: noBreakSpaceText ? noBreakSpaceText : `passage ⸢$verseText⸣`, extract, location: ourLocation from orig-quote-check.js line 356
- 912, 'Missing | character in \\w line', lineNumber, C, V, characterIndex, extract, location: lineLocation from usfm-text-check.js line 587
- 911, 'Missing | character in \\w field', details, lineNumber, C, V, characterIndex, extract, location: lineLocation from usfm-text-check.js line 643
- 903, "Bad function call: should be given a valid book abbreviation", extract: bookID, location: ` (not '$bookID')$ourLocation` from usfm-text-check.js line 756
- 902, "Bad function call: should be given a valid book abbreviation", extract: bookID, location: ` (not '$bookID')$generalLocation` ); return checkBookPackageResult; from checkBookPackage.js line 351
+ 943, `USFM3 toJSON Check doesn't pass`, location: ourLocation from usfm-js-check.js line 90
+ 942, "USFM Grammar check fails", location from usfm-text-check.js line 957
+ 929, "'projects' key is missing", location: ourLocation from manifest-text-check.js line 621
+ 928, "'dublin_core' key is missing", location: ourLocation from manifest-text-check.js line 619
+ 920, yamlError.message, location: ourLocation ) from yaml-text-check.js line 158
+ 919, "Missing OrigQuote field", fieldName: 'OrigQuote', rowID, location: ourRowLocation from tn-table-row-check.js line 453
+ 919, "Missing Quote field", fieldName: 'Quote', rowID, location: ourRowLocation from annotation-row-check.js line 469
+ 917, "Unable to find duplicate original language quote in verse text", details: `occurrence=$occurrenceString, passage ⸢$verseText⸣`, extract, location: ourLocation from orig-quote-check.js line 308
+ 916, "Unable to find original language quote in verse text", details: "quote which starts with 'word joiner'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 343
+ 916, "Unable to find original language quote in verse text", details: "quote which ends with 'word joiner'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 346
+ 916, "Unable to find original language quote in verse text", details: "quote which starts with 'zero-width space'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 349
+ 916, "Unable to find original language quote in verse text", details: "quote which ends with 'zero-width space'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 352
+ 916, "Unable to find original language quote in verse text", details: "quote which starts with 'zero-width joiner'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 355
+ 916, "Unable to find original language quote in verse text", details: "quote which ends with 'zero-width joiner'" + (noBreakSpaceText ? ' ' + noBreakSpaceText : ''), extract, location: ourLocation from orig-quote-check.js line 358
+ 916, "Unable to find original language quote in verse text", details: noBreakSpaceText ? noBreakSpaceText : `passage ⸢$verseText⸣`, extract, location: ourLocation from orig-quote-check.js line 361
+ 912, 'Missing | character in \\w line', lineNumber, C, V, characterIndex, extract, location: lineLocation from usfm-text-check.js line 599
+ 911, 'Missing | character in \\w field', details, lineNumber, C, V, characterIndex, extract, location: lineLocation from usfm-text-check.js line 655
+ 903, "Bad function call: should be given a valid book abbreviation", extract: bookID, location: ` (not '$bookID')$ourLocation` from usfm-text-check.js line 773
+ 902, "Bad function call: should be given a valid book abbreviation", extract: bookID, location: ` (not '$bookID')$generalLocation` ); return checkBookPackageResult; from checkBookPackage.js line 274
900, "Bad parameter: should be given a valid book abbreviation", extract: bookIDList, location: ` (not '$bookIDList')` from checkBookPackages.js line 65
- 895, "Field contains zero-width space(s)", characterIndex, extract, location: ourLocation from field-text-check.js line 88
- 889, `Unable to find TA link`, extract: fieldText, location: `$ourLocation $filepath` from ta-reference-check.js line 109
- 888, `Error loading TA link`, extract: fieldText, location: `$ourLocation $filepath: $trcGCerror` from ta-reference-check.js line 114
- 887, `Linked TA article seems empty`, extract: fieldText, location: `$ourLocation $filepath` from ta-reference-check.js line 111
- 886, `Unable to find $fieldName TA link`, extract: regexResultArray[0], location: `$ourLocation $filepath` from tn-links-check.js line 217
- 885, `Error loading $fieldName TA link`, extract: regexResultArray[0], location: `$ourLocation $filepath: $trcGCerror` from tn-links-check.js line 214
- 884, `Linked $fieldName TA article seems empty`, extract: regexResultArray[0], location: `$ourLocation $filepath` from tn-links-check.js line 219
- 883, `Unable to find $fieldName TW link`, extract: regexResultArray[0], location: `$ourLocation $filepath` from tn-links-check.js line 263
- 882, `Error loading $fieldName TW link`, extract: regexResultArray[0], location: `$ourLocation $filepath: $trcGCerror` from tn-links-check.js line 260
- 881, `Linked $fieldName TW article seems empty`, extract: regexResultArray[0], location: `$ourLocation $filepath` from tn-links-check.js line 266
- 879, `Badly formatted Resource Container link`, extract: fieldText, location: `$ourLocation $filepath` from ta-reference-check.js line 96
- 875, "Unexpected USFM field", details, lineNumber, C, V, extract, location: lineLocation from usfm-text-check.js line 690
- 873, `Mismatched $opener$closer fields`, extract: `(left=$lCount.toLocaleString(), right=$rCount.toLocaleString())`, location: fileLocation from usfm-text-check.js line 512
- 869, "Chapter number out of range", C: chapterNumberString, extract: `$bookID $chapterNumberString`, location: CVlocation from usfm-text-check.js line 367
- 868, "Verse number out of range", C: chapterNumberString, V: verseNumberString, extract: `$bookID $chapterNumberString:$verseNumberString`, location: CVlocation from usfm-text-check.js line 406
- 867, C: chapterNumberString, V: `$v`, "Verse appears to be missing", location: CVlocation from usfm-text-check.js line 420
- 866, C: chapterNumberString, V: `$v`, "Verse seems to have no text", location: CVlocation from usfm-text-check.js line 425
- 851, bookID === 'OBS' ? "Unable to load OBS story text" : "Unable to load original language verse text", location: ourLocation from orig-quote-check.js line 273
- 845, `Mismatched [[ ]] link characters`, details: `(left=$leftCount.toLocaleString(), right=$rightCount.toLocaleString())`, location: ourLocation from tn-links-check.js line 456
- 844, `Mismatched [[rc:// ]] link characters`, details: `(left=$leftCount.toLocaleString(), right=$rightCount.toLocaleString())`, location: ourLocation from tn-links-check.js line 460
- 843, `Mismatched [ ]( ) link characters`, details: `(left=$leftCount.toLocaleString(), middle=$middleCount.toLocaleString(), right=$rightCount.toLocaleString())`, location: ourLocation from tn-links-check.js line 467
- 824, `Invalid zero chapter number`, extract: C, rowID, fieldName: 'Chapter', location: ourRowLocation from tn-table-row-check.js line 347
- 824, `Invalid zero chapter number`, extract: C, rowID, fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 352
- 823, `Invalid large chapter number`, extract: C, rowID, fieldName: 'Chapter', location: ourRowLocation from tn-table-row-check.js line 352
- 823, `Invalid large chapter number`, extract: C, rowID, fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 357
- 822, "Unable to check chapter number", extract: C, rowID, fieldName: 'Chapter', location: ourRowLocation from tn-table-row-check.js line 362
- 822, "Expected \\c field to contain an integer", lineNumber, C, V, characterIndex: 3, extract: `\\c $rest`, location: lineLocation from usfm-text-check.js line 705
- 822, C, V, "Expected \\v field to contain an integer", characterIndex: 3, extract: `\\v $rest`, location: lineLocation from usfm-text-check.js line 709
- 822, "Unable to check chapter number", extract: C, rowID, fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 370
- 821, "Bad chapter number", extract: C, rowID, fieldName: 'Chapter', location: ourRowLocation from tn-table-row-check.js line 367
- 821, "Bad chapter number", extract: C, rowID, fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 376
- 820, "Missing chapter number", rowID, fieldName: 'Chapter', location: ` ?:$V$ourRowLocation` from tn-table-row-check.js line 370
- 820, "Missing chapter number", rowID, fieldName: 'Reference', location: ` ?:$V$ourRowLocation` from annotation-row-check.js line 379
- 819, "Missing compulsory USFM line", extract: `missing \\$compulsoryMarker`, location: fileLocation from usfm-text-check.js line 534
- 814, "Invalid zero verse number", rowID, fieldName: 'Verse', extract: V, location: ourRowLocation from tn-table-row-check.js line 379
- 814, "Invalid zero verse number", rowID, fieldName: 'Reference', extract: V, location: ourRowLocation from annotation-row-check.js line 388
- 813, "Invalid large verse number", rowID, fieldName: 'Verse', extract: V, location: ourRowLocation from tn-table-row-check.js line 383
- 813, "Invalid large verse number", rowID, fieldName: 'Reference', extract: V, location: ourRowLocation from annotation-row-check.js line 392
- 812, "Unable to check verse number", rowID, fieldName: 'Verse', location: ourRowLocation from tn-table-row-check.js line 385
- 812, "Unable to check verse number", rowID, fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 394
- 811, "Bad verse number", rowID, fieldName: 'Verse', location: ` '$V'$ourRowLocation` from tn-table-row-check.js line 389
- 811, "Bad verse number", rowID, fieldName: 'Reference', location: ` '$V'$ourRowLocation` from annotation-row-check.js line 398
- 810, "Missing verse number", rowID, fieldName: 'Verse', location: ` after $C:?$ourRowLocation` from tn-table-row-check.js line 392
- 810, "Missing verse number", rowID, fieldName: 'Reference', location: ` after $C:?$ourRowLocation` from annotation-row-check.js line 401
- 792, `Invalid occurrence field`, fieldName: 'Occurrence', rowID, extract: occurrence, location: ourRowLocation from tn-table-row-check.js line 459
- 792, `Invalid occurrence field`, fieldName: 'Occurrence', rowID, extract: occurrence, location: ourRowLocation from annotation-row-check.js line 473
- 791, `Missing occurrence field`, fieldName: 'Occurrence', rowID, location: ourRowLocation from tn-table-row-check.js line 464
- 791, `Missing occurrence field`, fieldName: 'Occurrence', rowID, location: ourRowLocation from annotation-row-check.js line 478
+ 895, "Field contains zero-width space(s)", characterIndex, extract, location: ourLocation from field-text-check.js line 95
+ 889, `Unable to find TA link`, extract: fieldText, location: `$ourLocation $filepath` from ta-reference-check.js line 108
+ 888, `Error loading TA link`, extract: fieldText, location: `$ourLocation $filepath: $trcGCerror` from ta-reference-check.js line 113
+ 887, `Linked TA article seems empty`, extract: fieldText, location: `$ourLocation $filepath` from ta-reference-check.js line 110
+ 886, `Unable to find $fieldName TA link`, extract: regexResultArray[0], location: `$ourLocation $filepath` from tn-links-check.js line 218
+ 885, `Error loading $fieldName TA link`, extract: regexResultArray[0], location: `$ourLocation $filepath: $trcGCerror` from tn-links-check.js line 215
+ 884, `Linked $fieldName TA article seems empty`, extract: regexResultArray[0], location: `$ourLocation $filepath` from tn-links-check.js line 220
+ 883, `Unable to find $fieldName TW link`, extract: regexResultArray[0], location: `$ourLocation $filepath` from tn-links-check.js line 266
+ 882, `Error loading $fieldName TW link`, extract: regexResultArray[0], location: `$ourLocation $filepath: $trcGCerror` from tn-links-check.js line 263
+ 881, `Linked $fieldName TW article seems empty`, extract: regexResultArray[0], location: `$ourLocation $filepath` from tn-links-check.js line 269
+ 879, `Badly formatted Resource Container link`, extract: fieldText, location: `$ourLocation $filepath` from ta-reference-check.js line 95
+ 875, "Unexpected USFM field", details, lineNumber, C, V, extract, location: lineLocation from usfm-text-check.js line 702
+ 873, `Mismatched $opener$closer fields`, extract: `(left=$lCount.toLocaleString(), right=$rCount.toLocaleString())`, location: fileLocation from usfm-text-check.js line 524
+ 869, "Chapter number out of range", C: chapterNumberString, extract: `$bookID $chapterNumberString`, location: CVlocation from usfm-text-check.js line 375
+ 868, "Verse number out of range", C: chapterNumberString, V: verseNumberString, extract: `$bookID $chapterNumberString:$verseNumberString`, location: CVlocation from usfm-text-check.js line 414
+ 867, C: chapterNumberString, V: `$v`, "Verse appears to be missing", location: CVlocation from usfm-text-check.js line 428
+ 866, C: chapterNumberString, V: `$v`, "Verse seems to have no text", location: CVlocation from usfm-text-check.js line 433
+ 851, bookID === 'OBS' ? "Unable to load OBS story text" : "Unable to load original language verse text", location: ourLocation from orig-quote-check.js line 276
+ 849, "Unexpected \\[ or \\] characters", characterIndex, extract, location: ourLocation from field-text-check.js line 310
+ 845, `Mismatched [[ ]] link characters`, details: `(left=$leftCount.toLocaleString(), right=$rightCount.toLocaleString())`, location: ourLocation from tn-links-check.js line 460
+ 844, `Mismatched [[rc:// ]] link characters`, details: `(left=$leftCount.toLocaleString(), right=$rightCount.toLocaleString())`, location: ourLocation from tn-links-check.js line 464
+ 843, `Mismatched [ ]( ) link characters`, details: `(left=$leftCount.toLocaleString(), middle=$middleCount.toLocaleString(), right=$rightCount.toLocaleString())`, location: ourLocation from tn-links-check.js line 471
+ 824, `Invalid zero chapter number`, extract: C, rowID, fieldName: 'Chapter', location: ourRowLocation from tn-table-row-check.js line 354
+ 824, `Invalid zero chapter number`, extract: C, rowID, fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 361
+ 823, `Invalid large chapter number`, extract: C, rowID, fieldName: 'Chapter', location: ourRowLocation from tn-table-row-check.js line 359
+ 823, `Invalid large chapter number`, extract: C, rowID, fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 366
+ 822, "Unable to check chapter number", extract: C, rowID, fieldName: 'Chapter', location: ourRowLocation from tn-table-row-check.js line 369
+ 822, "Expected field to contain an integer", lineNumber, characterIndex: 3, extract: `\\c $rest`, C, V, location: lineLocation from usfm-text-check.js line 721
+ 822, "Expected field to contain an integer", characterIndex: 3, extract: `\\v $rest`, C, V, location: lineLocation from usfm-text-check.js line 725
+ 822, "Unable to check chapter number", extract: C, rowID, fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 379
+ 821, "Bad chapter number", extract: C, rowID, fieldName: 'Chapter', location: ourRowLocation from tn-table-row-check.js line 374
+ 821, "Bad chapter number", extract: C, rowID, fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 385
+ 820, "Missing chapter number", rowID, fieldName: 'Chapter', location: ` ?:$V$ourRowLocation` from tn-table-row-check.js line 377
+ 820, "Missing chapter number", rowID, fieldName: 'Reference', location: ` ?:$V$ourRowLocation` from annotation-row-check.js line 388
+ 819, "Missing compulsory USFM line", extract: `missing \\$compulsoryMarker`, location: fileLocation from usfm-text-check.js line 546
+ 814, "Invalid zero verse number", rowID, fieldName: 'Verse', extract: V, location: ourRowLocation from tn-table-row-check.js line 386
+ 814, "Invalid zero verse number", rowID, fieldName: 'Reference', extract: V, location: ourRowLocation from annotation-row-check.js line 397
+ 813, "Invalid large verse number", rowID, fieldName: 'Verse', extract: V, location: ourRowLocation from tn-table-row-check.js line 390
+ 813, "Invalid large verse number", rowID, fieldName: 'Reference', extract: V, location: ourRowLocation from annotation-row-check.js line 401
+ 812, "Unable to check verse number", rowID, fieldName: 'Verse', location: ourRowLocation from tn-table-row-check.js line 392
+ 812, "Unable to check verse number", rowID, fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 403
+ 811, "Bad verse number", rowID, fieldName: 'Verse', location: ` '$V'$ourRowLocation` from tn-table-row-check.js line 396
+ 811, "Bad verse number", rowID, fieldName: 'Reference', location: ` '$V'$ourRowLocation` from annotation-row-check.js line 407
+ 810, "Missing verse number", rowID, fieldName: 'Verse', location: ` after $C:?$ourRowLocation` from tn-table-row-check.js line 399
+ 810, "Missing verse number", rowID, fieldName: 'Reference', location: ` after $C:?$ourRowLocation` from annotation-row-check.js line 410
+ 792, `Invalid occurrence field`, fieldName: 'Occurrence', rowID, extract: occurrence, location: ourRowLocation from tn-table-row-check.js line 467
+ 792, `Invalid occurrence field`, fieldName: 'Occurrence', rowID, extract: occurrence, location: ourRowLocation from annotation-row-check.js line 483
+ 791, `Missing occurrence field`, fieldName: 'Occurrence', rowID, location: ourRowLocation from tn-table-row-check.js line 472
+ 791, `Missing occurrence field`, fieldName: 'Occurrence', rowID, location: ourRowLocation from annotation-row-check.js line 488
790, C, V, "Missing verse number", rowID, lineNumber: n + 1, location: ` after $C:$lastV$ourLocation` from tn-table-text-check.js line 204
- 790, C, V, "Missing verse number", rowID, lineNumber: n + 1, location: ` after $C:$lastV$ourLocation` from annotation-table-check.js line 205
- 788, "Only 'Just-In-Time Training' TA articles allowed here", fieldName: 'SupportReference', extract: supportReference, rowID, location: ourRowLocation from tn-table-row-check.js line 423
- 788, "Only 'Just-In-Time Training' TA articles allowed here", fieldName: 'SupportReference', extract: supportReference, rowID, location: ourRowLocation from annotation-row-check.js line 437
- 787, "Link to TA should also be in OccurrenceNote", fieldName: 'SupportReference', extract: supportReference, rowID, location: ourRowLocation from tn-table-row-check.js line 427
- 787, "Link to TA should also be in Annotation", fieldName: 'SupportReference', extract: supportReference, rowID, location: ourRowLocation from annotation-row-check.js line 441
- 786, "Link to TA should also be in SupportReference", details, rowID, fieldName: 'OccurrenceNote', extract: regexResultArray[1], location: ourRowLocation from tn-table-row-check.js line 495
- 786, "Link to TA should also be in SupportReference", details, rowID, fieldName: 'Annotation', extract: adjustedLink, location: ourRowLocation from annotation-row-check.js line 497
- 779, "Missing row ID field", fieldName: 'Verse', location: ourRowLocation from tn-table-row-check.js line 395
- 779, "Missing row ID field", fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 404
- 778, "Row ID should be exactly 4 characters", details: `(not $rowID.length)`, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from tn-table-row-check.js line 398
- 778, "Row ID should be exactly 4 characters", details: `(not $rowID.length)`, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from annotation-row-check.js line 407
- 777, `Bad nesting: $char closing character doesn't match`, details, lineNumber: n, characterIndex, extract, location: ourLocation from plain-text-check.js line 156
- 776, 'Unexpected " straight quote character', details, lineNumber, C, V, extract, location: lineLocation from usfm-text-check.js line 677
- 775, "Unexpected ' straight quote character", details, lineNumber, C, V, extract, location: lineLocation from usfm-text-check.js line 682
- 774, `Unexpected $char closing character (no matching opener)`, lineNumber: n, characterIndex, extract, location: ourLocation from plain-text-check.js line 161
- 773, `Unexpected trailing zero-width joiner`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 140
- 772, `Unexpected trailing word joiner`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 136
- 771, `Unexpected leading zero-width joiner`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 130
- 770, `Unexpected leading word joiner`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 126
- 769, C, V, "Verse bridge numbers not in ascending order", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, Math.max(9, extractLength))$rest.length > extractLength ? '…' : '' ($firstV → $secondV)`, location: ourLocation from usfm-text-check.js line 867
- 766, C, V, "Bridged verse numbers didn't increment correctly", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, Math.max(9, extractLength))$rest.length > extractLength ? '…' : '' ($lastV → $firstV)`, location: ourLocation from usfm-text-check.js line 869
- 765, "Unexpected link", characterIndex, extract, location: ourLocation from field-text-check.js line 302
- 764, C, V, "Chapter number didn't increment correctly", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, halfLength)$rest.length > halfLength ? '…' : '' ($lastC ? lastC : '0' → $C)`, location: ourLocation from usfm-text-check.js line 840
- 763, C, V, "Verse number didn't increment correctly", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, halfLength)$rest.length > halfLength ? '…' : '' ($lastV ? lastV : '0' → $V)`, location: ourLocation from usfm-text-check.js line 853
- 762, "Unable to convert verse bridge numbers to integers", C: chapterNumberString, V: verseNumberString, characterIndex: 3, extract: verseNumberString, location: `$CVlocation with $usfmVIerror` from usfm-text-check.js line 394
- 762, C, V, "Unable to convert verse bridge numbers to integers", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, Math.max(9, extractLength))$rest.length > extractLength ? '…' : ''`, location: ourLocation from usfm-text-check.js line 863
- 761, C, V, "Verse number didn't increment correctly", lineNumber: n, characterIndex: 3, extract: `$restRest.substring(0, halfLength)$restRest.length > halfLength ? '…' : '' ($lastV ? lastV : '0' → $V)`, location: ourLocation from usfm-text-check.js line 884
- 751, "Invalid zero occurrence field when we have an original quote", fieldName: 'Occurrence', rowID, extract: occurrence, location: ourRowLocation from tn-table-row-check.js line 450
- 751, "Invalid zero occurrence field when we have an original quote", fieldName: 'Occurrence', rowID, extract: occurrence, location: ourRowLocation from annotation-row-check.js line 464
- 750, "Missing occurrence field when we have an original quote", fieldName: 'Occurrence', rowID, location: ourRowLocation from tn-table-row-check.js line 441
- 750, "Missing occurrence field when we have an original quote", fieldName: 'Occurrence', rowID, location: ourRowLocation from annotation-row-check.js line 455
+ 790, C, V, "Missing verse number", rowID, lineNumber: n + 1, location: ` after $C:$lastV$ourLocation` from annotation-table-check.js line 206
+ 788, "Only 'Just-In-Time Training' TA articles allowed here", fieldName: 'SupportReference', extract: supportReference, rowID, location: ourRowLocation from tn-table-row-check.js line 430
+ 788, "Only 'Just-In-Time Training' TA articles allowed here", fieldName: 'SupportReference', extract: supportReference, rowID, location: ourRowLocation from annotation-row-check.js line 446
+ 787, "Link to TA should also be in OccurrenceNote", fieldName: 'SupportReference', extract: supportReference, rowID, location: ourRowLocation from tn-table-row-check.js line 435
+ 787, "Link to TA should also be in Annotation", fieldName: 'SupportReference', extract: supportReference, rowID, location: ourRowLocation from annotation-row-check.js line 451
+ 786, "Link to TA should also be in SupportReference", details, rowID, fieldName: 'OccurrenceNote', extract: regexResultArray[1], location: ourRowLocation from tn-table-row-check.js line 503
+ 786, "Link to TA should also be in SupportReference", details, rowID, fieldName: 'Annotation', extract: adjustedLink, location: ourRowLocation from annotation-row-check.js line 507
+ 779, "Missing row ID field", fieldName: 'Verse', location: ourRowLocation from tn-table-row-check.js line 402
+ 779, "Missing row ID field", fieldName: 'Reference', location: ourRowLocation from annotation-row-check.js line 413
+ 778, "Row ID should be exactly 4 characters", details: `(not $rowID.length)`, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from tn-table-row-check.js line 405
+ 778, "Row ID should be exactly 4 characters", details: `(not $rowID.length)`, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from annotation-row-check.js line 416
+ 777, `Bad nesting: $char closing character doesn't match`, details, lineNumber: n, characterIndex, extract, location: ourLocation from plain-text-check.js line 186
+ 776, 'Unexpected " straight quote character', details, lineNumber, C, V, extract, location: lineLocation from usfm-text-check.js line 689
+ 775, "Unexpected ' straight quote character", details, lineNumber, C, V, extract, location: lineLocation from usfm-text-check.js line 694
+ 774, `Unexpected $char closing character (no matching opener)`, lineNumber: n, characterIndex, extract, location: ourLocation from plain-text-check.js line 192
+ 773, `Unexpected trailing zero-width joiner`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 156
+ 772, `Unexpected trailing word joiner`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 152
+ 771, `Unexpected leading zero-width joiner`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 138
+ 770, `Unexpected leading word joiner`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 134
+ 769, C, V, "Verse bridge numbers not in ascending order", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, Math.max(9, extractLength))$rest.length > extractLength ? '…' : '' ($firstV → $secondV)`, location: ourLocation from usfm-text-check.js line 884
+ 766, C, V, "Bridged verse numbers didn't increment correctly", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, Math.max(9, extractLength))$rest.length > extractLength ? '…' : '' ($lastV → $firstV)`, location: ourLocation from usfm-text-check.js line 886
+ 765, "Unexpected link", characterIndex, extract, location: ourLocation from field-text-check.js line 345
+ 764, C, V, "Chapter number didn't increment correctly", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, halfLength)$rest.length > halfLength ? '…' : '' ($lastC ? lastC : '0' → $C)`, location: ourLocation from usfm-text-check.js line 857
+ 763, C, V, "Verse number didn't increment correctly", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, halfLength)$rest.length > halfLength ? '…' : '' ($lastV ? lastV : '0' → $V)`, location: ourLocation from usfm-text-check.js line 870
+ 762, "Unable to convert verse bridge numbers to integers", C: chapterNumberString, V: verseNumberString, characterIndex: 3, extract: verseNumberString, location: `$CVlocation with $usfmVIerror` from usfm-text-check.js line 402
+ 762, C, V, "Unable to convert verse bridge numbers to integers", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, Math.max(9, extractLength))$rest.length > extractLength ? '…' : ''`, location: ourLocation from usfm-text-check.js line 880
+ 761, C, V, "Verse number didn't increment correctly", lineNumber: n, characterIndex: 3, extract: `$restRest.substring(0, halfLength)$restRest.length > halfLength ? '…' : '' ($lastV ? lastV : '0' → $V)`, location: ourLocation from usfm-text-check.js line 901
+ 751, "Invalid zero occurrence field when we have an original quote", fieldName: 'Occurrence', rowID, extract: occurrence, location: ourRowLocation from tn-table-row-check.js line 458
+ 751, "Invalid zero occurrence field when we have an original quote", fieldName: 'Occurrence', rowID, extract: occurrence, location: ourRowLocation from annotation-row-check.js line 474
+ 750, "Missing occurrence field when we have an original quote", fieldName: 'Occurrence', rowID, location: ourRowLocation from tn-table-row-check.js line 449
+ 750, "Missing occurrence field when we have an original quote", fieldName: 'Occurrence', rowID, location: ourRowLocation from annotation-row-check.js line 465
747, "Bad function call: should be given a valid book abbreviation", extract: bookID, location: ` (not '$bookID')$ourLocation` from tn-table-text-check.js line 84
- 747, "Bad function call: should be given a valid book abbreviation", extract: bookID, location: ` (not '$bookID')$ourLocation` from annotation-table-check.js line 87
+ 747, "Bad function call: should be given a valid book abbreviation", extract: bookID, location: ` (not '$bookID')$ourLocation` from annotation-table-check.js line 88
746, "Bad TSV header", lineNumber: n + 1, location: `$ourLocation: '$lines[0]'` from tn-table-text-check.js line 99
- 746, "Bad TSV header", lineNumber: n + 1, location: `$ourLocation: '$lines[0]'` from annotation-table-check.js line 103
+ 746, "Bad TSV header", lineNumber: n + 1, location: `$ourLocation: '$lines[0]'` from annotation-table-check.js line 104
745, C, V, `Wrong '$B' book identifier (expected '$bookID')`, rowID, lineNumber: n + 1, location: ourLocation from tn-table-text-check.js line 154
744, C, V, "Missing book identifier", rowID, lineNumber: n + 1, location: ourLocation from tn-table-text-check.js line 157
- 743, "Chapter numbers of markdown Bible link don't match", details: `$C1 vs $chapterInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 311
- 743, "Chapter numbers of markdown Bible link don't match", details: `$C1 vs $chapterInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 363
- 743, "Chapter numbers of markdown Bible link don't match", details: `$C1 vs $chapterInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 415
- 742, "Verse numbers of markdown Bible link don't match", details: `$V1 vs $verseInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 317
- 742, "Verse numbers of markdown Bible link don't match", details: `$V1 vs $verseInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 369
- 742, "Verse numbers of markdown Bible link don't match", details: `$V1 vs $verseInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 421
+ 743, "Chapter numbers of markdown Bible link don't match", details: `$C1 vs $chapterInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 315
+ 743, "Chapter numbers of markdown Bible link don't match", details: `$C1 vs $chapterInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 367
+ 743, "Chapter numbers of markdown Bible link don't match", details: `$C1 vs $chapterInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 419
+ 742, "Verse numbers of markdown Bible link don't match", details: `$V1 vs $verseInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 321
+ 742, "Verse numbers of markdown Bible link don't match", details: `$V1 vs $verseInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 373
+ 742, "Verse numbers of markdown Bible link don't match", details: `$V1 vs $verseInt`, extract: totalLink, location: ourLocation from tn-links-check.js line 425
739, C, V, "Missing chapter number", rowID, lineNumber: n + 1, location: ` after $lastC:$V$ourLocation` from tn-table-text-check.js line 181
- 739, C, V, "Missing chapter number", rowID, lineNumber: n + 1, location: ` after $lastC:$V$ourLocation` from annotation-table-check.js line 182
+ 739, C, V, "Missing chapter number", rowID, lineNumber: n + 1, location: ` after $lastC:$V$ourLocation` from annotation-table-check.js line 183
738, C, V, "Bad verse number", rowID, lineNumber: n + 1, location: ourLocation from tn-table-text-check.js line 200
- 738, C, V, "Bad verse number", rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 201
+ 738, C, V, "Bad verse number", rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 202
737, C, V, "Invalid large chapter number", rowID, lineNumber: n + 1, extract: C, location: ourLocation from tn-table-text-check.js line 168
- 737, C, V, "Invalid large chapter number", rowID, lineNumber: n + 1, extract: C, location: ourLocation from annotation-table-check.js line 169
+ 737, C, V, "Invalid large chapter number", rowID, lineNumber: n + 1, extract: C, location: ourLocation from annotation-table-check.js line 170
736, C, V, "Receding chapter number", details: `'$C' after '$lastC'`, rowID, lineNumber: n + 1, location: ourLocation from tn-table-text-check.js line 172
- 736, C, V, "Receding chapter number", details: `'$C' after '$lastC'`, rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 173
+ 736, C, V, "Receding chapter number", details: `'$C' after '$lastC'`, rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 174
735, C, V, "Advancing chapter number", details: `'$C' after '$lastC'`.rowID, lineNumber: n + 1, location: ourLocation from tn-table-text-check.js line 174
- 735, C, V, "Advancing chapter number", details: `'$C' after '$lastC'`.rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 175
+ 735, C, V, "Advancing chapter number", details: `'$C' after '$lastC'`.rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 176
734, C, V, "Bad chapter number", rowID, lineNumber: n + 1, location: ourLocation from tn-table-text-check.js line 178
734, C, V, "Invalid large verse number", details: `for chapter $C`, rowID, lineNumber: n + 1, extract: V, location: ourLocation from tn-table-text-check.js line 190
- 734, C, V, "Bad chapter number", rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 179
- 734, C, V, "Invalid large verse number", details: `for chapter $C`, rowID, lineNumber: n + 1, extract: V, location: ourLocation from annotation-table-check.js line 191
+ 734, C, V, "Bad chapter number", rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 180
+ 734, C, V, "Invalid large verse number", details: `for chapter $C`, rowID, lineNumber: n + 1, extract: V, location: ourLocation from annotation-table-check.js line 192
733, C, V, "Receding verse number", details: `'$V' after '$lastV for chapter $C`, rowID, lineNumber: n + 1, extract: V, location: ourLocation from tn-table-text-check.js line 194
- 733, C, V, "Receding verse number", details: `'$V' after '$lastV for chapter $C`, rowID, lineNumber: n + 1, extract: V, location: ourLocation from annotation-table-check.js line 195
+ 733, C, V, "Receding verse number", details: `'$V' after '$lastV for chapter $C`, rowID, lineNumber: n + 1, extract: V, location: ourLocation from annotation-table-check.js line 196
730, C, V, "Missing ID", fieldName: 'ID', lineNumber: n + 1, location: ourLocation from tn-table-text-check.js line 210
- 730, C, V, "Missing ID", fieldName: 'ID', lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 211
+ 730, C, V, "Missing ID", fieldName: 'ID', lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 212
729, C, V, `Duplicate '$rowID' ID`, fieldName: 'ID', rowID, lineNumber: n + 1, location: ourLocation from tn-table-text-check.js line 208
- 729, C, V, `Duplicate '$rowID' ID`, fieldName: 'ID', rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 209
- 724, C, V, "Unable to convert chapter number to integer", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, halfLength)$rest.length > halfLength ? '…' : ''`, location: ourLocation from usfm-text-check.js line 836
- 723, C, V, "Unable to convert verse number to integer", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, halfLength)$rest.length > halfLength ? '…' : ''`, location: ourLocation from usfm-text-check.js line 849
- 721, "Unable to find original language quote in verse text", extract, location: ourLocation from orig-quote-check.js line 292
- 720, C, V, "Unable to convert internal verse number to integer", lineNumber: n, characterIndex: 3, extract: `$restRest.substring(0, halfLength)$restRest.length > halfLength ? '…' : ''`, location: ourLocation from usfm-text-check.js line 880
- 711, "Expected compulsory content", C, V, lineNumber, characterIndex: marker.length, location: ` after \\$marker marker$lineLocation` from usfm-text-check.js line 732
- 703, C, V, "Unexpected CarriageReturn character", lineNumber: n, characterIndex, extract, location: ourLocation from usfm-text-check.js line 800
- 655, "Bad chapter number in markdown Bible link", details: `$linkBookCode $chapterInt vs $numChaptersThisBook chapters`, extract: totalLink, location: ourLocation from tn-links-check.js line 333
- 655, "Bad chapter number in markdown Bible link", details: `$linkBookCode $chapterInt vs $numChaptersThisBook chapters`, extract: totalLink, location: ourLocation from tn-links-check.js line 385
- 655, "Bad chapter number in markdown Bible link", details: `$linkBookCode $chapterInt vs $numChaptersThisBook chapters`, extract: totalLink, location: ourLocation from tn-links-check.js line 437
- 653, "Bad verse number in markdown Bible link", details: `$linkBookCode $chapterInt:$verseInt vs $numVersesThisChapter verses`, extract: totalLink, location: ourLocation from tn-links-check.js line 335
- 653, "Bad verse number in markdown Bible link", details: `$linkBookCode $chapterInt:$verseInt vs $numVersesThisChapter verses`, extract: totalLink, location: ourLocation from tn-links-check.js line 387
- 653, "Bad verse number in markdown Bible link", details: `$linkBookCode $chapterInt:$verseInt vs $numVersesThisChapter verses`, extract: totalLink, location: ourLocation from tn-links-check.js line 439
- 649, "More [[ ]] links than valid TA/TW links", details: `detected $totalLinks2 link$totalLinks2 === 1 ? '' : 's' but $twaLinkCount ? `only $twaLinkCount` : 'no' TA/TW link$twaLinkCount === 1 ? '' : 's' from $JSON.stringify(linksList2)`, location: ourLocation from tn-links-check.js line 449
- 648, "More [ ]( ) links than valid Bible links", details: `detected $totalLinks1 link$totalLinks1 === 1 ? '' : 's' but $BibleLinkCount ? `only $BibleLinkCount` : 'no' Bible link$BibleLinkCount === 1 ? '' : 's' from $JSON.stringify(linksList1)`, location: ourLocation from tn-links-check.js line 446
- 644, "USFM3 Grammar Check (relaxed mode) doesn't pass either", location: fileLocation from usfm-text-check.js line 229
- 638, "Only found whitespace", location: ourLocation from field-text-check.js line 93
- 638, "Only found whitespace", location: ourLocation from plain-text-check.js line 117
- 621, "Seems original language quote might not finish at the end of a word", details: `passage ⸢$verseText⸣`, characterIndex: fieldText.length, extract, location: ourLocation from orig-quote-check.js line 327
- 620, "Seems original language quote might not start at the beginning of a word", details: `passage ⸢$verseText⸣`, characterIndex: 0, extract, location: ourLocation from orig-quote-check.js line 319
- 603, "USFM marker doesn't end with space", C, V, lineNumber, characterIndex, extract, location: ourLocation from usfm-text-check.js line 770
+ 729, C, V, `Duplicate '$rowID' ID`, fieldName: 'ID', rowID, lineNumber: n + 1, location: ourLocation from annotation-table-check.js line 210
+ 724, C, V, "Unable to convert chapter number to integer", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, halfLength)$rest.length > halfLength ? '…' : ''`, location: ourLocation from usfm-text-check.js line 853
+ 723, C, V, "Unable to convert verse number to integer", lineNumber: n, characterIndex: 3, extract: `$rest.substring(0, halfLength)$rest.length > halfLength ? '…' : ''`, location: ourLocation from usfm-text-check.js line 866
+ 721, "Unable to find original language quote in verse text", extract, location: ourLocation from orig-quote-check.js line 297
+ 720, C, V, "Unable to convert internal verse number to integer", lineNumber: n, characterIndex: 3, extract: `$restRest.substring(0, halfLength)$restRest.length > halfLength ? '…' : ''`, location: ourLocation from usfm-text-check.js line 897
+ 711, "Expected compulsory content", C, V, lineNumber, characterIndex: marker.length, location: ` after \\$marker marker$lineLocation` from usfm-text-check.js line 749
+ 703, C, V, "Unexpected CarriageReturn character", lineNumber: n, characterIndex, extract, location: ourLocation from usfm-text-check.js line 817
+ 655, "Bad chapter number in markdown Bible link", details: `$linkBookCode $chapterInt vs $numChaptersThisBook chapters`, extract: totalLink, location: ourLocation from tn-links-check.js line 337
+ 655, "Bad chapter number in markdown Bible link", details: `$linkBookCode $chapterInt vs $numChaptersThisBook chapters`, extract: totalLink, location: ourLocation from tn-links-check.js line 389
+ 655, "Bad chapter number in markdown Bible link", details: `$linkBookCode $chapterInt vs $numChaptersThisBook chapters`, extract: totalLink, location: ourLocation from tn-links-check.js line 441
+ 653, "Bad verse number in markdown Bible link", details: `$linkBookCode $chapterInt:$verseInt vs $numVersesThisChapter verses`, extract: totalLink, location: ourLocation from tn-links-check.js line 339
+ 653, "Bad verse number in markdown Bible link", details: `$linkBookCode $chapterInt:$verseInt vs $numVersesThisChapter verses`, extract: totalLink, location: ourLocation from tn-links-check.js line 391
+ 653, "Bad verse number in markdown Bible link", details: `$linkBookCode $chapterInt:$verseInt vs $numVersesThisChapter verses`, extract: totalLink, location: ourLocation from tn-links-check.js line 443
+ 649, "More [[ ]] links than valid TA/TW links", details: `detected $totalLinks2 link$totalLinks2 === 1 ? '' : 's' but $twaLinkCount ? `only $twaLinkCount` : 'no' TA/TW link$twaLinkCount === 1 ? '' : 's' from $JSON.stringify(linksList2)`, location: ourLocation from tn-links-check.js line 453
+ 648, "More [ ]( ) links than valid Bible links", details: `detected $totalLinks1 link$totalLinks1 === 1 ? '' : 's' but $BibleLinkCount ? `only $BibleLinkCount` : 'no' Bible link$BibleLinkCount === 1 ? '' : 's' from $JSON.stringify(linksList1)`, location: ourLocation from tn-links-check.js line 450
+ 644, "USFM3 Grammar Check (relaxed mode) doesn't pass either", location: fileLocation from usfm-text-check.js line 237
+ 638, "Only found whitespace", location: ourLocation from field-text-check.js line 100
+ 638, "Only found whitespace", location: ourLocation from plain-text-check.js line 120
+ 621, "Seems original language quote might not finish at the end of a word", details: `passage ⸢$verseText⸣`, characterIndex: fieldText.length, extract, location: ourLocation from orig-quote-check.js line 332
+ 620, "Seems original language quote might not start at the beginning of a word", details: `passage ⸢$verseText⸣`, characterIndex: 0, extract, location: ourLocation from orig-quote-check.js line 324
+ 603, "USFM marker doesn't end with space", C, V, lineNumber, characterIndex, extract, location: ourLocation from usfm-text-check.js line 787
601, "Unable to load", details: `username=$username error=$gcUHBerror`, OBSPathname, location: ourLocation, extra: OBSRepoName from orig-quote-check.js line 99
601, "Unable to load", details: `username=$username error=$gcUHBerror`, filename, location: ourLocation, extra: originalLanguageRepoName from orig-quote-check.js line 131
601, "Unable to load", details: `username=$username error=$gcUGNTerror`, filename, location: ourLocation, extra: originalLanguageRepoName from orig-quote-check.js line 139
- 600, `$regexResultsArray.length link target$regexResultsArray.length === 1 ? ' is' : 's are' still being checked…`, location: ourAtString from field-link-check.js line 139
- 583, "Unexpected newLine character", characterIndex, extract, location: ourLocation from field-text-check.js line 185
- 582, "Unexpected carriageReturn character", characterIndex, extract, location: ourLocation from field-text-check.js line 190
- 581, "Unexpected non-break space character", characterIndex, extract, location: ourLocation from field-text-check.js line 195
- 580, "Unexpected narrow non-break space character", characterIndex, extract, location: ourLocation from field-text-check.js line 200
+ 600, `$regexResultsArray.length link target$regexResultsArray.length === 1 ? ' is' : 's are' still being checked…`, location: ourLocation from field-link-check.js line 151
+ 583, "Unexpected newLine character", characterIndex, extract, location: ourLocation from field-text-check.js line 205
+ 582, "Unexpected carriageReturn character", characterIndex, extract, location: ourLocation from field-text-check.js line 210
+ 581, "Unexpected non-break space character", characterIndex, extract, location: ourLocation from field-text-check.js line 215
552, C, V, "Invalid zero verse number", details: `for chapter $C`, rowID, lineNumber: n + 1, extract: V, location: ourLocation from tn-table-text-check.js line 188
- 552, C, V, "Invalid zero verse number", details: `for chapter $C`, rowID, lineNumber: n + 1, extract: V, location: ourLocation from annotation-table-check.js line 189
+ 552, C, V, "Invalid zero verse number", details: `for chapter $C`, rowID, lineNumber: n + 1, extract: V, location: ourLocation from annotation-table-check.js line 190
551, C, V, `Invalid zero chapter number`, rowID, lineNumber: n + 1, extract: C, location: ourLocation from tn-table-text-check.js line 166
- 551, C, V, `Invalid zero chapter number`, rowID, lineNumber: n + 1, extract: C, location: ourLocation from annotation-table-check.js line 167
- 519, "Missing expected USFM line", extract: `missing \\$expectedMarker`, location: fileLocation from usfm-text-check.js line 538
- 518, "Missing expected USFM line", extract: `missing \\$expectedMarker`, location: fileLocation from usfm-text-check.js line 546
- 517, "Missing expected USFM line", extract: `missing \\$expectedMarker`, location: fileLocation from usfm-text-check.js line 542
- 472, "Nesting of header levels seems confused", lineNumber: n, characterIndex: 0, location: ourLocation from markdown-text-check.js line 158
+ 551, C, V, `Invalid zero chapter number`, rowID, lineNumber: n + 1, extract: C, location: ourLocation from annotation-table-check.js line 168
+ 538, "File ends without newline character", characterIndex, extract, location: ourLocation from plain-text-check.js line 142
+ 519, "Missing expected USFM line", extract: `missing \\$expectedMarker`, location: fileLocation from usfm-text-check.js line 550
+ 518, "Missing expected USFM line", extract: `missing \\$expectedMarker`, location: fileLocation from usfm-text-check.js line 558
+ 517, "Missing expected USFM line", extract: `missing \\$expectedMarker`, location: fileLocation from usfm-text-check.js line 554
+ 472, "Nesting of header levels seems confused", lineNumber: n, characterIndex: 0, location: ourLocation from markdown-text-check.js line 186
450, "Resource container link should have '*' language code", details: `(not '$languageCode')`, characterIndex, extract, location: ourLocation from tn-links-check.js line 198
- 441, `Unknown linkType parameter`, extract: linkType from field-link-check.js line 121
+ 441, `Unknown linkType parameter`, extract: linkType from field-link-check.js line 133
439, "Error fetching link", location: ` $fetchLink` from field-link-check.js line 43
- 438, `Blank field / missing link (expected $linkOptions.expectedCount link$linkOptions.expectedCount === 1 ? "" : "s")`, location: ourAtString from field-link-check.js line 93
- 401, `Unexpected content after \\$marker marker`, C, V, lineNumber, characterIndex: marker.length, extract: rest, location: lineLocation from usfm-text-check.js line 730
- 399, C, V, "Useless paragraph marker", lineNumber: n, characterIndex: 1, details: `('\\$lastMarker' before '\\$marker')`, location: ourLocation from usfm-text-check.js line 904
- 375, "Ellipsis without surrounding snippet", location: ourLocation from orig-quote-check.js line 296
- 374, "Field contains zero-width space(s)", fieldName: 'SupportReference', rowID, location: ourRowLocation from tn-table-row-check.js line 430
- 374, "Field contains zero-width space(s)", fieldName: 'GLQuote', rowID, location: ourRowLocation from tn-table-row-check.js line 470
- 374, "Field contains zero-width space(s)", fieldName: 'OccurrenceNote', rowID, location: ourRowLocation from tn-table-row-check.js line 483
- 374, "Field contains zero-width space(s)", fieldName: 'SupportReference', rowID, location: ourRowLocation from annotation-row-check.js line 444
- 374, "Field contains zero-width space(s)", fieldName: 'Annotation', rowID, location: ourRowLocation from annotation-row-check.js line 484
- 373, "Field is only whitespace", fieldName: 'SupportReference', rowID, location: ourRowLocation from tn-table-row-check.js line 416
- 373, "Field is only whitespace", fieldName: 'GLQuote', rowID, location: ourRowLocation from tn-table-row-check.js line 472
- 373, "Field is only whitespace", fieldName: 'OccurrenceNote', rowID, location: ourRowLocation from tn-table-row-check.js line 485
- 373, "Field is only whitespace", fieldName: 'SupportReference', rowID, location: ourRowLocation from annotation-row-check.js line 428
- 373, "Field is only whitespace", fieldName: 'Annotation', rowID, location: ourRowLocation from annotation-row-check.js line 486
- 312, 'Possible unclosed footnote', details, lineNumber, C, V, location: lineLocation from usfm-text-check.js line 611
- 301, `Unexpected whitespace after \\$marker marker`, C, V, lineNumber, characterIndex: marker.length, extract: rest, location: lineLocation from usfm-text-check.js line 728
- 287, `Not enough links (expected $linkOptions.expectedCount link$linkOptions.expectedCount === 1 ? "" : "s")`, location: ` (only found $regexResultsArray.length)$ourAtString` from field-link-check.js line 135
- 274, "Missing OccurrenceNote field", fieldName: 'OccurrenceNote', rowID, location: ourRowLocation from tn-table-row-check.js line 501
- 274, "Missing Annotation field", fieldName: 'Annotation', rowID, location: ourRowLocation from annotation-row-check.js line 504
- 218, "Using deprecated USFM marker", extract: `\\$deprecatedMarker`, location: fileLocation from usfm-text-check.js line 549
- 195, `Unexpected $punctChar character at start of line`, characterIndex, extract, location: ourLocation from field-text-check.js line 249
- 194, "Unexpected double spaces", characterIndex, extract, location: ourLocation from field-text-check.js line 181
- 193, `Unexpected $punctChar character at end of line`, characterIndex, extract, location: ourLocation from field-text-check.js line 270
- 192, `Unexpected space after $punctChar character`, characterIndex, extract, location: ourLocation from field-text-check.js line 265
- 191, `Unexpected $punctChar character after space`, characterIndex, extract, location: ourLocation from field-text-check.js line 244
- 179, "Unexpected space before ellipse character", characterIndex, extract, location: ourLocation from field-text-check.js line 206
- 178, "Unexpected space after ellipse character", characterIndex, extract, location: ourLocation from field-text-check.js line 211
- 177, `Unexpected doubled $punctChar characters`, characterIndex, extract, location: ourLocation from field-text-check.js line 230
- 176, "Row ID should start with a lowercase letter or digit", characterIndex: 0, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from tn-table-row-check.js line 405
- 176, "Row ID should start with a lowercase letter or digit", characterIndex: 0, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from annotation-row-check.js line 414
- 175, "Row ID should end with a lowercase letter or digit", characterIndeX: 3, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from tn-table-row-check.js line 407
- 175, "Row ID should end with a lowercase letter or digit", characterIndeX: 3, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from annotation-row-check.js line 416
- 174, "Row ID characters should only be lowercase letters, digits, or hypen", fieldName: 'ID', characterIndex: 1, rowID, extract: rowID, location: ourRowLocation from tn-table-row-check.js line 409
- 174, "Row ID characters should only be lowercase letters, digits, or hypen", fieldName: 'ID', characterIndex: 1, rowID, extract: rowID, location: ourRowLocation from annotation-row-check.js line 418
- 173, "Row ID characters should only be lowercase letters, digits, or hypen", fieldName: 'ID', characterIndex: 2, rowID, extract: rowID, location: ourRowLocation from tn-table-row-check.js line 411
- 173, "Row ID characters should only be lowercase letters, digits, or hypen", fieldName: 'ID', characterIndex: 2, rowID, extract: rowID, location: ourRowLocation from annotation-row-check.js line 420
- 172, "Header levels should only increment by one", lineNumber: n, characterIndex: 0, location: ourLocation from markdown-text-check.js line 151
+ 438, `Blank field / missing link (expected $linkOptions.expectedCount link$linkOptions.expectedCount === 1 ? "" : "s")`, location: ourLocation from field-link-check.js line 105
+ 401, `Unexpected content after \\$marker marker`, C, V, lineNumber, characterIndex: marker.length, extract: rest, location: lineLocation from usfm-text-check.js line 747
+ 399, C, V, "Useless paragraph marker", lineNumber: n, characterIndex: 1, details: `('\\$lastMarker' before '\\$marker')`, location: ourLocation from usfm-text-check.js line 921
+ 375, "Ellipsis without surrounding snippet", location: ourLocation from orig-quote-check.js line 301
+ 374, "Field contains zero-width space(s)", fieldName: 'SupportReference', rowID, location: ourRowLocation from tn-table-row-check.js line 438
+ 374, "Field contains zero-width space(s)", fieldName: 'GLQuote', rowID, location: ourRowLocation from tn-table-row-check.js line 478
+ 374, "Field contains zero-width space(s)", fieldName: 'OccurrenceNote', rowID, location: ourRowLocation from tn-table-row-check.js line 491
+ 374, "Field contains zero-width space(s)", fieldName: 'SupportReference', rowID, location: ourRowLocation from annotation-row-check.js line 454
+ 374, "Field contains zero-width space(s)", fieldName: 'Annotation', rowID, location: ourRowLocation from annotation-row-check.js line 494
+ 373, "Field is only whitespace", fieldName: 'SupportReference', rowID, location: ourRowLocation from tn-table-row-check.js line 423
+ 373, "Field is only whitespace", fieldName: 'GLQuote', rowID, location: ourRowLocation from tn-table-row-check.js line 480
+ 373, "Field is only whitespace", fieldName: 'OccurrenceNote', rowID, location: ourRowLocation from tn-table-row-check.js line 493
+ 373, "Field is only whitespace", fieldName: 'SupportReference', rowID, location: ourRowLocation from annotation-row-check.js line 437
+ 373, "Field is only whitespace", fieldName: 'Annotation', rowID, location: ourRowLocation from annotation-row-check.js line 496
+ 312, 'Possible unclosed footnote', details, lineNumber, C, V, location: lineLocation from usfm-text-check.js line 623
+ 301, `Unexpected whitespace after \\$marker marker`, C, V, lineNumber, characterIndex: marker.length, extract: rest, location: lineLocation from usfm-text-check.js line 745
+ 287, `Not enough links (expected $linkOptions.expectedCount link$linkOptions.expectedCount === 1 ? "" : "s")`, location: ` (only found $regexResultsArray.length)$ourLocation` from field-link-check.js line 147
+ 274, "Missing OccurrenceNote field", fieldName: 'OccurrenceNote', rowID, location: ourRowLocation from tn-table-row-check.js line 509
+ 274, "Missing Annotation field", fieldName: 'Annotation', rowID, location: ourRowLocation from annotation-row-check.js line 514
+ 218, "Using deprecated USFM marker", extract: `\\$deprecatedMarker`, location: fileLocation from usfm-text-check.js line 561
+ 195, `Unexpected $punctChar character at start of line`, characterIndex, extract, location: ourLocation from field-text-check.js line 276
+ 179, "Unexpected space before ellipse character", characterIndex, extract, location: ourLocation from field-text-check.js line 228
+ 178, "Unexpected space after ellipse character", characterIndex, extract, location: ourLocation from field-text-check.js line 233
+ 176, "Row ID should start with a lowercase letter", characterIndex: 0, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from tn-table-row-check.js line 412
+ 176, "Row ID should start with a lowercase letter", characterIndex: 0, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from annotation-row-check.js line 423
+ 175, "Row ID should end with a lowercase letter or digit", characterIndeX: 3, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from tn-table-row-check.js line 414
+ 175, "Row ID should end with a lowercase letter or digit", characterIndeX: 3, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation from annotation-row-check.js line 425
+ 174, "Row ID characters should only be lowercase letters, digits, or hypen", fieldName: 'ID', characterIndex: 1, rowID, extract: rowID, location: ourRowLocation from tn-table-row-check.js line 416
+ 174, "Row ID characters should only be lowercase letters, digits, or hypen", fieldName: 'ID', characterIndex: 1, rowID, extract: rowID, location: ourRowLocation from annotation-row-check.js line 427
+ 173, "Row ID characters should only be lowercase letters, digits, or hypen", fieldName: 'ID', characterIndex: 2, rowID, extract: rowID, location: ourRowLocation from tn-table-row-check.js line 418
+ 173, "Row ID characters should only be lowercase letters, digits, or hypen", fieldName: 'ID', characterIndex: 2, rowID, extract: rowID, location: ourRowLocation from annotation-row-check.js line 429
+ 172, "Header levels should only increment by one", lineNumber: n, characterIndex: 0, location: ourLocation from markdown-text-check.js line 179
159, "Should use proper ellipse character (not periods)", characterIndex, extract, location: ourLocation from orig-quote-check.js line 237
158, "Unexpected space(s) beside ellipse character", characterIndex, extract, location: ourLocation from orig-quote-check.js line 246
157, "Unexpected space(s) beside ↔ divider character", characterIndex, extract, location: ourLocation from orig-quote-check.js line 253
156, "Unexpected space(s) beside ellipse characters", characterIndex, extract, location: ourLocation from orig-quote-check.js line 260
- 148, "'checking' key is missing", location: ourLocation from manifest-text-check.js line 622
- 143, "Unknown Bible book name in link", details: totalLink, extract: optionalB1, location: ourLocation from tn-links-check.js line 302
- 143, "Unknown Bible book name in link", details: totalLink, extract: optionalB1, location: ourLocation from tn-links-check.js line 354
- 143, "Unknown Bible book name in link", details: totalLink, extract: optionalB1, location: ourLocation from tn-links-check.js line 406
- 111, `Bad options for checkFieldLinks: expectedCount=$linkOptions.expectedCount but allowedCount=$linkOptions.allowedCount` from field-link-check.js line 103
- 110, `Unexpected leading spaces`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 121
- 109, `Unexpected leading space`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 123
- 107, "Unexpected leading line break", characterIndex: 0, extract, location: ourLocation from field-text-check.js line 149
- 104, "Unexpected trailing line break", characterIndex: fieldText.length - 1, extract, location: ourLocation from field-text-check.js line 173
- 103, `USFMGrammar: $warningString.trim()`, location from usfm-text-check.js line 944
- 102, `USFMGrammar: $warningString`, location: fileLocation from usfm-text-check.js line 223
+ 148, "'checking' key is missing", location: ourLocation from manifest-text-check.js line 623
+ 143, "Unknown Bible book name in link", details: totalLink, extract: optionalB1, location: ourLocation from tn-links-check.js line 306
+ 143, "Unknown Bible book name in link", details: totalLink, extract: optionalB1, location: ourLocation from tn-links-check.js line 358
+ 143, "Unknown Bible book name in link", details: totalLink, extract: optionalB1, location: ourLocation from tn-links-check.js line 410
+ 138, "File ends with additional blank line(s)", characterIndex, extract, location: ourLocation from plain-text-check.js line 147
+ 111, `Bad options for checkFieldLinks: expectedCount=$linkOptions.expectedCount but allowedCount=$linkOptions.allowedCount` from field-link-check.js line 115
+ 110, `Unexpected leading spaces`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 129
+ 109, `Unexpected leading space`, characterIndex: 0, extract, location: ourLocation from field-text-check.js line 131
+ 107, "Unexpected leading line break", characterIndex: 0, extract, location: ourLocation from field-text-check.js line 165
+ 104, "Unexpected trailing line break", characterIndex: fieldText.length - 1, extract, location: ourLocation from field-text-check.js line 191
+ 103, `USFMGrammar: $warningString.trim()`, location from usfm-text-check.js line 961
+ 102, `USFMGrammar: $warningString`, location: fileLocation from usfm-text-check.js line 231
101, `USFMGrammar: $warningString`, filename, location: ourLocation from BCS-usfm-grammar-check.js line 185
- 95, "Unexpected trailing space(s)", characterIndex: fieldText.length - 1, extract, location: ourLocation from field-text-check.js line 158
- 94, "Unexpected trailing space(s) before break", characterIndex, extract, location: ourLocation from field-text-check.js line 162
- 93, "Unexpected trailing space(s) before line break", characterIndex, extract, location: ourLocation from field-text-check.js line 166
- 87, C, V, "Expected \\toc2 line to follow \\toc1", lineNumber: n, characterIndex: 1, details: `(not '\\$lastMarker')`, location: ourLocation from usfm-text-check.js line 897
- 87, C, V, "Expected \\toc3 line to follow \\toc2", lineNumber: n, characterIndex: 1, details: `(not '\\$lastMarker')`, location: ourLocation from usfm-text-check.js line 899
- 67, C: chapterNumberString, V: `$v`, "Verse appears to be left out", location: CVlocation from usfm-text-check.js line 418
+ 94, "Unexpected trailing space(s) before break", characterIndex, extract, location: ourLocation from field-text-check.js line 180
+ 93, "Unexpected trailing space(s) before line break", characterIndex, extract, location: ourLocation from field-text-check.js line 184
+ 87, C, V, "Expected \\toc2 line to follow \\toc1", lineNumber: n, characterIndex: 1, details: `(not '\\$lastMarker')`, location: ourLocation from usfm-text-check.js line 914
+ 87, C, V, "Expected \\toc3 line to follow \\toc2", lineNumber: n, characterIndex: 1, details: `(not '\\$lastMarker')`, location: ourLocation from usfm-text-check.js line 916
+ 67, C: chapterNumberString, V: `$v`, "Verse appears to be left out", location: CVlocation from usfm-text-check.js line 426
+ 64, "Unexpected leading space(s) after break", characterIndex, extract, location: ourLocation from field-text-check.js line 143
+ 63, "Unexpected leading space(s) after line break", characterIndex, extract, location: ourLocation from field-text-check.js line 147
+ 20, "Note that 'disableAllLinkFetchingFlag' was set so link targets were not checked", location: ourLocation from tn-table-text-check.js line 231
+ 20, "Note that 'disableAllLinkFetchingFlag' was set so link targets were not checked", location: ourLocation from annotation-table-check.js line 233
diff --git a/package.json b/package.json
index 9d8d4ed8..58bb947e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "uw-content-validation",
"description": "Functions for Checking Door43.org Scriptural Content/Resources.",
- "version": "0.9.0",
+ "version": "0.9.1",
"private": false,
"homepage": "https://unfoldingword.github.io/uw-content-validation/",
"repository": {
diff --git a/src/__tests__/__snapshots__/book-package-check.test.js.snap b/src/__tests__/__snapshots__/book-package-check.test.js.snap
index b2eb3e7f..3cb7cd48 100644
--- a/src/__tests__/__snapshots__/book-package-check.test.js.snap
+++ b/src/__tests__/__snapshots__/book-package-check.test.js.snap
@@ -204,118 +204,6 @@ Object {
"repoName": "hbo_uhb",
"username": "unfoldingWord",
},
- Object {
- "bookID": "RUT",
- "characterIndex": 5,
- "extra": "UHB",
- "extract": "\\\\k-s | x-tw=\\"…",
- "filename": "08-RUT.usfm",
- "lineNumber": 23,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected space after | character",
- "priority": 192,
- "repoCode": "UHB",
- "repoName": "hbo_uhb",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 5,
- "extra": "UHB",
- "extract": "\\\\k-s | x-tw=\\"…",
- "filename": "08-RUT.usfm",
- "lineNumber": 47,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected space after | character",
- "priority": 192,
- "repoCode": "UHB",
- "repoName": "hbo_uhb",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 5,
- "extra": "UHB",
- "extract": "\\\\k-s | x-tw=\\"…",
- "filename": "08-RUT.usfm",
- "lineNumber": 105,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected space after | character",
- "priority": 192,
- "repoCode": "UHB",
- "repoName": "hbo_uhb",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 5,
- "extra": "UHB",
- "extract": "\\\\k-s | x-tw=\\"…",
- "filename": "08-RUT.usfm",
- "lineNumber": 295,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected space after | character",
- "priority": 192,
- "repoCode": "UHB",
- "repoName": "hbo_uhb",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 5,
- "extra": "UHB",
- "extract": "\\\\k-s | x-tw=\\"…",
- "filename": "08-RUT.usfm",
- "lineNumber": 300,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected space after | character",
- "priority": 192,
- "repoCode": "UHB",
- "repoName": "hbo_uhb",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 5,
- "extra": "UHB",
- "extract": "\\\\k-s | x-tw=\\"…",
- "filename": "08-RUT.usfm",
- "lineNumber": 354,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected space after | character",
- "priority": 192,
- "repoCode": "UHB",
- "repoName": "hbo_uhb",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 5,
- "extra": "UHB",
- "extract": "\\\\k-s | x-tw=\\"…",
- "filename": "08-RUT.usfm",
- "lineNumber": 414,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected space after | character",
- "priority": 192,
- "repoCode": "UHB",
- "repoName": "hbo_uhb",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 5,
- "extra": "UHB",
- "extract": "\\\\k-s | x-tw=\\"…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1196,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected space after | character",
- "priority": 192,
- "repoCode": "UHB",
- "repoName": "hbo_uhb",
- "username": "unfoldingWord",
- },
Object {
"C": "2",
"V": "1",
@@ -444,6 +332,19 @@ Object {
"repoName": "en_ult",
"username": "unfoldingWord",
},
+ Object {
+ "bookID": "RUT",
+ "characterIndex": 311926,
+ "extra": "LT",
+ "extract": "…n-e\\\\*\\\\zaln-e\\\\*.",
+ "filename": "08-RUT.usfm",
+ "location": " in en RUT book package from unfoldingWord master branch",
+ "message": "File ends without newline character",
+ "priority": 538,
+ "repoCode": "LT",
+ "repoName": "en_ult",
+ "username": "unfoldingWord",
+ },
Object {
"C": "1",
"V": "3",
@@ -4097,15579 +3998,3167 @@ Object {
},
Object {
"bookID": "RUT",
- "characterIndex": 279,
+ "characterIndex": 324394,
"extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
+ "extract": "…n-e\\\\*\\\\zaln-e\\\\*.",
"filename": "08-RUT.usfm",
- "lineNumber": 244,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
+ "message": "File ends without newline character",
+ "priority": 538,
"repoCode": "ST",
"repoName": "en_ust",
"username": "unfoldingWord",
},
Object {
+ "C": "front",
+ "V": "intro",
"bookID": "RUT",
- "characterIndex": 64,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 311,
+ "characterIndex": 805,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 2,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "f68r",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "1",
"bookID": "RUT",
- "characterIndex": 181,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 325,
+ "characterIndex": 108,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 4,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "sb2j",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "1",
"bookID": "RUT",
- "characterIndex": 54,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 456,
+ "characterIndex": 69,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 5,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "m9nl",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "1",
"bookID": "RUT",
- "characterIndex": 184,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 477,
+ "characterIndex": 95,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 6,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "nm13",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "1",
"bookID": "RUT",
- "characterIndex": 60,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 601,
+ "characterIndex": 86,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 7,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "mmb4",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "4",
"bookID": "RUT",
- "characterIndex": 55,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 613,
+ "characterIndex": 119,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 10,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "pk7g",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "6",
"bookID": "RUT",
- "characterIndex": 55,
- "extra": "ST",
- "extract": "…aln-e\\\\* '\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 623,
+ "characterIndex": 222,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 16,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected ' character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "sa4z",
"username": "unfoldingWord",
},
Object {
- "bookID": "RUT",
- "characterIndex": 55,
- "extra": "ST",
- "extract": "…aln-e\\\\* '\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 630,
+ "C": "1",
+ "V": "6",
+ "bookID": "RUT",
+ "extra": "TN",
+ "extract": "figs-idiom",
+ "fieldName": "SupportReference",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 19,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected ' character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Link to TA should also be in OccurrenceNote",
+ "priority": 787,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "ab01",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "6",
"bookID": "RUT",
- "characterIndex": 173,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 741,
+ "characterIndex": 144,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 19,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "ab01",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "6",
"bookID": "RUT",
- "characterIndex": 67,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 768,
+ "details": "(SR='figs-idiom')",
+ "extra": "TN",
+ "extract": "figs-synecdoche",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 19,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Link to TA should also be in SupportReference",
+ "priority": 786,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "ab01",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "7",
"bookID": "RUT",
- "characterIndex": 183,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 814,
+ "extra": "TN",
+ "extract": "figs-idiom",
+ "fieldName": "SupportReference",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 20,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Link to TA should also be in OccurrenceNote",
+ "priority": 787,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "w7ti",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "8",
"bookID": "RUT",
- "characterIndex": 58,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 820,
+ "characterIndex": 128,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 22,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "lxs2",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "8",
"bookID": "RUT",
- "characterIndex": 85,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 834,
+ "characterIndex": 96,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 25,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "g4r8",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "8",
"bookID": "RUT",
- "characterIndex": 103,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 843,
+ "characterIndex": 41,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 26,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "acb4",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "9",
"bookID": "RUT",
- "characterIndex": 53,
- "extra": "ST",
- "extract": "…ln-e\\\\*, '\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 859,
+ "characterIndex": 195,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 28,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected ' character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "c74v",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "9",
"bookID": "RUT",
- "characterIndex": 166,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 898,
+ "characterIndex": 258,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 29,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "v2vx",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "9",
"bookID": "RUT",
- "characterIndex": 60,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 988,
+ "characterIndex": 112,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 30,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "t69w",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "10",
"bookID": "RUT",
- "characterIndex": 85,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1013,
+ "characterIndex": 184,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 31,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "mag8",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "10",
"bookID": "RUT",
- "characterIndex": 58,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1091,
+ "characterIndex": 67,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 32,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "bq4j",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "11",
"bookID": "RUT",
- "characterIndex": 54,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1135,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 67,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1193,
+ "characterIndex": 147,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 33,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "ggi3",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "11",
"bookID": "RUT",
- "characterIndex": 163,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1320,
+ "characterIndex": 242,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 34,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "q2hn",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "12",
"bookID": "RUT",
- "characterIndex": 55,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1360,
+ "characterIndex": 152,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 35,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "dyc4",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "12",
"bookID": "RUT",
- "characterIndex": 148,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1379,
+ "characterIndex": 299,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 36,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "abc1",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "13",
"bookID": "RUT",
- "characterIndex": 300,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1404,
+ "characterIndex": 306,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 38,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "gmc2",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "13",
"bookID": "RUT",
- "characterIndex": 181,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1435,
+ "characterIndex": 96,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 40,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "gh99",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "13",
"bookID": "RUT",
- "characterIndex": 170,
- "extra": "ST",
- "extract": "…ln-e\\\\*, '\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1438,
+ "characterIndex": 145,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 41,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected ' character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "z9u3",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "13",
"bookID": "RUT",
- "characterIndex": 166,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1460,
+ "characterIndex": 117,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 42,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "ab02",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "14",
"bookID": "RUT",
- "characterIndex": 55,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1537,
+ "characterIndex": 67,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 43,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "n47v",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "14",
"bookID": "RUT",
- "characterIndex": 67,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1678,
+ "characterIndex": 117,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 44,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "t4sl",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "15",
"bookID": "RUT",
- "characterIndex": 54,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1787,
+ "characterIndex": 133,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 46,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "nqm3",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "16",
"bookID": "RUT",
- "characterIndex": 58,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1791,
+ "characterIndex": 213,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 49,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "b518",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "17",
"bookID": "RUT",
- "characterIndex": 58,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1818,
+ "characterIndex": 116,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 50,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "lql7",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "17",
"bookID": "RUT",
- "characterIndex": 56,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 1994,
+ "characterIndex": 250,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 51,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "sje3",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "17",
"bookID": "RUT",
- "characterIndex": 54,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2038,
+ "characterIndex": 147,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 53,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "ab05",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "19",
"bookID": "RUT",
- "characterIndex": 54,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2081,
+ "characterIndex": 64,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 55,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "j9wa",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "19",
"bookID": "RUT",
- "characterIndex": 56,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2103,
+ "characterIndex": 132,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 56,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "jdr1",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "19",
"bookID": "RUT",
- "characterIndex": 294,
- "extra": "ST",
- "extract": "…ln-e\\\\*, '\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2109,
+ "characterIndex": 109,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 57,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected ' character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "y3us",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "19",
"bookID": "RUT",
- "characterIndex": 55,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2123,
+ "characterIndex": 157,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 58,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "abc3",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "20",
"bookID": "RUT",
- "characterIndex": 55,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2188,
+ "characterIndex": 246,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 61,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "swe9",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "22",
"bookID": "RUT",
- "characterIndex": 55,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2217,
+ "characterIndex": 178,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 65,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "cx7g",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "22",
"bookID": "RUT",
- "characterIndex": 59,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2237,
+ "characterIndex": 187,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 66,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "jdr2",
"username": "unfoldingWord",
},
Object {
+ "C": "1",
+ "V": "22",
"bookID": "RUT",
- "characterIndex": 58,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2332,
+ "characterIndex": 194,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 67,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "bgy3",
"username": "unfoldingWord",
},
Object {
+ "C": "2",
+ "V": "intro",
"bookID": "RUT",
- "characterIndex": 54,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2341,
+ "characterIndex": 414,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 68,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "ld2v",
"username": "unfoldingWord",
},
Object {
+ "C": "2",
+ "V": "1",
"bookID": "RUT",
- "characterIndex": 181,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2385,
+ "characterIndex": 182,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
+ "fieldName": "OccurrenceNote",
+ "filename": "en_tn_08-RUT.tsv",
+ "lineNumber": 69,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 55,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2474,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 56,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2510,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 55,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2619,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 173,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2742,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
- "username": "unfoldingWord",
- },
- Object {
- "bookID": "RUT",
- "characterIndex": 175,
- "extra": "ST",
- "extract": "…ln-e\\\\*, \\"\\\\zaln-…",
- "filename": "08-RUT.usfm",
- "lineNumber": 2832,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected \\" character after space",
- "priority": 191,
- "repoCode": "ST",
- "repoName": "en_ust",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
+ "repoName": "en_tn",
+ "rowID": "ab10",
"username": "unfoldingWord",
},
Object {
- "C": "front",
- "V": "intro",
+ "C": "2",
+ "V": "1",
"bookID": "RUT",
- "characterIndex": 805,
+ "characterIndex": 248,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 2,
+ "lineNumber": 70,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "f68r",
+ "rowID": "t2sn",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "1",
+ "C": "2",
+ "V": "2",
"bookID": "RUT",
- "characterIndex": 108,
+ "characterIndex": 236,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 4,
+ "lineNumber": 76,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "sb2j",
+ "rowID": "j59b",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "1",
+ "C": "2",
+ "V": "2",
"bookID": "RUT",
- "characterIndex": 69,
+ "characterIndex": 196,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 5,
+ "lineNumber": 77,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "m9nl",
+ "rowID": "abc5",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "1",
+ "C": "2",
+ "V": "4",
"bookID": "RUT",
- "characterIndex": 95,
+ "characterIndex": 255,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 6,
+ "lineNumber": 81,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "nm13",
+ "rowID": "vys2",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "1",
+ "C": "2",
+ "V": "8",
"bookID": "RUT",
- "characterIndex": 86,
+ "characterIndex": 149,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 7,
+ "lineNumber": 89,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "mmb4",
+ "rowID": "ltk3",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "4",
+ "C": "2",
+ "V": "8",
"bookID": "RUT",
- "characterIndex": 119,
+ "characterIndex": 206,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 10,
+ "lineNumber": 90,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "pk7g",
+ "rowID": "ke9b",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "6",
+ "C": "2",
+ "V": "9",
"bookID": "RUT",
- "characterIndex": 222,
+ "characterIndex": 147,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 16,
+ "lineNumber": 91,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "sa4z",
+ "rowID": "jq6n",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "6",
+ "C": "2",
+ "V": "9",
"bookID": "RUT",
- "extra": "TN1",
- "extract": "figs-idiom",
- "fieldName": "SupportReference",
+ "characterIndex": 52,
+ "extra": "TN",
+ "extract": "…itality - that …",
+ "fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 19,
+ "lineNumber": 92,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Link to TA should also be in OccurrenceNote",
- "priority": 787,
- "repoCode": "TN1",
+ "message": "Unexpected - character after space",
+ "priority": 191,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ab01",
+ "rowID": "xc6u",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "6",
+ "C": "2",
+ "V": "9",
"bookID": "RUT",
- "characterIndex": 144,
+ "characterIndex": 200,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 19,
+ "lineNumber": 92,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ab01",
+ "rowID": "xc6u",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "6",
+ "C": "2",
+ "V": "9",
"bookID": "RUT",
- "details": "(SR='figs-idiom')",
- "extra": "TN1",
- "extract": "figs-synecdoche",
+ "characterIndex": 196,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 19,
+ "lineNumber": 94,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Link to TA should also be in SupportReference",
- "priority": 786,
- "repoCode": "TN1",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ab01",
+ "rowID": "v5e4",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "7",
+ "C": "2",
+ "V": "9",
"bookID": "RUT",
- "extra": "TN1",
- "extract": "figs-idiom",
- "fieldName": "SupportReference",
+ "details": "(empty SR field)",
+ "extra": "TN",
+ "extract": "figs-euphemism",
+ "fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 20,
+ "lineNumber": 94,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Link to TA should also be in OccurrenceNote",
- "priority": 787,
- "repoCode": "TN1",
+ "message": "Link to TA should also be in SupportReference",
+ "priority": 786,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "w7ti",
+ "rowID": "v5e4",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "8",
+ "C": "2",
+ "V": "10",
"bookID": "RUT",
- "characterIndex": 128,
+ "characterIndex": 169,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 22,
+ "lineNumber": 96,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "lxs2",
+ "rowID": "az6y",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "8",
+ "C": "2",
+ "V": "10",
"bookID": "RUT",
- "characterIndex": 96,
+ "characterIndex": 140,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 25,
+ "lineNumber": 97,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "g4r8",
+ "rowID": "ab12",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "8",
+ "C": "2",
+ "V": "10",
"bookID": "RUT",
- "characterIndex": 41,
+ "characterIndex": 89,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 26,
+ "lineNumber": 98,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "acb4",
+ "rowID": "ab13",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "9",
+ "C": "2",
+ "V": "10",
"bookID": "RUT",
- "characterIndex": 195,
+ "characterIndex": 237,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 28,
+ "lineNumber": 100,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "c74v",
+ "rowID": "abc7",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "9",
+ "C": "2",
+ "V": "10",
"bookID": "RUT",
- "characterIndex": 258,
+ "characterIndex": 200,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 29,
+ "lineNumber": 101,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "v2vx",
+ "rowID": "abc8",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "9",
+ "C": "2",
+ "V": "11",
"bookID": "RUT",
- "characterIndex": 112,
+ "characterIndex": 168,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 30,
+ "lineNumber": 103,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "t69w",
+ "rowID": "ab14",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "10",
+ "C": "2",
+ "V": "11",
"bookID": "RUT",
- "characterIndex": 184,
+ "characterIndex": 129,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 31,
+ "lineNumber": 104,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "mag8",
+ "rowID": "app6",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "10",
+ "C": "2",
+ "V": "11",
"bookID": "RUT",
- "characterIndex": 67,
+ "characterIndex": 151,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 32,
+ "lineNumber": 105,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "bq4j",
+ "rowID": "abc9",
"username": "unfoldingWord",
},
Object {
- "C": "1",
+ "C": "2",
"V": "11",
"bookID": "RUT",
- "characterIndex": 147,
+ "characterIndex": 141,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 33,
+ "lineNumber": 106,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ggi3",
+ "rowID": "r44n",
"username": "unfoldingWord",
},
Object {
- "C": "1",
+ "C": "2",
"V": "11",
"bookID": "RUT",
- "characterIndex": 242,
- "details": "(not 'en')",
- "extra": "TN1",
- "extract": "…[[rc://en/ta/ma…",
- "fieldName": "OccurrenceNote",
+ "extra": "TN",
+ "extract": "figs-idiom",
+ "fieldName": "SupportReference",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 34,
+ "lineNumber": 107,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Resource container link should have '*' language code",
- "priority": 450,
- "repoCode": "TN1",
+ "message": "Link to TA should also be in OccurrenceNote",
+ "priority": 787,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "q2hn",
+ "rowID": "ab60",
"username": "unfoldingWord",
},
Object {
- "C": "1",
+ "C": "2",
"V": "12",
"bookID": "RUT",
- "characterIndex": 152,
+ "characterIndex": 170,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 35,
+ "lineNumber": 110,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "dyc4",
+ "rowID": "gnn5",
"username": "unfoldingWord",
},
Object {
- "C": "1",
+ "C": "2",
"V": "12",
"bookID": "RUT",
- "characterIndex": 299,
- "details": "(not 'en')",
- "extra": "TN1",
- "extract": "…[[rc://en/ta/ma…",
+ "details": "detected 1 link but no Bible links from [\\"[[rc://en/ta/man/translate/figs-parallelism]], [Doublet](../figs-doublet/01.md)\\"]",
+ "extra": "TN",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 36,
+ "lineNumber": 110,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Resource container link should have '*' language code",
- "priority": 450,
- "repoCode": "TN1",
+ "message": "More [ ]( ) links than valid Bible links",
+ "priority": 648,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "abc1",
+ "rowID": "gnn5",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "13",
+ "C": "2",
+ "V": "12",
"bookID": "RUT",
- "characterIndex": 306,
+ "characterIndex": 259,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 38,
+ "lineNumber": 111,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "gmc2",
+ "rowID": "eh86",
"username": "unfoldingWord",
},
Object {
- "C": "1",
+ "C": "2",
"V": "13",
"bookID": "RUT",
- "characterIndex": 96,
+ "characterIndex": 206,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 40,
+ "lineNumber": 112,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "gh99",
+ "rowID": "abc6",
"username": "unfoldingWord",
},
Object {
- "C": "1",
+ "C": "2",
"V": "13",
"bookID": "RUT",
- "characterIndex": 145,
+ "characterIndex": 175,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 41,
+ "lineNumber": 113,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "z9u3",
+ "rowID": "v2q1",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "13",
+ "C": "2",
+ "V": "15",
"bookID": "RUT",
- "characterIndex": 117,
+ "characterIndex": 221,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 42,
+ "lineNumber": 119,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ab02",
+ "rowID": "v6wr",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "14",
+ "C": "2",
+ "V": "17",
"bookID": "RUT",
- "characterIndex": 67,
+ "characterIndex": 184,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 43,
+ "lineNumber": 125,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "n47v",
+ "rowID": "mq6b",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "14",
+ "C": "2",
+ "V": "18",
"bookID": "RUT",
- "characterIndex": 117,
+ "characterIndex": 61,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 44,
+ "lineNumber": 126,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "t4sl",
+ "rowID": "etn8",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "15",
+ "C": "2",
+ "V": "19",
"bookID": "RUT",
- "characterIndex": 133,
+ "characterIndex": 208,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 46,
+ "lineNumber": 128,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "nqm3",
+ "rowID": "bg28",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "16",
+ "C": "2",
+ "V": "19",
"bookID": "RUT",
- "characterIndex": 213,
+ "characterIndex": 164,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 49,
+ "lineNumber": 129,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "b518",
+ "rowID": "ab07",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "17",
+ "C": "2",
+ "V": "20",
"bookID": "RUT",
- "characterIndex": 116,
+ "characterIndex": 79,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 50,
+ "lineNumber": 131,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "lql7",
+ "rowID": "ab20",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "17",
+ "C": "2",
+ "V": "20",
"bookID": "RUT",
- "characterIndex": 250,
+ "characterIndex": 188,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 51,
+ "lineNumber": 133,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "sje3",
+ "rowID": "ljz3",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "17",
+ "C": "2",
+ "V": "20",
"bookID": "RUT",
- "characterIndex": 147,
+ "characterIndex": 192,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 53,
+ "lineNumber": 134,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ab05",
+ "rowID": "wjr4",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "19",
+ "C": "2",
+ "V": "20",
"bookID": "RUT",
- "characterIndex": 64,
+ "characterIndex": 98,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 55,
+ "lineNumber": 135,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "j9wa",
+ "rowID": "cyy2",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "19",
+ "C": "2",
+ "V": "22",
"bookID": "RUT",
- "characterIndex": 132,
+ "characterIndex": 225,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 56,
+ "lineNumber": 141,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "jdr1",
+ "rowID": "ab64",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "19",
+ "C": "3",
+ "V": "intro",
"bookID": "RUT",
- "characterIndex": 109,
+ "characterIndex": 846,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 57,
+ "lineNumber": 144,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "y3us",
+ "rowID": "t4y5",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "19",
+ "C": "3",
+ "V": "1",
"bookID": "RUT",
- "characterIndex": 157,
+ "characterIndex": 149,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 58,
+ "lineNumber": 145,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "abc3",
+ "rowID": "jdr3",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "20",
+ "C": "3",
+ "V": "1",
"bookID": "RUT",
- "characterIndex": 246,
+ "characterIndex": 256,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 61,
+ "lineNumber": 148,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "swe9",
+ "rowID": "nxr8",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "22",
+ "C": "3",
+ "V": "1",
"bookID": "RUT",
- "characterIndex": 178,
+ "characterIndex": 161,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 65,
+ "lineNumber": 149,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "cx7g",
+ "rowID": "uw2p",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "22",
+ "C": "3",
+ "V": "2",
"bookID": "RUT",
- "characterIndex": 187,
+ "characterIndex": 456,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 66,
+ "lineNumber": 150,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "jdr2",
+ "rowID": "jdr4",
"username": "unfoldingWord",
},
Object {
- "C": "1",
- "V": "22",
+ "C": "3",
+ "V": "2",
"bookID": "RUT",
- "characterIndex": 194,
+ "characterIndex": 217,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 67,
+ "lineNumber": 151,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "bgy3",
+ "rowID": "b4h8",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "intro",
+ "C": "3",
+ "V": "2",
"bookID": "RUT",
- "characterIndex": 414,
+ "characterIndex": 213,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 68,
+ "lineNumber": 152,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ld2v",
+ "rowID": "j31t",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "1",
+ "C": "3",
+ "V": "2",
"bookID": "RUT",
- "characterIndex": 182,
+ "characterIndex": 89,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 69,
+ "lineNumber": 153,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ab10",
+ "rowID": "nd8v",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "1",
+ "C": "3",
+ "V": "4",
"bookID": "RUT",
- "characterIndex": 248,
+ "characterIndex": 231,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 70,
+ "lineNumber": 157,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "t2sn",
+ "rowID": "jdr5",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "2",
+ "C": "3",
+ "V": "4",
"bookID": "RUT",
- "characterIndex": 236,
+ "characterIndex": 102,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 76,
+ "lineNumber": 158,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "j59b",
+ "rowID": "ab21",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "2",
+ "C": "3",
+ "V": "4",
"bookID": "RUT",
- "characterIndex": 196,
+ "characterIndex": 163,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 77,
+ "lineNumber": 159,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "abc5",
+ "rowID": "ln1m",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "4",
+ "C": "3",
+ "V": "6",
"bookID": "RUT",
- "characterIndex": 255,
+ "characterIndex": 427,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 81,
+ "lineNumber": 164,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "vys2",
+ "rowID": "ab22",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "8",
+ "C": "3",
+ "V": "7",
"bookID": "RUT",
- "characterIndex": 149,
+ "characterIndex": 221,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 89,
+ "lineNumber": 165,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ltk3",
+ "rowID": "fz7e",
"username": "unfoldingWord",
},
Object {
- "C": "2",
+ "C": "3",
"V": "8",
"bookID": "RUT",
- "characterIndex": 206,
+ "characterIndex": 92,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 90,
+ "lineNumber": 169,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ke9b",
+ "rowID": "pz92",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "9",
+ "C": "3",
+ "V": "8",
"bookID": "RUT",
- "characterIndex": 147,
+ "characterIndex": 124,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 91,
+ "lineNumber": 171,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
- "repoName": "en_tn",
- "rowID": "jq6n",
- "username": "unfoldingWord",
- },
- Object {
- "C": "2",
- "V": "9",
- "bookID": "RUT",
- "characterIndex": 52,
- "extra": "TN1",
- "extract": "…itality - that …",
- "fieldName": "OccurrenceNote",
- "filename": "en_tn_08-RUT.tsv",
- "lineNumber": 92,
- "location": " in en RUT book package from unfoldingWord master branch",
- "message": "Unexpected - character after space",
- "priority": 191,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "xc6u",
+ "rowID": "ab23",
"username": "unfoldingWord",
},
Object {
- "C": "2",
+ "C": "3",
"V": "9",
"bookID": "RUT",
- "characterIndex": 200,
+ "characterIndex": 94,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 92,
+ "lineNumber": 174,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "xc6u",
+ "rowID": "xp1b",
"username": "unfoldingWord",
},
Object {
- "C": "2",
+ "C": "3",
"V": "9",
"bookID": "RUT",
- "characterIndex": 196,
- "details": "(not 'en')",
- "extra": "TN1",
- "extract": "…[[rc://en/ta/ma…",
+ "details": "detected 1 link but no Bible links from [\\"[2:20](../02/20/zu5f)\\"]",
+ "extra": "TN",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 94,
+ "lineNumber": 175,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Resource container link should have '*' language code",
- "priority": 450,
- "repoCode": "TN1",
+ "message": "More [ ]( ) links than valid Bible links",
+ "priority": 648,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "v5e4",
+ "rowID": "l5g4",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "9",
+ "C": "3",
+ "V": "10",
"bookID": "RUT",
- "details": "(empty SR field)",
- "extra": "TN1",
- "extract": "figs-euphemism",
+ "characterIndex": 205,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 94,
+ "lineNumber": 179,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Link to TA should also be in SupportReference",
- "priority": 786,
- "repoCode": "TN1",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "v5e4",
+ "rowID": "n84d",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "10",
+ "C": "3",
+ "V": "11",
"bookID": "RUT",
- "characterIndex": 169,
+ "characterIndex": 488,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 96,
+ "lineNumber": 180,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "az6y",
+ "rowID": "jdr6",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "10",
+ "C": "3",
+ "V": "11",
"bookID": "RUT",
- "characterIndex": 140,
+ "characterIndex": 199,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 97,
+ "lineNumber": 182,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ab12",
+ "rowID": "ab08",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "10",
+ "C": "3",
+ "V": "12",
"bookID": "RUT",
- "characterIndex": 89,
+ "characterIndex": 277,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 98,
+ "lineNumber": 184,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ab13",
+ "rowID": "jdr7",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "10",
+ "C": "3",
+ "V": "12",
"bookID": "RUT",
- "characterIndex": 237,
- "details": "(not 'en')",
- "extra": "TN1",
- "extract": "…[[rc://en/ta/ma…",
+ "details": "(empty SR field)",
+ "extra": "TN",
+ "extract": "grammar-connect-logic-contrast",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 100,
+ "lineNumber": 184,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Resource container link should have '*' language code",
- "priority": 450,
- "repoCode": "TN1",
+ "message": "Link to TA should also be in SupportReference",
+ "priority": 786,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "abc7",
+ "rowID": "jdr7",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "10",
+ "C": "3",
+ "V": "12",
"bookID": "RUT",
- "characterIndex": 200,
+ "characterIndex": 209,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 101,
+ "lineNumber": 185,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "abc8",
+ "rowID": "ab30",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "11",
+ "C": "3",
+ "V": "12",
"bookID": "RUT",
- "characterIndex": 168,
- "details": "(not 'en')",
- "extra": "TN1",
- "extract": "…[[rc://en/ta/ma…",
+ "details": "detected 1 link but no Bible links from [\\"[2:20](../02/20/zu5f)\\"]",
+ "extra": "TN",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 103,
+ "lineNumber": 186,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Resource container link should have '*' language code",
- "priority": 450,
- "repoCode": "TN1",
+ "message": "More [ ]( ) links than valid Bible links",
+ "priority": 648,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ab14",
+ "rowID": "fvq5",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "11",
+ "C": "3",
+ "V": "13",
"bookID": "RUT",
- "characterIndex": 129,
+ "characterIndex": 249,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 104,
+ "lineNumber": 187,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "app6",
+ "rowID": "gcl8",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "11",
+ "C": "3",
+ "V": "14",
"bookID": "RUT",
- "characterIndex": 151,
+ "characterIndex": 121,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 105,
+ "lineNumber": 190,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "abc9",
+ "rowID": "dwx1",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "11",
+ "C": "3",
+ "V": "16",
"bookID": "RUT",
- "characterIndex": 141,
+ "characterIndex": 248,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 106,
+ "lineNumber": 195,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "r44n",
+ "rowID": "s7dr",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "11",
+ "C": "3",
+ "V": "17",
"bookID": "RUT",
- "extra": "TN1",
- "extract": "figs-idiom",
- "fieldName": "SupportReference",
+ "details": "detected 1 link but no Bible links from [\\"[3:15](../03/15/f5zg)\\"]",
+ "extra": "TN",
+ "fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 107,
+ "lineNumber": 198,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "Link to TA should also be in OccurrenceNote",
- "priority": 787,
- "repoCode": "TN1",
+ "message": "More [ ]( ) links than valid Bible links",
+ "priority": 648,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "ab60",
+ "rowID": "abca",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "12",
+ "C": "3",
+ "V": "17",
"bookID": "RUT",
- "characterIndex": 170,
+ "characterIndex": 222,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 110,
+ "lineNumber": 199,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "gnn5",
+ "rowID": "e9xx",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "12",
+ "C": "3",
+ "V": "18",
"bookID": "RUT",
- "details": "detected 1 link but no Bible links from [\\"[[rc://en/ta/man/translate/figs-parallelism]], [Doublet](../figs-doublet/01.md)\\"]",
- "extra": "TN1",
+ "characterIndex": 125,
+ "details": "(not 'en')",
+ "extra": "TN",
+ "extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 110,
+ "lineNumber": 200,
"location": " in en RUT book package from unfoldingWord master branch",
- "message": "More [ ]( ) links than valid Bible links",
- "priority": 648,
- "repoCode": "TN1",
+ "message": "Resource container link should have '*' language code",
+ "priority": 450,
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "gnn5",
+ "rowID": "ab36",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "12",
+ "C": "3",
+ "V": "18",
"bookID": "RUT",
- "characterIndex": 259,
+ "characterIndex": 98,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 111,
+ "lineNumber": 202,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "eh86",
+ "rowID": "ab37",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "13",
+ "C": "3",
+ "V": "18",
"bookID": "RUT",
- "characterIndex": 206,
+ "characterIndex": 137,
"details": "(not 'en')",
- "extra": "TN1",
+ "extra": "TN",
"extract": "…[[rc://en/ta/ma…",
"fieldName": "OccurrenceNote",
"filename": "en_tn_08-RUT.tsv",
- "lineNumber": 112,
+ "lineNumber": 203,
"location": " in en RUT book package from unfoldingWord master branch",
"message": "Resource container link should have '*' language code",
"priority": 450,
- "repoCode": "TN1",
+ "repoCode": "TN",
"repoName": "en_tn",
- "rowID": "abc6",
+ "rowID": "ab38",
"username": "unfoldingWord",
},
Object {
- "C": "2",
- "V": "13",
+ "C": "4",
+ "V": "intro",
"bookID": "RUT",
- "characterIndex": 175,
- "details": "(not 'en')",
- "extra": "TN1",
- "extract": "…[[rc://en/ta/ma…",
+ "characterIndex": 407,
+ "extra": "TN",
+ "extract": "…in␣him.␣
␣los…",
+ "fieldName": "OccurrenceNote",
+ "lineNumber": 1,
+ "location": " that was supplied",
+ "message": "Unexpected leading space(s) after break",
+ "priority": 64,
+ "rowID": "W-3r5",
+ },
Object {
"C": "1",
"V": "2",
diff --git a/src/__tests__/tn-table-row-check.test.js b/src/__tests__/tn-table-row-check.test.js
index dd7532c4..f53100a1 100644
--- a/src/__tests__/tn-table-row-check.test.js
+++ b/src/__tests__/tn-table-row-check.test.js
@@ -33,28 +33,28 @@ describe('checkTN_TSVDataRow() - ', () => {
it('should fail broken link start', async() => {
const chosenLine = "RUT\t2\t12\tgnn5\tfigs-parallelism\tשְׁלֵמָ֗ה\t1\tmay your full wages come from Yahweh This is a poetic expression that is very similar to the previous sentence. Alternate translation: “May Yahweh fully give to you everything that you deserve” (See: [rc://*/ta/man/translate/figs-parallelism]]";
const rawResults = await checkTN_TSVDataRow(languageCode, chosenLine, 'RUT','2','12', 'that was supplied', optionalCheckingOptions);
- expect(rawResults.noticeList.length).toEqual(1);
+ expect(rawResults.noticeList.length).toEqual(3);
expect(rawResults).toMatchSnapshot();
});
it('should fail broken link end', async() => {
const chosenLine = "RUT\t2\t12\tgnn5\tfigs-parallelism\tשְׁלֵמָ֗ה\t1\tmay your full wages come from Yahweh This is a poetic expression that is very similar to the previous sentence. Alternate translation: “May Yahweh fully give to you everything that you deserve” (See: [[rc://*/ta/man/translate/figs-parallelism]";
const rawResults = await checkTN_TSVDataRow(languageCode, chosenLine, 'RUT','2','12', 'that was supplied', optionalCheckingOptions);
- expect(rawResults.noticeList.length).toEqual(1);
+ expect(rawResults.noticeList.length).toEqual(3);
expect(rawResults).toMatchSnapshot();
});
it('should fail double broken link start', async() => {
- const chosenLine = "RUT\t2\t12\tgnn5\tfigs-parallelism\tשְׁלֵמָ֗ה\t1\tmay your full wages come from Yahweh This is a poetic expression that is very similar to the previous sentence. Alternate translation: “May Yahweh fully give to you everything that you deserve” (See: rc://*/ta/man/translate/figs-parallelism]]";
+ const chosenLine = "RUT\t2\t12\tgnn5\tfigs-parallelism\tשְׁלֵמָ֗ה\t1\tmay your full wages come from Yahweh This is a poetic expression that is very similar to the previous sentence. Alternate translation: “May Yahweh fully give to you everything that you deserve” (See: rc://*/ta/man/translate/figs-parallelism]])";
const rawResults = await checkTN_TSVDataRow(languageCode, chosenLine, 'RUT','2','12', 'that was supplied', optionalCheckingOptions);
- expect(rawResults.noticeList.length).toEqual(1);
+ expect(rawResults.noticeList.length).toEqual(2);
expect(rawResults).toMatchSnapshot();
});
it('should fail double broken link end', async() => {
- const chosenLine = "RUT\t2\t12\tgnn5\tfigs-parallelism\tשְׁלֵמָ֗ה\t1\tmay your full wages come from Yahweh This is a poetic expression that is very similar to the previous sentence. Alternate translation: “May Yahweh fully give to you everything that you deserve” (See: [[rc://*/ta/man/translate/figs-parallelism";
+ const chosenLine = "RUT\t2\t12\tgnn5\tfigs-parallelism\tשְׁלֵמָ֗ה\t1\tmay your full wages come from Yahweh This is a poetic expression that is very similar to the previous sentence. Alternate translation: “May Yahweh fully give to you everything that you deserve” (See: [[rc://*/ta/man/translate/figs-parallelism)";
const rawResults = await checkTN_TSVDataRow(languageCode, chosenLine, 'RUT','2','12', 'that was supplied', optionalCheckingOptions);
- expect(rawResults.noticeList.length).toEqual(1);
+ expect(rawResults.noticeList.length).toEqual(2);
expect(rawResults).toMatchSnapshot();
});
@@ -114,14 +114,14 @@ describe('checkTN_TSVDataRow() - ', () => {
it('should fail invalid verse link start', async() => {
const chosenLine = "GEN\t1\t9\tha33\t\t\t0\tIt was so\t“It happened like that” or “That is what happened.” What God commanded happened just as he said it should. This phrase appears throughout the chapter and has the same meaning wherever it appears. See how you translated it in Genesis 1:7](../01/07.md).";
const rawResults = await checkTN_TSVDataRow(languageCode, chosenLine, 'GEN','1','9', 'that was supplied', optionalCheckingOptions);
- expect(rawResults.noticeList.length).toEqual(1);
+ expect(rawResults.noticeList.length).toEqual(2);
expect(rawResults).toMatchSnapshot();
});
it('should fail invalid verse link end', async() => {
const chosenLine = "GEN\t1\t9\tha33\t\t\t0\tIt was so\t“It happened like that” or “That is what happened.” What God commanded happened just as he said it should. This phrase appears throughout the chapter and has the same meaning wherever it appears. See how you translated it in [Genesis 1:7](../01/07.md.";
const rawResults = await checkTN_TSVDataRow(languageCode, chosenLine, 'GEN','1','9', 'that was supplied', optionalCheckingOptions);
- expect(rawResults.noticeList.length).toEqual(1);
+ expect(rawResults.noticeList.length).toEqual(2);
expect(rawResults).toMatchSnapshot();
});
@@ -336,7 +336,7 @@ describe('checkTN_TSVDataRow() - ', () => {
it('should find invalid Book ID, chapter number, ID, SupportReference, quotes, OccurrenceNote', async() => {
const chosenLine = "GIN\t200\t9\tW-3r5\tLaugh\t\t17\tBad ellipse...\t
Boo hoo,,
lost my shoe !";
const rawResults = await checkTN_TSVDataRow(languageCode, chosenLine, 'GEN','1','2', 'that was supplied', optionalCheckingOptions);
- expect(rawResults.noticeList.length).toEqual(15);
+ expect(rawResults.noticeList.length).toEqual(16);
expect(rawResults).toMatchSnapshot();
});
diff --git a/src/core/BCS-usfm-grammar-check.md b/src/core/BCS-usfm-grammar-check.md
index 61a0dc42..76f843d6 100644
--- a/src/core/BCS-usfm-grammar-check.md
+++ b/src/core/BCS-usfm-grammar-check.md
@@ -7,6 +7,9 @@ Our packaged function returns a list of success messages and a list of (prioriti
These raw notice components can then be filtered and/or sorted as required by the calling program, and then divided into a list of errors and a list of warnings or whatever as desired.
```js
+// The code in this box is editable for changing settings—
+// Simply click inside here and add, change, or delete text as required.
+
import { checkUSFMGrammar } from './BCS-usfm-grammar-check';
import { RenderLines, RenderRawResults } from '../demos/RenderProcessedResults';
diff --git a/src/core/annotation-row-check.js b/src/core/annotation-row-check.js
index 91c69b5b..c47c6e01 100644
--- a/src/core/annotation-row-check.js
+++ b/src/core/annotation-row-check.js
@@ -7,21 +7,23 @@ import { checkTNLinksToOutside } from './tn-links-check';
import { checkOriginalLanguageQuote } from './orig-quote-check';
-// const ANNOTATION_TABLE_ROW_VALIDATOR_VERSION_STRING = '0.6.0';
+// const ANNOTATION_TABLE_ROW_VALIDATOR_VERSION_STRING = '0.6.3';
const NUM_EXPECTED_ANNOTATION_TSV_FIELDS = 7; // so expects 6 tabs per line
const EXPECTED_ANNOTATION_HEADING_LINE = 'Reference\tID\tTags\tSupportReference\tQuote\tOccurrence\tAnnotation';
+const LC_ALPHABET = 'abcdefghijklmnopqrstuvwxyz';
const LC_ALPHABET_PLUS_DIGITS = 'abcdefghijklmnopqrstuvwxyz0123456789';
+const LC_ALPHABET_PLUS_DIGITS_PLUS_HYPHEN = 'abcdefghijklmnopqrstuvwxyz0123456789-';
const TA_REGEX = new RegExp('\\[\\[rc://[^ /]+?/ta/man/[^ /]+?/([^ \\]]+?)\\]\\]', 'g');
/**
*
- * @description - Checks one TSV data row of translation notes (TN)
+ * @description - Checks one TSV data row of translation notes (TN2)
* @param {String} languageCode - the language code, e.g., 'en'
- * @param {String} annotationType - TN, TQ, TWL, SN, or SQ -- allows more specific checks
+ * @param {String} annotationType - TN2, TQ2, TWL, SN, or SQ -- allows more specific checks
* @param {String} line - the TSV line to be checked
* @param {String} bookID - 3-character UPPERCASE USFM book identifier or 'OBS'
* @param {String} givenC - chapter number or (for OBS) story number string
@@ -34,7 +36,7 @@ export async function checkAnnotationTSVDataRow(languageCode, annotationType, li
/* This function is only for checking one data row
and the function doesn't assume that it has any previous context.
- TN, TQ, TWL, SN, or SQ
+ TN2, TQ2, TWL, SN, or SQ
being translation or study notes, questions, or word-links.
bookID is a three-character UPPERCASE USFM book identifier or 'OBS'
@@ -61,6 +63,7 @@ export async function checkAnnotationTSVDataRow(languageCode, annotationType, li
if (givenV) console.assert(typeof givenV === 'string', `checkAnnotationTSVDataRow: 'givenV' parameter should be a string not a '${typeof givenV}'`);
console.assert(givenRowLocation !== undefined, "checkAnnotationTSVDataRow: 'givenRowLocation' parameter should be defined");
console.assert(typeof givenRowLocation === 'string', `checkAnnotationTSVDataRow: 'givenRowLocation' parameter should be a string not a '${typeof givenRowLocation}'`);
+ console.assert(givenRowLocation.indexOf('true') === -1, "checkAnnotationTSVDataRow: 'givenRowLocation' parameter should not be 'true'");
let ourRowLocation = givenRowLocation;
if (ourRowLocation && ourRowLocation[0] !== ' ') ourRowLocation = ` ${ourRowLocation}`;
@@ -94,7 +97,9 @@ export async function checkAnnotationTSVDataRow(languageCode, annotationType, li
if (noticeObject.extract) console.assert(typeof noticeObject.extract === 'string', `checkAnnotationTSVDataRow addNoticePartial: 'extract' parameter should be a string not a '${typeof noticeObject.extract}': ${noticeObject.extract}`);
console.assert(noticeObject.location !== undefined, "checkAnnotationTSVDataRow addNoticePartial: 'location' parameter should be defined");
console.assert(typeof noticeObject.location === 'string', `checkAnnotationTSVDataRow addNoticePartial: 'location' parameter should be a string not a '${typeof noticeObject.location}': ${noticeObject.location}`);
+
// Also uses the given bookID,C,V, parameters from the main function call
+ // noticeObject.debugChain = noticeObject.debugChain ? `checkAnnotationTSVDataRow ${noticeObject.debugChain}` : `checkAnnotationTSVDataRow(${annotationType})`;
drResult.noticeList.push({ ...noticeObject, bookID, C: givenC, V: givenV });
}
@@ -125,9 +130,11 @@ export async function checkAnnotationTSVDataRow(languageCode, annotationType, li
console.assert(fieldText !== undefined, "checkAnnotationTSVDataRow ourMarkdownTextChecks: 'fieldText' parameter should be defined");
console.assert(typeof fieldText === 'string', `checkAnnotationTSVDataRow ourMarkdownTextChecks: 'fieldText' parameter should be a string not a '${typeof fieldText}'`);
console.assert(allowedLinks === true || allowedLinks === false, "checkAnnotationTSVDataRow ourMarkdownTextChecks: allowedLinks parameter must be either true or false");
+ console.assert(rowLocation !== undefined, "checkAnnotationTSVDataRow ourMarkdownTextChecks: 'rowLocation' parameter should be defined");
+ console.assert(typeof rowLocation === 'string', `checkAnnotationTSVDataRow ourMarkdownTextChecks: 'rowLocation' parameter should be a string not a '${typeof rowLocation}'`);
console.assert(rowLocation.indexOf(fieldName) < 0, `checkAnnotationTSVDataRow ourMarkdownTextChecks: 'rowLocation' parameter should be not contain fieldName=${fieldName}`);
- const omtcResultObject = checkMarkdownText(fieldName, fieldText, rowLocation, optionalCheckingOptions);
+ const omtcResultObject = checkMarkdownText(languageCode, fieldName, fieldText, rowLocation, optionalCheckingOptions);
// Choose only ONE of the following
// This is the fast way of append the results from this field
@@ -171,6 +178,8 @@ export async function checkAnnotationTSVDataRow(languageCode, annotationType, li
console.assert(fieldText !== undefined, "checkAnnotationTSVDataRow ourCheckTextField: 'fieldText' parameter should be defined");
console.assert(typeof fieldText === 'string', `checkAnnotationTSVDataRow ourCheckTextField: 'fieldText' parameter should be a string not a '${typeof fieldText}'`);
console.assert(allowedLinks === true || allowedLinks === false, "checkAnnotationTSVDataRow ourCheckTextField: allowedLinks parameter must be either true or false");
+ console.assert(rowLocation !== undefined, "checkAnnotationTSVDataRow ourCheckTextField: 'rowLocation' parameter should be defined");
+ console.assert(typeof rowLocation === 'string', `checkAnnotationTSVDataRow ourCheckTextField: 'rowLocation' parameter should be a string not a '${typeof rowLocation}'`);
console.assert(rowLocation.indexOf(fieldName) < 0, `checkAnnotationTSVDataRow ourCheckTextField: 'rowLocation' parameter should be not contain fieldName=${fieldName}`);
const fieldType = fieldName === 'Annotation' ? 'markdown' : 'raw';
@@ -274,7 +283,7 @@ export async function checkAnnotationTSVDataRow(languageCode, annotationType, li
// If we need to put everything through addNoticePartial, e.g., for debugging or filtering
// process results line by line
for (const coqNoticeEntry of coqResultObject.noticeList) {
- if (coqNoticeEntry.extra) // it must be an indirect check on a TA or TW article from a TN check
+ if (coqNoticeEntry.extra) // it must be an indirect check on a TA or TW article from a TN2 check
drResult.noticeList.push(coqNoticeEntry); // Just copy the complete notice as is
else // For our direct checks, we add the repoCode as an extra value
addNoticePartial({ ...coqNoticeEntry, rowID, fieldName });
@@ -405,28 +414,28 @@ export async function checkAnnotationTSVDataRow(languageCode, annotationType, li
else {
if (rowID.length !== 4) {
addNoticePartial({ priority: 778, message: "Row ID should be exactly 4 characters", details: `(not ${rowID.length})`, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation });
- if (rowID.length > 4) RIDSuggestion = rowID.substring(0,5);
+ if (rowID.length > 4) RIDSuggestion = rowID.substring(0, 5);
else { // must be < 4
RIDSuggestion = rowID;
while (RIDSuggestion.length < 4) RIDSuggestion += LC_ALPHABET_PLUS_DIGITS[Math.floor(Math.random() * LC_ALPHABET_PLUS_DIGITS.length)];;
}
- } else if (LC_ALPHABET_PLUS_DIGITS.indexOf(rowID[0]) < 0)
- addNoticePartial({ priority: 176, message: "Row ID should start with a lowercase letter or digit", characterIndex: 0, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation });
+ } else if (LC_ALPHABET.indexOf(rowID[0]) < 0)
+ addNoticePartial({ priority: 176, message: "Row ID should start with a lowercase letter", characterIndex: 0, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation });
else if (LC_ALPHABET_PLUS_DIGITS.indexOf(rowID[3]) < 0)
addNoticePartial({ priority: 175, message: "Row ID should end with a lowercase letter or digit", characterIndeX: 3, rowID, fieldName: 'ID', extract: rowID, location: ourRowLocation });
- else if (LC_ALPHABET_PLUS_DIGITS.indexOf(rowID[1]) < 0)
+ else if (LC_ALPHABET_PLUS_DIGITS_PLUS_HYPHEN.indexOf(rowID[1]) < 0)
addNoticePartial({ priority: 174, message: "Row ID characters should only be lowercase letters, digits, or hypen", fieldName: 'ID', characterIndex: 1, rowID, extract: rowID, location: ourRowLocation });
- else if (LC_ALPHABET_PLUS_DIGITS.indexOf(rowID[2]) < 0)
+ else if (LC_ALPHABET_PLUS_DIGITS_PLUS_HYPHEN.indexOf(rowID[2]) < 0)
addNoticePartial({ priority: 173, message: "Row ID characters should only be lowercase letters, digits, or hypen", fieldName: 'ID', characterIndex: 2, rowID, extract: rowID, location: ourRowLocation });
}
if (tags.length)
;
- if (supportReference.length) { // need to check TN against TA
+ if (supportReference.length) { // need to check TN2 against TA
if (isWhitespace(supportReference))
addNoticePartial({ priority: 373, message: "Field is only whitespace", fieldName: 'SupportReference', rowID, location: ourRowLocation });
- else if (annotationType === 'TN') { // More than just whitespace
+ else if (annotationType === 'TN2') { // More than just whitespace
const supportReferenceArticlePart = supportReference.replace('rc://*/ta/man/translate/', '');
// console.log("supportReferenceArticlePart", supportReferenceArticlePart);
if (!supportReferenceArticlePart.startsWith('figs-')
@@ -436,7 +445,8 @@ export async function checkAnnotationTSVDataRow(languageCode, annotationType, li
&& supportReferenceArticlePart !== 'guidelines-sonofgodprinciples')
addNoticePartial({ priority: 788, message: "Only 'Just-In-Time Training' TA articles allowed here", fieldName: 'SupportReference', extract: supportReference, rowID, location: ourRowLocation });
SRSuggestion = ourCheckTextField(rowID, 'SupportReference', supportReference, true, ourRowLocation, optionalCheckingOptions);
- await ourCheckSupportReferenceInTA(rowID, 'SupportReference', supportReference, ourRowLocation, optionalCheckingOptions);
+ if (optionalCheckingOptions.disableAllLinkFetchingFlag !== true)
+ await ourCheckSupportReferenceInTA(rowID, 'SupportReference', supportReference, ourRowLocation, optionalCheckingOptions);
if (annotation.indexOf(supportReference) < 0)
addNoticePartial({ priority: 787, message: "Link to TA should also be in Annotation", fieldName: 'SupportReference', extract: supportReference, rowID, location: ourRowLocation });
}
@@ -455,7 +465,7 @@ export async function checkAnnotationTSVDataRow(languageCode, annotationType, li
addNoticePartial({ priority: 750, message: "Missing occurrence field when we have an original quote", fieldName: 'Occurrence', rowID, location: ourRowLocation });
}
else // TODO: Find more details about when these fields are really compulsory (and when they're not, e.g., for 'intro') ???
- if (annotationType === 'TN' && V !== 'intro' && occurrence !== '0')
+ if (annotationType === 'TN2' && V !== 'intro' && occurrence !== '0')
addNoticePartial({ priority: 919, message: "Missing Quote field", fieldName: 'Quote', rowID, location: ourRowLocation });
if (occurrence.length) { // This should usually be a digit
@@ -500,11 +510,11 @@ export async function checkAnnotationTSVDataRow(languageCode, annotationType, li
}
}
else // TODO: Find out if these fields are really compulsory (and when they're not, e.g., for 'intro') ???
- if (annotationType === 'TN')
+ if (annotationType === 'TN2')
addNoticePartial({ priority: 274, message: "Missing Annotation field", fieldName: 'Annotation', rowID, location: ourRowLocation });
// 7 [reference, rowID, tags, supportReference, quote, occurrence, annotation]
- const suggestion = `${reference}\t${RIDSuggestion === undefined? rowID: RIDSuggestion}\t${tags}\t${SRSuggestion === undefined ? supportReference : SRSuggestion}\t${QSuggestion === undefined ? quote : QSuggestion}\t${OSuggestion === undefined ? occurrence : OSuggestion}\t${ASuggestion === undefined ? annotation : ASuggestion}`;
+ const suggestion = `${reference}\t${RIDSuggestion === undefined ? rowID : RIDSuggestion}\t${tags}\t${SRSuggestion === undefined ? supportReference : SRSuggestion}\t${QSuggestion === undefined ? quote : QSuggestion}\t${OSuggestion === undefined ? occurrence : OSuggestion}\t${ASuggestion === undefined ? annotation : ASuggestion}`;
if (suggestion !== line) {
// console.log(`Had annotation ${line}`);
// console.log(`Sug annotation ${suggestion}`);
diff --git a/src/core/annotation-row-check.md b/src/core/annotation-row-check.md
index 82d1fe5c..e0f9e9a2 100644
--- a/src/core/annotation-row-check.md
+++ b/src/core/annotation-row-check.md
@@ -7,6 +7,9 @@ It returns a list of success messages and a list of notice components. (There is
These raw notice components can then be filtered and/or sorted as required by the calling program, and then divided into a list of errors and a list of warnings or whatever as desired.
```js
+// The code in this box is editable for changing settings—
+// Simply click inside here and add, change, or delete text as required.
+
import React, { useState, useEffect } from 'react';
import { checkAnnotationTSVDataRow } from './annotation-row-check';
import { RenderLines, RenderRawResults } from '../demos/RenderProcessedResults';
@@ -40,7 +43,7 @@ const data = {
// You can choose any of the above lines here
// (to demonstrate differing results)
languageCode: 'en',
- annotationType: 'TN',
+ annotationType: 'TN2',
tableLineName : 'lineA9',
tableLine : lineA9,
bookID : 'GEN', C:'1', V:'2',
@@ -59,7 +62,8 @@ function CheckAnnotationRow(props) {
(async () => {
// Display our "waiting" message
setResults(
Checking {tableLineName} {bookID}…
); - const rawResults = await checkAnnotationTSVDataRow(languageCode, annotationType, tableLine, bookID, C, V, givenLocation); + // (Final unused parameter is optionalCheckingOptions) + const rawResults = await checkAnnotationTSVDataRow(languageCode, annotationType, tableLine, bookID, C, V, givenLocation, {}); setResults(Checking {languageCode} {annotationType} for {tableTextName} {bookID}…
); - const rawResults = await checkAnnotationRows(languageCode, annotationType, bookID, filename, tableText, givenLocation); + // (Final unused parameter is optionalCheckingOptions) + const rawResults = await checkAnnotationRows(languageCode, annotationType, bookID, filename, tableText, givenLocation, {}); setResults(Checking {tableLineName} {bookID}…
); - const rawResults = await checkTN_TSVDataRow(languageCode, tableLine, bookID, C, V, givenLocation); + // (Final unused parameter is optionalCheckingOptions) + const rawResults = await checkTN_TSVDataRow(languageCode, tableLine, bookID, C, V, givenLocation, {}); setResults(Checking {tableTextName} {bookID}…
); - const rawResults = await checkTN_TSVText(languageCode, bookID, filename, tableText, givenLocation); + // (Final unused parameter is optionalCheckingOptions) + const rawResults = await checkTN_TSVText(languageCode, bookID, filename, tableText, givenLocation, {}); setResults( Finished in
Preloading repos for {username} {languageCode} ready for all book packages check…
); - const successFlag = await preloadReposIfNecessary(username, languageCode, bookIDList, branch, preloadList); + const successFlag = await preloadReposIfNecessary(username, languageCode, bookIDList, branch, repoPreloadList); if (!successFlag) console.log(`AllBookPackagesCheck error: Failed to pre-load all repos`) diff --git a/src/demos/all-book-packages-check/README.md b/src/demos/all-book-packages-check/README.md index fb47ba77..49e759b7 100644 --- a/src/demos/all-book-packages-check/README.md +++ b/src/demos/all-book-packages-check/README.md @@ -9,14 +9,17 @@ The code below requests some info and then checks the requested Bible books—NT **Note**: This demonstration uses saved (cached) copies of files stored inside the local browser. This makes reruns of the checks faster, but it won't notice if you have recently updated the files on Door43. If you want to clear the local caches, use either the `reloadAllFilesFirst` variable below, or the `Clear Cache` function from the menu. ```js +// The code in this box is editable for changing settings— +// Simply click inside here and add, change, or delete text as required. + import AllBookPackagesCheck from './AllBookPackagesCheck';Preloading repos for {username} {languageCode} ready for {bookID} book package check…
); - const successFlag = await preloadReposIfNecessary(username, languageCode, [bookID], branch); + const successFlag = await preloadReposIfNecessary(username, languageCode, [bookID], branch, repoPreloadList); if (!successFlag) console.error(`BookPackageCheck error: Failed to pre-load all repos`) // } diff --git a/src/demos/book-package-check/README.md b/src/demos/book-package-check/README.md index 02545f82..6e6f69b9 100644 --- a/src/demos/book-package-check/README.md +++ b/src/demos/book-package-check/README.md @@ -13,238 +13,43 @@ Note that `OBS` can also be entered here as a *pseudo book identifier* in order **Note**: This demonstration uses saved (cached) copies of files stored inside the local browser. This makes reruns of the checks faster, but it won't notice if you have recently updated the files on Door43. If you want to clear the local caches, use either the `reloadAllFilesFirst` variable below, or the `Clear Cache` function from the menu. ```js +// The code in this box is editable for changing settings— +// Simply click inside here and add, change, or delete text as required. + import BookPackageCheck from './BookPackageCheck';Checking {username} {languageCode} {bookID} book package in {repoCode} (checked {numCheckedRepos}/{repoCodeList.length} repos)…
); let filename; if (repoCode === 'UHB' || repoCode === 'UGNT' || repoCode === 'LT' || repoCode === 'ST') { - // TODO: Might we need specific releases/tags for some of these (e.g., from the TN manifest)??? + // TODO: Might we need specific releases/tags for some of these (e.g., from the TN2 manifest)??? // TODO: Do we need to hard-code where to find the UHB and UGNT??? filename = `${bookNumberAndName}.usfm`; } - else if (repoCode === 'TWL' || repoCode === 'TN' || repoCode === 'TQ') { // in translation-annotations repo - filename = `${bookID}_${repoCode.toLowerCase()}.tsv` + else if (repoCode === 'TWL' || repoCode === 'TN2' || repoCode === 'TQ2') { + let adjustedRepoCode = repoCode; + if (adjustedRepoCode.endsWith('2')) adjustedRepoCode = adjustedRepoCode.substring(0, adjustedRepoCode.length - 1); + filename = `${bookID}_${adjustedRepoCode.toLowerCase()}.tsv` } - else if (repoCode === 'SN' || repoCode === 'SQ') { // in study-annotations repo + else if (repoCode === 'SN' || repoCode === 'SQ') { filename = `${bookID}_${repoCode.toLowerCase()}.tsv` } - else if (repoCode === 'TN1') { + else if (repoCode === 'TN') { try { filename = await cachedGetBookFilenameFromManifest({ username, repository: repoName, branch, bookID: bookID.toLowerCase() }); - console.assert(filename.startsWith(`${languageCode}_`), `Expected TN filename '${filename}' to start with the language code '${languageCode}_'`); + console.assert(filename.startsWith(`${languageCode}_`), `Expected TN2 filename '${filename}' to start with the language code '${languageCode}_'`); } catch (e) { // console.error(`cachedGetBookFilenameFromManifest failed with: ${e}`); filename = `${languageCode}_tn_${bookNumberAndName}.tsv`; // Take a guess } - console.assert(filename.endsWith('.tsv'), `Expected TN filename '${filename}' to end with '.tsv'`); + console.assert(filename.endsWith('.tsv'), `Expected TN2 filename '${filename}' to end with '.tsv'`); } if (repoCode === 'OBS') { @@ -408,7 +335,7 @@ export async function checkBookPackage(username, languageCode, bookID, setResult // console.log(`checkRepo() returned ${checkBookPackageResult.successList.length} success message(s) and ${checkBookPackageResult.noticeList.length} notice(s)`); // console.log("crResultObject keys", JSON.stringify(Object.keys(checkBookPackageResult))); addSuccessMessage(`Checked ${languageCode} OBS repo from ${username}`); - } else if (repoCode === 'TQ1') { + } else if (repoCode === 'TQ') { // This is the old markdown resource with hundreds/thousands of files const tqResultObject = await checkTQMarkdownBook(username, languageCode, repoName, branch, bookID, newCheckingOptions); checkBookPackageResult.successList = checkBookPackageResult.successList.concat(tqResultObject.successList); @@ -420,7 +347,7 @@ export async function checkBookPackage(username, languageCode, bookID, setResult totalCheckedSize += tqResultObject.totalCheckedSize; checkedRepoNames.add(repoName); } - } else { // For repos other than OBS and TQ1, we only have one file to check + } else { // For repos other than OBS and TQ, we only have one file to check let repoFileContent; try { const path = repoName.endsWith('-annotations') ? `${bookID}/${filename}` : filename; @@ -451,20 +378,39 @@ export async function checkBookPackage(username, languageCode, bookID, setResult addSuccessMessage(`Checked ${repoCode.toUpperCase()} file: ${filename}`); } - // We also check the manifest file for each repo if requested - // because a faulty manifest might also stop a BP from working correctly in various programs - if (checkingOptions.checkManifestFlag) { - if (!checkedManifestDetails.includes(repoName)) { // Don't want to check more than once, esp. for annotations repos - checkedManifestDetails.push(repoName); // Remember that we checked this one - // console.log("BEFORE", checkBookPackageResult.noticeList.length); - const numCheckedCharacters = await ourCheckManifest(repoCode, repoName, generalLocation, newCheckingOptions); - // console.log("AFTER", checkBookPackageResult.noticeList.length); - if (numCheckedCharacters > 0) { - checkedFileCount += 1; - checkedFilenames.push('manifest.yaml'); - checkedFilenameExtensions.add('yaml'); - totalCheckedSize += numCheckedCharacters; - addSuccessMessage(`Checked ${repoName} manifest file`); + if (!newCheckingOptions.disableAllLinkFetchingFlag) { + // We also check the manifest file for each repo if requested + // because a faulty manifest might also stop a BP from working correctly in various programs + if (checkingOptions.checkManifestFlag) { + if (!checkedManifestDetails.includes(repoName)) { // Don't want to check more than once, esp. for annotations repos + checkedManifestDetails.push(repoName); // Remember that we checked this one + // console.log("BEFORE", checkBookPackageResult.noticeList.length); + const numCheckedCharacters = await ourCheckManifest(repoCode, repoName, generalLocation, newCheckingOptions); + // console.log("AFTER", checkBookPackageResult.noticeList.length); + if (numCheckedCharacters > 0) { + checkedFileCount += 1; + checkedFilenames.push('manifest.yaml'); + checkedFilenameExtensions.add('yaml'); + totalCheckedSize += numCheckedCharacters; + addSuccessMessage(`Checked ${repoName} manifest file`); + } + } + } + // We can also check the README file for each repo if requested + if (checkingOptions.checkReadmeFlag) { + if (!checkedManifestDetails.includes(repoName)) { // Don't want to check more than once, esp. for annotations repos + checkedManifestDetails.push(repoName); // Remember that we checked this one + // console.log("BEFORE", checkBookPackageResult.noticeList.length); + const filename = 'README.md'; + const numCheckedCharacters = await ourCheckMarkdown(repoCode, repoName, filename, generalLocation, newCheckingOptions); + // console.log("AFTER", checkBookPackageResult.noticeList.length); + if (numCheckedCharacters > 0) { + checkedFileCount += 1; + checkedFilenames.push(filename); + checkedFilenameExtensions.add('md'); + totalCheckedSize += numCheckedCharacters; + addSuccessMessage(`Checked ${repoName} README file`); + } } } } @@ -487,3 +433,148 @@ export async function checkBookPackage(username, languageCode, bookID, setResult return checkBookPackageResult; }; // end of checkBookPackage() + + +/* + checkTQMarkdownBook +*/ +/** + * + * @param {string} username + * @param {string} languageCode + * @param {string} repoName + * @param {string} branch + * @param {string} bookID -- 3-character USFM book ID or 'OBS' + * @param {Object} checkingOptions + * @return {Object} - containing successList and noticeList + */ +async function checkTQMarkdownBook(username, languageCode, repoName, branch, bookID, checkingOptions) { + // console.log(`checkTQMarkdownBook(${username}, ${repoName}, ${branch}, ${bookID}, ${JSON.stringify(checkingOptions)})…`) + const repoCode = 'TQ'; + const generalLocation = ` in ${username} (${branch})`; + + const ctqResult = { successList: [], noticeList: [] }; + + function addSuccessMessage(successString) { + // console.log(`checkBookPackage success: ${successString}`); + ctqResult.successList.push(successString); + } + + function addNoticePartial(noticeObject) { + // bookID is a three-character UPPERCASE USFM book identifier or 'OBS'. + // console.log(`checkTQMarkdownBook addNoticePartial: ${noticeObject.priority}:${noticeObject.message} ${noticeObject.bookID} ${noticeObject.C}:${noticeObject.V} ${noticeObject.filename}:${noticeObject.lineNumber} ${noticeObject.characterIndex > 0 ? ` (at character ${noticeObject.characterIndex})` : ""}${noticeObject.extract ? ` ${noticeObject.extract}` : ""}${noticeObject.location}`); + console.assert(noticeObject.priority !== undefined, "cTQ addNoticePartial: 'priority' parameter should be defined"); + console.assert(typeof noticeObject.priority === 'number', `cTQ addNoticePartial: 'priority' parameter should be a number not a '${typeof noticeObject.priority}'`); + console.assert(noticeObject.message !== undefined, "cTQ addNoticePartial: 'message' parameter should be defined"); + console.assert(typeof noticeObject.message === 'string', `cTQ addNoticePartial: 'message' parameter should be a string not a '${typeof noticeObject.message}'`); + console.assert(noticeObject.bookID !== undefined, "cTQ addNoticePartial: 'bookID' parameter should be defined"); + console.assert(typeof noticeObject.bookID === 'string', `cTQ addNoticePartial: 'bookID' parameter should be a string not a '${typeof noticeObject.bookID}'`); + console.assert(noticeObject.bookID.length === 3, `cTQ addNoticePartial: 'bookID' parameter should be three characters long not ${noticeObject.bookID.length}`); + console.assert(books.isValidBookID(noticeObject.bookID), `cTQ addNoticePartial: '${noticeObject.bookID}' is not a valid USFM book identifier`); + // console.assert(C !== undefined, "cTQ addNoticePartial: 'C' parameter should be defined"); + if (noticeObject.C) console.assert(typeof noticeObject.C === 'string', `cTQ addNoticePartial: 'C' parameter should be a string not a '${typeof noticeObject.C}'`); + // console.assert(V !== undefined, "cTQ addNoticePartial: 'V' parameter should be defined"); + if (noticeObject.V) console.assert(typeof noticeObject.V === 'string', `cTQ addNoticePartial: 'V' parameter should be a string not a '${typeof noticeObject.V}'`); + // console.assert(characterIndex !== undefined, "cTQ addNoticePartial: 'characterIndex' parameter should be defined"); + if (noticeObject.characterIndex) console.assert(typeof noticeObject.characterIndex === 'number', `cTQ addNoticePartial: 'characterIndex' parameter should be a number not a '${typeof noticeObject.characterIndex}'`); + // console.assert(extract !== undefined, "cTQ addNoticePartial: 'extract' parameter should be defined"); + if (noticeObject.extract) console.assert(typeof noticeObject.extract === 'string', `cTQ addNoticePartial: 'extract' parameter should be a string not a '${typeof noticeObject.extract}'`); + console.assert(noticeObject.location !== undefined, "cTQ addNoticePartial: 'location' parameter should be defined"); + console.assert(typeof noticeObject.location === 'string', `cTQ addNoticePartial: 'location' parameter should be a string not a '${typeof noticeObject.location}'`); + console.assert(noticeObject.extra !== undefined, "cTQ addNoticePartial: 'extra' parameter should be defined"); + console.assert(typeof noticeObject.extra === 'string', `cTQ addNoticePartial: 'extra' parameter should be a string not a '${typeof noticeObject.extra}'`); + ctqResult.noticeList.push({ ...noticeObject, username, repoCode, repoName, bookID }); + } + + + async function ourCheckTQFileContents(repoCode, bookID, C, V, cfFilename, fileContent, fileLocation, optionalCheckingOptions) { + // console.log(`checkBookPackage ourCheckTQFileContents(${cfFilename})`); + + // Updates the global list of notices + console.assert(repoCode !== undefined, "cTQ ourCheckTQFileContents: 'repoCode' parameter should be defined"); + console.assert(typeof repoCode === 'string', `cTQ ourCheckTQFileContents: 'repoCode' parameter should be a string not a '${typeof repoCode}'`); + console.assert(cfFilename !== undefined, "cTQ ourCheckTQFileContents: 'cfFilename' parameter should be defined"); + console.assert(typeof cfFilename === 'string', `cTQ ourCheckTQFileContents: 'cfFilename' parameter should be a string not a '${typeof cfFilename}'`); + console.assert(fileContent !== undefined, "cTQ ourCheckTQFileContents: 'fileContent' parameter should be defined"); + console.assert(typeof fileContent === 'string', `cTQ ourCheckTQFileContents: 'fileContent' parameter should be a string not a '${typeof fileContent}'`); + console.assert(fileLocation !== undefined, "cTQ ourCheckTQFileContents: 'fileLocation' parameter should be defined"); + console.assert(typeof fileLocation === 'string', `cTQ ourCheckTQFileContents: 'fileLocation' parameter should be a string not a '${typeof fileLocation}'`); + + const cfResultObject = await checkFileContents(languageCode, repoCode, cfFilename, fileContent, fileLocation, optionalCheckingOptions); + // console.log("checkFileContents() returned", cfResultObject.successList.length, "success message(s) and", cfResultObject.noticeList.length, "notice(s)"); + // for (const successEntry of cfResultObject.successList) console.log(" ourCheckTQFileContents:", successEntry); + + // Process noticeList line by line, appending the repoCode as an extra field as we go + for (const noticeEntry of cfResultObject.noticeList) { + // noticeEntry is an array of eight fields: 1=priority, 2=bookID, 3=C, 4=V, 5=msg, 6=characterIndex, 7=extract, 8=location + // console.assert(Object.keys(noticeEntry).length === 5, `cTQ ourCheckTQFileContents notice length=${Object.keys(noticeEntry).length}`); + // We add the repoCode as an extra value + addNoticePartial({ ...noticeEntry, bookID, C, V, extra: repoCode }); + } + } + // end of ourCheckTQFileContents function + + + // Main code for checkTQMarkdownBook + // We need to find and check all the markdown folders/files for this book + const getFileListFromZip_ = checkingOptions && checkingOptions.getFileListFromZip ? checkingOptions.getFileListFromZip : getFileListFromZip; + let checkedFileCount = 0, checkedFilenames = [], checkedFilenameExtensions = new Set(), totalCheckedSize = 0; + const pathList = await getFileListFromZip_({ username, repository: repoName, branch, optionalPrefix: `${bookID.toLowerCase()}/` }); + if (!Array.isArray(pathList) || !pathList.length) { + // console.error("checkTQrepo failed to load", username, repoName, branch); + const details = `username=${username}`; + if (! await repositoryExistsOnDoor43({ username, repository: repoName })) + ctqResult.noticeList.push({ priority: 997, message: "Repository doesn't exist", details, username, repoCode, repoName, location: generalLocation, extra: repoCode }); + else + addNoticePartial({ priority: 996, message: "Unable to load", details, bookID, location: generalLocation, extra: repoCode }); + } else { + + // console.log(` Got ${pathList.length} pathList entries`) + for (const thisPath of pathList) { + // console.log("checkTQMarkdownBook: Try to load", username, repoName, thisPath, branch); + + console.assert(thisPath.endsWith('.md'), `Expected ${thisPath} to end with .md`); + // const filename = thisPath.split('/').pop(); + const pathParts = thisPath.slice(0, -3).split('/'); + const C = pathParts[pathParts.length - 2].replace(/^0+(?=\d)/, ''); // Remove leading zeroes + const V = pathParts[pathParts.length - 1].replace(/^0+(?=\d)/, ''); // Remove leading zeroes + + const getFile_ = (checkingOptions && checkingOptions.getFile) ? checkingOptions.getFile : cachedGetFile; + let tqFileContent; + try { + tqFileContent = await getFile_({ username, repository: repoName, path: thisPath, branch }); + // console.log("Fetched fileContent for", repoName, thisPath, typeof tqFileContent, tqFileContent.length); + checkedFilenames.push(thisPath); + totalCheckedSize += tqFileContent.length; + } catch (tQerror) { + console.error("checkTQMarkdownBook failed to load", username, repoName, thisPath, branch, tQerror + ''); + let details = `username=${username}`; + if (! await repositoryExistsOnDoor43({ username, repository: repoName })) + ctqResult.noticeList.push({ priority: 997, message: "Repository doesn't exist", details, username, repoCode, repoName, location: generalLocation, extra: repoCode }); + else { + // eslint-disable-next-line eqeqeq + if (tQerror != 'TypeError: repoFileContent is null') details += ` error=${tQerror}`; + addNoticePartial({ priority: 996, message: "Unable to load", details, bookID, C, V, filename: thisPath, location: `${generalLocation} ${thisPath}`, extra: repoCode }); + } + } + if (tqFileContent) { + // We use the generalLocation here (does not include repo name) + // so that we can adjust the returned strings ourselves + // NOTE: We pass thisPath here coz the actual filename by itself is useless (so many '01.md') + await ourCheckTQFileContents(repoCode, bookID, C, V, thisPath, tqFileContent, generalLocation, checkingOptions); // Adds the notices to checkBookPackageResult + checkedFileCount += 1; + checkedFilenameExtensions.add('md'); + // addSuccessMessage(`Checked ${repoCode.toUpperCase()} file: ${thisPath}`); + } + } + addSuccessMessage(`Checked ${checkedFileCount.toLocaleString()} ${repoCode.toUpperCase()} file${checkedFileCount === 1 ? '' : 's'}`); + } + + ctqResult.checkedFileCount = checkedFileCount; + ctqResult.checkedFilenames = checkedFilenames; + ctqResult.checkedFilenameExtensions = [...checkedFilenameExtensions]; // convert Set to Array + ctqResult.checkedFilesizes = totalCheckedSize; + // console.log(` checkTQMarkdownBook returning ${JSON.stringify(ctqResult)}`); + return ctqResult; +} +// end of checkTQMarkdownBook function diff --git a/src/demos/book-packages-check/BookPackagesCheck.js b/src/demos/book-packages-check/BookPackagesCheck.js index 392b1c6d..8d9dbdfb 100644 --- a/src/demos/book-packages-check/BookPackagesCheck.js +++ b/src/demos/book-packages-check/BookPackagesCheck.js @@ -45,8 +45,8 @@ function BookPackagesCheck(/*username, languageCode, bookIDs,*/ props) { // Or this allows the parameters to be specified as a BookPackagesCheck property if (props.extractLength) checkingOptions.extractLength = ourParseInt(props.extractLength); - let preloadList = ['TA', 'TW', 'TQ']; - if (bookIDList.length > 5) { preloadList.push('LT'); preloadList.push('ST'); preloadList.push('TN'); } + let repoPreloadList = ['TA', 'TW', 'TQ', 'TQ2']; + if (bookIDList.length > 5) { repoPreloadList.push('LT'); repoPreloadList.push('ST'); repoPreloadList.push('TN'); repoPreloadList.push('TN2'); } useEffect(() => { // console.log("BookPackagesCheck.useEffect() called with ", JSON.stringify(props)); @@ -71,7 +71,7 @@ function BookPackagesCheck(/*username, languageCode, bookIDs,*/ props) { else await clearCheckedArticleCache(); setResultValue(Preloading repos for {username} {languageCode} ready for book packages check…
); - const successFlag = await preloadReposIfNecessary(username, languageCode, bookIDList, branch, preloadList); + const successFlag = await preloadReposIfNecessary(username, languageCode, bookIDList, branch, repoPreloadList); if (!successFlag) console.error(`BookPackagesCheck error: Failed to pre-load all repos`) diff --git a/src/demos/book-packages-check/README.md b/src/demos/book-packages-check/README.md index 84ca8fc8..2bd69735 100644 --- a/src/demos/book-packages-check/README.md +++ b/src/demos/book-packages-check/README.md @@ -13,230 +13,32 @@ Note that `OBS` can also be entered here as a *pseudo book identifier* in order **Note**: This demonstration uses saved (cached) copies of files stored inside the local browser. This makes reruns of the checks faster, but it won't notice if you have recently updated the files on Door43. If you want to clear the local caches, use either the `reloadAllFilesFirst` variable below, or the `Clear Cache` function from the menu. ```js +// The code in this box is editable for changing settings— +// Simply click inside here and add, change, or delete text as required. + import BookPackagesCheck from './BookPackagesCheck';Preloading repos for {username} {languageCode} ready for GL book package check…
); - const successFlag = await preloadReposIfNecessary(username, languageCode, [bookID], branch); + const successFlag = await preloadReposIfNecessary(username, languageCode, [bookID], branch, repoPreloadList); if (!successFlag) console.error(`AllBookPackagesCheck error: Failed to pre-load all repos`) diff --git a/src/demos/gl-book-package-check/README.md b/src/demos/gl-book-package-check/README.md index dabb40d6..1223eebe 100644 --- a/src/demos/gl-book-package-check/README.md +++ b/src/demos/gl-book-package-check/README.md @@ -13,6 +13,9 @@ Note that `OBS` can also be entered here as a *pseudo book identifier* in order **Note**: This demonstration uses saved (cached) copies of files stored inside the local browser. This makes reruns of the checks faster, but it won't notice if you have recently updated the files on Door43. If you want to clear the local caches, use either the `reloadAllFilesFirst` variable below, or the `Clear Cache` function from the menu. ```js +// The code in this box is editable for changing settings— +// Simply click inside here and add, change, or delete text as required. + import { clearCheckedArticleCache } from '../../core'; import GlBookPackageCheck from './GlBookPackageCheck'; @@ -25,11 +28,11 @@ clearCheckedArticleCache(); originalLanguagesUsername='unfoldingWord' // repo organisation name for work-in-progress Door43 UHB and UGNT versions // Uncomment or change ONE of the following lines - // otherLanguageUsername='Door43-Catalog' // repo organisation name for all published Door43 LT, ST, TN, etc. versions + // otherLanguageUsername='Door43-Catalog' // repo organisation name for all published Door43 LT, ST, TN2, etc. versions // otherLanguageUsername='unfoldingWord' // repo organisation name for work-in-progress en Door43 ULT, UST, UTN, etc. versions - // otherLanguageUsername='Es-419_gl' // repo organisation name for work-in-progress es-419 Door43 LT, ST, TN, etc. versions - // otherLanguageUsername='translationCore-Create-BCS' // repo organisation name for work-in-progress hi/kn Door43 LT, ST, TN, etc. versions - otherLanguageUsername='ru_gl' // repo organisation name for work-in-progress ru Door43 LT, ST, TN, etc. versions + // otherLanguageUsername='Es-419_gl' // repo organisation name for work-in-progress es-419 Door43 LT, ST, TN2, etc. versions + // otherLanguageUsername='translationCore-Create-BCS' // repo organisation name for work-in-progress hi/kn Door43 LT, ST, TN2, etc. versions + otherLanguageUsername='ru_gl' // repo organisation name for work-in-progress ru Door43 LT, ST, TN2, etc. versions // Of course, this languageCode has to match the chosen otherLanguageUsername above languageCode='ru' // Tested with es-419, hi, kn, ru @@ -42,211 +45,10 @@ clearCheckedArticleCache(); // Alternatives are `SevereMediumLow', 'SingleList' displayType='SingleList' + // Lines starting with // are ignored -- you can add or remove // as desired // Specifying maximumSimilarMessages and extractLength is just to show off options // —those fields are not necessary (or normal) here maximumSimilarMessages='2' // Default is 3 (0 means don't suppress) // extractLength='13' // Default is 15 /> ``` - - diff --git a/src/demos/notice-processing-functions.js b/src/demos/notice-processing-functions.js index 1e6c1a7d..b513b2f4 100644 --- a/src/demos/notice-processing-functions.js +++ b/src/demos/notice-processing-functions.js @@ -2,7 +2,7 @@ import { isDisabledNotice } from './disabled-notices'; // import { displayPropertyNames, consoleLogObject } from './utilities'; -// const NOTICE_PROCESSOR_VERSION_STRING = '0.8.4'; +// const NOTICE_PROCESSOR_VERSION_STRING = '0.8.10'; // All of the following can be overriden with optionalProcessingOptions const DEFAULT_MAXIMUM_SIMILAR_MESSAGES = 3; // Zero means no suppression of similar messages @@ -21,18 +21,12 @@ const DEFAULT_MEDIUM_PRIORITY_LEVEL = 600; // This level or higher becomes a med /** - * - * @param {Object} givenNoticeObject - * @param {Object} optionalProcessingOptions - * @return {Array} containing three items: remainingNoticeList, allTotals, resultObject - */ +* @description - Preprocesses the successList and noticeList +* @param {Object} givenNoticeObject - must contain a noticeList array +* @param {Object} optionalProcessingOptions - may contain parameters +* @return {Array} containing three items: remainingNoticeList, allTotals, resultObject +*/ function processNoticesCommon(givenNoticeObject, optionalProcessingOptions) { - /** - * @description - Preprocesses the successList and noticeList - * @param {Object} givenNoticeObject - must contain a noticeList array - * @param {Object} optionalProcessingOptions - may contain parameters - * @return {Array} - noticeList, countObject, preResultObject - */ /* Expects to get an object with: successList: a list of strings describing what has been checked @@ -102,6 +96,42 @@ function processNoticesCommon(givenNoticeObject, optionalProcessingOptions) { const standardisedNoticeList = givenNoticeObject.noticeList; + // Check for duplicate notices in the noticeList + // This might indicate that a function is being called twice unnecessarily + // This entire section may be commented out of production code + // It only really makes sense if the debugChain is enabled + if (givenNoticeObject.noticeList && givenNoticeObject.noticeList.length) { + console.log("Checking for duplicate notices…") + const uniqueList = []; + function uniqueListContains(item) { // returns -1 or the index of the first match + for (let ix = 0; ix < uniqueList.length; ix++) { + const thisUniqueNotice = uniqueList[ix]; + if ( // compare as few essentialfields as possible to find matches + thisUniqueNotice.priority === item.priority + && thisUniqueNotice.message === item.message + && (thisUniqueNotice.details === item.details || thisUniqueNotice.details === undefined || item.details === undefined) + && (thisUniqueNotice.repoCode === item.repoCode || thisUniqueNotice.repoCode === undefined || item.repoCode === undefined) + && (thisUniqueNotice.filename === item.filename || thisUniqueNotice.filename === undefined || item.filename === undefined) + && (thisUniqueNotice.rowID === item.rowID || thisUniqueNotice.rowID === undefined || item.rowID === undefined) + && (thisUniqueNotice.lineNumber === item.lineNumber || thisUniqueNotice.lineNumber === undefined || item.lineNumber === undefined) + && (thisUniqueNotice.characterIndex === item.characterIndex || thisUniqueNotice.characterIndex === undefined || item.characterIndex === undefined) + && (thisUniqueNotice.extract === item.extract || thisUniqueNotice.extract === undefined || item.extract === undefined) + ) + return ix; + } + return -1; + } + for (const thisGivenNotice of standardisedNoticeList) { + let xx; + if ((xx = uniqueListContains(thisGivenNotice)) === -1) // wasn't found + uniqueList.push(thisGivenNotice); + else console.log(`Duplicate notices:\n${JSON.stringify(thisGivenNotice)}\nwhen had\n${JSON.stringify(uniqueList[xx])}`); + } + if (uniqueList.length !== givenNoticeObject.noticeList.length) + console.log(`Here with ${givenNoticeObject.noticeList.length.toLocaleString()} notices and ${uniqueList.length.toLocaleString()} unique notices`); + } + + // Run a check through the noticeList to help discover any programming errors that need fixing // This entire section may be commented out of production code if (givenNoticeObject.noticeList && givenNoticeObject.noticeList.length) { @@ -126,6 +156,8 @@ function processNoticesCommon(givenNoticeObject, optionalProcessingOptions) { && !thisMsg.startsWith('Unexpected content after \\') && !thisMsg.startsWith('USFMGrammar: ') && !thisMsg.endsWith(' character after space') + && !thisMsg.endsWith(' character at start of line') + && !thisMsg.endsWith(' character at end of line') && !thisMsg.endsWith(' marker at start of line') && !thisMsg.endsWith(' closing character (no matching opener)') && !thisMsg.endsWith(' closing character doesn\'t match') @@ -232,7 +264,7 @@ function processNoticesCommon(givenNoticeObject, optionalProcessingOptions) { const NotesRegex = /\d\d-(\w\w\w).tsv/; // "Checked EN_TN_01-GEN.TSV file: en_tn_01-GEN.tsv" const manifestRegex = /Checked ([\w\-_]{2,25}) manifest file/; resultObject.successList = []; - const UHBBookList = [], UGNTBookList = [], LTBookList = [], STBookList = [], TNBookList = []; + const UHBBookList = [], UGNTBookList = [], LTBookList = [], STBookList = [], TNBookList = [], TN2BookList = [], TQ2BookList = []; const USFMBookList = [], TSVNotesList = [], manifestsList = []; const TNList = [], TQList = [], TWLList = []; for (const thisParticularSuccessMsg of givenNoticeObject.successList) { @@ -248,9 +280,13 @@ function processNoticesCommon(givenNoticeObject, optionalProcessingOptions) { STBookList.push(thisParticularSuccessMsg.substring(17, thisParticularSuccessMsg.length)) else if (thisParticularSuccessMsg.startsWith('Checked TN file: ')) TNBookList.push(thisParticularSuccessMsg.substring(17, thisParticularSuccessMsg.length)) - else if (thisParticularSuccessMsg.startsWith('Checked TN ') && thisParticularSuccessMsg.substring(14, 20) === ' file:') + else if (thisParticularSuccessMsg.startsWith('Checked TN2 file: ')) + TN2BookList.push(thisParticularSuccessMsg.substring(17, thisParticularSuccessMsg.length)) + else if (thisParticularSuccessMsg.startsWith('Checked TQ2 file: ')) + TQ2BookList.push(thisParticularSuccessMsg.substring(17, thisParticularSuccessMsg.length)) + else if (thisParticularSuccessMsg.startsWith('Checked TN2 ') && thisParticularSuccessMsg.substring(14, 20) === ' file:') TNList.push(thisParticularSuccessMsg.substring(21, thisParticularSuccessMsg.length)) - else if (thisParticularSuccessMsg.startsWith('Checked TQ ') && thisParticularSuccessMsg.substring(14, 20) === ' file:') + else if (thisParticularSuccessMsg.startsWith('Checked TQ2 ') && thisParticularSuccessMsg.substring(14, 20) === ' file:') TQList.push(thisParticularSuccessMsg.substring(21, thisParticularSuccessMsg.length)) else if (thisParticularSuccessMsg.startsWith('Checked TWL ') && thisParticularSuccessMsg.substring(15, 21) === ' file:') TWLList.push(thisParticularSuccessMsg.substring(22, thisParticularSuccessMsg.length)) @@ -278,14 +314,18 @@ function processNoticesCommon(givenNoticeObject, optionalProcessingOptions) { resultObject.successList.push(`Checked ST file: ${STBookList[0]}`); if (TNBookList.length === 1) resultObject.successList.push(`Checked TN file: ${TNBookList[0]}`); + if (TN2BookList.length === 1) + resultObject.successList.push(`Checked TN2 file: ${TN2BookList[0]}`); + if (TQ2BookList.length === 1) + resultObject.successList.push(`Checked TQ2 file: ${TQ2BookList[0]}`); if (USFMBookList.length === 1) resultObject.successList.push(`Checked ${USFMBookList[0]} file`); if (TSVNotesList.length === 1) resultObject.successList.push(`Checked ${TSVNotesList[0]} file`); if (TNList.length === 1) - resultObject.successList.push(`Checked TN file: ${TNList[0]}`); + resultObject.successList.push(`Checked TN2 file: ${TNList[0]}`); if (TQList.length === 1) - resultObject.successList.push(`Checked TQ file: ${TQList[0]}`); + resultObject.successList.push(`Checked TQ2 file: ${TQList[0]}`); if (TWLList.length === 1) resultObject.successList.push(`Checked TWL file: ${TWLList[0]}`); if (manifestsList.length === 1) @@ -301,9 +341,13 @@ function processNoticesCommon(givenNoticeObject, optionalProcessingOptions) { if (TWLList.length > 1) resultObject.successList.unshift(`Checked ${TWLList.length} TWL files: ${TWLList.join(', ')}`); if (TQList.length > 1) - resultObject.successList.unshift(`Checked ${TQList.length} TQ files: ${TQList.join(', ')}`); + resultObject.successList.unshift(`Checked ${TQList.length} TQ2 files: ${TQList.join(', ')}`); if (TNList.length > 1) resultObject.successList.unshift(`Checked ${TNList.length} TN files: ${TNList.join(', ')}`); + if (TQ2BookList.length > 1) + resultObject.successList.unshift(`Checked ${TQ2BookList.length} TQ2 files: ${TQ2BookList.join(', ')}`); + if (TN2BookList.length > 1) + resultObject.successList.unshift(`Checked ${TN2BookList.length} TN2 files: ${TN2BookList.join(', ')}`); if (TNBookList.length > 1) resultObject.successList.unshift(`Checked ${TNBookList.length} TN files: ${TNBookList.join(', ')}`); if (STBookList.length > 1) diff --git a/src/demos/notice-processing1.md b/src/demos/notice-processing1.md index a7ad1749..d8f75ecf 100644 --- a/src/demos/notice-processing1.md +++ b/src/demos/notice-processing1.md @@ -20,6 +20,9 @@ Note below that the optional `processOptions` object allows the user to adjust t Although this demonstration here formats and colours the error and warning lists, it's expected that the encapsulating program will format and use the fields as desired. Because they are returned as an array of fields rather than simply strings, it's certainly possible for the encapsulating program to sort or filter the messages as desired. ```js +// The code in this box is editable for changing settings— +// Simply click inside here and add, change, or delete text as required. + import { checkTextField } from '../core/field-text-check'; import { processNoticesToErrorsWarnings } from './notice-processing-functions'; import { RenderRawResults, RenderObject, RenderSuccessesErrorsWarnings } from '../demos/RenderProcessedResults'; diff --git a/src/demos/notice-processing2.md b/src/demos/notice-processing2.md index 86e4728a..8da1af4b 100644 --- a/src/demos/notice-processing2.md +++ b/src/demos/notice-processing2.md @@ -20,6 +20,9 @@ Note below that the optional `processOptions` object allows the user to adjust t Although this demonstration here formats and colours the error and warning lists, it's expected that the encapsulating program will format and use the fields as desired. Because they are returned as an array of fields rather than simply strings, it's certainly possible for the encapsulating program to sort or filter the messages as desired. ```js +// The code in this box is editable for changing settings— +// Simply click inside here and add, change, or delete text as required. + import { checkTextField } from '../core/field-text-check'; import { processNoticesToSevereMediumLow } from './notice-processing-functions'; import { RenderRawResults, RenderObject, RenderSuccessesSevereMediumLow } from '../demos/RenderProcessedResults'; diff --git a/src/demos/notice-processing3.md b/src/demos/notice-processing3.md index b8a363cb..3397ba7b 100644 --- a/src/demos/notice-processing3.md +++ b/src/demos/notice-processing3.md @@ -20,6 +20,9 @@ Note below that the optional `processOptions` object allows the user to adjust t Although this demonstration here formats and colour the warning list, it's expected that the encapsulating program will format and use the fields as desired. Because they are returned as an array of fields rather than simply strings, it's certainly possible for the encapsulating program to sort or filter the messages as desired. ```js +// The code in this box is editable for changing settings— +// Simply click inside here and add, change, or delete text as required. + import { checkTextField } from '../core/field-text-check'; import { processNoticesToSingleList } from './notice-processing-functions'; import { RenderRawResults, RenderObject, RenderSuccessesWarningsGradient } from '../demos/RenderProcessedResults'; diff --git a/src/demos/repo-check/README.md b/src/demos/repo-check/README.md index e913c552..72fef0b0 100644 --- a/src/demos/repo-check/README.md +++ b/src/demos/repo-check/README.md @@ -7,28 +7,31 @@ The code below requests some info and then checks a Door43 repository.You can en **Note**: This demonstration uses saved (cached) copies of files stored inside the local browser. This makes reruns of the checks faster, but it won't notice if you have recently updated the files on Door43. If you want to clear the local caches, use either the `reloadAllFilesFirst` variable below, or the `Clear Cache` function from the menu. ```js +// The code in this box is editable for changing settings— +// Simply click inside here and add, change, or delete text as required. + import RepoCheck from './RepoCheck';Preloading repos for {username} {languageCode} ready for {repoName} repo check…
); - const repoList = ['TW']; - if (repoCode !== 'UHB' && repoCode !== 'UGNT') repoList.push('TA'); // Original languages only have TW links - if (repoCode !== 'TA' && repoCode !== 'TW') repoList.push(repoCode); - const successFlag = await preloadReposIfNecessary(username, languageCode, [], branch, repoList); + const repoPreloadList = ['TW']; + if (repoCode !== 'UHB' && repoCode !== 'UGNT') repoPreloadList.push('TA'); // Original languages only have TW links + if (repoCode !== 'TA' && repoCode !== 'TW') repoPreloadList.push(repoCode); + const successFlag = await preloadReposIfNecessary(username, languageCode, [], branch, repoPreloadList); if (!successFlag) console.error(`RepoCheck error: Failed to pre-load all repos`) @@ -111,9 +111,11 @@ function RepoCheck(/*username, languageCode,*/ props) { rawCRResults.languageCode = languageCode; rawCRResults.checkedOptions = checkingOptions; + // Because we know here that we're only checking one repo, we don't need the repoName field in the notices - function deleteRepoNameField(notice) { delete notice.repoName; return notice; } - rawCRResults.noticeList = rawCRResults.noticeList.map(deleteRepoNameField); + // WRONG: We want the repoName so we can make the line numbers into live links + // function deleteRepoNameField(notice) { delete notice.repoName; return notice; } + // rawCRResults.noticeList = rawCRResults.noticeList.map(deleteRepoNameField); // console.log("Here with RC rawCRResults", typeof rawCRResults); // Now do our final handling of the result -- we have some options available diff --git a/src/demos/repo-check/checkRepo.js b/src/demos/repo-check/checkRepo.js index 7acbe207..1fbd36d3 100644 --- a/src/demos/repo-check/checkRepo.js +++ b/src/demos/repo-check/checkRepo.js @@ -4,7 +4,7 @@ import { repositoryExistsOnDoor43, getFileListFromZip, cachedGetFile, cachedGetR import { checkFileContents } from '../file-check/checkFileContents'; -// const REPO_VALIDATOR_VERSION_STRING = '0.4.2'; +// const REPO_VALIDATOR_VERSION_STRING = '0.4.3'; /* @@ -17,13 +17,22 @@ export async function checkRepo(username, repoName, branch, givenLocation, setRe noticeList: an array of 9 (i.e., with extra bookOrFileCode parameter at end) notice components */ // console.log(`checkRepo(${username}, ${repoName}, ${branch}, ${givenLocation}, (fn), ${JSON.stringify(checkingOptions)})…`); + console.assert(username !== undefined, "checkRepo: 'username' parameter should be defined"); + console.assert(typeof username === 'string', `checkRepo: 'username' parameter should be a string not a '${typeof username}'`); + console.assert(repoName !== undefined, "checkRepo: 'repoName' parameter should be defined"); + console.assert(typeof repoName === 'string', `checkRepo: 'repoName' parameter should be a string not a '${typeof repoName}'`); + console.assert(branch !== undefined, "checkRepo: 'branch' parameter should be defined"); + console.assert(typeof branch === 'string', `checkRepo: 'branch' parameter should be a string not a '${typeof branch}'`); + console.assert(givenLocation !== undefined, "checkRepo: 'givenRowLocation' parameter should be defined"); + console.assert(typeof givenLocation === 'string', `checkRepo: 'givenRowLocation' parameter should be a string not a '${typeof givenLocation}'`); + let abortFlag = false; const startTime = new Date(); let [languageCode, repoCode] = repoName.split('_'); repoCode = repoCode.toUpperCase(); - if (repoCode === 'TN') repoCode = 'TN1'; - else if (repoCode === 'TQ') repoCode = 'TQ1'; + if (repoCode === 'TN2') repoCode = 'TN'; + else if (repoCode === 'TQ2') repoCode = 'TQ'; // console.log("checkRepo languageCode", languageCode); if (branch === undefined) branch = 'master'; // Ideally we should ask what the default branch is @@ -66,8 +75,9 @@ export async function checkRepo(username, repoName, branch, givenLocation, setRe console.assert(typeof noticeObject.location === 'string', `cR addNoticePartial: 'location' parameter should be a string not a '${typeof noticeObject.location}'`); // console.assert(noticeObject.extra !== undefined, "cR addNoticePartial: 'extra' parameter should be defined"); console.assert(typeof noticeObject.extra === 'string', `cR addNoticePartial: 'extra' parameter should be a string not a '${typeof noticeObject.extra}'`); + if (noticeObject.debugChain) noticeObject.debugChain = `checkRepo ${noticeObject.debugChain}`; // Add in the repoName from the outer scope - checkRepoResult.noticeList.push({ ...noticeObject, repoCode, repoName }); + checkRepoResult.noticeList.push({ ...noticeObject, username, repoCode, repoName }); } @@ -92,7 +102,7 @@ export async function checkRepo(username, repoName, branch, givenLocation, setRe console.assert(fileLocation !== undefined, "ourCheckRepoFileContents: 'fileLocation' parameter should be defined"); console.assert(typeof fileLocation === 'string', `ourCheckRepoFileContents: 'fileLocation' parameter should be a string not a '${typeof fileLocation}'`); - const cfcResultObject = await checkFileContents(languageCode, filename, fileContent, fileLocation, optionalCheckingOptions); + const cfcResultObject = await checkFileContents(languageCode, repoCode, filename, fileContent, fileLocation, optionalCheckingOptions); // console.log("checkFileContents() returned", resultObject.successList.length, "success message(s) and", resultObject.noticeList.length, "notice(s)"); // for (const successEntry of resultObject.successList) // console.log(" ", successEntry); @@ -113,7 +123,7 @@ export async function checkRepo(username, repoName, branch, givenLocation, setRe // as we don't enable TA or TW checking per repo anyway // Anyway, not sure that the following code was working yet if (repoName.endsWith('_tn')) { - // The following is needed coz we might be checking the linked TA and/or TW articles from TN TSV files + // The following is needed coz we might be checking the linked TA and/or TW articles from TN2 TSV files console.log("cfcResultObject", JSON.stringify({ ...cfcResultObject, noticeList: "deleted" })); if (cfcResultObject.checkedFileCount && cfcResultObject.checkedFileCount > 0) { checkRepoResult.checkedFileCount += cfcResultObject.checkedFileCount; @@ -208,9 +218,10 @@ export async function checkRepo(username, repoName, branch, givenLocation, setRe else if (thisFilenameExtension === 'tsv') { // const filenameMain = thisFilename.substring(0, thisFilename.length - 4); // drop .tsv // console.log(`Have TSV filenameMain=${bookOrFileCode}`); - const bookID = bookOrFileCode.substring(bookOrFileCode.length - 3).toUpperCase(); + let bookID; + bookID = bookOrFileCode.length === 6 ? bookOrFileCode.substring(0, 3) : bookOrFileCode.slice(-3).toUpperCase(); // console.log(`Have TSV bookcode=${bookID}`); - console.assert(books.isValidBookID(bookID), `checkRepo: '${bookID}' is not a valid USFM book identifier (for TSV)`); + console.assert(bookID !== 'OBS' && books.isValidBookID(bookID), `checkRepo: '${bookID}' is not a valid USFM book identifier (for TSV)`); bookOrFileCode = bookID; ourBookID = bookID; } diff --git a/styleguide.config.js b/styleguide.config.js index ea4e996e..ef2d5c51 100644 --- a/styleguide.config.js +++ b/styleguide.config.js @@ -128,7 +128,7 @@ let sections = [ // description: '' }, { - name: 'TN TSV table check', + name: 'TN2 TSV table check', content: 'src/core/tn-tsv-table-text-check.md', // description: '' }, @@ -202,7 +202,7 @@ let sections = [ // description: '' }, { - name: 'TN TSV table row check', + name: 'TN2 TSV table row check', content: 'src/core/tn-tsv-table-row-check.md', // description: '' }, diff --git a/yarn.lock b/yarn.lock index e15544dc..b6beedec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,9 +3,9 @@ "@babel/cli@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.12.1.tgz#e08a0b1cb6fcd4b9eb6a606ba5602c5c0fe24a0c" - integrity sha512-eRJREyrfAJ2r42Iaxe8h3v6yyj1wu9OyosaUHW6UImjGf9ahGL9nsFNh7OCopvtcPL8WnEo7tp78wrZaZ6vG9g== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.12.7.tgz#63a3c38bddff02a1c633c70f2fd03019af6bf977" + integrity sha512-vE1fidQsaWnQVs4SItkuCdi3+uXqjbhw4cIKp8aawKxOnTnlvxYMzXSeMAqo6alldQRFQYb198YQfW0Sp1jl5Q== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" @@ -16,7 +16,7 @@ slash "^2.0.0" source-map "^0.5.0" optionalDependencies: - "@nicolo-ribaudo/chokidar-2" "^2.1.8" + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents" chokidar "^3.4.0" "@babel/code-frame@7.5.5": @@ -40,10 +40,10 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5", "@babel/compat-data@^7.9.0": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.5.tgz#f56db0c4bb1bbbf221b4e81345aab4141e7cb0e9" - integrity sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg== +"@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7", "@babel/compat-data@^7.9.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" + integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== "@babel/core@7.9.0": version "7.9.0" @@ -68,18 +68,18 @@ source-map "^0.5.0" "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.4.5", "@babel/core@^7.7.5": - version "7.12.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" - integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.7.tgz#bf55363c08c8352a37691f7216ec30090bf7e3bf" + integrity sha512-tRKx9B53kJe8NCGGIxEQb2Bkr0riUIEuN7Sc1fxhs5H8lKlCWUvQCSNMVIB0Meva7hcbCRJ76de15KoLltdoqw== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.1" + "@babel/generator" "^7.12.5" "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.1" - "@babel/parser" "^7.12.3" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.7" + "@babel/types" "^7.12.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -89,7 +89,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.12.1", "@babel/generator@^7.12.5", "@babel/generator@^7.4.0", "@babel/generator@^7.9.0": +"@babel/generator@^7.12.5", "@babel/generator@^7.4.0", "@babel/generator@^7.9.0": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de" integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A== @@ -113,7 +113,7 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-builder-react-jsx-experimental@^7.12.1": +"@babel/helper-builder-react-jsx-experimental@^7.12.4": version "7.12.4" resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz#55fc1ead5242caa0ca2875dcb8eed6d311e50f48" integrity sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og== @@ -130,7 +130,7 @@ "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.12.1", "@babel/helper-compilation-targets@^7.8.7": +"@babel/helper-compilation-targets@^7.12.5", "@babel/helper-compilation-targets@^7.8.7": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== @@ -152,12 +152,11 @@ "@babel/helper-split-export-declaration" "^7.10.4" "@babel/helper-create-regexp-features-plugin@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz#18b1302d4677f9dc4740fe8c9ed96680e29d37e8" - integrity sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f" + integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" regexpu-core "^4.7.1" "@babel/helper-define-map@^7.10.4": @@ -200,13 +199,13 @@ "@babel/types" "^7.10.4" "@babel/helper-member-expression-to-functions@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz#fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c" - integrity sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== dependencies: - "@babel/types" "^7.12.1" + "@babel/types" "^7.12.7" -"@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.8.3": +"@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5", "@babel/helper-module-imports@^7.8.3": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== @@ -229,24 +228,17 @@ lodash "^4.17.19" "@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz#7f94ae5e08721a49467346aa04fd22f750033b9c" + integrity sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.7" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== - dependencies: - lodash "^4.17.19" - "@babel/helper-remap-async-to-generator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" @@ -307,7 +299,7 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helpers@^7.12.1", "@babel/helpers@^7.9.0": +"@babel/helpers@^7.12.5", "@babel/helpers@^7.9.0": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== @@ -325,10 +317,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.12.3", "@babel/parser@^7.12.5", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0" - integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.12.7", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056" + integrity sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg== "@babel/plugin-proposal-async-generator-functions@^7.12.1", "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.12.1" @@ -420,10 +412,10 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-numeric-separator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.12.1", "@babel/plugin-proposal-numeric-separator@^7.8.3": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz#b1ce757156d40ed79d59d467cb2b154a5c4149ba" - integrity sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g== +"@babel/plugin-proposal-numeric-separator@^7.12.7", "@babel/plugin-proposal-numeric-separator@^7.8.3": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b" + integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" @@ -453,10 +445,10 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797" - integrity sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw== +"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" + integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" @@ -817,12 +809,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-jsx-development@^7.12.5", "@babel/plugin-transform-react-jsx-development@^7.9.0": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.5.tgz#677de5b96da310430d6cfb7fee16a1603afa3d56" - integrity sha512-1JJusg3iPgsZDthyWiCr3KQiGs31ikU/mSf2N2dSYEAO0GEImmVUbWf0VoSDGDFTAn5Dj4DUiR6SdIXHY7tELA== +"@babel/plugin-transform-react-jsx-development@^7.12.7", "@babel/plugin-transform-react-jsx-development@^7.9.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.7.tgz#4c2a647de79c7e2b16bfe4540677ba3121e82a08" + integrity sha512-Rs3ETtMtR3VLXFeYRChle5SsP/P9Jp/6dsewBQfokDSzKJThlsuFcnzLTDRALiUmTC48ej19YD9uN1mupEeEDg== dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.12.1" + "@babel/helper-builder-react-jsx-experimental" "^7.12.4" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx" "^7.12.1" @@ -840,13 +832,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-jsx@^7.12.5", "@babel/plugin-transform-react-jsx@^7.9.1": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.5.tgz#39ede0e30159770561b6963be143e40af3bde00c" - integrity sha512-2xkcPqqrYiOQgSlM/iwto1paPijjsDbUynN13tI6bosDz/jOW3CRzYguIE8wKX32h+msbBM22Dv5fwrFkUOZjQ== +"@babel/plugin-transform-react-jsx@^7.12.7", "@babel/plugin-transform-react-jsx@^7.9.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.7.tgz#8b14d45f6eccd41b7f924bcb65c021e9f0a06f7f" + integrity sha512-YFlTi6MEsclFAPIDNZYiCRbneg1MFGao9pPG9uD5htwE0vDbPaMUMeYd6itWjw7K4kro4UbdQf3ljmFl9y48dQ== dependencies: "@babel/helper-builder-react-jsx" "^7.10.4" - "@babel/helper-builder-react-jsx-experimental" "^7.12.1" + "@babel/helper-builder-react-jsx-experimental" "^7.12.4" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx" "^7.12.1" @@ -907,13 +899,12 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-sticky-regex@^7.12.1", "@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz#5c24cf50de396d30e99afc8d1c700e8bce0f5caf" - integrity sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ== +"@babel/plugin-transform-sticky-regex@^7.12.7", "@babel/plugin-transform-sticky-regex@^7.8.3": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" + integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" "@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.8.3": version "7.12.1" @@ -1020,13 +1011,13 @@ semver "^5.5.0" "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.4.5": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" - integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.7.tgz#54ea21dbe92caf6f10cb1a0a576adc4ebf094b55" + integrity sha512-OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew== dependencies: - "@babel/compat-data" "^7.12.1" - "@babel/helper-compilation-targets" "^7.12.1" - "@babel/helper-module-imports" "^7.12.1" + "@babel/compat-data" "^7.12.7" + "@babel/helper-compilation-targets" "^7.12.5" + "@babel/helper-module-imports" "^7.12.5" "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-validator-option" "^7.12.1" "@babel/plugin-proposal-async-generator-functions" "^7.12.1" @@ -1036,10 +1027,10 @@ "@babel/plugin-proposal-json-strings" "^7.12.1" "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-numeric-separator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.7" "@babel/plugin-proposal-object-rest-spread" "^7.12.1" "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.7" "@babel/plugin-proposal-private-methods" "^7.12.1" "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" "@babel/plugin-syntax-async-generators" "^7.8.0" @@ -1081,14 +1072,14 @@ "@babel/plugin-transform-reserved-words" "^7.12.1" "@babel/plugin-transform-shorthand-properties" "^7.12.1" "@babel/plugin-transform-spread" "^7.12.1" - "@babel/plugin-transform-sticky-regex" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.7" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/plugin-transform-typeof-symbol" "^7.12.1" "@babel/plugin-transform-unicode-escapes" "^7.12.1" "@babel/plugin-transform-unicode-regex" "^7.12.1" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.12.1" - core-js-compat "^3.6.2" + "@babel/types" "^7.12.7" + core-js-compat "^3.7.0" semver "^5.5.0" "@babel/preset-modules@^0.1.3": @@ -1115,14 +1106,14 @@ "@babel/plugin-transform-react-jsx-source" "^7.9.0" "@babel/preset-react@^7.0.0", "@babel/preset-react@^7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.5.tgz#d45625f65d53612078a43867c5c6750e78772c56" - integrity sha512-jcs++VPrgyFehkMezHtezS2BpnUlR7tQFAyesJn1vGTO9aTFZrgIQrA5YydlTwxbcjMwkFY6i04flCigRRr3GA== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.7.tgz#36d61d83223b07b6ac4ec55cf016abb0f70be83b" + integrity sha512-wKeTdnGUP5AEYCYQIMeXMMwU7j+2opxrG0WzuZfxuuW9nhKvvALBjl67653CWamZJVefuJGI219G591RSldrqQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-react-display-name" "^7.12.1" - "@babel/plugin-transform-react-jsx" "^7.12.5" - "@babel/plugin-transform-react-jsx-development" "^7.12.5" + "@babel/plugin-transform-react-jsx" "^7.12.7" + "@babel/plugin-transform-react-jsx-development" "^7.12.7" "@babel/plugin-transform-react-jsx-self" "^7.12.1" "@babel/plugin-transform-react-jsx-source" "^7.12.1" "@babel/plugin-transform-react-pure-annotations" "^7.12.1" @@ -1150,41 +1141,41 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4", "@babel/template@^7.3.3", "@babel/template@^7.4.0", "@babel/template@^7.8.6": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== +"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.3.3", "@babel/template@^7.4.0", "@babel/template@^7.8.6": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.5.tgz#78a0c68c8e8a35e4cacfd31db8bb303d5606f095" - integrity sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.7", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.7.tgz#572a722408681cef17d6b0bef69ef2e728ca69f1" + integrity sha512-nMWaqsQEeSvMNypswUDzjqQ+0rR6pqCtoQpsqGJC4/Khm9cISwPTSpai57F6/jDaOoEGz8yE/WxcO3PV6tKSmQ== dependencies: "@babel/code-frame" "^7.10.4" "@babel/generator" "^7.12.5" "@babel/helper-function-name" "^7.10.4" "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.12.5" - "@babel/types" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.9.0": - version "7.12.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.6.tgz#ae0e55ef1cce1fbc881cd26f8234eb3e657edc96" - integrity sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA== +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.9.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz#6039ff1e242640a29452c9ae572162ec9a8f5d13" + integrity sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ== dependencies: "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" @@ -1213,7 +1204,7 @@ resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== -"@date-io/core@1.x", "@date-io/core@^1.3.13": +"@date-io/core@^1.1.0": version "1.3.13" resolved "https://registry.yarnpkg.com/@date-io/core/-/core-1.3.13.tgz#90c71da493f20204b7a972929cc5c482d078b3fa" integrity sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA== @@ -1223,12 +1214,12 @@ resolved "https://registry.yarnpkg.com/@date-io/core/-/core-2.10.6.tgz#1a6e671b590a08af8bd0784f3a93670e5d2d5bd7" integrity sha512-MGYt4GEB/4ZMdSbj6FS7/gPBvuhHUwnn5O6t8PlkSqGF1310qxypVyK4CZg5RQgev25L3R5eLVdNTyYrJOL8Rw== -"@date-io/date-fns@^1.1.0": - version "1.3.13" - resolved "https://registry.yarnpkg.com/@date-io/date-fns/-/date-fns-1.3.13.tgz#7798844041640ab393f7e21a7769a65d672f4735" - integrity sha512-yXxGzcRUPcogiMj58wVgFjc9qUYrCnnU9eLcyNbsQCmae4jPuZCDoIBR21j8ZURsM7GRtU62VOw5yNd4dDHunA== +"@date-io/date-fns@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@date-io/date-fns/-/date-fns-1.1.0.tgz#91cd7703042513a6a0056a344b25cd74a4df643e" + integrity sha512-FMRhYWfoGiIXdN4xWAArpkdEbqsg2Fr+6Yda7Np2eVWCNx6gSMYsHIM51IIcI+3762ajYbhoEYjHYXVFNZIk1g== dependencies: - "@date-io/core" "^1.3.13" + "@date-io/core" "^1.1.0" "@emotion/hash@^0.8.0": version "0.8.0" @@ -1627,17 +1618,17 @@ dependencies: "@babel/runtime" "^7.4.4" -"@material-ui/pickers@^3.2.2": - version "3.2.10" - resolved "https://registry.yarnpkg.com/@material-ui/pickers/-/pickers-3.2.10.tgz#19df024895876eb0ec7cd239bbaea595f703f0ae" - integrity sha512-B8G6Obn5S3RCl7hwahkQj9sKUapwXWFjiaz/Bsw1fhYFdNMnDUolRiWQSoKPb1/oKe37Dtfszoywi1Ynbo3y8w== +"@material-ui/pickers@3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@material-ui/pickers/-/pickers-3.2.2.tgz#9b7a67f5a8f21f8183853ebc1848e5d8dd680d4c" + integrity sha512-on/J1yyKeJ4CkLnItpf/jPDKMZVWvHDklkh5FS7wkZ0s1OPoqTsPubLWfA7eND6xREnVRyLFzVTlE3VlWYdQWw== dependencies: - "@babel/runtime" "^7.6.0" - "@date-io/core" "1.x" + "@babel/runtime" "^7.2.0" "@types/styled-jsx" "^2.2.8" clsx "^1.0.2" react-transition-group "^4.0.0" rifm "^0.7.0" + tslib "^1.9.3" "@material-ui/styles@^4.10.0": version "4.10.0" @@ -1693,12 +1684,22 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nicolo-ribaudo/chokidar-2@^2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz#eef8d9b47e8dc589499f14d656e8d2dd978c3d14" - integrity sha512-FohwULwAebCUKi/akMFyGi7jfc7JXTeMHzKxuP3umRd9mK/2Y7/SMBSI2jX+YLopPXi+PF9l307NmpfxTdCegA== +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents": + version "2.1.8-no-fsevents" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b" + integrity sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w== dependencies: - chokidar "2.1.8" + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" "@nodelib/fs.stat@^1.1.2": version "1.1.3" @@ -1841,9 +1842,9 @@ "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.3.tgz#b8aaeba0a45caca7b56a5de9459872dde3727214" - integrity sha512-uCoznIPDmnickEi6D0v11SBpW0OuVqHJCa7syXqQHy5uktSCreIlt0iglsCnmvz8yCb38hGcWeseA8cWJSwv5Q== + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1932,9 +1933,9 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "14.14.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.6.tgz#146d3da57b3c636cc0d1769396ce1cfa8991147f" - integrity sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw== + version "14.14.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.9.tgz#04afc9a25c6ff93da14deabd65dc44485b53c8d6" + integrity sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1974,9 +1975,9 @@ "@types/react" "*" "@types/react@*": - version "16.9.56" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.56.tgz#ea25847b53c5bec064933095fc366b1462e2adf0" - integrity sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ== + version "17.0.0" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8" + integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -2032,9 +2033,9 @@ "@types/yargs-parser" "*" "@types/yargs@^15.0.0": - version "15.0.9" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.9.tgz#524cd7998fe810cdb02f26101b699cccd156ff19" - integrity sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g== + version "15.0.10" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.10.tgz#0fe3c8173a0d5c3e780b389050140c3f5ea6ea74" + integrity sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ== dependencies: "@types/yargs-parser" "*" @@ -2683,20 +2684,22 @@ array-unique@^0.3.2: integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" array.prototype.flatmap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" - integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" function-bind "^1.1.1" arrify@^1.0.1: @@ -2820,9 +2823,9 @@ aws4@^1.8.0: integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== axe-core@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.0.2.tgz#c7cf7378378a51fcd272d3c09668002a4990b1cb" - integrity sha512-arU1h31OGFu+LPrOLGZ7nB45v940NMDMEJeNmbutu57P+UFDVnkZg3e+J1I2HJRZ9hT7gO8J91dn/PMrAiKakA== + version "4.1.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.1.tgz#70a7855888e287f7add66002211a423937063eaf" + integrity sha512-5Kgy8Cz6LPC9DJcNb3yjAXTu3XihQgEdnIg50c//zOC/MyLP0Clg+Y8Sh9ZjjnvBrDZU4DgXS9C3T9r4/scGZQ== axios-cache-adapter@^2.5.0: version "2.5.0" @@ -3071,9 +3074,9 @@ base64-arraybuffer@^0.2.0: integrity sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ== base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: version "0.11.2" @@ -3132,7 +3135,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^5.1.1: +bn.js@^5.0.0, bn.js@^5.1.1: version "5.1.3" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== @@ -3250,11 +3253,11 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: @@ -3299,14 +3302,15 @@ browserslist@4.7.0: node-releases "^1.1.29" browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.14.6, browserslist@^4.6.2, browserslist@^4.6.4, browserslist@^4.9.1: - version "4.14.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.6.tgz#97702a9c212e0c6b6afefad913d3a1538e348457" - integrity sha512-zeFYcUo85ENhc/zxHbiIp0LGzzTrE2Pv2JhxvS7kpUb9Q9D38kUX6Bie7pGutJ/5iF5rOxE7CepAuWD56xJ33A== + version "4.14.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6" + integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ== dependencies: - caniuse-lite "^1.0.30001154" - electron-to-chromium "^1.3.585" + caniuse-lite "^1.0.30001157" + colorette "^1.2.1" + electron-to-chromium "^1.3.591" escalade "^3.1.1" - node-releases "^1.1.65" + node-releases "^1.1.66" bser@2.1.1: version "2.1.1" @@ -3522,10 +3526,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001154: - version "1.0.30001156" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001156.tgz#75c20937b6012fe2b02ab58b30d475bf0718de97" - integrity sha512-z7qztybA2eFZTB6Z3yvaQBIoJpQtsewRD74adw2UbRWwsRq3jIPvgrQGawBMbfafekQaD21FWuXNcywtTDGGCw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157: + version "1.0.30001159" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz#bebde28f893fa9594dadcaa7d6b8e2aa0299df20" + integrity sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA== canvg@^3.0.6: version "3.0.7" @@ -3619,7 +3623,7 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -chokidar@2.1.8, chokidar@^2.0.4, chokidar@^2.1.8: +chokidar@^2.0.4, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -3693,7 +3697,7 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@^2.2.6: +classnames@2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== @@ -4071,7 +4075,7 @@ copy-webpack-plugin@^4.6.0: p-limit "^1.0.0" serialize-javascript "^1.4.0" -core-js-compat@^3.6.2: +core-js-compat@^3.6.2, core-js-compat@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.7.0.tgz#8479c5d3d672d83f1f5ab94cf353e57113e065ed" integrity sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg== @@ -4314,11 +4318,11 @@ css-tree@1.0.0-alpha.37: source-map "^0.6.1" css-tree@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0.tgz#21993fa270d742642a90409a2c0cb3ac0298adf6" - integrity sha512-CdVYz/Yuqw0VdKhXPBIgi8DO3NicJVYZNWeX9XcIuSp9ZoFT5IcleVRW07O5rMjdcx1mb+MEJPknTTEW7DdsYw== + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.1.tgz#30b8c0161d9fb4e9e2141d762589b6ec2faebd2e" + integrity sha512-NVN42M2fjszcUNpDbdkvutgQSlFYsr1z7kqeuCagHnNLBfYor6uP1WL1KrkmdYZ5Y1vTBCIOI/C/+8T98fJ71w== dependencies: - mdn-data "2.0.12" + mdn-data "2.0.14" source-map "^0.6.1" css-vendor@^2.0.8: @@ -4433,9 +4437,9 @@ cssnano@^4.1.10: postcss "^7.0.0" csso@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.1.0.tgz#1d31193efa99b87aa6bad6c0cef155e543d09e8b" - integrity sha512-h+6w/W1WqXaJA4tb1dk7r5tVbOm97MsKxzwnvOR04UQ6GILroryjMWu3pmCCtL2mLaEStQ0fZgeGiy99mo7iyg== + version "4.1.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.1.1.tgz#e0cb02d6eb3af1df719222048e4359efd662af13" + integrity sha512-Rvq+e1e0TFB8E8X+8MQjHSY6vtol45s5gxtLI/018UsAn2IBMmwNEZRM/h+HVnAJRHjasLIKKUO3uvoMM28LvA== dependencies: css-tree "^1.0.0" @@ -4464,14 +4468,14 @@ cssstyle@^2.2.0: cssom "~0.3.6" csstype@^2.5.2: - version "2.6.13" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" - integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== + version "2.6.14" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.14.tgz#004822a4050345b55ad4dcc00be1d9cf2f4296de" + integrity sha512-2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A== csstype@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.4.tgz#b156d7be03b84ff425c9a0a4b1e5f4da9c5ca888" - integrity sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA== + version "3.0.5" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8" + integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ== cyclist@^1.0.1: version "1.0.1" @@ -4516,12 +4520,12 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -date-fns@^2.0.0-alpha.27: - version "2.16.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b" - integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ== +date-fns@2.0.0-alpha.27: + version "2.0.0-alpha.27" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.0.0-alpha.27.tgz#5ecd4204ef0e7064264039570f6e8afbc014481c" + integrity sha512-cqfVLS+346P/Mpj2RpDrBv0P4p2zZhWWvfY5fuWrXNR/K38HaAGEkeOwb47hIpQP9Jr/TIxjZ2/sNMQwdXuGMg== -debounce@^1.2.0: +debounce@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== @@ -4534,16 +4538,16 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: ms "2.0.0" debug@^3.1.1, debug@^3.2.5: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" - integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" @@ -4926,10 +4930,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.585: - version "1.3.591" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.591.tgz#a18892bf1acb93f7b6e4da402705d564bc235017" - integrity sha512-ol/0WzjL4NS4Kqy9VD6xXQON91xIihDT36sYCew/G/bnd1v0/4D+kahp26JauQhgFUjrdva3kRSo7URcUmQ+qw== +electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.591: + version "1.3.603" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.603.tgz#1b71bec27fb940eccd79245f6824c63d5f7e8abf" + integrity sha512-J8OHxOeJkoSLgBXfV9BHgKccgfLMHh+CoeRo6wJsi6m0k3otaxS/5vrHpMNSEYY4MISwewqanPOuhAtuE8riQQ== elliptic@^6.5.3: version "6.5.3" @@ -6731,6 +6735,13 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indefinite-observable@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/indefinite-observable/-/indefinite-observable-2.0.1.tgz#574af29bfbc17eb5947793797bddc94c9d859400" + integrity sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ== + dependencies: + symbol-observable "1.2.0" + indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" @@ -6975,7 +6986,7 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.0.0: +is-core-module@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== @@ -8381,72 +8392,73 @@ jss-nested@^6.0.1: warning "^3.0.0" jss-plugin-camel-case@^10.0.3: - version "10.4.0" - resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.4.0.tgz#46c75ff7fd61c304984c21af5817823f0f501ceb" - integrity sha512-9oDjsQ/AgdBbMyRjc06Kl3P8lDCSEts2vYZiPZfGAxbGCegqE4RnMob3mDaBby5H9vL9gWmyyImhLRWqIkRUCw== + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.5.0.tgz#4b0a9c85e65e5eb72cbfba59373686c604d88f72" + integrity sha512-GSjPL0adGAkuoqeYiXTgO7PlIrmjv5v8lA6TTBdfxbNYpxADOdGKJgIEkffhlyuIZHlPuuiFYTwUreLUmSn7rg== dependencies: "@babel/runtime" "^7.3.1" hyphenate-style-name "^1.0.3" - jss "10.4.0" + jss "10.5.0" jss-plugin-default-unit@^10.0.3: - version "10.4.0" - resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.4.0.tgz#2b10f01269eaea7f36f0f5fd1cfbfcc76ed42854" - integrity sha512-BYJ+Y3RUYiMEgmlcYMLqwbA49DcSWsGgHpVmEEllTC8MK5iJ7++pT9TnKkKBnNZZxTV75ycyFCR5xeLSOzVm4A== + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.5.0.tgz#e9f2e89741b0118ba15d52b4c13bda2b27262373" + integrity sha512-rsbTtZGCMrbcb9beiDd+TwL991NGmsAgVYH0hATrYJtue9e+LH/Gn4yFD1ENwE+3JzF3A+rPnM2JuD9L/SIIWw== dependencies: "@babel/runtime" "^7.3.1" - jss "10.4.0" + jss "10.5.0" jss-plugin-global@^10.0.3: - version "10.4.0" - resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.4.0.tgz#19449425a94e4e74e113139b629fd44d3577f97d" - integrity sha512-b8IHMJUmv29cidt3nI4bUI1+Mo5RZE37kqthaFpmxf5K7r2aAegGliAw4hXvA70ca6ckAoXMUl4SN/zxiRcRag== + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.5.0.tgz#eb357ccd35cb4894277fb2117a78d1e498668ad6" + integrity sha512-FZd9+JE/3D7HMefEG54fEC0XiQ9rhGtDHAT/ols24y8sKQ1D5KIw6OyXEmIdKFmACgxZV2ARQ5pAUypxkk2IFQ== dependencies: "@babel/runtime" "^7.3.1" - jss "10.4.0" + jss "10.5.0" jss-plugin-nested@^10.0.3: - version "10.4.0" - resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.4.0.tgz#017d0c02c0b6b454fd9d7d3fc33470a15eea9fd1" - integrity sha512-cKgpeHIxAP0ygeWh+drpLbrxFiak6zzJ2toVRi/NmHbpkNaLjTLgePmOz5+67ln3qzJiPdXXJB1tbOyYKAP4Pw== + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.5.0.tgz#790c506432a23a63c71ceb5044e2ac85f0958702" + integrity sha512-ejPlCLNlEGgx8jmMiDk/zarsCZk+DV0YqXfddpgzbO9Toamo0HweCFuwJ3ZO40UFOfqKwfpKMVH/3HUXgxkTMg== dependencies: "@babel/runtime" "^7.3.1" - jss "10.4.0" + jss "10.5.0" tiny-warning "^1.0.2" jss-plugin-props-sort@^10.0.3: - version "10.4.0" - resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.4.0.tgz#7110bf0b6049cc2080b220b506532bf0b70c0e07" - integrity sha512-j/t0R40/2fp+Nzt6GgHeUFnHVY2kPGF5drUVlgkcwYoHCgtBDOhTTsOfdaQFW6sHWfoQYgnGV4CXdjlPiRrzwA== + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.5.0.tgz#5bcc3bd8e68cd3e2dafb47d67db28fd5a4fcf102" + integrity sha512-kTLRvrOetFKz5vM88FAhLNeJIxfjhCepnvq65G7xsAQ/Wgy7HwO1BS/2wE5mx8iLaAWC6Rj5h16mhMk9sKdZxg== dependencies: "@babel/runtime" "^7.3.1" - jss "10.4.0" + jss "10.5.0" jss-plugin-rule-value-function@^10.0.3: - version "10.4.0" - resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.4.0.tgz#7cff4a91e84973536fa49b6ebbdbf7f339b01c82" - integrity sha512-w8504Cdfu66+0SJoLkr6GUQlEb8keHg8ymtJXdVHWh0YvFxDG2l/nS93SI5Gfx0fV29dO6yUugXnKzDFJxrdFQ== + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.5.0.tgz#60ee8240dfe60418e1ba4729adee893cbe9be7a3" + integrity sha512-jXINGr8BSsB13JVuK274oEtk0LoooYSJqTBCGeBu2cG/VJ3+4FPs1gwLgsq24xTgKshtZ+WEQMVL34OprLidRA== dependencies: "@babel/runtime" "^7.3.1" - jss "10.4.0" + jss "10.5.0" tiny-warning "^1.0.2" jss-plugin-vendor-prefixer@^10.0.3: - version "10.4.0" - resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.4.0.tgz#2a78f3c5d57d1e024fe7ad7c41de34d04e72ecc0" - integrity sha512-DpF+/a+GU8hMh/948sBGnKSNfKkoHg2p9aRFUmyoyxgKjOeH9n74Ht3Yt8lOgdZsuWNJbPrvaa3U4PXKwxVpTQ== + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.5.0.tgz#01f04cfff31f43f153f5d71972f5800b10a2eb84" + integrity sha512-rux3gmfwDdOKCLDx0IQjTwTm03IfBa+Rm/hs747cOw5Q7O3RaTUIMPKjtVfc31Xr/XI9Abz2XEupk1/oMQ7zRA== dependencies: "@babel/runtime" "^7.3.1" css-vendor "^2.0.8" - jss "10.4.0" + jss "10.5.0" -jss@10.4.0, jss@^10.0.3: - version "10.4.0" - resolved "https://registry.yarnpkg.com/jss/-/jss-10.4.0.tgz#473a6fbe42e85441020a07e9519dac1e8a2e79ca" - integrity sha512-l7EwdwhsDishXzqTc3lbsbyZ83tlUl5L/Hb16pHCvZliA9lRDdNBZmHzeJHP0sxqD0t1mrMmMR8XroR12JBYzw== +jss@10.5.0, jss@^10.0.3: + version "10.5.0" + resolved "https://registry.yarnpkg.com/jss/-/jss-10.5.0.tgz#0c2de8a29874b2dc8162ab7f34ef6573a87d9dd3" + integrity sha512-B6151NvG+thUg3murLNHRPLxTLwQ13ep4SH5brj4d8qKtogOx/jupnpfkPGSHPqvcwKJaCLctpj2lEk+5yGwMw== dependencies: "@babel/runtime" "^7.3.1" csstype "^3.0.2" + indefinite-observable "^2.0.1" is-in-browser "^1.1.3" tiny-warning "^1.0.2" @@ -8782,7 +8794,7 @@ longest-streak@^2.0.1: resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -8888,21 +8900,21 @@ markdown-to-jsx@^6.9.3: unquote "^1.1.0" material-table@^1.69.1: - version "1.69.1" - resolved "https://registry.yarnpkg.com/material-table/-/material-table-1.69.1.tgz#8d1c8b23207f18bd3328cae1b5775ede284682e6" - integrity sha512-7MA8kMtr8ToPE6gNUbOGIb4g+RGOLWK8s9gXZYNwFtg6fGAjWEJ+iqBrMmdq7fkMmTRcyOd7/sC/5OPPY8CNGg== - dependencies: - "@date-io/date-fns" "^1.1.0" - "@material-ui/pickers" "^3.2.2" - classnames "^2.2.6" - date-fns "^2.0.0-alpha.27" - debounce "^1.2.0" + version "1.69.2" + resolved "https://registry.yarnpkg.com/material-table/-/material-table-1.69.2.tgz#d5cf35d9814c30e6e8d00cd00c98756296259b57" + integrity sha512-OFst2Dzo5EZHk5mTPVR9cILFT9BcDSVVlFii0UOgvWE8ho/sn0euV1B2MfoTLKSX6pMkH0I/f3QTLX0AXhlUzQ== + dependencies: + "@date-io/date-fns" "1.1.0" + "@material-ui/pickers" "3.2.2" + classnames "2.2.6" + date-fns "2.0.0-alpha.27" + debounce "1.2.0" fast-deep-equal "2.0.1" filefy "0.1.10" jspdf "2.1.0" jspdf-autotable "3.5.9" - prop-types "^15.6.2" - react-beautiful-dnd "^13.0.0" + prop-types "15.6.2" + react-beautiful-dnd "13.0.0" react-double-scrollbar "0.0.15" md5.js@^1.3.4: @@ -8928,10 +8940,10 @@ mdast-util-compact@^1.0.0: dependencies: unist-util-visit "^1.1.0" -mdn-data@2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.12.tgz#bbb658d08b38f574bbb88f7b83703defdcc46844" - integrity sha512-ULbAlgzVb8IqZ0Hsxm6hHSlQl3Jckst2YEQS7fODu9ilNWy2LvcoSY7TRFIktABP2mdppBioc66va90T+NUs8Q== +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== mdn-data@2.0.4: version "2.0.4" @@ -9376,10 +9388,10 @@ node-notifier@^8.0.0: uuid "^8.3.0" which "^2.0.2" -node-releases@^1.1.29, node-releases@^1.1.52, node-releases@^1.1.65: - version "1.1.66" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.66.tgz#609bd0dc069381015cd982300bae51ab4f1b1814" - integrity sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg== +node-releases@^1.1.29, node-releases@^1.1.52, node-releases@^1.1.66: + version "1.1.67" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" + integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" @@ -9689,9 +9701,9 @@ p-each-series@^1.0.0: p-reduce "^1.0.0" p-each-series@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" - integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== p-finally@^1.0.0: version "1.0.0" @@ -10833,6 +10845,14 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" +prop-types@15.6.2: + version "15.6.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" + integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ== + dependencies: + loose-envify "^1.3.1" + object-assign "^4.1.1" + prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" @@ -11028,7 +11048,7 @@ react-app-polyfill@^1.0.6: regenerator-runtime "^0.13.3" whatwg-fetch "^3.0.0" -react-beautiful-dnd@^13.0.0: +react-beautiful-dnd@13.0.0: version "13.0.0" resolved "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-13.0.0.tgz#f70cc8ff82b84bc718f8af157c9f95757a6c3b40" integrity sha512-87It8sN0ineoC3nBW0SbQuTFXM6bUqM62uJGY4BtTf0yzPl8/3+bHMWkgIe0Z6m8e+gJgjWxefGRVfpE3VcdEg== @@ -11795,11 +11815,11 @@ resolve@1.15.0: path-parse "^1.0.6" resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.8.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" - integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== dependencies: - is-core-module "^2.0.0" + is-core-module "^2.1.0" path-parse "^1.0.6" restore-cursor@^2.0.0: @@ -12217,7 +12237,7 @@ shellwords@^0.1.1: resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== -side-channel@^1.0.2: +side-channel@^1.0.2, side-channel@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.3.tgz#cdc46b057550bbab63706210838df5d4c19519c3" integrity sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g== @@ -12482,14 +12502,16 @@ stable@^0.1.8: integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== stack-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" - integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.3.tgz#db7a475733b5b8bf6521907b18891d29006f7751" + integrity sha512-WldO+YmqhEpjp23eHZRhOT1NQF51STsbxZ+/AdpFD+EhheFxAe5d0WoK4DQVJkSHacPrJJX3OqRAl9CgHf78pg== + dependencies: + escape-string-regexp "^2.0.0" stack-utils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" - integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== dependencies: escape-string-regexp "^2.0.0" @@ -12614,32 +12636,33 @@ string-width@^4.1.0, string-width@^4.2.0: strip-ansi "^6.0.0" string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz#24243399bc31b0a49d19e2b74171a15653ec996a" + integrity sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0" + es-abstract "^1.18.0-next.1" has-symbols "^1.0.1" internal-slot "^1.0.2" regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" + side-channel "^1.0.3" string.prototype.trimend@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46" - integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" string.prototype.trimstart@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7" - integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -12832,7 +12855,7 @@ svgo@^1.0.0, svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" -symbol-observable@^1.1.0, symbol-observable@^1.2.0: +symbol-observable@1.2.0, symbol-observable@^1.1.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -13123,7 +13146,7 @@ tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -13618,23 +13641,23 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== dependencies: chokidar "^2.1.8" watchpack@^1.6.0, watchpack@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.0" + watchpack-chokidar2 "^2.0.1" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3"