Skip to content

Commit

Permalink
bugfix/fix for \qs* end tag (#19)
Browse files Browse the repository at this point in the history
* added tests to ensure functions are not modifying objects

* update dependencies

* bump version

* fix dependencies

---------

Co-authored-by: PhotoNomad0 <[email protected]>
  • Loading branch information
PhotoNomad0 and PhotoNomad0 authored Aug 20, 2024
1 parent 468d72e commit 5e732ee
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 8 deletions.
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "word-aligner-rcl",
"version": "1.1.2",
"version": "1.1.3",
"main": "dist/index.cjs.js",
"module": "dist/index.es.js",
"repository": "https://github.com/unfoldingWord/word-aligner-rcl.git",
Expand Down Expand Up @@ -42,6 +42,7 @@
"cross-env": "^7.0.3",
"fs-extra": "^11.1.0",
"jest": "^29.5.0",
"lodash.clonedeep": "^4.5.0",
"ospath": "1.2.2",
"path-extra": "^4.3.0",
"prettier": "^2.8.4",
Expand All @@ -58,7 +59,7 @@
"file-loader": "^6.2.0",
"lodash.clonedeep": "^4.5.0",
"string-punctuation-tokenizer": "2.2.0",
"usfm-js": "3.4.2",
"usfm-js": "3.4.3",
"word-aligner": "1.0.2",
"wordmap-lexer": "^0.3.6"
},
Expand Down
10 changes: 10 additions & 0 deletions src/__tests__/fixtures/alignments/simpleEditsTests.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
{
"edit Selah unchanged": {
"initialAlignedUsfm": "\\zaln-s |x-strong=\"H3068\" x-lemma=\"יְהֹוָה\" x-morph=\"He,Np\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"יְ֭הוָה\"\\*\\w Yahweh|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*,\n\\zaln-s |x-strong=\"H5414\" x-lemma=\"נָתַן\" x-morph=\"He,Vqj2ms\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"תִּתֵּ֣ן\"\\*\\w do|x-occurrence=\"1\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H0408\" x-lemma=\"אַל\" x-morph=\"He,Tn\" x-occurrence=\"1\" x-occurrences=\"2\" x-content=\"אַל\"\\*\\w not|x-occurrence=\"1\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H5414\" x-lemma=\"נָתַן\" x-morph=\"He,Vqj2ms\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"תִּתֵּ֣ן\"\\*\\w grant|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H3970\" x-lemma=\"מַאֲוַי\" x-morph=\"He,Ncmpc\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"מַאֲוַיֵּ֣י\"\\*\\w the|x-occurrence=\"1\" x-occurrences=\"2\"\\w*\n\\w desires|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w of|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H7563\" x-lemma=\"רָשָׁע\" x-morph=\"He,Aamsa\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"רָשָׁ֑ע\"\\*\\w the|x-occurrence=\"2\" x-occurrences=\"2\"\\w*\n\\w wicked|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*;\n\\q \\zaln-s |x-strong=\"H6329\" x-lemma=\"פּוּק\" x-morph=\"He,Vhj2ms\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"תָּ֝פֵ֗ק\"\\*\\w do|x-occurrence=\"2\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H0408\" x-lemma=\"אַל\" x-morph=\"He,Tn\" x-occurrence=\"2\" x-occurrences=\"2\" x-content=\"אַל\"\\*\\w not|x-occurrence=\"2\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H6329\" x-lemma=\"פּוּק\" x-morph=\"He,Vhj2ms\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"תָּ֝פֵ֗ק\"\\*\\w promote|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H2162\" x-lemma=\"זָמָם\" x-morph=\"He,Ncmsc:Sp3ms\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"זְמָמ֥\u2060וֹ\"\\*\\w their|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w plots|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*,\n\\zaln-s |x-strong=\"H7311a\" x-lemma=\"רוּם\" x-morph=\"He,Vqi3mp\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"יָר֥וּמוּ\"\\*\\w they|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w rise|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w up|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\qs\n\\zaln-s |x-strong=\"H5542\" x-lemma=\"סֶלָה\" x-morph=\"He,Tj\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"סֶֽלָה\"\\*\\w Selah|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\qs*\n\\ts\\*",
"initialEditText": "Yahweh, do not grant the desires of the wicked;\n\\q do not promote their plots, they rise up\n\\qs\nSelah\n\\qs*\n\\ts\\*",
"steps": [
{
"newEditText": "Yahweh, do not grant the desires of the wicked;\n\\q do not promote their plots, they rise up\n\\qs\nSelah\n\\qs*\n\\ts\\*",
"expectedFinalUsfm": "\\zaln-s |x-strong=\"H3068\" x-lemma=\"יְהֹוָה\" x-morph=\"He,Np\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"יְ֭הוָה\"\\*\\w Yahweh|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*,\n\\zaln-s |x-strong=\"H5414\" x-lemma=\"נָתַן\" x-morph=\"He,Vqj2ms\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"תִּתֵּ֣ן\"\\*\\w do|x-occurrence=\"1\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H0408\" x-lemma=\"אַל\" x-morph=\"He,Tn\" x-occurrence=\"1\" x-occurrences=\"2\" x-content=\"אַל\"\\*\\w not|x-occurrence=\"1\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H5414\" x-lemma=\"נָתַן\" x-morph=\"He,Vqj2ms\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"תִּתֵּ֣ן\"\\*\\w grant|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H3970\" x-lemma=\"מַאֲוַי\" x-morph=\"He,Ncmpc\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"מַאֲוַיֵּ֣י\"\\*\\w the|x-occurrence=\"1\" x-occurrences=\"2\"\\w*\n\\w desires|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w of|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H7563\" x-lemma=\"רָשָׁע\" x-morph=\"He,Aamsa\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"רָשָׁ֑ע\"\\*\\w the|x-occurrence=\"2\" x-occurrences=\"2\"\\w*\n\\w wicked|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*;\n\\q \\zaln-s |x-strong=\"H6329\" x-lemma=\"פּוּק\" x-morph=\"He,Vhj2ms\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"תָּ֝פֵ֗ק\"\\*\\w do|x-occurrence=\"2\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H0408\" x-lemma=\"אַל\" x-morph=\"He,Tn\" x-occurrence=\"2\" x-occurrences=\"2\" x-content=\"אַל\"\\*\\w not|x-occurrence=\"2\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H6329\" x-lemma=\"פּוּק\" x-morph=\"He,Vhj2ms\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"תָּ֝פֵ֗ק\"\\*\\w promote|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"H2162\" x-lemma=\"זָמָם\" x-morph=\"He,Ncmsc:Sp3ms\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"זְמָמ֥\u2060וֹ\"\\*\\w their|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w plots|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*,\n\\zaln-s |x-strong=\"H7311a\" x-lemma=\"רוּם\" x-morph=\"He,Vqi3mp\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"יָר֥וּמוּ\"\\*\\w they|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w rise|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w up|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\qs\n\\zaln-s |x-strong=\"H5542\" x-lemma=\"סֶלָה\" x-morph=\"He,Tj\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"סֶֽלָה\"\\*\\w Selah|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\qs*\n\\ts\\*"
}
]
},
"edit text unchanged": {
"initialAlignedUsfm": "\\zaln-s |x-strong=\"G51030\" x-lemma=\"Τίτος\" x-morph=\"Gr,N,,,,,DMS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"Τίτῳ\"\\*\\w I|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w am|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w writing|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w to|x-occurrence=\"1\" x-occurrences=\"5\"\\w*\n\\w you|x-occurrence=\"1\" x-occurrences=\"4\"\\w*,\n\\w Titus|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*;\n\\zaln-s |x-strong=\"G11030\" x-lemma=\"γνήσιος\" x-morph=\"Gr,AA,,,,DNS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"γνησίῳ\"\\*\\w you|x-occurrence=\"2\" x-occurrences=\"4\"\\w*\n\\w have|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w become|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w like|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w a|x-occurrence=\"1\" x-occurrences=\"2\"\\w*\n\\w real|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G50430\" x-lemma=\"τέκνον\" x-morph=\"Gr,N,,,,,DNS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"τέκνῳ\"\\*\\w son|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w to|x-occurrence=\"2\" x-occurrences=\"5\"\\w*\n\\w me|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G25960\" x-lemma=\"κατά\" x-morph=\"Gr,P,,,,,A,,,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"κατὰ\"\\*\\w because|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G28390\" x-lemma=\"κοινός\" x-morph=\"Gr,AA,,,,AFS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"κοινὴν\"\\*\\w we|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w both|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w now|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G41020\" x-lemma=\"πίστις\" x-morph=\"Gr,N,,,,,AFS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"πίστιν\"\\*\\w believe|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w in|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w Jesus|x-occurrence=\"1\" x-occurrences=\"2\"\\w*\n\\w the|x-occurrence=\"1\" x-occurrences=\"3\"\\w*\n\\w Messiah|x-occurrence=\"1\" x-occurrences=\"2\"\\w*\\zaln-e\\*.\n\\zaln-s |x-strong=\"G05750\" x-lemma=\"ἀπό\" x-morph=\"Gr,P,,,,,G,,,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"ἀπὸ\"\\*\\zaln-s |x-strong=\"G23160\" x-lemma=\"θεός\" x-morph=\"Gr,N,,,,,GMS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"Θεοῦ\"\\*\\w May|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w God|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\\zaln-e\\*\n\\zaln-s |x-strong=\"G39620\" x-lemma=\"πατήρ\" x-morph=\"Gr,N,,,,,GMS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"Πατρὸς\"\\*\\w the|x-occurrence=\"2\" x-occurrences=\"3\"\\w*\n\\w Father|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G25320\" x-lemma=\"καί\" x-morph=\"Gr,CC,,,,,,,,\" x-occurrence=\"1\" x-occurrences=\"2\" x-content=\"καὶ\"\\*\\w and|x-occurrence=\"1\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G55470\" x-lemma=\"χριστός\" x-morph=\"Gr,N,,,,,GMS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"Χριστοῦ\"\\*\\w the|x-occurrence=\"3\" x-occurrences=\"3\"\\w*\n\\w Messiah|x-occurrence=\"2\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G24240\" x-lemma=\"Ἰησοῦς\" x-morph=\"Gr,N,,,,,GMS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"Ἰησοῦ\"\\*\\w Jesus|x-occurrence=\"2\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G35880\" x-lemma=\"ὁ\" x-morph=\"Gr,EA,,,,GMS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"τοῦ\"\\*\\w who|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G49900\" x-lemma=\"σωτήρ\" x-morph=\"Gr,N,,,,,GMS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"Σωτῆρος\"\\*\\w saves|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G14730\" x-lemma=\"ἐγώ\" x-morph=\"Gr,RP,,,1G,P,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"ἡμῶν\"\\*\\w us|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G54850\" x-lemma=\"χάρις\" x-morph=\"Gr,N,,,,,NFS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"χάρις\"\\*\\w continue|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w to|x-occurrence=\"3\" x-occurrences=\"5\"\\w*\n\\w be|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w kind|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w to|x-occurrence=\"4\" x-occurrences=\"5\"\\w*\n\\w you|x-occurrence=\"3\" x-occurrences=\"4\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G25320\" x-lemma=\"καί\" x-morph=\"Gr,CC,,,,,,,,\" x-occurrence=\"2\" x-occurrences=\"2\" x-content=\"καὶ\"\\*\\w and|x-occurrence=\"2\" x-occurrences=\"2\"\\w*\\zaln-e\\*\n\\zaln-s |x-strong=\"G15150\" x-lemma=\"εἰρήνη\" x-morph=\"Gr,N,,,,,NFS,\" x-occurrence=\"1\" x-occurrences=\"1\" x-content=\"εἰρήνη\"\\*\\w to|x-occurrence=\"5\" x-occurrences=\"5\"\\w*\n\\w give|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w you|x-occurrence=\"4\" x-occurrences=\"4\"\\w*\n\\w a|x-occurrence=\"2\" x-occurrences=\"2\"\\w*\n\\w peaceful|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\n\\w spirit|x-occurrence=\"1\" x-occurrences=\"1\"\\w*\\zaln-e\\*.\n\\p\n",
"initialEditText": "I am writing to you, Titus; you have become like a real son to me because we both now believe in Jesus the Messiah. May God the Father and the Messiah Jesus who saves us continue to be kind to you and to give you a peaceful spirit.\n\\p\n",
Expand Down
16 changes: 14 additions & 2 deletions src/__tests__/testUpdateAlignments.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import {migrateTargetAlignmentsToOriginal} from "../utils/migrateOriginalLanguag
import {convertVerseDataToUSFM, getUsfmForVerseContent} from "../utils/UsfmFileConversionHelpers";
import path from "path-extra";
import fs from 'fs-extra';
import cloneDeep from "lodash.clonedeep";

jest.unmock('fs-extra');

Expand All @@ -34,15 +35,18 @@ describe('testing edit of aligned target text', () => {
steps,
} = test_

let currentVerseObjects = usfmVerseToJson(initialAlignedUsfm); // set initial test conditions
const initialVerseObjects = usfmVerseToJson(initialAlignedUsfm);
let currentVerseObjects = cloneDeep(initialVerseObjects); // set initial test conditions
const expectedInitialEditText = getUsfmForVerseContent({ verseObjects: currentVerseObjects })
expect(initialEditText).toEqual(expectedInitialEditText)
expect(currentVerseObjects).toEqual(initialVerseObjects) // check for object mod

for (const step of steps) {
////////////
// Given

const {newEditText, expectedFinalUsfm} = step
const startingVerseObjects = cloneDeep(currentVerseObjects); // save initial object

////////////
// When
Expand All @@ -57,6 +61,7 @@ describe('testing edit of aligned target text', () => {
const initialWords = Lexer.tokenize(removeUsfmMarkers(newEditText))
const { targetWords: targetWords } = parseUsfmToWordAlignerData(results.targetVerseText, null)
expect(targetWords.length).toEqual(initialWords.length)
expect(currentVerseObjects).toEqual(startingVerseObjects) // check for object mod

// final conditions of step become initial conditions for next step
currentVerseObjects = results.targetVerseObjects
Expand Down Expand Up @@ -97,10 +102,12 @@ describe('testing alignment operations', () => {
steps,
} = test_

let currentVerseObjects = usfmVerseToJson(initialAlignedUsfm); // set initial test conditions
const initialVerseObjects = usfmVerseToJson(initialAlignedUsfm);
let currentVerseObjects = cloneDeep(initialVerseObjects); // set initial test conditions
// make sure initial text matches the expected
const expectedInitialEditText = getUsfmForVerseContent({ verseObjects: currentVerseObjects })
expect(initialEditText).toEqual(expectedInitialEditText)
expect(currentVerseObjects).toEqual(initialVerseObjects) // check for object mod
const originalLanguageVerseObjects = usfmVerseToJson(originalLanguageUsfm); // set initial test conditions

for (const step of steps) {
Expand All @@ -109,6 +116,7 @@ describe('testing alignment operations', () => {
// Given

const {newEditText, expectedFinalUsfm} = step
const startingVerseObjects = cloneDeep(currentVerseObjects); // save initial object

////////////
// when
Expand All @@ -120,6 +128,10 @@ describe('testing alignment operations', () => {
// then

expect(results.targetVerseText).toEqual(expectedFinalUsfm)
expect(currentVerseObjects).toEqual(startingVerseObjects) // check for object mod

// final conditions of step become initial conditions for next step
currentVerseObjects = results.targetVerseObjects
}
})
}
Expand Down
8 changes: 4 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6936,10 +6936,10 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"

[email protected].2:
version "3.4.2"
resolved "https://registry.yarnpkg.com/usfm-js/-/usfm-js-3.4.2.tgz#a4232cffe38c9f521246b007a4045648cbcf419a"
integrity sha512-i5nGxGwFhkOWd7xgfVWQ6GTkCpksfy5AUIwNJcwanTn3ua5J1nwl3pjApCDA6x1B++8ICkcQMUt0FB/bkKdE2g==
[email protected].3:
version "3.4.3"
resolved "https://registry.yarnpkg.com/usfm-js/-/usfm-js-3.4.3.tgz#dffa5a00cdbf7c02df89f6e876136df6aa532361"
integrity sha512-c5d2dzmSnEfFSPfMXnnycIPwdw8ryBsb2r2CUEwiXpsUMm+gDmhFz5GGOufYP5rGGVwAssHdSM8oOkcaHz+Hwg==
dependencies:
lodash.clonedeep "^4.5.0"

Expand Down

0 comments on commit 5e732ee

Please sign in to comment.