release beta new verb explorer
This commit is contained in:
parent
01443be4cc
commit
2d798e91f6
File diff suppressed because it is too large
Load Diff
|
@ -14,7 +14,7 @@
|
|||
"main": "lib/functions/src/index.js",
|
||||
"dependencies": {
|
||||
"@google-cloud/storage": "^5.8.1",
|
||||
"@lingdocs/pashto-inflector": "1.7.0",
|
||||
"@lingdocs/pashto-inflector": "1.8.4",
|
||||
"@types/cors": "^2.8.10",
|
||||
"@types/google-spreadsheet": "^3.0.2",
|
||||
"cors": "^2.8.5",
|
||||
|
@ -35,6 +35,6 @@
|
|||
},
|
||||
"private": true,
|
||||
"peerDependencies": {
|
||||
"@lingdocs/pashto-inflector": "1.7.0"
|
||||
"@lingdocs/pashto-inflector": "1.8.4"
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -17,7 +17,7 @@
|
|||
"url": "git@github.com-lingdocs:lingdocs/lingdocs-main.git"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@lingdocs/pashto-inflector": "1.7.0"
|
||||
"@lingdocs/pashto-inflector": "1.8.4"
|
||||
},
|
||||
"author": "lingdocs.com",
|
||||
"license": "MIT",
|
||||
|
@ -26,7 +26,7 @@
|
|||
"passport-github2": "^0.1.12",
|
||||
"passport-google-oauth": "^2.0.0",
|
||||
"passport-twitter": "^1.0.4",
|
||||
"@lingdocs/pashto-inflector": "1.7.0"
|
||||
"@lingdocs/pashto-inflector": "1.8.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/passport-github2": "^1.2.5",
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"private": true,
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.15.2",
|
||||
"@lingdocs/pashto-inflector": "1.7.0",
|
||||
"@lingdocs/pashto-inflector": "1.8.4",
|
||||
"@testing-library/jest-dom": "^5.11.4",
|
||||
"@testing-library/react": "^11.1.0",
|
||||
"@testing-library/user-event": "^12.1.10",
|
||||
|
@ -100,6 +100,6 @@
|
|||
"user-event": "^4.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@lingdocs/pashto-inflector": "1.7.0"
|
||||
"@lingdocs/pashto-inflector": "1.8.4"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,9 +10,10 @@ import { DictionaryDb } from "./dictionary-core";
|
|||
import sanitizePashto from "./sanitize-pashto";
|
||||
import fillerWords from "./filler-words";
|
||||
import {
|
||||
Types,
|
||||
Types as T,
|
||||
convertSpelling,
|
||||
simplifyPhonetics,
|
||||
typePredicates as tp,
|
||||
} from "@lingdocs/pashto-inflector";
|
||||
import { isPashtoScript } from "./is-pashto";
|
||||
import { fuzzifyPashto } from "./fuzzify-pashto/fuzzify-pashto";
|
||||
|
@ -98,7 +99,7 @@ function tsOneMonthBack(): number {
|
|||
function alphabeticalLookup({ searchString, page }: {
|
||||
searchString: string,
|
||||
page: number,
|
||||
}): Types.DictionaryEntry[] {
|
||||
}): T.DictionaryEntry[] {
|
||||
const r = new RegExp("^" + sanitizePashto(makeSearchStringSafe(searchString)));
|
||||
const regexResults = dictDb.collection.find({
|
||||
$or: [
|
||||
|
@ -123,21 +124,25 @@ function alphabeticalLookup({ searchString, page }: {
|
|||
return [];
|
||||
}
|
||||
|
||||
function fuzzyLookup({ searchString, language, page } : {
|
||||
function fuzzyLookup<S extends T.DictionaryEntry>({ searchString, language, page, tpFilter }: {
|
||||
searchString: string,
|
||||
language: "Pashto" | "English" | "Both",
|
||||
page: number,
|
||||
}) {
|
||||
tpFilter?: (e: T.DictionaryEntry) => e is S,
|
||||
}): S[] {
|
||||
// TODO: Implement working with both
|
||||
return language === "Pashto"
|
||||
? pashtoFuzzyLookup({ searchString, page })
|
||||
: englishLookup({ searchString, page });
|
||||
? pashtoFuzzyLookup({ searchString, page, tpFilter })
|
||||
: englishLookup({ searchString, page, tpFilter })
|
||||
|
||||
}
|
||||
|
||||
function englishLookup({ searchString, page }: {
|
||||
function englishLookup<S extends T.DictionaryEntry>({ searchString, page, tpFilter }: {
|
||||
searchString: string,
|
||||
page: number,
|
||||
}) {
|
||||
let resultsGiven: number[] = [];
|
||||
tpFilter?: (e: T.DictionaryEntry) => e is S,
|
||||
}): S[] {
|
||||
let resultsGiven: number[] = [];;
|
||||
// get exact results
|
||||
const exactQuery = {
|
||||
e: {
|
||||
|
@ -188,6 +193,7 @@ function englishLookup({ searchString, page }: {
|
|||
};
|
||||
const partialMatchLimit = (pageSize * page) - resultsGiven.length;
|
||||
const partialMatchResults = dictDb.collection.chain()
|
||||
.where(tpFilter ? tpFilter : () => true)
|
||||
.find(partialMatchQuery)
|
||||
.limit(partialMatchLimit)
|
||||
.simplesort("i")
|
||||
|
@ -198,10 +204,13 @@ function englishLookup({ searchString, page }: {
|
|||
...fullWordResults,
|
||||
...partialMatchResults,
|
||||
];
|
||||
if (tpFilter) {
|
||||
return results.filter(tpFilter);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
function pashtoExactLookup(searchString: string): Types.DictionaryEntry[] {
|
||||
function pashtoExactLookup(searchString: string): T.DictionaryEntry[] {
|
||||
const index = isPashtoScript(searchString) ? "p" : "g";
|
||||
const search = index === "g" ? simplifyPhonetics(searchString) : searchString;
|
||||
return dictDb.collection.find({
|
||||
|
@ -209,10 +218,11 @@ function pashtoExactLookup(searchString: string): Types.DictionaryEntry[] {
|
|||
});
|
||||
}
|
||||
|
||||
function pashtoFuzzyLookup({ searchString, page }: {
|
||||
function pashtoFuzzyLookup<S extends T.DictionaryEntry>({ searchString, page, tpFilter }: {
|
||||
searchString: string,
|
||||
page: number,
|
||||
}): Types.DictionaryEntry[] {
|
||||
tpFilter?: (e: T.DictionaryEntry) => e is S,
|
||||
}): S[] {
|
||||
let resultsGiven: number[] = [];
|
||||
// Check if it's in Pashto or Latin script
|
||||
const searchStringToUse = sanitizePashto(makeSearchStringSafe(searchString));
|
||||
|
@ -286,7 +296,9 @@ function pashtoFuzzyLookup({ searchString, page }: {
|
|||
.find(fuzzyQuery)
|
||||
.limit(fuzzyResultsLimit)
|
||||
.data();
|
||||
const results = [...exactResults, ...fuzzyResults];
|
||||
const results = tpFilter
|
||||
? [...exactResults, ...fuzzyResults].filter(tpFilter)
|
||||
: [...exactResults, ...fuzzyResults];
|
||||
const chunksToSort = chunkOutArray(results, pageSize);
|
||||
// sort out each chunk (based on limit used multiple times by infinite scroll)
|
||||
// so that when infinite scrolling, it doesn't resort the previous chunks given
|
||||
|
@ -304,16 +316,16 @@ function pashtoFuzzyLookup({ searchString, page }: {
|
|||
}
|
||||
|
||||
function sortByRelevancy<T>(arr: T[], searchI: string, index: string): T[] {
|
||||
return relevancySorter.sort(arr, searchI, (obj: any, calc: any) => calc(obj[index]))
|
||||
return relevancySorter.sort(arr, searchI, (obj: any, calc: any) => calc(obj[index]));
|
||||
}
|
||||
|
||||
function relatedWordsLookup(word: Types.DictionaryEntry): Types.DictionaryEntry[] {
|
||||
function relatedWordsLookup(word: T.DictionaryEntry): T.DictionaryEntry[] {
|
||||
const wordArray = word.e.trim()
|
||||
.replace(/\?/g, "")
|
||||
.replace(/( |,|\.|!|;|\(|\))/g, " ")
|
||||
.split(/ +/)
|
||||
.filter((w: string) => !fillerWords.includes(w));
|
||||
let results: Types.DictionaryEntry[] = [];
|
||||
let results: T.DictionaryEntry[] = [];
|
||||
wordArray.forEach((w: string) => {
|
||||
let r: RegExp;
|
||||
try {
|
||||
|
@ -345,13 +357,64 @@ export function allEntries() {
|
|||
return dictDb.collection.find();
|
||||
}
|
||||
|
||||
export function getNounByTs(ts: number): undefined | T.NounEntry {
|
||||
const res = dictDb.findOneByTs(ts);
|
||||
if (!res) return undefined;
|
||||
return tp.isNounEntry(res) ? res : undefined;
|
||||
}
|
||||
export function getVerbByTs(ts: number): undefined | T.VerbEntry {
|
||||
const entry = dictDb.findOneByTs(ts);
|
||||
if (!entry) return undefined;
|
||||
if (!tp.isVerbDictionaryEntry(entry)) {
|
||||
console.error("not valid verb entry");
|
||||
return undefined;
|
||||
}
|
||||
const complement = (() => {
|
||||
if (entry.c?.includes("comp") && entry.l) {
|
||||
const comp = dictDb.findOneByTs(entry.l);
|
||||
if (!comp) {
|
||||
console.error("complement not found for", entry);
|
||||
}
|
||||
return comp;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
})();
|
||||
return { entry, complement };
|
||||
}
|
||||
|
||||
export function searchNouns(s: string): T.NounEntry[] {
|
||||
console.log("searching nouns");
|
||||
return fuzzyLookup({
|
||||
searchString: s,
|
||||
language: "Pashto",
|
||||
page: 1,
|
||||
tpFilter: tp.isNounEntry,
|
||||
});
|
||||
}
|
||||
|
||||
export function searchVerbs(s: string): T.VerbEntry[] {
|
||||
const vEntries = fuzzyLookup({
|
||||
searchString: s,
|
||||
language: "Pashto",
|
||||
page: 1,
|
||||
tpFilter: tp.isVerbDictionaryEntry,
|
||||
});
|
||||
return vEntries.map((entry): T.VerbEntry => ({
|
||||
entry,
|
||||
complement: (entry.c?.includes("comp.") && entry.l)
|
||||
? dictionary.findOneByTs(entry.l)
|
||||
: undefined,
|
||||
}));
|
||||
}
|
||||
|
||||
export const dictionary: DictionaryAPI = {
|
||||
// NOTE: For some reason that I do not understand you have to pass the functions from the
|
||||
// dictionary core class in like this... ie. initialize: dictDb.initialize will mess up the this usage
|
||||
// in the dictionary core class
|
||||
initialize: async () => await dictDb.initialize(),
|
||||
update: async (notifyUpdateComing: () => void) => await dictDb.updateDictionary(notifyUpdateComing),
|
||||
search: function(state: State): Types.DictionaryEntry[] {
|
||||
search: function(state: State): T.DictionaryEntry[] {
|
||||
const searchString = convertSpelling(
|
||||
state.searchValue,
|
||||
getTextOptions(state).spelling,
|
||||
|
@ -371,7 +434,7 @@ export const dictionary: DictionaryAPI = {
|
|||
});
|
||||
},
|
||||
exactPashtoSearch: pashtoExactLookup,
|
||||
getNewWordsThisMonth: function(): Types.DictionaryEntry[] {
|
||||
getNewWordsThisMonth: function(): T.DictionaryEntry[] {
|
||||
return dictDb.collection.chain()
|
||||
.find({ ts: { $gt: tsOneMonthBack() }})
|
||||
.simplesort("ts")
|
||||
|
@ -379,7 +442,7 @@ export const dictionary: DictionaryAPI = {
|
|||
.reverse();
|
||||
},
|
||||
findOneByTs: (ts: number) => dictDb.findOneByTs(ts),
|
||||
findRelatedEntries: function(entry: Types.DictionaryEntry): Types.DictionaryEntry[] {
|
||||
findRelatedEntries: function(entry: T.DictionaryEntry): T.DictionaryEntry[] {
|
||||
return relatedWordsLookup(entry);
|
||||
},
|
||||
}
|
||||
|
|
|
@ -8,11 +8,12 @@
|
|||
|
||||
import { useEffect, useState } from "react";
|
||||
import {
|
||||
ConjugationViewer,
|
||||
VPExplorer,
|
||||
InflectionsTable,
|
||||
inflectWord,
|
||||
InlinePs,
|
||||
Types as T,
|
||||
typePredicates as tp,
|
||||
} from "@lingdocs/pashto-inflector";
|
||||
import {
|
||||
submissionBase,
|
||||
|
@ -32,6 +33,12 @@ import AudioPlayButton from "../components/AudioPlayButton";
|
|||
import { Helmet } from "react-helmet";
|
||||
import { Modal } from "react-bootstrap";
|
||||
import { getTextOptions } from "../lib/get-text-options";
|
||||
import {
|
||||
searchNouns,
|
||||
searchVerbs,
|
||||
getNounByTs,
|
||||
getVerbByTs,
|
||||
} from "../lib/dictionary";
|
||||
|
||||
function IsolatedEntry({ state, dictionary, isolateEntry }: {
|
||||
state: State,
|
||||
|
@ -199,12 +206,31 @@ function IsolatedEntry({ state, dictionary, isolateEntry }: {
|
|||
<InflectionsTable inf={inf.arabicPlural} textOptions={textOptions} />
|
||||
</div>}
|
||||
</>}
|
||||
{/* TODO: State options for tail type here */}
|
||||
<ConjugationViewer
|
||||
entry={entry}
|
||||
complement={complement}
|
||||
textOptions={textOptions}
|
||||
/>
|
||||
{/*
|
||||
// @ts-ignore */}
|
||||
{tp.isVerbEntry({ entry, complement }) && <div className="pb-4">
|
||||
<div>
|
||||
<div className="h5">🆕 New Verb Explorer 👇</div>
|
||||
<ul className="mb-2">
|
||||
<li>Now you can build phrases with nouns etc.</li>
|
||||
<li>🚧 It's kinda ugly now but will get better! 👷</li>
|
||||
</ul>
|
||||
</div>
|
||||
<VPExplorer
|
||||
verb={{
|
||||
// TODO: CLEAN THIS UP!
|
||||
// @ts-ignore
|
||||
entry,
|
||||
complement,
|
||||
}}
|
||||
opts={textOptions}
|
||||
nouns={searchNouns}
|
||||
verbs={searchVerbs}
|
||||
getNounByTs={getNounByTs}
|
||||
getVerbByTs={getVerbByTs}
|
||||
/>
|
||||
</div>}
|
||||
|
||||
{relatedEntries && <>
|
||||
{relatedEntries.length ?
|
||||
<>
|
||||
|
|
|
@ -209,6 +209,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
|
||||
integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
|
||||
|
||||
"@babel/helper-plugin-utils@^7.16.7":
|
||||
version "7.16.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5"
|
||||
integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==
|
||||
|
||||
"@babel/helper-remap-async-to-generator@^7.14.5":
|
||||
version "7.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6"
|
||||
|
@ -541,6 +546,13 @@
|
|||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.0"
|
||||
|
||||
"@babel/plugin-syntax-jsx@^7.12.13":
|
||||
version "7.16.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665"
|
||||
integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.16.7"
|
||||
|
||||
"@babel/plugin-syntax-jsx@^7.14.5":
|
||||
version "7.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201"
|
||||
|
@ -1164,6 +1176,13 @@
|
|||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/runtime@^7.12.0", "@babel/runtime@^7.13.10":
|
||||
version "7.17.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72"
|
||||
integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/template@^7.10.4", "@babel/template@^7.14.5", "@babel/template@^7.3.3":
|
||||
version "7.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
|
||||
|
@ -1219,6 +1238,89 @@
|
|||
resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18"
|
||||
integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==
|
||||
|
||||
"@emotion/babel-plugin@^11.7.1":
|
||||
version "11.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz#fec75f38a6ab5b304b0601c74e2a5e77c95e5fa0"
|
||||
integrity sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==
|
||||
dependencies:
|
||||
"@babel/helper-module-imports" "^7.12.13"
|
||||
"@babel/plugin-syntax-jsx" "^7.12.13"
|
||||
"@babel/runtime" "^7.13.10"
|
||||
"@emotion/hash" "^0.8.0"
|
||||
"@emotion/memoize" "^0.7.5"
|
||||
"@emotion/serialize" "^1.0.2"
|
||||
babel-plugin-macros "^2.6.1"
|
||||
convert-source-map "^1.5.0"
|
||||
escape-string-regexp "^4.0.0"
|
||||
find-root "^1.1.0"
|
||||
source-map "^0.5.7"
|
||||
stylis "4.0.13"
|
||||
|
||||
"@emotion/cache@^11.4.0", "@emotion/cache@^11.7.1":
|
||||
version "11.7.1"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.7.1.tgz#08d080e396a42e0037848214e8aa7bf879065539"
|
||||
integrity sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==
|
||||
dependencies:
|
||||
"@emotion/memoize" "^0.7.4"
|
||||
"@emotion/sheet" "^1.1.0"
|
||||
"@emotion/utils" "^1.0.0"
|
||||
"@emotion/weak-memoize" "^0.2.5"
|
||||
stylis "4.0.13"
|
||||
|
||||
"@emotion/hash@^0.8.0":
|
||||
version "0.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
|
||||
integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
|
||||
|
||||
"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5":
|
||||
version "0.7.5"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50"
|
||||
integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==
|
||||
|
||||
"@emotion/react@^11.1.1":
|
||||
version "11.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.9.0.tgz#b6d42b1db3bd7511e7a7c4151dc8bc82e14593b8"
|
||||
integrity sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.13.10"
|
||||
"@emotion/babel-plugin" "^11.7.1"
|
||||
"@emotion/cache" "^11.7.1"
|
||||
"@emotion/serialize" "^1.0.3"
|
||||
"@emotion/utils" "^1.1.0"
|
||||
"@emotion/weak-memoize" "^0.2.5"
|
||||
hoist-non-react-statics "^3.3.1"
|
||||
|
||||
"@emotion/serialize@^1.0.2", "@emotion/serialize@^1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.3.tgz#99e2060c26c6292469fb30db41f4690e1c8fea63"
|
||||
integrity sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA==
|
||||
dependencies:
|
||||
"@emotion/hash" "^0.8.0"
|
||||
"@emotion/memoize" "^0.7.4"
|
||||
"@emotion/unitless" "^0.7.5"
|
||||
"@emotion/utils" "^1.0.0"
|
||||
csstype "^3.0.2"
|
||||
|
||||
"@emotion/sheet@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2"
|
||||
integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==
|
||||
|
||||
"@emotion/unitless@^0.7.5":
|
||||
version "0.7.5"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
|
||||
integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
|
||||
|
||||
"@emotion/utils@^1.0.0", "@emotion/utils@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf"
|
||||
integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==
|
||||
|
||||
"@emotion/weak-memoize@^0.2.5":
|
||||
version "0.2.5"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
|
||||
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
|
||||
|
||||
"@eslint/eslintrc@^0.4.3":
|
||||
version "0.4.3"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
|
||||
|
@ -1483,14 +1585,15 @@
|
|||
"@types/yargs" "^16.0.0"
|
||||
chalk "^4.0.0"
|
||||
|
||||
"@lingdocs/pashto-inflector@1.7.0":
|
||||
version "1.7.0"
|
||||
resolved "https://npm.lingdocs.com/@lingdocs%2fpashto-inflector/-/pashto-inflector-1.7.0.tgz#214b0be0528d3c4017db78255c61b83417d20c35"
|
||||
integrity sha512-/7CrJx1KGO4xPJOkWG9LLEteEdeQ20MA5oX4AI10uQuaZpYULR5oF1J02mwS21wERoMUYjCwMrcZ+G71w/T34A==
|
||||
"@lingdocs/pashto-inflector@1.8.4":
|
||||
version "1.8.4"
|
||||
resolved "https://npm.lingdocs.com/@lingdocs%2fpashto-inflector/-/pashto-inflector-1.8.4.tgz#8b8222905f3b0bf302f02d0eb1466756cb23ef2c"
|
||||
integrity sha512-yUjDhgAymltceDzvOFUs9MAN/VYCZtTzav90wYmdprNKAO9CkHzyRky23sT7u93wPZGYMJM8ZvTTrNeoBs05Ww==
|
||||
dependencies:
|
||||
classnames "^2.2.6"
|
||||
pbf "^3.2.1"
|
||||
rambda "^6.7.0"
|
||||
react-select "^5.2.2"
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
|
@ -2243,6 +2346,13 @@
|
|||
"@types/history" "*"
|
||||
"@types/react" "*"
|
||||
|
||||
"@types/react-transition-group@^4.4.0":
|
||||
version "4.4.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e"
|
||||
integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==
|
||||
dependencies:
|
||||
"@types/react" "*"
|
||||
|
||||
"@types/react-transition-group@^4.4.1":
|
||||
version "4.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.2.tgz#38890fd9db68bf1f2252b99a942998dc7877c5b3"
|
||||
|
@ -3186,7 +3296,7 @@ babel-plugin-jest-hoist@^26.6.2:
|
|||
"@types/babel__core" "^7.0.0"
|
||||
"@types/babel__traverse" "^7.0.6"
|
||||
|
||||
babel-plugin-macros@2.8.0:
|
||||
babel-plugin-macros@2.8.0, babel-plugin-macros@^2.6.1:
|
||||
version "2.8.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
|
||||
integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
|
||||
|
@ -4141,7 +4251,7 @@ convert-source-map@^0.3.3:
|
|||
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190"
|
||||
integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA=
|
||||
|
||||
convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
|
||||
convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
|
||||
integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
|
||||
|
@ -5802,6 +5912,11 @@ find-cache-dir@^3.3.1:
|
|||
make-dir "^3.0.2"
|
||||
pkg-dir "^4.1.0"
|
||||
|
||||
find-root@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
|
||||
integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
|
||||
|
||||
find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
|
||||
|
@ -6348,7 +6463,7 @@ hmac-drbg@^1.0.1:
|
|||
minimalistic-assert "^1.0.0"
|
||||
minimalistic-crypto-utils "^1.0.1"
|
||||
|
||||
hoist-non-react-statics@^3.1.0:
|
||||
hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1:
|
||||
version "3.3.2"
|
||||
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
|
||||
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
|
||||
|
@ -8212,6 +8327,11 @@ media-typer@0.3.0:
|
|||
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
|
||||
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
|
||||
|
||||
memoize-one@^5.0.0:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e"
|
||||
integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==
|
||||
|
||||
memory-fs@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
|
||||
|
@ -10235,6 +10355,15 @@ prop-types-extra@^1.1.0:
|
|||
react-is "^16.3.2"
|
||||
warning "^4.0.0"
|
||||
|
||||
prop-types@^15.6.0:
|
||||
version "15.8.1"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
|
||||
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
|
||||
dependencies:
|
||||
loose-envify "^1.4.0"
|
||||
object-assign "^4.1.1"
|
||||
react-is "^16.13.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"
|
||||
|
@ -10537,7 +10666,7 @@ react-image-file-resizer@^0.4.4:
|
|||
resolved "https://registry.yarnpkg.com/react-image-file-resizer/-/react-image-file-resizer-0.4.7.tgz#74b33a03832c0771c6c03b037bae9ba6baf10703"
|
||||
integrity sha512-Dak7Ecrd6WEV5LjqoRYFI49ASn7eB1VTlrw6dri9HeIMS6aJang4nli6q5xeckEMY+7QwgqgWqAQD5tgkm4bJg==
|
||||
|
||||
react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1:
|
||||
react-is@^16.13.1, react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1:
|
||||
version "16.13.1"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||
|
@ -10666,12 +10795,25 @@ react-scripts@4.0.3:
|
|||
optionalDependencies:
|
||||
fsevents "^2.1.3"
|
||||
|
||||
react-select@^5.2.2:
|
||||
version "5.2.2"
|
||||
resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.2.2.tgz#3d5edf0a60f1276fd5f29f9f90a305f0a25a5189"
|
||||
integrity sha512-miGS2rT1XbFNjduMZT+V73xbJEeMzVkJOz727F6MeAr2hKE0uUSA8Ff7vD44H32x2PD3SRB6OXTY/L+fTV3z9w==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.12.0"
|
||||
"@emotion/cache" "^11.4.0"
|
||||
"@emotion/react" "^11.1.1"
|
||||
"@types/react-transition-group" "^4.4.0"
|
||||
memoize-one "^5.0.0"
|
||||
prop-types "^15.6.0"
|
||||
react-transition-group "^4.3.0"
|
||||
|
||||
react-side-effect@^2.1.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3"
|
||||
integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==
|
||||
|
||||
react-transition-group@^4.4.1:
|
||||
react-transition-group@^4.3.0, react-transition-group@^4.4.1:
|
||||
version "4.4.2"
|
||||
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470"
|
||||
integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==
|
||||
|
@ -11633,7 +11775,7 @@ source-map@^0.4.2:
|
|||
dependencies:
|
||||
amdefine ">=0.0.4"
|
||||
|
||||
source-map@^0.5.0, source-map@^0.5.6:
|
||||
source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7:
|
||||
version "0.5.7"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
||||
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
|
||||
|
@ -12022,6 +12164,11 @@ stylehacks@^4.0.0:
|
|||
postcss "^7.0.0"
|
||||
postcss-selector-parser "^3.0.0"
|
||||
|
||||
stylis@4.0.13:
|
||||
version "4.0.13"
|
||||
resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91"
|
||||
integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==
|
||||
|
||||
supermemo@^2.0.17:
|
||||
version "2.0.17"
|
||||
resolved "https://registry.yarnpkg.com/supermemo/-/supermemo-2.0.17.tgz#03341ccd1bb824a3726111e7818092e98acff99f"
|
||||
|
|
Loading…
Reference in New Issue