oops
This commit is contained in:
parent
ddf9f33fb2
commit
1911e3c1af
|
@ -4,12 +4,12 @@
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-free": "^5.15.2",
|
"@fortawesome/fontawesome-free": "^5.15.2",
|
||||||
"@lingdocs/lingdocs-main": "^0.1.3",
|
"@lingdocs/lingdocs-main": "^0.1.4",
|
||||||
"@lingdocs/pashto-inflector": "^1.0.5",
|
"@lingdocs/pashto-inflector": "^1.1.4",
|
||||||
"@testing-library/jest-dom": "^4.2.4",
|
"@testing-library/jest-dom": "^4.2.4",
|
||||||
"@testing-library/react": "^9.3.2",
|
"@testing-library/react": "^9.3.2",
|
||||||
"@testing-library/user-event": "^7.1.2",
|
"@testing-library/user-event": "^7.1.2",
|
||||||
"@types/jest": "^26.0.21",
|
"@types/jest": "^27.0.2",
|
||||||
"@types/node": "^14.14.35",
|
"@types/node": "^14.14.35",
|
||||||
"@types/react": "^17.0.3",
|
"@types/react": "^17.0.3",
|
||||||
"@types/react-dom": "^17.0.2",
|
"@types/react-dom": "^17.0.2",
|
||||||
|
|
|
@ -0,0 +1,211 @@
|
||||||
|
import {
|
||||||
|
equativeMachine,
|
||||||
|
EquativeMachineOutput,
|
||||||
|
EquativeNounInput,
|
||||||
|
} from "./equative-machine";
|
||||||
|
import {
|
||||||
|
Types as T,
|
||||||
|
} from "@lingdocs/pashto-inflector";
|
||||||
|
|
||||||
|
const abilities: {
|
||||||
|
label: string,
|
||||||
|
tests: {
|
||||||
|
in: {
|
||||||
|
subject: T.Person | EquativeNounInput | T.DictionaryEntry,
|
||||||
|
predicate: T.DictionaryEntry,
|
||||||
|
},
|
||||||
|
out: EquativeMachineOutput,
|
||||||
|
}[],
|
||||||
|
}[] = [
|
||||||
|
{
|
||||||
|
label: "handle person subjects with adjective predicates",
|
||||||
|
tests: [
|
||||||
|
// -- inflecting adjectives
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: T.Person.FirstSingMale,
|
||||||
|
predicate: {"ts":1527815306,"i":7530,"p":"ستړی","f":"stúRey","g":"stuRey","e":"tired","c":"adj."},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "زه", f: "zu", e: "I (m.)" }],
|
||||||
|
predicate: [{ p: "ستړی", f: "stúRey", e: "tired" }],
|
||||||
|
equative: [{ p: "یم", f: "yum", e: "am" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: T.Person.SecondPlurFemale,
|
||||||
|
predicate: {"ts":1527815306,"i":7530,"p":"ستړی","f":"stúRey","g":"stuRey","e":"tired","c":"adj."},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "تاسو", f: "táaso", e: "You (f. pl.)" }, { p: "تاسې", f: "táase", e: "You (f. pl.)"}],
|
||||||
|
predicate: [{ p: "ستړې", f: "stúRe", e: "tired" }],
|
||||||
|
equative: [{ p: "یئ", f: "yeyy", e: "are" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
// -- non-inflecting adjectives
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: T.Person.ThirdSingFemale,
|
||||||
|
predicate: {"ts":1527812798,"i":5595,"p":"خفه","f":"khufa","g":"khufa","e":"sad, upset, angry; choked, suffocated","c":"adj."},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "هغه", f: "haghá", e: "She/it (f.)" }],
|
||||||
|
predicate: [{ p: "خفه", f: "khufa", e: "sad" }],
|
||||||
|
equative: [{ p: "ده", f: "da", e: "is" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "handle person subjects with unisex noun predicate",
|
||||||
|
tests: [
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: T.Person.FirstSingFemale,
|
||||||
|
predicate: {"ts":1591872915426,"i":696,"p":"افغانی","f":"afghaanéy","g":"afghaaney","e":"Afghan (person)","c":"n. m. unisex"},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "زه", f: "zu", e: "I (f.)" }],
|
||||||
|
predicate: [{ p: "افغانۍ", f: "afghaanúy", e: "Afghan" }],
|
||||||
|
equative: [{ p: "یم", f: "yum", e: "am" }],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: T.Person.FirstPlurFemale,
|
||||||
|
predicate: {"ts":1527814779,"i":935,"p":"انسان","f":"insaan","g":"insaan","e":"human, person","c":"n. m. anim. unisex"},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "مونږ", f: "moonG", e: "We (f. pl.)" }, { p: "موږ", f: "mooG", e: "We (f. pl.)" }],
|
||||||
|
predicate: [{ p: "انسانانې", f: "insaanáane", e: "humans" }],
|
||||||
|
equative: [{ p: "یو", f: "yoo", e: "are" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: T.Person.SecondSingFemale,
|
||||||
|
predicate: {"ts":1527814779,"i":935,"p":"انسان","f":"insaan","g":"insaan","e":"human, person","c":"n. m. anim. unisex"},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "ته", f: "tu", e: "You (f.)" }],
|
||||||
|
predicate: [{ p: "انسانه", f: "insaana", e: "human" }],
|
||||||
|
equative: [{ p: "یې", f: "ye", e: "are" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Handle noun subjects with adjective predicates",
|
||||||
|
tests: [
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: {
|
||||||
|
entry: { "ts":1527812817,"i":9921,"p":"کتاب","f":"kitáab","g":"kitaab","e":"book","c":"n. m." },
|
||||||
|
plural: false,
|
||||||
|
},
|
||||||
|
predicate: {"ts":1527815451,"i":7193,"p":"زوړ","f":"zoR","g":"zoR","e":"old","c":"adj. irreg.","infap":"زاړه","infaf":"zaaRu","infbp":"زړ","infbf":"zaR"},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "کتاب", f: "kitáab", e: "(A/The) book" }],
|
||||||
|
predicate: [{ p: "زوړ", f: "zoR", e: "old" }],
|
||||||
|
equative: [{ p: "دی", f: "dey", e: "is" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: {
|
||||||
|
entry: { "ts":1527812817,"i":9921,"p":"کتاب","f":"kitáab","g":"kitaab","e":"book","c":"n. m." },
|
||||||
|
plural: true,
|
||||||
|
},
|
||||||
|
predicate: {"ts":1527815451,"i":7193,"p":"زوړ","f":"zoR","g":"zoR","e":"old","c":"adj. irreg.","infap":"زاړه","infaf":"zaaRu","infbp":"زړ","infbf":"zaR"},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "کتابونه", f: "kitaabóona", e: "(The) books" }],
|
||||||
|
predicate: [{ p: "زاړه", f: "zaaRu", e: "old" }],
|
||||||
|
equative: [{ p: "دي", f: "dee", e: "are" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: {
|
||||||
|
entry: {"ts":1527812797,"i":8542,"p":"ښځه","f":"xúdza","g":"xudza","e":"woman, wife","c":"n. f. anim.","ec":"woman","ep":"women"},
|
||||||
|
plural: false,
|
||||||
|
},
|
||||||
|
predicate: {"ts":1527815451,"i":7193,"p":"زوړ","f":"zoR","g":"zoR","e":"old","c":"adj. irreg.","infap":"زاړه","infaf":"zaaRu","infbp":"زړ","infbf":"zaR"},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "ښځه", f: "xúdza", e: "(A/The) woman" }],
|
||||||
|
predicate: [{ p: "زړه", f: "zaRa", e: "old" }],
|
||||||
|
equative: [{ p: "ده", f: "da", e: "is" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: {
|
||||||
|
entry: {"ts":1527812797,"i":8542,"p":"ښځه","f":"xúdza","g":"xudza","e":"woman, wife","c":"n. f. anim.","ec":"woman","ep":"women"},
|
||||||
|
plural: true,
|
||||||
|
},
|
||||||
|
predicate: {"ts":1527815451,"i":7193,"p":"زوړ","f":"zoR","g":"zoR","e":"old","c":"adj. irreg.","infap":"زاړه","infaf":"zaaRu","infbp":"زړ","infbf":"zaR"},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "ښځې", f: "xúdze", e: "(The) women" }],
|
||||||
|
predicate: [{ p: "زړې", f: "zaRe", e: "old" }],
|
||||||
|
equative: [{ p: "دي", f: "dee", e: "are" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
// non-inflecting adjective as predicate
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: {
|
||||||
|
entry: {"ts":1527812797,"i":8542,"p":"ښځه","f":"xúdza","g":"xudza","e":"woman, wife","c":"n. f. anim.","ec":"woman","ep":"women"},
|
||||||
|
plural: true,
|
||||||
|
},
|
||||||
|
predicate: {"ts":1527812798,"i":5595,"p":"خفه","f":"khufa","g":"khufa","e":"sad, upset, angry; choked, suffocated","c":"adj."},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "ښځې", f: "xúdze", e: "(The) women" }],
|
||||||
|
predicate: [{ p: "خفه", f: "khufa", e: "sad" }],
|
||||||
|
equative: [{ p: "دي", f: "dee", e: "are" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "handle participle subjects with adjective predicates",
|
||||||
|
tests: [
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: {"ts":1527812790,"i":5747,"p":"خوړل","f":"khoRul","g":"khoRul","e":"to eat, to bite","c":"v. trans.","psp":"خور","psf":"khor","tppp":"خوړ","tppf":"khoR","ec":"eat"},
|
||||||
|
predicate: {"ts":1527812796,"i":8578,"p":"ښه","f":"xu","g":"xu","e":"good","c":"adj."},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "خوړل", f: "khoRul", e: "eating" }],
|
||||||
|
predicate: [{ p: "ښه", f: "xu", e: "good" }],
|
||||||
|
equative: [{ p: "دي", f: "dee", e: "is" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
subject: {"ts":1527817298,"i":310,"p":"اخیستل","f":"akheestul","g":"akheestul","e":"to take, buy, purchase, receive; to shave, cut with scissors","c":"v. trans.","psp":"اخل","psf":"akhl","ec":"take,takes,taking,took,taken"},
|
||||||
|
predicate: {"ts":1527815451,"i":7193,"p":"زوړ","f":"zoR","g":"zoR","e":"old","c":"adj. irreg.","infap":"زاړه","infaf":"zaaRu","infbp":"زړ","infbf":"zaR"},
|
||||||
|
},
|
||||||
|
out: {
|
||||||
|
subject: [{ p: "اخیستل", f: "akheestul", e: "taking" }],
|
||||||
|
predicate: [{ p: "زاړه", f: "zaaRu", e: "old" }],
|
||||||
|
equative: [{ p: "دي", f: "dee", e: "is" }],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
describe("equativeMachine", () => {
|
||||||
|
abilities.forEach((a) => {
|
||||||
|
test(a.label, () => {
|
||||||
|
a.tests.forEach((t) => {
|
||||||
|
expect(equativeMachine(t.in.subject, t.in.predicate)).toEqual(t.out);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,186 @@
|
||||||
|
import {
|
||||||
|
getPersonFromVerbForm,
|
||||||
|
Types as T,
|
||||||
|
getEnglishWord,
|
||||||
|
grammarUnits,
|
||||||
|
inflectWord,
|
||||||
|
personIsPlural,
|
||||||
|
removeFVarients,
|
||||||
|
isUnisexSet,
|
||||||
|
personGender,
|
||||||
|
getVerbBlockPosFromPerson,
|
||||||
|
addEnglish,
|
||||||
|
} from "@lingdocs/pashto-inflector";
|
||||||
|
|
||||||
|
export type EquativeMachineOutput = {
|
||||||
|
subject: T.PsString[],
|
||||||
|
predicate: T.PsString[],
|
||||||
|
equative: T.SingleOrLengthOpts<T.ArrayOneOrMore<T.PsString>>,
|
||||||
|
};
|
||||||
|
|
||||||
|
export type EquativeNounInput = {
|
||||||
|
entry: T.DictionaryEntry,
|
||||||
|
plural: boolean,
|
||||||
|
};
|
||||||
|
|
||||||
|
export function equativeMachine(sub: T.Person | EquativeNounInput | T.DictionaryEntry, pred: T.DictionaryEntry): EquativeMachineOutput {
|
||||||
|
const subjPerson = getSubPerson(sub);
|
||||||
|
const isParticiple = !!(typeof sub !== "number" && "ts" in sub && sub.c?.startsWith("v."));
|
||||||
|
if (!isParticiple && (typeof sub !== "number" && "ts" in sub)) {
|
||||||
|
throw new Error("non participle subject should be in this form: { entry: T.Dictionary, plural: boolean }");
|
||||||
|
}
|
||||||
|
const subject = typeof sub === "number"
|
||||||
|
? makePronounSubject(sub)
|
||||||
|
: "entry" in sub
|
||||||
|
? makeNounSubject(sub)
|
||||||
|
: makeParticipleSub(sub);
|
||||||
|
const predicate = makePredicate(pred, subjPerson);
|
||||||
|
const equative = makeEquative(subjPerson, isParticiple);
|
||||||
|
|
||||||
|
return {
|
||||||
|
subject,
|
||||||
|
predicate,
|
||||||
|
equative,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function makePronounSubject(sub: T.Person): T.PsString[] {
|
||||||
|
const [row, col] = getVerbBlockPosFromPerson(sub);
|
||||||
|
return addEnglish(
|
||||||
|
grammarUnits.persons[sub].label.subject,
|
||||||
|
grammarUnits.pronouns.far.plain[row][col],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeNounSubject(sub: EquativeNounInput): T.PsString[] {
|
||||||
|
function makeEnglish(): string {
|
||||||
|
const e = getEnglishWord(sub.entry);
|
||||||
|
if (!e) {
|
||||||
|
throw new Error(`unable to get english from subject ${sub.entry.f} - ${sub.entry.ts}`);
|
||||||
|
}
|
||||||
|
if (typeof e === "string") return `(A/The) ${e}`;
|
||||||
|
if (sub.plural) {
|
||||||
|
return `(The) ${e.plural}`;
|
||||||
|
}
|
||||||
|
if (!e.singular) {
|
||||||
|
throw new Error(`unable to get english from subject ${sub.entry.f} - ${sub.entry.ts}`);
|
||||||
|
}
|
||||||
|
return `(A/The) ${e.singular}`;
|
||||||
|
}
|
||||||
|
function getPashto(): T.ArrayOneOrMore<T.PsString> {
|
||||||
|
const infs = inflectWord(sub.entry);
|
||||||
|
const gender = sub.entry.c?.includes("n. f.") ? "fem" : "masc";
|
||||||
|
try {
|
||||||
|
if (!infs || !sub.plural) {
|
||||||
|
return [psStringFromEntry(sub.entry, english)];
|
||||||
|
}
|
||||||
|
if (!("plural" in infs)) {
|
||||||
|
// @ts-ignore
|
||||||
|
return infs.inflections[gender][sub.plural ? 1 : 0];
|
||||||
|
}
|
||||||
|
// @ts-ignore
|
||||||
|
return infs.plural[gender][0]
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(`error making noun subject for ${sub.entry.f} ${sub.entry.ts}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const english = makeEnglish();
|
||||||
|
return addEnglish(
|
||||||
|
english,
|
||||||
|
getPashto(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeParticipleSub(sub: T.DictionaryEntry): T.PsString[] {
|
||||||
|
return [
|
||||||
|
psStringFromEntry(sub, getEnglishParticiple(sub)),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeEquative(pers: T.Person, isParticiple: boolean): T.SentenceForm {
|
||||||
|
const [row, col] = getVerbBlockPosFromPerson(pers);
|
||||||
|
return addEnglish(
|
||||||
|
isParticiple
|
||||||
|
? grammarUnits.englishEquative.present[4][0]
|
||||||
|
: grammarUnits.englishEquative.present[row][col],
|
||||||
|
getPersonFromVerbForm(grammarUnits.equativeEndings.present, pers),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSubPerson(sub: T.Person | EquativeNounInput | T.DictionaryEntry): T.Person {
|
||||||
|
if (typeof sub === "number") {
|
||||||
|
return sub;
|
||||||
|
}
|
||||||
|
if ("entry" in sub) {
|
||||||
|
const gender = sub.entry.c?.includes("n. f.") ? "fem" : "masc";
|
||||||
|
if (gender === "masc" && !sub.plural) {
|
||||||
|
return T.Person.ThirdSingMale;
|
||||||
|
}
|
||||||
|
if (gender === "masc" && sub.plural) {
|
||||||
|
return T.Person.ThirdPlurMale;
|
||||||
|
}
|
||||||
|
if (gender === "fem" && !sub.plural) {
|
||||||
|
return T.Person.ThirdSingFemale;
|
||||||
|
}
|
||||||
|
//if (gender === "fem" && sub.plural) {
|
||||||
|
return T.Person.ThirdPlurFemale;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
if (!sub.c || !sub.c.startsWith("v.")) {
|
||||||
|
throw new Error("subject should be a participle/verb");
|
||||||
|
}
|
||||||
|
return T.Person.ThirdPlurMale;
|
||||||
|
}
|
||||||
|
|
||||||
|
function makePredicate(pred: T.DictionaryEntry, pers: T.Person): T.PsString[] {
|
||||||
|
const infs = inflectWord(pred);
|
||||||
|
const e = retrieveEnglishPredicate(pred, pers);
|
||||||
|
if (!e) {
|
||||||
|
throw new Error(`unable to get english from predicate ${pred.f} - ${pred.ts}`);
|
||||||
|
}
|
||||||
|
const plural = personIsPlural(pers);
|
||||||
|
const gender = personGender(pers);
|
||||||
|
const makePlainPred = () => ([psStringFromEntry(pred, e)]);
|
||||||
|
if (!infs || !infs.inflections || !isUnisexSet(infs.inflections)) {
|
||||||
|
return makePlainPred();
|
||||||
|
}
|
||||||
|
if (plural && "plural" in infs && infs.plural) {
|
||||||
|
const ps = gender in infs.plural
|
||||||
|
// @ts-ignore
|
||||||
|
? infs.plural[gender][0] as T.PsString[]
|
||||||
|
: makePlainPred();
|
||||||
|
return ps.map((p) => ({ ...p, e }));
|
||||||
|
}
|
||||||
|
// if (infs.inflections) {
|
||||||
|
const inflection = chooseInflection(infs.inflections, pers);
|
||||||
|
return inflection.map((i) => ({ ...i, e }));
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
function chooseInflection(inflections: T.UnisexSet<T.InflectionSet>, pers: T.Person): T.PsString[] {
|
||||||
|
return inflections[personGender(pers)][personIsPlural(pers) ? 1 : 0];
|
||||||
|
}
|
||||||
|
|
||||||
|
function retrieveEnglishPredicate(pred: T.DictionaryEntry, pers: T.Person): string | undefined {
|
||||||
|
const english = getEnglishWord(pred);
|
||||||
|
const plurSing = personIsPlural(pers) ? "plural" : "singular";
|
||||||
|
return typeof english === "string"
|
||||||
|
? english
|
||||||
|
: english === undefined
|
||||||
|
? undefined
|
||||||
|
: english[plurSing]
|
||||||
|
? english[plurSing]
|
||||||
|
: undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
function psStringFromEntry(entry: T.DictionaryEntry, e: string): T.PsString {
|
||||||
|
return {
|
||||||
|
p: entry.p,
|
||||||
|
f: removeFVarients(entry.f),
|
||||||
|
e,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function getEnglishParticiple(entry: T.DictionaryEntry): string {
|
||||||
|
return "doing";
|
||||||
|
}
|
99
yarn.lock
99
yarn.lock
|
@ -1562,31 +1562,31 @@
|
||||||
"@types/yargs" "^15.0.0"
|
"@types/yargs" "^15.0.0"
|
||||||
chalk "^3.0.0"
|
chalk "^3.0.0"
|
||||||
|
|
||||||
"@jest/types@^26.6.2":
|
"@jest/types@^27.2.4":
|
||||||
version "26.6.2"
|
version "27.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e"
|
resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.4.tgz#2430042a66e00dc5b140c3636f4474d464c21ee8"
|
||||||
integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==
|
integrity sha512-IDO2ezTxeMvQAHxzG/ZvEyA47q0aVfzT95rGFl7bZs/Go0aIucvfDbS2rmnoEdXxlLQhcolmoG/wvL/uKx4tKA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/istanbul-lib-coverage" "^2.0.0"
|
"@types/istanbul-lib-coverage" "^2.0.0"
|
||||||
"@types/istanbul-reports" "^3.0.0"
|
"@types/istanbul-reports" "^3.0.0"
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
"@types/yargs" "^15.0.0"
|
"@types/yargs" "^16.0.0"
|
||||||
chalk "^4.0.0"
|
chalk "^4.0.0"
|
||||||
|
|
||||||
"@lingdocs/lingdocs-main@^0.1.3":
|
"@lingdocs/lingdocs-main@^0.1.4":
|
||||||
version "0.1.3"
|
version "0.1.6"
|
||||||
resolved "https://npm.lingdocs.com/@lingdocs%2flingdocs-main/-/lingdocs-main-0.1.3.tgz#631b468eb235aa852395e390925ac118847a4b1c"
|
resolved "https://npm.lingdocs.com/@lingdocs%2flingdocs-main/-/lingdocs-main-0.1.6.tgz#b79c95d68e200eb7f323e8144fd3a3cea0ceb805"
|
||||||
integrity sha512-AnNDTxqr779POzGbsv/lfGcEFKX+6Q71TUzLY4t/dA8MbsTEp66WGD04gIXSdw7JjojnWA0w9ui/O2nQI6nj5g==
|
integrity sha512-xVwBg01eJng9d+LMvaNtAjUGJhUt3yRmKAsCGlvJPQp8Ud4zpmJ5gotOTLUOEWTsjXzW0H/PjQXG767reuX3aA==
|
||||||
dependencies:
|
dependencies:
|
||||||
nano "^9.0.5"
|
nano "^9.0.5"
|
||||||
passport-github2 "^0.1.12"
|
passport-github2 "^0.1.12"
|
||||||
passport-google-oauth "^2.0.0"
|
passport-google-oauth "^2.0.0"
|
||||||
passport-twitter "^1.0.4"
|
passport-twitter "^1.0.4"
|
||||||
|
|
||||||
"@lingdocs/pashto-inflector@^1.0.5":
|
"@lingdocs/pashto-inflector@^1.1.3":
|
||||||
version "1.0.6"
|
version "1.1.3"
|
||||||
resolved "https://npm.lingdocs.com/@lingdocs%2fpashto-inflector/-/pashto-inflector-1.0.6.tgz#b61262c04916442a1023002bd7426ee39d77635f"
|
resolved "https://npm.lingdocs.com/@lingdocs%2fpashto-inflector/-/pashto-inflector-1.1.3.tgz#e908b1933bd9dd3962d9757ad9eb270184d9914c"
|
||||||
integrity sha512-yhijpCx1nBHnwykydOPOWzZlA388EioLr/SftNcYgRilxOjHVzXzEHL9dMNxciAiCNKFcNic2UVp+Tha4WEbSA==
|
integrity sha512-kez2oSZOK1RQm4VssyRBeGehtfT8iS3ROqiOjxgFZj0S8gGw4/A8TsfACGuqh1D0/3EaCI7JjBlj/O5tsHZ2DQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
classnames "^2.2.6"
|
classnames "^2.2.6"
|
||||||
pbf "^3.2.1"
|
pbf "^3.2.1"
|
||||||
|
@ -1973,13 +1973,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/istanbul-lib-report" "*"
|
"@types/istanbul-lib-report" "*"
|
||||||
|
|
||||||
"@types/jest@^26.0.21":
|
"@types/jest@^27.0.2":
|
||||||
version "26.0.21"
|
version "27.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.21.tgz#3a73c2731e7e4f0fbaea56ce7ff8c79cf812bd24"
|
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.2.tgz#ac383c4d4aaddd29bbf2b916d8d105c304a5fcd7"
|
||||||
integrity sha512-ab9TyM/69yg7eew9eOwKMUmvIZAKEGZYlq/dhe5/0IMUd/QLJv5ldRMdddSn+u22N13FP3s5jYyktxuBwY0kDA==
|
integrity sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA==
|
||||||
dependencies:
|
dependencies:
|
||||||
jest-diff "^26.0.0"
|
jest-diff "^27.0.0"
|
||||||
pretty-format "^26.0.0"
|
pretty-format "^27.0.0"
|
||||||
|
|
||||||
"@types/json-schema@^7.0.3":
|
"@types/json-schema@^7.0.3":
|
||||||
version "7.0.4"
|
version "7.0.4"
|
||||||
|
@ -2160,6 +2160,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/yargs-parser" "*"
|
"@types/yargs-parser" "*"
|
||||||
|
|
||||||
|
"@types/yargs@^16.0.0":
|
||||||
|
version "16.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977"
|
||||||
|
integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==
|
||||||
|
dependencies:
|
||||||
|
"@types/yargs-parser" "*"
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@^2.10.0":
|
"@typescript-eslint/eslint-plugin@^2.10.0":
|
||||||
version "2.24.0"
|
version "2.24.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.24.0.tgz#a86cf618c965a462cddf3601f594544b134d6d68"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.24.0.tgz#a86cf618c965a462cddf3601f594544b134d6d68"
|
||||||
|
@ -2506,6 +2513,11 @@ ansi-regex@^5.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
|
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
|
||||||
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
|
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
|
||||||
|
|
||||||
|
ansi-regex@^5.0.1:
|
||||||
|
version "5.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
|
||||||
|
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
|
||||||
|
|
||||||
ansi-styles@^2.2.1:
|
ansi-styles@^2.2.1:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
|
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
|
||||||
|
@ -2526,6 +2538,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
|
||||||
"@types/color-name" "^1.1.1"
|
"@types/color-name" "^1.1.1"
|
||||||
color-convert "^2.0.1"
|
color-convert "^2.0.1"
|
||||||
|
|
||||||
|
ansi-styles@^5.0.0:
|
||||||
|
version "5.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
|
||||||
|
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
|
||||||
|
|
||||||
anymatch@^2.0.0:
|
anymatch@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
|
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
|
||||||
|
@ -4356,10 +4373,10 @@ diff-sequences@^24.9.0:
|
||||||
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
|
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
|
||||||
integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==
|
integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==
|
||||||
|
|
||||||
diff-sequences@^26.6.2:
|
diff-sequences@^27.0.6:
|
||||||
version "26.6.2"
|
version "27.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1"
|
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723"
|
||||||
integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==
|
integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==
|
||||||
|
|
||||||
diffie-hellman@^5.0.0:
|
diffie-hellman@^5.0.0:
|
||||||
version "5.0.3"
|
version "5.0.3"
|
||||||
|
@ -6754,15 +6771,15 @@ jest-diff@^24.0.0, jest-diff@^24.9.0:
|
||||||
jest-get-type "^24.9.0"
|
jest-get-type "^24.9.0"
|
||||||
pretty-format "^24.9.0"
|
pretty-format "^24.9.0"
|
||||||
|
|
||||||
jest-diff@^26.0.0:
|
jest-diff@^27.0.0:
|
||||||
version "26.6.2"
|
version "27.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394"
|
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.4.tgz#171c51d3d2c105c457100fee6e7bf7cee51c8d8c"
|
||||||
integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==
|
integrity sha512-bLAVlDSCR3gqUPGv+4nzVpEXGsHh98HjUL7Vb2hVyyuBDoQmja8eJb0imUABsuxBeUVmf47taJSAd9nDrwWKEg==
|
||||||
dependencies:
|
dependencies:
|
||||||
chalk "^4.0.0"
|
chalk "^4.0.0"
|
||||||
diff-sequences "^26.6.2"
|
diff-sequences "^27.0.6"
|
||||||
jest-get-type "^26.3.0"
|
jest-get-type "^27.0.6"
|
||||||
pretty-format "^26.6.2"
|
pretty-format "^27.2.4"
|
||||||
|
|
||||||
jest-docblock@^24.3.0:
|
jest-docblock@^24.3.0:
|
||||||
version "24.9.0"
|
version "24.9.0"
|
||||||
|
@ -6822,10 +6839,10 @@ jest-get-type@^24.9.0:
|
||||||
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e"
|
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e"
|
||||||
integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==
|
integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==
|
||||||
|
|
||||||
jest-get-type@^26.3.0:
|
jest-get-type@^27.0.6:
|
||||||
version "26.3.0"
|
version "27.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0"
|
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe"
|
||||||
integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==
|
integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==
|
||||||
|
|
||||||
jest-haste-map@^24.9.0:
|
jest-haste-map@^24.9.0:
|
||||||
version "24.9.0"
|
version "24.9.0"
|
||||||
|
@ -9690,14 +9707,14 @@ pretty-format@^25.1.0, pretty-format@^25.5.0:
|
||||||
ansi-styles "^4.0.0"
|
ansi-styles "^4.0.0"
|
||||||
react-is "^16.12.0"
|
react-is "^16.12.0"
|
||||||
|
|
||||||
pretty-format@^26.0.0, pretty-format@^26.6.2:
|
pretty-format@^27.0.0, pretty-format@^27.2.4:
|
||||||
version "26.6.2"
|
version "27.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"
|
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.4.tgz#08ea39c5eab41b082852d7093059a091f6ddc748"
|
||||||
integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==
|
integrity sha512-NUjw22WJHldzxyps2YjLZkUj6q1HvjqFezkB9Y2cklN8NtVZN/kZEXGZdFw4uny3oENzV5EEMESrkI0YDUH8vg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@jest/types" "^26.6.2"
|
"@jest/types" "^27.2.4"
|
||||||
ansi-regex "^5.0.0"
|
ansi-regex "^5.0.1"
|
||||||
ansi-styles "^4.0.0"
|
ansi-styles "^5.0.0"
|
||||||
react-is "^17.0.1"
|
react-is "^17.0.1"
|
||||||
|
|
||||||
prismjs@^1.15.0:
|
prismjs@^1.15.0:
|
||||||
|
|
Loading…
Reference in New Issue