mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2025-12-29 05:00:35 -05:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82d1a75d80 | ||
|
|
50429207c5 | ||
|
|
589bc1f1aa | ||
|
|
824dcefc1a | ||
|
|
3f8c952237 | ||
|
|
077db58de0 | ||
|
|
3c527fd112 | ||
|
|
cb363d6321 | ||
|
|
39656152d3 | ||
|
|
22c88e5269 | ||
|
|
89550e8345 | ||
|
|
9846c4df18 | ||
|
|
924d1cb71b | ||
|
|
44236f611e | ||
|
|
012dea5a0c | ||
|
|
820c9b704f | ||
|
|
ed92926ec4 | ||
|
|
bc560ee76d | ||
|
|
b6c4130e4b | ||
|
|
b0ca391bb4 | ||
|
|
45a6b1d386 | ||
|
|
4626ffcbc5 | ||
|
|
c3a9cc94fa | ||
|
|
a8eb8bb8d7 | ||
|
|
b14c9aa68c | ||
|
|
b03db7ad36 | ||
|
|
cc706a1195 |
@@ -32,7 +32,7 @@ admin.site.unregister(Group)
|
||||
@admin.action(description='Delete all data from a space')
|
||||
def delete_space_action(modeladmin, request, queryset):
|
||||
for space in queryset:
|
||||
space.save()
|
||||
space.safe_delete()
|
||||
|
||||
|
||||
class SpaceAdmin(admin.ModelAdmin):
|
||||
|
||||
@@ -126,6 +126,8 @@ class IngredientParser:
|
||||
amount = 0
|
||||
unit = None
|
||||
note = ''
|
||||
if x.strip() == '':
|
||||
return amount, unit, note
|
||||
|
||||
did_check_frac = False
|
||||
end = 0
|
||||
|
||||
@@ -123,7 +123,7 @@ def share_link_valid(recipe, share):
|
||||
return c
|
||||
|
||||
if link := ShareLink.objects.filter(recipe=recipe, uuid=share, abuse_blocked=False).first():
|
||||
if 0 < settings.SHARING_LIMIT < link.request_count:
|
||||
if 0 < settings.SHARING_LIMIT < link.request_count and not link.space.no_sharing_limit:
|
||||
return False
|
||||
link.request_count += 1
|
||||
link.save()
|
||||
|
||||
@@ -322,6 +322,11 @@ def parse_servings_text(servings):
|
||||
servings = re.sub("\d+", '', servings).strip()
|
||||
except Exception:
|
||||
servings = ''
|
||||
if type(servings) == list:
|
||||
try:
|
||||
servings = parse_servings_text(servings[1])
|
||||
except Exception:
|
||||
pass
|
||||
return str(servings)[:32]
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import base64
|
||||
from io import BytesIO
|
||||
from xml import etree
|
||||
|
||||
from lxml import etree
|
||||
@@ -5,54 +7,65 @@ from lxml import etree
|
||||
from cookbook.helper.ingredient_parser import IngredientParser
|
||||
from cookbook.helper.recipe_url_import import parse_time, parse_servings, parse_servings_text
|
||||
from cookbook.integration.integration import Integration
|
||||
from cookbook.models import Ingredient, Recipe, Step
|
||||
from cookbook.models import Ingredient, Recipe, Step, Keyword
|
||||
|
||||
|
||||
class Rezeptsuitede(Integration):
|
||||
|
||||
def split_recipe_file(self, file):
|
||||
xml_file = etree.parse(file).getroot().getchildren()
|
||||
recipe_list = xml_file.find('recipe')
|
||||
return recipe_list
|
||||
return etree.parse(file).getroot().getchildren()
|
||||
|
||||
def get_recipe_from_file(self, file):
|
||||
recipe_xml = file
|
||||
|
||||
recipe = Recipe.objects.create(
|
||||
name=recipe_xml.find('title').text.strip(),
|
||||
name=recipe_xml.find('head').attrib['title'].strip(),
|
||||
created_by=self.request.user, internal=True, space=self.request.space)
|
||||
|
||||
if recipe_xml.find('servingtype') is not None and recipe_xml.find('servingtype').text is not None:
|
||||
recipe.servings = parse_servings(recipe_xml.find('servingtype').text.strip())
|
||||
recipe.servings_text = parse_servings_text(recipe_xml.find('servingtype').text.strip())
|
||||
if recipe_xml.find('head').attrib['servingtype']:
|
||||
recipe.servings = parse_servings(recipe_xml.find('head').attrib['servingtype'].strip())
|
||||
recipe.servings_text = parse_servings_text(recipe_xml.find('head').attrib['servingtype'].strip())
|
||||
|
||||
if recipe_xml.find('description') is not None: # description is a list of <li>'s with text
|
||||
if len(recipe_xml.find('description')) > 0:
|
||||
recipe.description = recipe_xml.find('description')[0].text[:512]
|
||||
if recipe_xml.find('remark') is not None: # description is a list of <li>'s with text
|
||||
if recipe_xml.find('remark').find('line') is not None:
|
||||
recipe.description = recipe_xml.find('remark').find('line').text[:512]
|
||||
|
||||
for step in recipe_xml.find('step'):
|
||||
if step.text:
|
||||
step = Step.objects.create(
|
||||
instruction=step.text.strip(), space=self.request.space,
|
||||
)
|
||||
recipe.steps.add(step)
|
||||
for prep in recipe_xml.findall('preparation'):
|
||||
try:
|
||||
if prep.find('step').text:
|
||||
step = Step.objects.create(
|
||||
instruction=prep.find('step').text.strip(), space=self.request.space,
|
||||
)
|
||||
recipe.steps.add(step)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
ingredient_parser = IngredientParser(self.request, True)
|
||||
|
||||
if recipe_xml.find('ingredient'):
|
||||
if recipe_xml.find('part').find('ingredient') is not None:
|
||||
ingredient_step = recipe.steps.first()
|
||||
if ingredient_step is None:
|
||||
ingredient_step = Step.objects.create(space=self.request.space, instruction='')
|
||||
|
||||
for ingredient in recipe_xml.find('ingredient'):
|
||||
for ingredient in recipe_xml.find('part').findall('ingredient'):
|
||||
f = ingredient_parser.get_food(ingredient.attrib['item'])
|
||||
u = ingredient_parser.get_unit(ingredient.attrib['unit'])
|
||||
ingredient_step.ingredients.add(Ingredient.objects.create(
|
||||
food=f, unit=u, amount=ingredient.attrib['qty'], original_text=ingredient.text.strip(), space=self.request.space,
|
||||
))
|
||||
amount, unit, note = ingredient_parser.parse_amount(ingredient.attrib['qty'])
|
||||
ingredient_step.ingredients.add(Ingredient.objects.create(food=f, unit=u, amount=amount, space=self.request.space, ))
|
||||
|
||||
try:
|
||||
k, created = Keyword.objects.get_or_create(name=recipe_xml.find('head').find('cat').text.strip(), space=self.request.space)
|
||||
recipe.keywords.add(k)
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
recipe.save()
|
||||
|
||||
try:
|
||||
self.import_recipe_image(recipe, BytesIO(base64.b64decode(recipe_xml.find('head').find('picbin').text)), filetype='.jpeg')
|
||||
except:
|
||||
pass
|
||||
|
||||
return recipe
|
||||
|
||||
def get_file_from_recipe(self, recipe):
|
||||
|
||||
@@ -15,16 +15,16 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-19 19:14+0100\n"
|
||||
"PO-Revision-Date: 2022-11-21 19:09+0000\n"
|
||||
"Last-Translator: Alex <mail@alexpts.dev>\n"
|
||||
"Language-Team: German <http://translate.tandoor.dev/projects/tandoor/recipes-"
|
||||
"backend/de/>\n"
|
||||
"PO-Revision-Date: 2023-02-09 13:55+0000\n"
|
||||
"Last-Translator: Marion Kämpfer <marion@murphyslantech.de>\n"
|
||||
"Language-Team: German <http://translate.tandoor.dev/projects/tandoor/"
|
||||
"recipes-backend/de/>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.14.1\n"
|
||||
"X-Generator: Weblate 4.15\n"
|
||||
|
||||
#: .\cookbook\forms.py:52
|
||||
msgid "Default unit"
|
||||
@@ -480,7 +480,7 @@ msgstr "Rezeptanzahl im Suchfiltern anzeigen"
|
||||
|
||||
#: .\cookbook\forms.py:541
|
||||
msgid "Use the plural form for units and food inside this space."
|
||||
msgstr ""
|
||||
msgstr "Pluralform für Einheiten und Essen in diesem Space verwenden."
|
||||
|
||||
#: .\cookbook\helper\AllAuthCustomAdapter.py:39
|
||||
msgid ""
|
||||
@@ -544,7 +544,7 @@ msgstr "Favorit"
|
||||
|
||||
#: .\cookbook\integration\copymethat.py:50
|
||||
msgid "I made this"
|
||||
msgstr ""
|
||||
msgstr "Von mir gekocht"
|
||||
|
||||
#: .\cookbook\integration\integration.py:223
|
||||
msgid ""
|
||||
@@ -1643,7 +1643,7 @@ msgstr "Zurück"
|
||||
|
||||
#: .\cookbook\templates\profile.html:7
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
msgstr "Profil"
|
||||
|
||||
#: .\cookbook\templates\recipe_view.html:26
|
||||
msgid "by"
|
||||
|
||||
@@ -14,10 +14,10 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-19 19:14+0100\n"
|
||||
"PO-Revision-Date: 2023-01-18 01:55+0000\n"
|
||||
"Last-Translator: Fall1ngStar <fall1ngstar.public@gmail.com>\n"
|
||||
"Language-Team: French <http://translate.tandoor.dev/projects/tandoor/recipes-"
|
||||
"backend/fr/>\n"
|
||||
"PO-Revision-Date: 2023-02-09 13:55+0000\n"
|
||||
"Last-Translator: Marion Kämpfer <marion@murphyslantech.de>\n"
|
||||
"Language-Team: French <http://translate.tandoor.dev/projects/tandoor/"
|
||||
"recipes-backend/fr/>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -167,7 +167,7 @@ msgstr "Nom"
|
||||
|
||||
#: .\cookbook\forms.py:124 .\cookbook\forms.py:297 .\cookbook\views\lists.py:88
|
||||
msgid "Keywords"
|
||||
msgstr "Mots-clés"
|
||||
msgstr "mots-clés"
|
||||
|
||||
#: .\cookbook\forms.py:125
|
||||
msgid "Preparation time in minutes"
|
||||
@@ -484,10 +484,8 @@ msgid "Reset all food to inherit the fields configured."
|
||||
msgstr "Réinitialiser tous les aliments pour hériter les champs configurés."
|
||||
|
||||
#: .\cookbook\forms.py:539
|
||||
#, fuzzy
|
||||
#| msgid "Food that should be replaced."
|
||||
msgid "Fields on food that should be inherited by default."
|
||||
msgstr "Aliment qui devrait être remplacé."
|
||||
msgstr "Champs sur les aliments à hériter par défaut."
|
||||
|
||||
#: .\cookbook\forms.py:540
|
||||
msgid "Show recipe counts on search filters"
|
||||
@@ -497,6 +495,7 @@ msgstr ""
|
||||
#: .\cookbook\forms.py:541
|
||||
msgid "Use the plural form for units and food inside this space."
|
||||
msgstr ""
|
||||
"Utiliser la forme plurielle pour les unités et les aliments dans ce groupe."
|
||||
|
||||
#: .\cookbook\helper\AllAuthCustomAdapter.py:39
|
||||
msgid ""
|
||||
@@ -549,10 +548,8 @@ msgid "One of queryset or hash_key must be provided"
|
||||
msgstr ""
|
||||
|
||||
#: .\cookbook\helper\shopping_helper.py:152
|
||||
#, fuzzy
|
||||
#| msgid "You must supply a created_by"
|
||||
msgid "You must supply a servings size"
|
||||
msgstr "Vous devez fournir une information créé_par"
|
||||
msgstr "Vous devez fournir une information de portion"
|
||||
|
||||
#: .\cookbook\helper\template_helper.py:79
|
||||
#: .\cookbook\helper\template_helper.py:81
|
||||
@@ -616,7 +613,7 @@ msgstr "Portions"
|
||||
|
||||
#: .\cookbook\integration\saffron.py:25
|
||||
msgid "Waiting time"
|
||||
msgstr "Temps d’attente"
|
||||
msgstr "temps d’attente"
|
||||
|
||||
#: .\cookbook\integration\saffron.py:27
|
||||
msgid "Preparation Time"
|
||||
@@ -804,6 +801,8 @@ msgid ""
|
||||
"List of ingredient IDs from the recipe to add, if not provided all "
|
||||
"ingredients will be added."
|
||||
msgstr ""
|
||||
"Liste d’identifiants d’ingrédient de la recette à ajouter, si non renseigné, "
|
||||
"tous les ingrédients seront ajoutés."
|
||||
|
||||
#: .\cookbook\serializer.py:1238
|
||||
msgid ""
|
||||
@@ -947,7 +946,7 @@ msgid ""
|
||||
" <a href=\"%(email_url)s\">issue a new e-mail confirmation "
|
||||
"request</a>."
|
||||
msgstr ""
|
||||
"Ce lien de confirmation reçu par mail est expiré ou invalide. Veuillez\n"
|
||||
"Ce lien de confirmation reçu par mail est expiré ou non valide. Veuillez\n"
|
||||
" <a href=\"%(email_url)s\">demander une nouvelle vérification "
|
||||
"par mail</a>."
|
||||
|
||||
@@ -1058,10 +1057,10 @@ msgid ""
|
||||
" Please request a <a href=\"%(passwd_reset_url)s\">new "
|
||||
"password reset</a>."
|
||||
msgstr ""
|
||||
"Le lien de changement du mot de passe est invalide, probablement parce qu’il "
|
||||
"a déjà été utilisé.\n"
|
||||
" Merci de demander un <a href=\"%(passwd_reset_url)s"
|
||||
"\">nouveau changement de mot de passe</a>."
|
||||
"Le lien de changement du mot de passe n’est pas valide, probablement parce "
|
||||
"qu’il a déjà été utilisé.\n"
|
||||
" Merci de demander un <a href=\"%(passwd_reset_url)s\""
|
||||
">nouveau changement de mot de passe</a>."
|
||||
|
||||
#: .\cookbook\templates\account\password_reset_from_key.html:33
|
||||
msgid "change password"
|
||||
@@ -1172,10 +1171,8 @@ msgstr "Historique"
|
||||
#: .\cookbook\templates\base.html:255
|
||||
#: .\cookbook\templates\ingredient_editor.html:7
|
||||
#: .\cookbook\templates\ingredient_editor.html:13
|
||||
#, fuzzy
|
||||
#| msgid "Ingredients"
|
||||
msgid "Ingredient Editor"
|
||||
msgstr "Ingrédients"
|
||||
msgstr "Éditeur d’ingrédients"
|
||||
|
||||
#: .\cookbook\templates\base.html:267
|
||||
#: .\cookbook\templates\export_response.html:7
|
||||
@@ -1210,15 +1207,13 @@ msgstr "Admin"
|
||||
|
||||
#: .\cookbook\templates\base.html:312
|
||||
#: .\cookbook\templates\space_overview.html:25
|
||||
#, fuzzy
|
||||
#| msgid "No Space"
|
||||
msgid "Your Spaces"
|
||||
msgstr "Aucun groupe"
|
||||
msgstr "Vos groupes"
|
||||
|
||||
#: .\cookbook\templates\base.html:323
|
||||
#: .\cookbook\templates\space_overview.html:6
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
msgstr "Aperçu"
|
||||
|
||||
#: .\cookbook\templates\base.html:327
|
||||
msgid "Markdown Guide"
|
||||
@@ -1242,7 +1237,7 @@ msgstr "Déconnexion"
|
||||
|
||||
#: .\cookbook\templates\base.html:360
|
||||
msgid "You are using the free version of Tandor"
|
||||
msgstr ""
|
||||
msgstr "Vous utilisez la version gratuite de Tandoor"
|
||||
|
||||
#: .\cookbook\templates\base.html:361
|
||||
msgid "Upgrade Now"
|
||||
@@ -1358,7 +1353,7 @@ msgstr "Annuler"
|
||||
#: .\cookbook\templates\generic\edit_template.html:6
|
||||
#: .\cookbook\templates\generic\edit_template.html:14
|
||||
msgid "Edit"
|
||||
msgstr "Modifier"
|
||||
msgstr "modifier"
|
||||
|
||||
#: .\cookbook\templates\generic\edit_template.html:32
|
||||
msgid "View"
|
||||
@@ -1667,11 +1662,11 @@ msgstr ""
|
||||
#: .\cookbook\templates\openid\login.html:27
|
||||
#: .\cookbook\templates\socialaccount\authentication_error.html:27
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
msgstr "Retour"
|
||||
|
||||
#: .\cookbook\templates\profile.html:7
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
msgstr "Profil"
|
||||
|
||||
#: .\cookbook\templates\recipe_view.html:26
|
||||
msgid "by"
|
||||
@@ -2089,11 +2084,11 @@ msgid "Social Network Login Failure"
|
||||
msgstr "Connexion par réseau social"
|
||||
|
||||
#: .\cookbook\templates\socialaccount\authentication_error.html:25
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred attempting to move "
|
||||
msgid ""
|
||||
"An error occurred while attempting to login via your social network account."
|
||||
msgstr "Une erreur est survenue en essayant de déplacer "
|
||||
msgstr ""
|
||||
"Une erreur est survenue en essayant de vous connecter avec votre compte de "
|
||||
"réseau social."
|
||||
|
||||
#: .\cookbook\templates\socialaccount\connections.html:4
|
||||
#: .\cookbook\templates\socialaccount\connections.html:15
|
||||
@@ -2131,7 +2126,7 @@ msgstr "S’inscrire"
|
||||
#: .\cookbook\templates\socialaccount\login.html:9
|
||||
#, python-format
|
||||
msgid "Connect %(provider)s"
|
||||
msgstr ""
|
||||
msgstr "Connecter %(provider)s"
|
||||
|
||||
#: .\cookbook\templates\socialaccount\login.html:11
|
||||
#, python-format
|
||||
@@ -2150,7 +2145,7 @@ msgstr ""
|
||||
|
||||
#: .\cookbook\templates\socialaccount\login.html:20
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
msgstr "Continuer"
|
||||
|
||||
#: .\cookbook\templates\socialaccount\signup.html:10
|
||||
#, python-format
|
||||
@@ -2190,8 +2185,6 @@ msgid "Manage Subscription"
|
||||
msgstr "Gérer l’abonnement"
|
||||
|
||||
#: .\cookbook\templates\space_overview.html:13 .\cookbook\views\delete.py:216
|
||||
#, fuzzy
|
||||
#| msgid "Space:"
|
||||
msgid "Space"
|
||||
msgstr "Groupe :"
|
||||
|
||||
@@ -2210,7 +2203,7 @@ msgstr "Vous pouvez être invité dans un groupe existant ou en créer un."
|
||||
|
||||
#: .\cookbook\templates\space_overview.html:53
|
||||
msgid "Owner"
|
||||
msgstr ""
|
||||
msgstr "Propriétaire"
|
||||
|
||||
#: .\cookbook\templates\space_overview.html:57
|
||||
#, fuzzy
|
||||
@@ -2606,7 +2599,7 @@ msgstr "Rien à faire."
|
||||
|
||||
#: .\cookbook\views\api.py:1180
|
||||
msgid "Invalid Url"
|
||||
msgstr ""
|
||||
msgstr "Url non valide"
|
||||
|
||||
#: .\cookbook\views\api.py:1187
|
||||
msgid "Connection Refused."
|
||||
@@ -2614,7 +2607,7 @@ msgstr "Connexion refusée."
|
||||
|
||||
#: .\cookbook\views\api.py:1192
|
||||
msgid "Bad URL Schema."
|
||||
msgstr ""
|
||||
msgstr "Mauvais schéma d’URL."
|
||||
|
||||
#: .\cookbook\views\api.py:1215
|
||||
#, fuzzy
|
||||
|
||||
@@ -12,8 +12,8 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-19 19:14+0100\n"
|
||||
"PO-Revision-Date: 2023-01-15 16:55+0000\n"
|
||||
"Last-Translator: Oliver Cervera <olivercervera@yahoo.it>\n"
|
||||
"PO-Revision-Date: 2023-02-05 03:55+0000\n"
|
||||
"Last-Translator: Adri <adrian.polimi@gmail.com>\n"
|
||||
"Language-Team: Italian <http://translate.tandoor.dev/projects/tandoor/"
|
||||
"recipes-backend/it/>\n"
|
||||
"Language: it\n"
|
||||
@@ -285,7 +285,7 @@ msgid ""
|
||||
"Select type method of search. Click <a href=\"/docs/search/\">here</a> for "
|
||||
"full description of choices."
|
||||
msgstr ""
|
||||
"Seleziona il metodo di ricerca. Clicca <a href=\"/docs/search/\">qui</a> "
|
||||
"Seleziona il metodo di ricerca. Clicca <a href=\"/docs/search/\">qui</a> "
|
||||
"per avere maggiori informazioni."
|
||||
|
||||
#: .\cookbook\forms.py:444
|
||||
@@ -334,6 +334,8 @@ msgid ""
|
||||
"Fields to full text search. Note: 'web', 'phrase', and 'raw' search methods "
|
||||
"only function with fulltext fields."
|
||||
msgstr ""
|
||||
"Campi per la ricerca full-text. Nota: i metodi di ricerca 'web', 'frase' e "
|
||||
"'raw' funzionano solo con i campi full-text."
|
||||
|
||||
#: .\cookbook\forms.py:458
|
||||
msgid "Search Method"
|
||||
@@ -462,11 +464,11 @@ msgstr "Disponibilità automatica"
|
||||
|
||||
#: .\cookbook\forms.py:526
|
||||
msgid "Reset Food Inheritance"
|
||||
msgstr ""
|
||||
msgstr "Ripristina Eredità Alimenti"
|
||||
|
||||
#: .\cookbook\forms.py:527
|
||||
msgid "Reset all food to inherit the fields configured."
|
||||
msgstr ""
|
||||
msgstr "Ripristina tutti gli alimenti per ereditare i campi configurati."
|
||||
|
||||
#: .\cookbook\forms.py:539
|
||||
msgid "Fields on food that should be inherited by default."
|
||||
@@ -480,6 +482,8 @@ msgstr "Mostra il conteggio delle ricette nei filtri di ricerca"
|
||||
#: .\cookbook\forms.py:541
|
||||
msgid "Use the plural form for units and food inside this space."
|
||||
msgstr ""
|
||||
"Usare la forma plurale per le unità e gli alimenti all'interno di questo "
|
||||
"spazio."
|
||||
|
||||
#: .\cookbook\helper\AllAuthCustomAdapter.py:39
|
||||
msgid ""
|
||||
@@ -542,7 +546,7 @@ msgstr "Preferito"
|
||||
|
||||
#: .\cookbook\integration\copymethat.py:50
|
||||
msgid "I made this"
|
||||
msgstr ""
|
||||
msgstr "L'ho preparato"
|
||||
|
||||
#: .\cookbook\integration\integration.py:223
|
||||
msgid ""
|
||||
@@ -697,16 +701,12 @@ msgid "Keyword Alias"
|
||||
msgstr "Alias Parola Chiave"
|
||||
|
||||
#: .\cookbook\models.py:1231
|
||||
#, fuzzy
|
||||
#| msgid "Description"
|
||||
msgid "Description Replace"
|
||||
msgstr "Descrizione"
|
||||
msgstr "Sostituisci Descrizione"
|
||||
|
||||
#: .\cookbook\models.py:1231
|
||||
#, fuzzy
|
||||
#| msgid "Instructions"
|
||||
msgid "Instruction Replace"
|
||||
msgstr "Istruzioni"
|
||||
msgstr "Sostituisci Istruzione"
|
||||
|
||||
#: .\cookbook\models.py:1257 .\cookbook\views\delete.py:36
|
||||
#: .\cookbook\views\edit.py:251 .\cookbook\views\new.py:48
|
||||
@@ -787,6 +787,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Providing a list_recipe ID and servings of 0 will delete that shopping list."
|
||||
msgstr ""
|
||||
"Fornendo un ID list_recipe e impostando le porzioni a 0, la lista della "
|
||||
"spesa verrà eliminata."
|
||||
|
||||
#: .\cookbook\serializer.py:1247
|
||||
msgid "Amount of food to add to the shopping list"
|
||||
@@ -1485,10 +1487,8 @@ msgstr ""
|
||||
|
||||
#: .\cookbook\templates\markdown_info.html:57
|
||||
#: .\cookbook\templates\markdown_info.html:73
|
||||
#, fuzzy
|
||||
#| msgid "or by leaving a blank line inbetween."
|
||||
msgid "or by leaving a blank line in between."
|
||||
msgstr "o lasciando una riga vuota in mezzo."
|
||||
msgstr "oppure lasciando una riga vuota tra di loro."
|
||||
|
||||
#: .\cookbook\templates\markdown_info.html:59
|
||||
#: .\cookbook\templates\markdown_info.html:74
|
||||
@@ -1510,10 +1510,6 @@ msgid "Lists"
|
||||
msgstr "Liste"
|
||||
|
||||
#: .\cookbook\templates\markdown_info.html:85
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Lists can ordered or unorderd. It is <b>important to leave a blank line "
|
||||
#| "before the list!</b>"
|
||||
msgid ""
|
||||
"Lists can ordered or unordered. It is <b>important to leave a blank line "
|
||||
"before the list!</b>"
|
||||
@@ -1650,7 +1646,7 @@ msgstr "Indietro"
|
||||
|
||||
#: .\cookbook\templates\profile.html:7
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
msgstr "Profilo"
|
||||
|
||||
#: .\cookbook\templates\recipe_view.html:26
|
||||
msgid "by"
|
||||
@@ -1709,6 +1705,18 @@ msgid ""
|
||||
"html#TEXTSEARCH-PARSING-QUERIES>Postgresql's website.</a>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
" \n"
|
||||
" Le ricerche full-text cercano di normalizzare le parole fornite "
|
||||
"per abbinare varianti comuni. Ad esempio, \"separato\", \"separando\", "
|
||||
"\"separa\" verranno tutti normalizzati in \"separare\".\n"
|
||||
" Ci sono diversi metodi disponibili, descritti di seguito, che "
|
||||
"controlleranno il comportamento della ricerca in caso di ricerca con più "
|
||||
"parole.\n"
|
||||
" I dettagli tecnici completi su come questi funzionano possono "
|
||||
"essere visualizzati sul <a href=https://www.postgresql.org/docs/current/"
|
||||
"textsearch-controls.html#TEXTSEARCH-PARSING-QUERIES>sito web di "
|
||||
"Postgresql.</a>\n"
|
||||
" "
|
||||
|
||||
#: .\cookbook\templates\search_info.html:29
|
||||
msgid ""
|
||||
|
||||
@@ -8,15 +8,17 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-04-29 18:42+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"PO-Revision-Date: 2023-02-09 13:55+0000\n"
|
||||
"Last-Translator: vertilo <vertilo.dev@gmail.com>\n"
|
||||
"Language-Team: Ukrainian <http://translate.tandoor.dev/projects/tandoor/"
|
||||
"recipes-backend/uk/>\n"
|
||||
"Language: uk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.15\n"
|
||||
|
||||
#: .\cookbook\filters.py:23 .\cookbook\templates\forms\ingredients.html:34
|
||||
#: .\cookbook\templates\space.html:49 .\cookbook\templates\stats.html:28
|
||||
@@ -2026,7 +2028,7 @@ msgstr ""
|
||||
|
||||
#: .\cookbook\templates\space.html:118
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
msgstr "користувач"
|
||||
|
||||
#: .\cookbook\templates\space.html:119
|
||||
msgid "guest"
|
||||
|
||||
18
cookbook/migrations/0188_space_no_sharing_limit.py
Normal file
18
cookbook/migrations/0188_space_no_sharing_limit.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 4.1.4 on 2023-02-12 16:44
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cookbook', '0187_alter_space_use_plural'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='space',
|
||||
name='no_sharing_limit',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
||||
@@ -262,6 +262,7 @@ class Space(ExportModelOperationsMixin('space'), models.Model):
|
||||
max_users = models.IntegerField(default=0)
|
||||
use_plural = models.BooleanField(default=True)
|
||||
allow_sharing = models.BooleanField(default=True)
|
||||
no_sharing_limit = models.BooleanField(default=False)
|
||||
demo = models.BooleanField(default=False)
|
||||
food_inherit = models.ManyToManyField(FoodInheritField, blank=True)
|
||||
show_facet_count = models.BooleanField(default=False)
|
||||
|
||||
@@ -432,9 +432,13 @@ class UnitSerializer(UniqueFieldsMixin, ExtendedRecipeMixin):
|
||||
|
||||
def create(self, validated_data):
|
||||
name = validated_data.pop('name').strip()
|
||||
plural_name = validated_data.pop('plural_name', None)
|
||||
if plural_name:
|
||||
|
||||
if plural_name := validated_data.pop('plural_name', None):
|
||||
plural_name = plural_name.strip()
|
||||
|
||||
if unit := Unit.objects.filter(Q(name=name) | Q(plural_name=name)).first():
|
||||
return unit
|
||||
|
||||
space = validated_data.pop('space', self.context['request'].space)
|
||||
obj, created = Unit.objects.get_or_create(name=name, plural_name=plural_name, space=space, defaults=validated_data)
|
||||
return obj
|
||||
@@ -544,9 +548,13 @@ class FoodSerializer(UniqueFieldsMixin, WritableNestedModelSerializer, ExtendedR
|
||||
|
||||
def create(self, validated_data):
|
||||
name = validated_data.pop('name').strip()
|
||||
plural_name = validated_data.pop('plural_name', None)
|
||||
if plural_name:
|
||||
|
||||
if plural_name := validated_data.pop('plural_name', None):
|
||||
plural_name = plural_name.strip()
|
||||
|
||||
if food := Food.objects.filter(Q(name=name) | Q(plural_name=name)).first():
|
||||
return food
|
||||
|
||||
space = validated_data.pop('space', self.context['request'].space)
|
||||
# supermarket category needs to be handled manually as food.get or create does not create nested serializers unlike a super.create of serializer
|
||||
if 'supermarket_category' in validated_data and validated_data['supermarket_category']:
|
||||
|
||||
@@ -350,8 +350,8 @@
|
||||
|
||||
{% message_of_the_day request as message_of_the_day %}
|
||||
{% if message_of_the_day %}
|
||||
<div class="bg-success" style=" width: 100%; text-align: center!important; color: #ffffff; padding: 8px">
|
||||
{{ message_of_the_day }}
|
||||
<div class="bg-info" style=" width: 100%; text-align: center!important; color: #ffffff; padding: 8px">
|
||||
{{ message_of_the_day | markdown |safe }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
@@ -7,6 +7,21 @@
|
||||
|
||||
{% block title %}{{ recipe.name }}{% endblock %}
|
||||
|
||||
{% block extra_head %}
|
||||
<meta property="og:title" content="{{ recipe.name }}"/>
|
||||
<meta property="og:type" content="website"/>
|
||||
<meta property="og:url" content="{% base_path request 'base' %}{% url 'view_recipe' recipe.pk share %}"/>
|
||||
{% if recipe.image %}
|
||||
<meta property="og:image" content="{% base_path request 'base' %}{{ recipe.image.url }}"/>
|
||||
<meta property="og:image:url" content="{% base_path request 'base' %}{{ recipe.image.url }}"/>
|
||||
<meta property="og:image:secure" content="{% base_path request 'base' %}{{ recipe.image.url }}"/>
|
||||
{% endif %}
|
||||
{% if recipe.description %}
|
||||
<meta property="og:description" content="{{ recipe.description }}"/>
|
||||
{% endif %}
|
||||
<meta property="og:site_name" content="Tandoor Recipes"/>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% recipe_rating recipe request.user as rating %}
|
||||
|
||||
|
||||
@@ -57,6 +57,8 @@ def markdown(value):
|
||||
]
|
||||
)
|
||||
markdown_attrs['*'] = markdown_attrs['*'] + ['class']
|
||||
parsed_md = parsed_md[3:] # remove outer paragraph
|
||||
parsed_md = parsed_md[:len(parsed_md)-4]
|
||||
return bleach.clean(parsed_md, tags, markdown_attrs)
|
||||
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ from cookbook.serializer import (AutomationSerializer, BookmarkletImportListSeri
|
||||
SupermarketCategorySerializer, SupermarketSerializer,
|
||||
SyncLogSerializer, SyncSerializer, UnitSerializer,
|
||||
UserFileSerializer, UserSerializer, UserPreferenceSerializer,
|
||||
UserSpaceSerializer, ViewLogSerializer, AccessTokenSerializer)
|
||||
UserSpaceSerializer, ViewLogSerializer, AccessTokenSerializer, FoodSimpleSerializer)
|
||||
from cookbook.views.import_export import get_integration
|
||||
from recipes import settings
|
||||
|
||||
@@ -533,6 +533,11 @@ class FoodViewSet(viewsets.ModelViewSet, TreeMixin):
|
||||
.prefetch_related('onhand_users', 'inherit_fields', 'child_inherit_fields', 'substitute') \
|
||||
.select_related('recipe', 'supermarket_category')
|
||||
|
||||
def get_serializer_class(self):
|
||||
if self.request and self.request.query_params.get('simple', False):
|
||||
return FoodSimpleSerializer
|
||||
return self.serializer_class
|
||||
|
||||
@decorators.action(detail=True, methods=['PUT'], serializer_class=FoodShoppingUpdateSerializer, )
|
||||
# TODO DRF only allows one action in a decorator action without overriding get_operation_id_base() this should be PUT and DELETE probably
|
||||
def shopping(self, request, pk):
|
||||
@@ -655,7 +660,7 @@ class IngredientViewSet(viewsets.ModelViewSet):
|
||||
def get_serializer_class(self):
|
||||
if self.request and self.request.query_params.get('simple', False):
|
||||
return IngredientSimpleSerializer
|
||||
return IngredientSerializer
|
||||
return self.serializer_class
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = self.queryset.filter(step__recipe__space=self.request.space)
|
||||
|
||||
@@ -31,6 +31,7 @@ Overview of the capabilities of the different integrations.
|
||||
| ChefTap | ✔️ | ❌ | ❌ |
|
||||
| Pepperplate | ✔️ | ⌚ | ❌ |
|
||||
| RecipeSage | ✔️ | ✔️ | ✔️ |
|
||||
| Rezeptsuite.de | ✔️ | ❌ | ✔️ |
|
||||
| Domestica | ✔️ | ⌚ | ✔️ |
|
||||
| MealMaster | ✔️ | ❌ | ❌ |
|
||||
| RezKonv | ✔️ | ❌ | ❌ |
|
||||
@@ -233,6 +234,9 @@ Cookmate allows you to export a `.mcb` file which you can simply upload to tando
|
||||
## RecetteTek
|
||||
RecetteTek exports are `.rtk` files which can simply be uploaded to tandoor to import all your recipes.
|
||||
|
||||
## Rezeptsuite.de
|
||||
Rezeptsuite.de exports are `.xml` files which can simply be uploaded to tandoor to import all your recipes.
|
||||
|
||||
## Melarecipes
|
||||
|
||||
Melarecipes provides multiple export formats but only the `MelaRecipes` format can export the complete collection.
|
||||
|
||||
@@ -43,7 +43,8 @@
|
||||
"vue2-touch-events": "^3.2.2",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuex": "^3.6.0",
|
||||
"workbox-webpack-plugin": "^6.5.4"
|
||||
"workbox-webpack-plugin": "^6.5.4",
|
||||
"workbox-window": "^6.5.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@kazupon/vue-i18n-loader": "^0.5.0",
|
||||
@@ -62,6 +63,7 @@
|
||||
"typescript": "~4.9.3",
|
||||
"vue-cli-plugin-i18n": "^2.3.1",
|
||||
"webpack-bundle-tracker": "1.8.0",
|
||||
"workbox-background-sync": "^6.5.4",
|
||||
"workbox-expiration": "^6.5.4",
|
||||
"workbox-navigation-preload": "^6.5.4",
|
||||
"workbox-precaching": "^6.5.4",
|
||||
|
||||
@@ -52,23 +52,23 @@
|
||||
</b-button>
|
||||
|
||||
<!-- recent imports, nice for testing/development -->
|
||||
<!-- <div class="row mt-2"> -->
|
||||
<!-- <div class="col col-md-12">-->
|
||||
<!-- <div v-if="!import_multiple">-->
|
||||
<!-- <a href="#" @click="clearRecentImports()">Clear recent-->
|
||||
<!-- imports</a>-->
|
||||
<!-- <ul>-->
|
||||
<!-- <li v-for="x in recent_urls" v-bind:key="x">-->
|
||||
<!-- <a href="#"-->
|
||||
<!-- @click="loadRecipe(x, false, undefined)">{{-->
|
||||
<!-- x-->
|
||||
<!-- }}</a>-->
|
||||
<!-- </li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- <div class="row mt-2"> -->
|
||||
<!-- <div class="col col-md-12">-->
|
||||
<!-- <div v-if="!import_multiple">-->
|
||||
<!-- <a href="#" @click="clearRecentImports()">Clear recent-->
|
||||
<!-- imports</a>-->
|
||||
<!-- <ul>-->
|
||||
<!-- <li v-for="x in recent_urls" v-bind:key="x">-->
|
||||
<!-- <a href="#"-->
|
||||
<!-- @click="loadRecipe(x, false, undefined)">{{-->
|
||||
<!-- x-->
|
||||
<!-- }}</a>-->
|
||||
<!-- </li>-->
|
||||
<!-- </ul>-->
|
||||
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -238,17 +238,20 @@
|
||||
</b-row>
|
||||
</b-card-body>
|
||||
<b-card-footer class="text-center">
|
||||
<div class="d-flex justify-content-center mb-3" v-if="import_loading">
|
||||
<b-spinner variant="primary"></b-spinner>
|
||||
</div>
|
||||
<b-button-group>
|
||||
<b-button @click="importRecipe('view')" v-if="!import_multiple">Import &
|
||||
<b-button @click="importRecipe('view')" v-if="!import_multiple" :disabled="import_loading">Import &
|
||||
View
|
||||
</b-button> <!-- TODO localize -->
|
||||
<b-button @click="importRecipe('edit')" variant="success"
|
||||
v-if="!import_multiple">Import & Edit
|
||||
v-if="!import_multiple" :disabled="import_loading">Import & Edit
|
||||
</b-button>
|
||||
<b-button @click="importRecipe('import')" v-if="!import_multiple">Import &
|
||||
<b-button @click="importRecipe('import')" v-if="!import_multiple" :disabled="import_loading">Import &
|
||||
Restart
|
||||
</b-button>
|
||||
<b-button @click="location.reload()">Restart
|
||||
<b-button @click="location.reload()" :disabled="import_loading">Restart
|
||||
</b-button>
|
||||
</b-button-group>
|
||||
</b-card-footer>
|
||||
@@ -462,6 +465,7 @@ export default {
|
||||
source_data: '',
|
||||
recipe_json: undefined,
|
||||
use_plural: false,
|
||||
import_loading: false,
|
||||
// recipe_html: undefined,
|
||||
// recipe_tree: undefined,
|
||||
recipe_images: [],
|
||||
@@ -504,6 +508,7 @@ export default {
|
||||
* @param silent do not show any messages for imports
|
||||
*/
|
||||
importRecipe: function (action, data, silent) {
|
||||
this.import_loading = true
|
||||
if (this.recipe_json !== undefined) {
|
||||
this.$set(this.recipe_json, 'keywords', this.recipe_json.keywords.filter(k => k.show))
|
||||
}
|
||||
@@ -528,12 +533,14 @@ export default {
|
||||
if (recipe_json.source_url !== '') {
|
||||
this.failed_imports.push(recipe_json.source_url)
|
||||
}
|
||||
this.import_loading = false
|
||||
if (!silent) {
|
||||
StandardToasts.makeStandardToast(this, StandardToasts.FAIL_CREATE)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log('cant import recipe without data')
|
||||
this.import_loading = false
|
||||
if (!silent) {
|
||||
StandardToasts.makeStandardToast(this, StandardToasts.FAIL_CREATE)
|
||||
}
|
||||
@@ -563,6 +570,7 @@ export default {
|
||||
this.imported_recipes.push(recipe)
|
||||
break;
|
||||
case 'nothing':
|
||||
this.import_loading = false
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<b-badge variant="secondary" v-if="i.unit">{{ i.unit.name }}</b-badge>
|
||||
<b-badge variant="info" v-if="i.food">{{ i.food.name }}</b-badge>
|
||||
<i>{{ i.original_text }}</i>
|
||||
<b-button @click="current_edit_ingredient = i" v-b-modal.ingredient_edit_modal class="float-right btn-sm"><i class="fas fa-pencil-alt"></i></b-button>
|
||||
<b-button @click="prepareIngredientEditModal(s,i)" v-b-modal.ingredient_edit_modal class="float-right btn-sm"><i class="fas fa-pencil-alt"></i></b-button>
|
||||
</b-list-group-item>
|
||||
</draggable>
|
||||
</div>
|
||||
@@ -62,25 +62,37 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<b-modal id="ingredient_edit_modal" :title="$t('Edit')" ok-only>
|
||||
<b-modal id="ingredient_edit_modal" :title="$t('Edit')">
|
||||
<div v-if="current_edit_ingredient !== null">
|
||||
<b-form-group v-bind:label="$t('Original_Text')" class="mb-3">
|
||||
<b-form-input v-model="current_edit_ingredient.original_text" type="text" disabled></b-form-input>
|
||||
</b-form-group>
|
||||
|
||||
<b-form-group v-bind:label="$t('Amount')" class="mb-3">
|
||||
<b-form-input v-model="current_edit_ingredient.amount" type="number" ></b-form-input>
|
||||
<b-form-input v-model.number="current_edit_ingredient.amount" type="number"></b-form-input>
|
||||
</b-form-group>
|
||||
|
||||
<b-form-group v-bind:label="$t('Unit')" class="mb-3">
|
||||
<b-form-input v-model="current_edit_ingredient.unit.name" type="text" ></b-form-input>
|
||||
<b-form-group v-bind:label="$t('Unit')" class="mb-3" v-if="current_edit_ingredient.unit !== null">
|
||||
<b-form-input v-model="current_edit_ingredient.unit.name" type="text"></b-form-input>
|
||||
</b-form-group>
|
||||
|
||||
<b-form-group v-bind:label="$t('Food')" class="mb-3">
|
||||
<b-form-input v-model="current_edit_ingredient.food.name" type="text" ></b-form-input>
|
||||
<b-form-input v-model="current_edit_ingredient.food.name" type="text"></b-form-input>
|
||||
</b-form-group>
|
||||
<b-form-group v-bind:label="$t('Note')" class="mb-3">
|
||||
<b-form-input v-model="current_edit_ingredient.note" type="text"></b-form-input>
|
||||
</b-form-group>
|
||||
|
||||
</div>
|
||||
|
||||
<template v-slot:modal-footer>
|
||||
<div class="row w-100">
|
||||
|
||||
<div class="col-auto justify-content-end">
|
||||
<b-button class="mx-1" @click="destroyIngredientEditModal()">{{ $t('Ok') }}</b-button>
|
||||
<b-button class="mx-1" @click="removeIngredient(current_edit_step,current_edit_ingredient);destroyIngredientEditModal()" variant="danger">{{ $t('Delete') }}</b-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</b-modal>
|
||||
</div>
|
||||
</div>
|
||||
@@ -104,6 +116,7 @@ export default {
|
||||
return {
|
||||
recipe_json: undefined,
|
||||
current_edit_ingredient: null,
|
||||
current_edit_step: null,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -202,7 +215,50 @@ export default {
|
||||
found = true
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* Prepare variable that holds currently edited ingredient for modal to manipulate it
|
||||
* add default placeholder for food/unit in case it is not present, so it can be edited as well
|
||||
* @param ingredient
|
||||
*/
|
||||
prepareIngredientEditModal: function (step, ingredient) {
|
||||
if (ingredient.unit === null) {
|
||||
ingredient.unit = {
|
||||
"name": ""
|
||||
}
|
||||
}
|
||||
if (ingredient.food === null) {
|
||||
ingredient.food = {
|
||||
"name": ""
|
||||
}
|
||||
}
|
||||
this.current_edit_ingredient = ingredient
|
||||
this.current_edit_step = step
|
||||
},
|
||||
/**
|
||||
* can be called to remove an ingredient from the given step
|
||||
* @param step step to remove ingredient from
|
||||
* @param ingredient ingredient to remove
|
||||
*/
|
||||
removeIngredient: function (step, ingredient) {
|
||||
step.ingredients = step.ingredients.filter((i) => i !== ingredient)
|
||||
},
|
||||
/**
|
||||
* cleanup method called to close modal
|
||||
* closes modal UI and cleanups variables
|
||||
*/
|
||||
destroyIngredientEditModal: function () {
|
||||
this.$bvModal.hide('ingredient_edit_modal')
|
||||
if (this.current_edit_ingredient.unit.name === ''){
|
||||
this.current_edit_ingredient.unit = null
|
||||
}
|
||||
if (this.current_edit_ingredient.food.name === ''){
|
||||
this.current_edit_ingredient.food = null
|
||||
}
|
||||
this.current_edit_ingredient = null
|
||||
this.current_edit_step = null
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -149,9 +149,10 @@
|
||||
<add-recipe-to-book :recipe="recipe"></add-recipe-to-book>
|
||||
|
||||
<div class="row text-center d-print-none" style="margin-top: 3vh; margin-bottom: 3vh"
|
||||
v-if="share_uid !== 'None'">
|
||||
v-if="share_uid !== 'None' && !loading">
|
||||
<div class="col col-md-12">
|
||||
<a :href="resolveDjangoUrl('view_report_share_abuse', share_uid)">{{ $t("Report Abuse") }}</a>
|
||||
<import-tandoor></import-tandoor> <br/>
|
||||
<a :href="resolveDjangoUrl('view_report_share_abuse', share_uid)" class="mt-3">{{ $t("Report Abuse") }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -182,6 +183,7 @@ import NutritionComponent from "@/components/NutritionComponent"
|
||||
import RecipeSwitcher from "@/components/Buttons/RecipeSwitcher"
|
||||
import CustomInputSpinButton from "@/components/CustomInputSpinButton"
|
||||
import {ApiApiFactory} from "@/utils/openapi/api";
|
||||
import ImportTandoor from "@/components/Modals/ImportTandoor.vue";
|
||||
|
||||
Vue.prototype.moment = moment
|
||||
|
||||
@@ -191,6 +193,7 @@ export default {
|
||||
name: "RecipeView",
|
||||
mixins: [ResolveUrlMixin, ToastMixin],
|
||||
components: {
|
||||
ImportTandoor,
|
||||
LastCooked,
|
||||
RecipeRating,
|
||||
PdfViewer,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<div id="app" style="margin-bottom: 4vh">
|
||||
<b-alert :show="!online" dismissible class="small float-up" variant="warning">{{ $t("OfflineAlert") }}</b-alert>
|
||||
<b-button @click="replaySyncQueue">SYNC</b-button>
|
||||
<div class="row float-top w-100">
|
||||
<div class="col-auto no-gutter ml-auto">
|
||||
<b-button variant="link" class="px-1 pt-0 pb-1 d-none d-md-inline-block">
|
||||
@@ -615,6 +616,7 @@ import ShoppingSettingsComponent from "@/components/Settings/ShoppingSettingsCom
|
||||
Vue.use(BootstrapVue)
|
||||
Vue.use(VueCookies)
|
||||
let SETTINGS_COOKIE_NAME = "shopping_settings"
|
||||
import {Workbox} from 'workbox-window';
|
||||
|
||||
export default {
|
||||
name: "ShoppingListView",
|
||||
@@ -903,9 +905,30 @@ export default {
|
||||
}
|
||||
})
|
||||
this.$i18n.locale = window.CUSTOM_LOCALE
|
||||
console.log(window.CUSTOM_LOCALE)
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* failed requests to sync entry check events are automatically re-queued by the service worker for sync
|
||||
* this command allows to manually force replaying those events before re-enabling automatic sync
|
||||
*/
|
||||
replaySyncQueue: function () {
|
||||
const wb = new Workbox('/service-worker.js');
|
||||
wb.register();
|
||||
wb.messageSW({type: 'BGSYNC_REPLAY_REQUESTS'}).then((r) => {
|
||||
console.log('Background sync queue replayed!', r);
|
||||
})
|
||||
},
|
||||
/**
|
||||
* get the number of entries left in the sync queue for entry check events
|
||||
* @returns {Promise<Number>} promise resolving to the number of entries left
|
||||
*/
|
||||
getSyncQueueLength: function (){
|
||||
const wb = new Workbox('/service-worker.js');
|
||||
wb.register();
|
||||
return wb.messageSW({type: 'BGSYNC_COUNT_QUEUE'}).then((r) => {
|
||||
return r
|
||||
})
|
||||
},
|
||||
setFocus() {
|
||||
if (this.ui.entry_mode_simple) {
|
||||
this.$refs['amount_input_simple'].focus()
|
||||
@@ -1043,8 +1066,7 @@ export default {
|
||||
} else {
|
||||
this.loading = true
|
||||
}
|
||||
this.genericAPI(this.Models.SHOPPING_LIST, this.Actions.LIST, params)
|
||||
.then((results) => {
|
||||
this.genericAPI(this.Models.SHOPPING_LIST, this.Actions.LIST, params).then((results) => {
|
||||
if (!autosync) {
|
||||
if (results.data?.length) {
|
||||
this.items = results.data
|
||||
@@ -1054,7 +1076,14 @@ export default {
|
||||
this.loading = false
|
||||
} else {
|
||||
if (!this.auto_sync_blocked) {
|
||||
this.mergeShoppingList(results.data)
|
||||
this.getSyncQueueLength().then((r) => {
|
||||
if (r === 0){
|
||||
this.mergeShoppingList(results.data)
|
||||
} else {
|
||||
this.auto_sync_running = false
|
||||
this.replaySyncQueue()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -155,8 +155,9 @@ export default {
|
||||
pageSize: this.limit,
|
||||
query: query,
|
||||
limit: this.limit,
|
||||
options: {query: {simple: 1}}, // for API endpoints that support a simple view
|
||||
}
|
||||
console.log(query, options)
|
||||
|
||||
this.genericAPI(this.model, this.Actions.LIST, options).then((result) => {
|
||||
this.objects = this.sticky_options.concat(result.data?.results ?? result.data)
|
||||
if (this.nothingSelected && this.objects.length > 0) {
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
</b-input-group>
|
||||
</div>
|
||||
<div class="col-lg-6 d-none d-lg-block d-xl-block">
|
||||
<recipe-card v-if="entryEditing.recipe" :recipe="entryEditing.recipe" :detailed="false" :use_plural="use_plural"></recipe-card>
|
||||
<recipe-card v-if="entryEditing.recipe" :recipe="entryEditing.recipe" :detailed="false"></recipe-card>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-3 mb-3">
|
||||
@@ -118,7 +118,7 @@ export default {
|
||||
name: "MealPlanEditModal",
|
||||
props: {
|
||||
entry: Object,
|
||||
entryEditing_inital_servings: Number,
|
||||
entryEditing_initial_servings: Number,
|
||||
modal_title: String,
|
||||
modal_id: {
|
||||
type: String,
|
||||
@@ -144,7 +144,6 @@ export default {
|
||||
addshopping: false,
|
||||
reviewshopping: false,
|
||||
},
|
||||
use_plural: false,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -152,8 +151,8 @@ export default {
|
||||
handler() {
|
||||
this.entryEditing = Object.assign({}, this.entry)
|
||||
|
||||
if (this.entryEditing_inital_servings) {
|
||||
this.entryEditing.servings = this.entryEditing_inital_servings
|
||||
if (this.entryEditing_initial_servings) {
|
||||
this.entryEditing.servings = this.entryEditing_initial_servings
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
@@ -168,15 +167,12 @@ export default {
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
entryEditing_inital_servings: function (newVal) {
|
||||
entryEditing_initial_servings: function (newVal) {
|
||||
this.entryEditing.servings = newVal
|
||||
},
|
||||
},
|
||||
mounted: function () {
|
||||
let apiClient = new ApiApiFactory()
|
||||
apiClient.retrieveSpace(window.ACTIVE_SPACE_ID).then(r => {
|
||||
this.use_plural = r.data.use_plural
|
||||
})
|
||||
|
||||
},
|
||||
computed: {
|
||||
autoMealPlan: function () {
|
||||
|
||||
78
vue/src/components/Modals/ImportTandoor.vue
Normal file
78
vue/src/components/Modals/ImportTandoor.vue
Normal file
@@ -0,0 +1,78 @@
|
||||
<template>
|
||||
|
||||
<div>
|
||||
<!-- <b-button v-b-modal.id_import_tandoor_modal>{{ $t("Import into Tandoor") }}</b-button>-->
|
||||
|
||||
<b-modal class="modal" id="id_import_tandoor_modal" :title="$t('Import')" hide-footer>
|
||||
<p>Tandoor ist eine OpenSource Rezeptverwaltungs Plattform</p>
|
||||
|
||||
<p>Bitte wähle aus ob du deinen eigenen Tandoor Server hast oder tandoor.dev nutzt.
|
||||
</p>
|
||||
<div class="justify-content-center text-center">
|
||||
<b-form-group v-slot="{ ariaDescribedby }">
|
||||
<b-form-radio-group
|
||||
id="btn-radios-1"
|
||||
v-model="import_mode"
|
||||
:options="options"
|
||||
:aria-describedby="ariaDescribedby"
|
||||
name="radios-btn-default"
|
||||
buttons
|
||||
></b-form-radio-group>
|
||||
</b-form-group>
|
||||
</div>
|
||||
<div v-if="import_mode === 'tandoor'">
|
||||
<a href="https://app.tandoor.dev/accounts/signup/" target="_blank" ref="nofollow">Hier</a> einen Account anlegen<br/>
|
||||
<b-button @click="importTandoor()">Import</b-button>
|
||||
|
||||
</div>
|
||||
<div v-if="import_mode === 'selfhosted'">
|
||||
Deine Server URL
|
||||
<b-input v-model="selfhosted_url"></b-input>
|
||||
<b-button :disabled="selfhosted_url === ''" @click="importSelfHosted()">Import</b-button>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3 text-left mb-3">
|
||||
<a href="https://tandoor.dev" target="_blank" rel="nofollow">Jetzt mehr über Tandoor erfahren</a>
|
||||
</div>
|
||||
</b-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Vue from "vue";
|
||||
import {BootstrapVue} from "bootstrap-vue";
|
||||
import {ApiApiFactory} from "@/utils/openapi/api";
|
||||
|
||||
|
||||
Vue.use(BootstrapVue)
|
||||
|
||||
export default {
|
||||
name: 'ImportTandoor',
|
||||
components: {},
|
||||
props: {
|
||||
recipe: Object,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
import_mode: 'tandoor',
|
||||
options: [
|
||||
{text: 'Tandoor.dev', value: 'tandoor'},
|
||||
{text: 'Self-Hosted', value: 'selfhosted'},
|
||||
],
|
||||
selfhosted_url: '',
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
mounted() {
|
||||
this.$i18n.locale = window.CUSTOM_LOCALE
|
||||
},
|
||||
methods: {
|
||||
importTandoor: function () {
|
||||
|
||||
},
|
||||
importSelfHosted: function () {
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -24,7 +24,7 @@
|
||||
<span v-if="user_preferences.shopping_auto_sync < 1">{{ $t('Disable') }}</span>
|
||||
</div>
|
||||
<br/>
|
||||
<b-button class="btn btn-sm" @click="user_preferences.shopping_auto_sync = 0">{{ $t('Disabled') }}</b-button>
|
||||
<b-button class="btn btn-sm" @click="user_preferences.shopping_auto_sync = 0; updateSettings(false)">{{ $t('Disabled') }}</b-button>
|
||||
</b-form-group>
|
||||
|
||||
<b-form-group :description="$t('mealplan_autoadd_shopping_desc')">
|
||||
|
||||
@@ -477,5 +477,6 @@
|
||||
"Auto_Sort_Help": "Verschiebe alle Zutaten zu dem Schritt, der am Besten passt.",
|
||||
"Combine_All_Steps": "Fasse alle Schritte in einem einzelnem Feld zusammen.",
|
||||
"reset_children_help": "Überschreibe alle Kinder mit den Werten der vererbten Felder. Die vererbten Felder der Kinder werden als vererbte Felder gesetzt, es sei denn, das Kind-Vererben-Feld ist gesetzt.",
|
||||
"Unpin": "Lösen"
|
||||
"Unpin": "Lösen",
|
||||
"Amount": "Menge"
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
"Image": "Image",
|
||||
"Delete": "Delete",
|
||||
"Open": "Open",
|
||||
"Ok": "Open",
|
||||
"Ok": "Ok",
|
||||
"Save": "Save",
|
||||
"Step": "Step",
|
||||
"Search": "Search",
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"convert_internal": "Convertir en recette interne",
|
||||
"show_only_internal": "Montrer uniquement les recettes internes",
|
||||
"Log_Recipe_Cooking": "Marquer la recette comme cuisinée",
|
||||
"External_Recipe_Image": "Image externe de recette",
|
||||
"External_Recipe_Image": "Image de recette externe",
|
||||
"Add_to_Shopping": "Ajouter à la liste de courses",
|
||||
"Add_to_Plan": "Ajouter au menu",
|
||||
"Step_start_time": "Heure de début de l’étape",
|
||||
@@ -22,7 +22,7 @@
|
||||
"Meal_Plan": "Menu de la semaine",
|
||||
"Select_Book": "Sélectionner le livre",
|
||||
"Recipe_Image": "Image de la recette",
|
||||
"Import_finished": "Importation finie",
|
||||
"Import_finished": "Importation terminée",
|
||||
"View_Recipes": "Voir les recettes",
|
||||
"Log_Cooking": "Marquer comme cuisiné",
|
||||
"New_Recipe": "Nouvelle recette",
|
||||
@@ -78,12 +78,12 @@
|
||||
"Information": "Information",
|
||||
"Download": "Télécharger",
|
||||
"Create": "Créer",
|
||||
"show_split_screen": "Vue Séparée",
|
||||
"show_split_screen": "Vue séparée",
|
||||
"New_Keyword": "Nouveau mot-clé",
|
||||
"Delete_Keyword": "Supprimer mot-clé",
|
||||
"Move_Keyword": "Déplacer mot-clé",
|
||||
"Merge_Keyword": "Fusionner mots-clés",
|
||||
"Hide_Recipes": "Cacher recettes",
|
||||
"Delete_Keyword": "Supprimer le mot-clé",
|
||||
"Move_Keyword": "Déplacer le mot-clé",
|
||||
"Merge_Keyword": "Fusionner le mot-clé",
|
||||
"Hide_Recipes": "Cacher les recettes",
|
||||
"Advanced Search Settings": "Paramètres de recherche avancée",
|
||||
"View": "Voir",
|
||||
"Recipes": "Recettes",
|
||||
@@ -96,8 +96,8 @@
|
||||
"delete_confirmation": "Êtes-vous sûr de vouloir supprimer {source} ?",
|
||||
"Shopping_Category": "Catégorie de courses",
|
||||
"Ignore_Shopping": "Ignorer les courses",
|
||||
"Edit_Food": "Modifier aliment",
|
||||
"Move_Food": "Déplacer aliment",
|
||||
"Edit_Food": "Modifier l’aliment",
|
||||
"Move_Food": "Déplacer l’aliment",
|
||||
"New_Food": "Nouvel aliment",
|
||||
"Hide_Food": "Cacher l’aliment",
|
||||
"Delete_Food": "Supprimer l’aliment",
|
||||
@@ -113,10 +113,10 @@
|
||||
"Description": "Description",
|
||||
"Recipe": "Recette",
|
||||
"tree_root": "Racine de l’arbre",
|
||||
"Edit_Keyword": "Modifier mot-clé",
|
||||
"Edit_Keyword": "Modifier le mot-clé",
|
||||
"Hide_Keywords": "Cacher le mot-clé",
|
||||
"move_selection": "Sélectionner un parent {type} pour y déplacer {source}.",
|
||||
"merge_selection": "Remplace toutes les occurrences de {source} par {type}.",
|
||||
"merge_selection": "Remplacer toutes les occurrences de {source} par {type}.",
|
||||
"move_title": "Déplacer {type}",
|
||||
"del_confirmation_tree": "Êtes-vous sûr de vouloir supprimer {source} et tous ses enfants ?",
|
||||
"warning_feature_beta": "Cette fonctionnalité est actuellement en phase BETA (test). Veuillez vous attendre à des bugs et éventuellement à des modifications conséquentes à l’avenir (perte éventuelle de données liées à la fonctionnalité) lorsque vous utilisez cette fonctionnalité.",
|
||||
@@ -189,7 +189,7 @@
|
||||
"Show_as_header": "Montrer comme en-tête",
|
||||
"Hide_as_header": "Cacher comme en-tête",
|
||||
"Copy_template_reference": "Copier la référence du modèle",
|
||||
"Edit_Recipe": "Modifier une Recette",
|
||||
"Edit_Recipe": "Modifier la recette",
|
||||
"Move_Up": "Monter",
|
||||
"Time": "Temps",
|
||||
"Coming_Soon": "Bientôt disponible",
|
||||
@@ -225,14 +225,14 @@
|
||||
"Clear": "Supprimer",
|
||||
"AddToShopping": "Ajouter à la liste de courses",
|
||||
"IngredientInShopping": "Cet ingrédient est dans votre liste de courses.",
|
||||
"NotInShopping": "{food} n’est pas dans votre liste de courses.",
|
||||
"NotInShopping": "L’aliment {food} n’est pas dans votre liste de courses.",
|
||||
"OnHand": "Disponible actuellement",
|
||||
"FoodNotOnHand": "L’ingrédient {food} n’est pas disponible.",
|
||||
"FoodNotOnHand": "L’aliment {food} n’est pas disponible.",
|
||||
"Planner": "Planificateur",
|
||||
"Planner_Settings": "Paramètres du planificateur",
|
||||
"AddFoodToShopping": "Ajouter l’ingrédient {food} à votre liste de courses",
|
||||
"DeleteShoppingConfirm": "Êtes-vous sûr(e) de vouloir retirer tous les ingrédients {food} de votre liste de courses ?",
|
||||
"IgnoredFood": "L’ingrédient {food} est paramétré pour ignorer les courses.",
|
||||
"AddFoodToShopping": "Ajouter l’aliment {food} à votre liste de courses",
|
||||
"DeleteShoppingConfirm": "Êtes-vous sûr(e) de vouloir supprimer tous les aliments {food} de votre liste de courses ?",
|
||||
"IgnoredFood": "Ignorer les courses est paramétré pour l’aliment {food}.",
|
||||
"Inherit": "Hériter",
|
||||
"InheritFields": "Hériter les valeurs des champs",
|
||||
"FoodInherit": "Ingrédient hérité",
|
||||
@@ -240,7 +240,7 @@
|
||||
"GroupBy": "Grouper par",
|
||||
"SupermarketCategoriesOnly": "Catégories de supermarché uniquement",
|
||||
"MoveCategory": "Déplacer vers : ",
|
||||
"IgnoreThis": "Ne jamais ajouter l'ingrédient {food} aux courses",
|
||||
"IgnoreThis": "Ne jamais ajouter automatiquement l’aliment {food} aux courses",
|
||||
"DelayFor": "Retard de {hours} heures",
|
||||
"Warning": "Avertissement",
|
||||
"InheritWarning": "L'ingrédient {food} est un héritage, les changements pourraient ne pas être conservés.",
|
||||
@@ -275,15 +275,15 @@
|
||||
"DelayUntil": "Retard jusqu'à",
|
||||
"mark_complete": "Marque comme terminé",
|
||||
"QuickEntry": "Entrée rapide",
|
||||
"shopping_add_onhand_desc": "Marquer les aliments comme \"disponibles\" lorsqu'ils sont cochés sur la liste des courses.",
|
||||
"shopping_add_onhand_desc": "Marquer les aliments comme « disponibles » lorsqu'ils sont cochés sur la liste des courses.",
|
||||
"shopping_add_onhand": "Disponible par défaut",
|
||||
"related_recipes": "Recettes connexes",
|
||||
"today_recipes": "Recettes du jour",
|
||||
"Search Settings": "Paramètres de recherche",
|
||||
"FoodOnHand": "L’ingrédient {food} est disponible.",
|
||||
"FoodOnHand": "L’aliment {food} est disponible.",
|
||||
"Undefined": "Indéfini",
|
||||
"Create_Meal_Plan_Entry": "Créer une entrée de menu",
|
||||
"RemoveFoodFromShopping": "Retirer l’ingrédient {food} de votre liste de courses",
|
||||
"RemoveFoodFromShopping": "Supprimer l’aliment {food} de votre liste de courses",
|
||||
"left_handed": "Mode gaucher",
|
||||
"left_handed_help": "Optimise l’interface utilisateur pour une utilisation avec la main gauche.",
|
||||
"Custom Filter": "Filtre personnalisé",
|
||||
@@ -298,9 +298,9 @@
|
||||
"paste_ingredients": "Copier les ingrédients",
|
||||
"ingredient_list": "Liste des ingrédients",
|
||||
"search_no_recipes": "Aucune recette trouvée !",
|
||||
"substitute_siblings_help": "Tous les ingrédients qui partagent un parent avec cette ingrédient sont considérés comme des substituts.",
|
||||
"OnHand_help": "L'ingrédient est dans l'inventaire et ne sera pas automatiquement ajouté à la liste de courses. Le status actuel est partagé avec les utilisateurs de la liste.",
|
||||
"ignore_shopping_help": "Ne jamais ajouter l'ingrédient à la liste de courses (ex: eau)",
|
||||
"substitute_siblings_help": "Tous les aliments qui partagent un parent avec cet aliment sont considérés comme des substituts.",
|
||||
"OnHand_help": "L’aliment est dans l’inventaire et ne sera pas automatiquement ajouté à la liste de courses. L’état de disponibilité est partagé avec les utilisateurs de la liste.",
|
||||
"ignore_shopping_help": "Ne jamais ajouter d’aliment à la liste de courses (ex. : eau)",
|
||||
"food_recipe_help": "Ajouter un lien vers la recette ici incluera cette recette dans n'importe qu'elle autre recette qui utilise cet ingrédient",
|
||||
"shopping_category_help": "Les supermarchés peuvent être triés et filtrés par catégorie d'ingrédients selon la disposition des rayons.",
|
||||
"Units": "Unités",
|
||||
@@ -310,7 +310,7 @@
|
||||
"Supermarkets": "Supermarchés",
|
||||
"User": "Utilisateur",
|
||||
"Keyword": "Mot-clé",
|
||||
"Foods": "Ingrédients",
|
||||
"Foods": "Aliments",
|
||||
"enable_expert": "Activer le mode expert",
|
||||
"show_rating": "Afficher les notes",
|
||||
"asc": "Ordre croissant",
|
||||
@@ -324,7 +324,7 @@
|
||||
"advanced": "Avancé",
|
||||
"fields": "Champs",
|
||||
"show_keywords": "Afficher les mots-clés",
|
||||
"show_foods": "Afficher les ingrédients",
|
||||
"show_foods": "Afficher les aliments",
|
||||
"show_books": "Afficher les livres",
|
||||
"show_units": "Afficher les unités",
|
||||
"show_filters": "Afficher les filtres",
|
||||
@@ -333,10 +333,10 @@
|
||||
"click_image_import": "Cliquez sur l'image que vous souhaitez importer pour cette recette",
|
||||
"select_unit": "Sélectionner Unité",
|
||||
"Select_App_To_Import": "Veuillez sélectionner une App pour importer depuis",
|
||||
"err_deleting_protected_resource": "L'objet que vous essayez de supprimer est toujours utilisé et ne peut pas être supprimé.",
|
||||
"err_deleting_protected_resource": "L’objet que vous essayez de supprimer est toujours utilisé et ne peut pas être supprimé.",
|
||||
"Are_You_Sure": "Etes-vous sûr ?",
|
||||
"filter": "Filtre",
|
||||
"Ingredient Editor": "Éditeur d'ingrédients",
|
||||
"Ingredient Editor": "Éditeur d’ingrédients",
|
||||
"advanced_search_settings": "Paramètres de recherche avancée",
|
||||
"nothing_planned_today": "Vous n'avez rien de prévu pour aujourd'hui !",
|
||||
"Pinned": "Epinglé",
|
||||
@@ -355,7 +355,7 @@
|
||||
"Options": "Options",
|
||||
"additional_options": "Options Supplémentaires",
|
||||
"Website": "Site",
|
||||
"App": "App",
|
||||
"App": "Appli",
|
||||
"Click_To_Edit": "Cliquer pour éditer",
|
||||
"reset_children": "Réinitialiser l'héritage enfant",
|
||||
"created_on": "Créé le",
|
||||
@@ -380,7 +380,7 @@
|
||||
"no_more_images_found": "Pas d'images supplémentaires trouvées sur le site.",
|
||||
"sql_debug": "Débogage de la base SQL",
|
||||
"last_cooked": "Dernière recette utilisée",
|
||||
"times_cooked": "Temps de cuisson",
|
||||
"times_cooked": "Nombre de fois cuisiné",
|
||||
"show_sortby": "Trier par",
|
||||
"Hours": "Heures",
|
||||
"Days": "Jours",
|
||||
@@ -395,7 +395,7 @@
|
||||
"Default_Unit": "Unité par défaut",
|
||||
"Hour": "Heure",
|
||||
"Day": "Jour",
|
||||
"food_inherit_info": "Champs sur les ingrédients qui doivent être hérité par défaut.",
|
||||
"food_inherit_info": "Champs sur les aliments à hériter par défaut.",
|
||||
"Invites": "Invitations",
|
||||
"paste_json": "Collez une source json ou html pour charger la recette.",
|
||||
"warning_space_delete": "Vous pouvez supprimer votre groupe ainsi que toutes les recettes, listes de courses, menus et autres choses que vous avez créés. Vous ne pourrez pas revenir sur cette suppression ! Êtes-vous sûr de vouloir le faire ?",
|
||||
@@ -403,11 +403,51 @@
|
||||
"import_duplicates": "Pour éviter les doublons, les recettes de même nom seront ignorées. Cocher la case pour tout importer.",
|
||||
"Account": "Compte",
|
||||
"Change_Password": "Modifier le mot de passe",
|
||||
"Plural": "",
|
||||
"plural_short": "",
|
||||
"Use_Plural_Unit_Always": "",
|
||||
"Use_Plural_Unit_Simple": "",
|
||||
"Use_Plural_Food_Always": "",
|
||||
"Use_Plural_Food_Simple": "",
|
||||
"plural_usage_info": ""
|
||||
"Plural": "Pluriel",
|
||||
"plural_short": "pluriel",
|
||||
"Use_Plural_Unit_Always": "Toujours utiliser la forme plurielle pour les unités",
|
||||
"Use_Plural_Unit_Simple": "Utiliser la forme plurielle pour les unités de manière dynamique",
|
||||
"Use_Plural_Food_Always": "Toujours utiliser la forme plurielle pour les aliments",
|
||||
"Use_Plural_Food_Simple": "Utiliser la forme plurielle pour les aliments de manière dynamique",
|
||||
"plural_usage_info": "Utiliser la forme plurielle pour les unités et les aliments dans ce groupe.",
|
||||
"Planned": "Planifié",
|
||||
"Amount": "Quantité",
|
||||
"Original_Text": "Texte d’origine",
|
||||
"Use_Fractions": "Utiliser les fractions",
|
||||
"Use_Fractions_Help": "Convertir les décimales en fractions automatiquement lors de la visualisation d’une recette.",
|
||||
"Message": "Message",
|
||||
"Sticky_Nav_Help": "Toujours afficher le menu de navigation en haut de l’écran.",
|
||||
"Combine_All_Steps": "Combiner toutes les étapes en un seul champ.",
|
||||
"facet_count_info": "Afficher les compteurs de recette sur les filtres de recherche.",
|
||||
"Decimals": "Décimales",
|
||||
"plan_share_desc": "Les nouvelles entrées de menu de la semaine seront partagées automatiquement avec des utilisateurs sélectionnés.",
|
||||
"Use_Kj": "Utiliser kJ au lieu de kcal",
|
||||
"Manage_Emails": "Gérer les e-mails",
|
||||
"select_food": "Séletionner l’aliment",
|
||||
"Toggle": "Basculer",
|
||||
"Theme": "Thème",
|
||||
"Import_Supported": "Importation prise en charge",
|
||||
"Auto_Sort": "Tri automatique",
|
||||
"Auto_Sort_Help": "Déplacer tous les ingrédients à l’étape la mieux adaptée.",
|
||||
"reusable_help_text": "Le lien d’invitation doit-il être utilisable par plus d’un utilisateur.",
|
||||
"date_viewed": "Dernier vu",
|
||||
"Username": "Nom d’utilisateur",
|
||||
"First_name": "Prénom",
|
||||
"Last_name": "Nom",
|
||||
"Disabled": "Désactivé",
|
||||
"Disable": "Désactiver",
|
||||
"Export_Supported": "Exportation prise en charge",
|
||||
"Recipes_In_Import": "Recettes dans votre fichier d’importation",
|
||||
"Import_Error": "Une erreur est survenue pendant votre importation. Veuillez développer les détails au bas de la page pour la consulter.",
|
||||
"Valid Until": "Valide jusqu’au",
|
||||
"Create Food": "Créer un aliment",
|
||||
"create_food_desc": "Créer un aliment et le relier par une lien à cette recette.",
|
||||
"remember_hours": "Horaires à retenir",
|
||||
"Ingredient Overview": "Aperçu des ingrédients",
|
||||
"parameter_count": "Paramètres {count}",
|
||||
"show_ingredient_overview": "Afficher une liste de tous les ingrédients au début de la recette.",
|
||||
"Import_Not_Yet_Supported": "Importation pas encore prise en charge",
|
||||
"Export_Not_Yet_Supported": "Exportation pas encore prise en charge",
|
||||
"Import_Result_Info": "{imported} sur {total} recettes ont été importées",
|
||||
"API": "API"
|
||||
}
|
||||
|
||||
@@ -328,7 +328,7 @@
|
||||
"remember_search": "Kom ihåg sökning",
|
||||
"sql_debug": "SQL felsökning",
|
||||
"Create_New_Food": "Lägg till nytt livsmedel",
|
||||
"Pin": "Pin",
|
||||
"Pin": "Fäst",
|
||||
"Edit_Food": "Redigera livsmedel",
|
||||
"Move_Food": "Flytta livsmedel",
|
||||
"Create_Meal_Plan_Entry": "Skapa en måltidsplan",
|
||||
@@ -363,7 +363,7 @@
|
||||
"ChildInheritFields_help": "Underordnade kommer att ärva dessa fält som standard.",
|
||||
"InheritFields_help": "Värdena i dessa fält kommer att ärvas från förälder (Undantag: tomma shoppingkategorier ärvs inte)",
|
||||
"no_pinned_recipes": "Du har inga nålade recept!",
|
||||
"Pinned": "Nålad",
|
||||
"Pinned": "Fäst",
|
||||
"OnHand_help": "Livsmedel som finns i lager kommer inte automatiskt att läggas till på en inköpslista. Onhand-status delas med shoppinganvändare.",
|
||||
"shopping_category_help": "Mataffärer kan sorteras och filtreras efter Shopping-kategori enligt gångarnas layout.",
|
||||
"food_recipe_help": "Om du länkar ett recept här kommer det länkade receptet att inkluderas i alla andra recept som använder detta livsmedel",
|
||||
@@ -381,11 +381,102 @@
|
||||
"additional_options": "Ytterligare alternativ",
|
||||
"remember_hours": "Timmar att komma ihåg",
|
||||
"tree_select": "Använd trädval",
|
||||
"Plural": "",
|
||||
"plural_short": "",
|
||||
"Use_Plural_Unit_Always": "",
|
||||
"Use_Plural_Unit_Simple": "",
|
||||
"Use_Plural_Food_Always": "",
|
||||
"Use_Plural_Food_Simple": "",
|
||||
"plural_usage_info": ""
|
||||
"Plural": "Plural",
|
||||
"plural_short": "plural",
|
||||
"Use_Plural_Unit_Always": "Använd alltid pluralform för enhet",
|
||||
"Use_Plural_Unit_Simple": "Använd pluralform för enhet dynamiskt",
|
||||
"Use_Plural_Food_Always": "Använd alltid pluralform för mat",
|
||||
"Use_Plural_Food_Simple": "Använd pluralform för mat dynamiskt",
|
||||
"plural_usage_info": "Använd pluralformen för enheter och mat i detta utrymme.",
|
||||
"Are_You_Sure": "Är du säker?",
|
||||
"API": "API",
|
||||
"Website": "Hemsida",
|
||||
"Message": "Meddelande",
|
||||
"Use_Kj": "Använd kJ istället för kcal",
|
||||
"Auto_Sort_Help": "Flytta alla ingredienser till det bästa passande steget.",
|
||||
"Protected": "Skyddad",
|
||||
"Copy Link": "Kopiera Länk",
|
||||
"Original_Text": "Original Text",
|
||||
"Cosmetic": "Kosmetisk",
|
||||
"import_duplicates": "För att förhindra duplicerade recept ignoreras recept med samma namn. Markera den här rutan för att importera allt.",
|
||||
"Imported": "Importerad",
|
||||
"Create_New_Shopping_Category": "Lägg till ny shoppingkategori",
|
||||
"plan_share_desc": "Nya måltidsplaner kommer automatiskt att delas med utvalda användare.",
|
||||
"Last_name": "Efternamn",
|
||||
"Select_App_To_Import": "Vänligen välj en App att importera från",
|
||||
"Import_Error": "Ett fel uppstod under din import. Expandera informationen längst ner på sidan för att se den.",
|
||||
"Combine_All_Steps": "Kombinera alla steg i ett enda fält.",
|
||||
"Ingredient Overview": "Ingrediensöversikt",
|
||||
"New_Entry": "Ny post",
|
||||
"one_url_per_line": "Endast en URL per rad",
|
||||
"Decimals": "Decimaler",
|
||||
"Default_Unit": "Standardenhet",
|
||||
"Use_Fractions": "Använd bråk",
|
||||
"Use_Fractions_Help": "Konvertera automatiskt decimaler till bråktal när du visar ett recept.",
|
||||
"Imported_From": "Importerad från",
|
||||
"Disable": "Inaktivera",
|
||||
"Documentation": "Dokumentation",
|
||||
"Options": "Val",
|
||||
"Click_To_Edit": "Klicka för att redigera",
|
||||
"paste_json": "Klistra in JSON eller HTML källkoden här för att ladda recept.",
|
||||
"err_deleting_protected_resource": "Objektet du försöker radera används fortfarande och kan inte raderas.",
|
||||
"Private_Recipe": "Privat Recept",
|
||||
"Private_Recipe_Help": "Receptet visas bara för dig och personer som det delas med.",
|
||||
"reusable_help_text": "Bör inbjudningslänken vara användbar för mer än en användare.",
|
||||
"Ingredient Editor": "Ingrediensredigerare",
|
||||
"warning_space_delete": "Du kan ta bort ditt utrymme inklusive alla recept, inköpslistor, måltidsplaner och allt annat du har skapat. Detta kan inte ångras! Är du säker på att du vill göra detta?",
|
||||
"facet_count_info": "Visa recept antal på sökfilter.",
|
||||
"food_inherit_info": "Fält på mat som ska ärvas som standard.",
|
||||
"Auto_Sort": "Automatisk Sortering",
|
||||
"Day": "Dag",
|
||||
"Days": "Dagar",
|
||||
"Hours": "Timmar",
|
||||
"Instruction_Replace": "Ersätt instruktion",
|
||||
"Description_Replace": "Ersätt beskrivning",
|
||||
"Seconds": "Sekunder",
|
||||
"Users": "Användare",
|
||||
"Invites": "Inbjudningar",
|
||||
"Hour": "Timme",
|
||||
"Second": "Sekund",
|
||||
"Manage_Emails": "Hantera mejladresser",
|
||||
"Account": "Konto",
|
||||
"Unpin": "Lossa",
|
||||
"PinnedConfirmation": "{recipe} har fästs.",
|
||||
"UnpinnedConfirmation": "{recipe} har lossats.",
|
||||
"Amount": "Mängd",
|
||||
"Copy Token": "Kopiera token",
|
||||
"Language": "Språk",
|
||||
"Theme": "Tema",
|
||||
"Bookmarklet": "Bokmärke",
|
||||
"Comments_setting": "Visa Kommentarer",
|
||||
"no_more_images_found": "Inga ytterligare bilder hittades på webbplatsen.",
|
||||
"Sticky_Nav": "Fastlåst navigering",
|
||||
"Sticky_Nav_Help": "Visa alltid navigeringsmenyn högst upp på skärmen.",
|
||||
"Nav_Color": "Navigeringsfärg",
|
||||
"Nav_Color_Help": "Ändra navigeringsfärg.",
|
||||
"click_image_import": "Klicka på bilden du vill importera till detta recept",
|
||||
"reset_food_inheritance": "Återställ arv",
|
||||
"reset_food_inheritance_info": "Återställ alla livsmedel till ärvda standardfält och deras överordnade värden.",
|
||||
"show_ingredient_overview": "Visa en lista över alla ingredienser i början av receptet.",
|
||||
"App": "App",
|
||||
"Change_Password": "Ändra lösenord",
|
||||
"Username": "Användarnamn",
|
||||
"First_name": "Förnamn",
|
||||
"Multiple": "Flera",
|
||||
"Importer_Help": "Mer information och hjälp om denna import:",
|
||||
"Import_Supported": "Import stöds",
|
||||
"Export_Supported": "Export stöds",
|
||||
"Import_Not_Yet_Supported": "Import stöds inte ännu",
|
||||
"Export_Not_Yet_Supported": "Export stöds inte ännu",
|
||||
"Import_Result_Info": "{imported} av totalt {total} recept blev importerat",
|
||||
"Recipes_In_Import": "Recept i din importfil",
|
||||
"Toggle": "Växla",
|
||||
"Valid Until": "Giltig till",
|
||||
"Split_All_Steps": "Dela upp alla rader i separata steg.",
|
||||
"New_Supermarket": "Skapa ny mataffärs",
|
||||
"New_Supermarket_Category": "Skapa ny mataffärskategori",
|
||||
"Warning_Delete_Supermarket_Category": "Om du tar bort en mataffärskategori raderas också alla relationer till livsmedel. Är du säker?",
|
||||
"Disabled": "Inaktiverad",
|
||||
"Social_Authentication": "Social autentisering",
|
||||
"Single": "Enstaka"
|
||||
}
|
||||
|
||||
@@ -1,256 +1,256 @@
|
||||
{
|
||||
"warning_feature_beta": "",
|
||||
"err_fetching_resource": "",
|
||||
"err_creating_resource": "",
|
||||
"err_updating_resource": "",
|
||||
"err_deleting_resource": "",
|
||||
"err_deleting_protected_resource": "",
|
||||
"err_moving_resource": "",
|
||||
"err_merging_resource": "",
|
||||
"success_fetching_resource": "",
|
||||
"success_creating_resource": "",
|
||||
"success_updating_resource": "",
|
||||
"success_deleting_resource": "",
|
||||
"success_moving_resource": "",
|
||||
"success_merging_resource": "",
|
||||
"file_upload_disabled": "",
|
||||
"step_time_minutes": "",
|
||||
"confirm_delete": "",
|
||||
"import_running": "",
|
||||
"all_fields_optional": "",
|
||||
"convert_internal": "",
|
||||
"show_only_internal": "",
|
||||
"warning_feature_beta": "Ця функція зараз в БЕТІ (тестується). Будь ласка, очікуйте помилок і можливих порушень і майбутньому (можлива втрата даних), коли користуєтесь цією функцією.",
|
||||
"err_fetching_resource": "Виникла помилка при отриманні ресурсу!",
|
||||
"err_creating_resource": "Виникла помилка при створенні ресурсу!",
|
||||
"err_updating_resource": "Виникла помилка при оновленні ресурсу!",
|
||||
"err_deleting_resource": "Виникла помилка при видаленні ресурсу!",
|
||||
"err_deleting_protected_resource": "Об'єкт який ви намагаєтесь видалити зараз використовується і не може бути видаленим.",
|
||||
"err_moving_resource": "Виникла помилка при переміщені ресурсу!",
|
||||
"err_merging_resource": "Виникла помилка при злитті ресурсу!",
|
||||
"success_fetching_resource": "Успішно отримано ресурс!",
|
||||
"success_creating_resource": "Успішно створено ресурс!",
|
||||
"success_updating_resource": "Успішно оновлено ресурс!",
|
||||
"success_deleting_resource": "Успішно видалено ресурс!",
|
||||
"success_moving_resource": "Успішно переміщено ресурс!",
|
||||
"success_merging_resource": "Успішно злито ресурс!",
|
||||
"file_upload_disabled": "Завантаження файлів не включено на вашому просторі.",
|
||||
"step_time_minutes": "Час кроку в хвилинах",
|
||||
"confirm_delete": "Ви впевнені, що хочете видалити {object}?",
|
||||
"import_running": "Імпортується, будь ласка зачекайте!",
|
||||
"all_fields_optional": "Всі поля опціональні і можна залишити їх пустими.",
|
||||
"convert_internal": "Конвертувати у внутрішній рецепт",
|
||||
"show_only_internal": "Показати тільки внутрішні рецепти",
|
||||
"show_split_screen": "",
|
||||
"Log_Recipe_Cooking": "",
|
||||
"External_Recipe_Image": "",
|
||||
"Add_to_Shopping": "",
|
||||
"Add_to_Plan": "",
|
||||
"Step_start_time": "",
|
||||
"External_Recipe_Image": "Зображення Зовнішнього Рецепту",
|
||||
"Add_to_Shopping": "Додати до Покупок",
|
||||
"Add_to_Plan": "Додати до Плану",
|
||||
"Step_start_time": "Час початку кроку",
|
||||
"Sort_by_new": "",
|
||||
"Table_of_Contents": "",
|
||||
"Recipes_per_page": "",
|
||||
"Table_of_Contents": "Зміст",
|
||||
"Recipes_per_page": "Кількість Рецептів на Сторінку",
|
||||
"Show_as_header": "",
|
||||
"Hide_as_header": "",
|
||||
"Add_nutrition_recipe": "",
|
||||
"Remove_nutrition_recipe": "",
|
||||
"Add_nutrition_recipe": "Додати харчову цінність до рецепту",
|
||||
"Remove_nutrition_recipe": "Видалити харчову цінність з рецепта",
|
||||
"Copy_template_reference": "",
|
||||
"Save_and_View": "",
|
||||
"Manage_Books": "",
|
||||
"Meal_Plan": "",
|
||||
"Select_Book": "",
|
||||
"Select_File": "",
|
||||
"Recipe_Image": "",
|
||||
"Import_finished": "",
|
||||
"View_Recipes": "",
|
||||
"Save_and_View": "Зберегти і Подивитися",
|
||||
"Manage_Books": "Управління Книжкою",
|
||||
"Meal_Plan": "План Харчування",
|
||||
"Select_Book": "Вибрати Книжку",
|
||||
"Select_File": "Вибрати Файл",
|
||||
"Recipe_Image": "Зображення Рецепту",
|
||||
"Import_finished": "Імпорт закінчено",
|
||||
"View_Recipes": "Подивитися Рецепт",
|
||||
"Log_Cooking": "",
|
||||
"New_Recipe": "",
|
||||
"Url_Import": "",
|
||||
"Reset_Search": "",
|
||||
"Recently_Viewed": "",
|
||||
"Load_More": "",
|
||||
"New_Keyword": "",
|
||||
"Delete_Keyword": "",
|
||||
"Edit_Keyword": "",
|
||||
"Edit_Recipe": "",
|
||||
"Move_Keyword": "",
|
||||
"Merge_Keyword": "",
|
||||
"Hide_Keywords": "",
|
||||
"Hide_Recipes": "",
|
||||
"Move_Up": "",
|
||||
"Move_Down": "",
|
||||
"Step_Name": "",
|
||||
"Step_Type": "",
|
||||
"New_Recipe": "Новий Рецепт",
|
||||
"Url_Import": "Імпорт за посиланням",
|
||||
"Reset_Search": "Скинути Пошук",
|
||||
"Recently_Viewed": "Нещодавно переглянуті",
|
||||
"Load_More": "Завантажити більше",
|
||||
"New_Keyword": "Нові Ключові слова",
|
||||
"Delete_Keyword": "Видалити Ключове слово",
|
||||
"Edit_Keyword": "Редагувати Ключове слово",
|
||||
"Edit_Recipe": "Редагувати Рецепт",
|
||||
"Move_Keyword": "Перемістити Ключове слово",
|
||||
"Merge_Keyword": "Об'єднати Ключове слово",
|
||||
"Hide_Keywords": "Сховати Ключове слово",
|
||||
"Hide_Recipes": "Сховати Рецепти",
|
||||
"Move_Up": "Перемістити уверх",
|
||||
"Move_Down": "Перемістити вниз",
|
||||
"Step_Name": "Ім'я Кроку",
|
||||
"Step_Type": "Тип Кроку",
|
||||
"Make_Header": "",
|
||||
"Make_Ingredient": "",
|
||||
"Enable_Amount": "",
|
||||
"Disable_Amount": "",
|
||||
"Ingredient Editor": "",
|
||||
"Add_Step": "",
|
||||
"Keywords": "",
|
||||
"Books": "",
|
||||
"Proteins": "",
|
||||
"Fats": "",
|
||||
"Carbohydrates": "",
|
||||
"Calories": "",
|
||||
"Energy": "",
|
||||
"Nutrition": "",
|
||||
"Date": "",
|
||||
"Share": "",
|
||||
"Automation": "",
|
||||
"Parameter": "",
|
||||
"Export": "",
|
||||
"Copy": "",
|
||||
"Rating": "",
|
||||
"Close": "",
|
||||
"Cancel": "",
|
||||
"Link": "",
|
||||
"Add": "",
|
||||
"New": "",
|
||||
"Note": "",
|
||||
"Success": "",
|
||||
"Failure": "",
|
||||
"Protected": "",
|
||||
"Ingredients": "",
|
||||
"Supermarket": "",
|
||||
"Categories": "",
|
||||
"Category": "",
|
||||
"Selected": "",
|
||||
"min": "",
|
||||
"Servings": "",
|
||||
"Waiting": "",
|
||||
"Preparation": "",
|
||||
"External": "",
|
||||
"Size": "",
|
||||
"Files": "",
|
||||
"File": "",
|
||||
"Edit": "",
|
||||
"Image": "",
|
||||
"Delete": "",
|
||||
"Open": "",
|
||||
"Ok": "",
|
||||
"Save": "",
|
||||
"Step": "",
|
||||
"Search": "",
|
||||
"Import": "",
|
||||
"Print": "",
|
||||
"Settings": "",
|
||||
"or": "",
|
||||
"and": "",
|
||||
"Information": "",
|
||||
"Download": "",
|
||||
"Create": "",
|
||||
"Search Settings": "",
|
||||
"Enable_Amount": "Включити Кількість",
|
||||
"Disable_Amount": "Виключити Кількість",
|
||||
"Ingredient Editor": "Редактор Інгредієнтів",
|
||||
"Add_Step": "Додати Крок",
|
||||
"Keywords": "Ключові слова",
|
||||
"Books": "Книжки",
|
||||
"Proteins": "Білки",
|
||||
"Fats": "Жири",
|
||||
"Carbohydrates": "Вуглеводи",
|
||||
"Calories": "Калорії",
|
||||
"Energy": "Енергія",
|
||||
"Nutrition": "Харчова цінність",
|
||||
"Date": "Дата",
|
||||
"Share": "Поділитися",
|
||||
"Automation": "Автоматизація",
|
||||
"Parameter": "Параметр",
|
||||
"Export": "Експорт",
|
||||
"Copy": "Копіювати",
|
||||
"Rating": "Рейтинг",
|
||||
"Close": "Закрити",
|
||||
"Cancel": "Відмінити",
|
||||
"Link": "Посилання",
|
||||
"Add": "Додати",
|
||||
"New": "Новий",
|
||||
"Note": "Нотатка",
|
||||
"Success": "Успішно",
|
||||
"Failure": "Невдало",
|
||||
"Protected": "Захищено",
|
||||
"Ingredients": "Інгредієнти",
|
||||
"Supermarket": "Супермаркет",
|
||||
"Categories": "Категорії",
|
||||
"Category": "Категорія",
|
||||
"Selected": "Вибрано",
|
||||
"min": "хв",
|
||||
"Servings": "Порції",
|
||||
"Waiting": "Очікування",
|
||||
"Preparation": "Підготовка",
|
||||
"External": "Зовнішній",
|
||||
"Size": "Розмір",
|
||||
"Files": "Файли",
|
||||
"File": "Файл",
|
||||
"Edit": "Редагувати",
|
||||
"Image": "Зображення",
|
||||
"Delete": "Видалити",
|
||||
"Open": "Відкрити",
|
||||
"Ok": "Відкрити",
|
||||
"Save": "Зберегти",
|
||||
"Step": "Крок",
|
||||
"Search": "Пошук",
|
||||
"Import": "Імпорт",
|
||||
"Print": "Друкувати",
|
||||
"Settings": "Налаштування",
|
||||
"or": "або",
|
||||
"and": "і",
|
||||
"Information": "Інформація",
|
||||
"Download": "Скачати",
|
||||
"Create": "Створити",
|
||||
"Search Settings": "Налаштування Пошуку",
|
||||
"View": "",
|
||||
"Recipes": "",
|
||||
"Move": "",
|
||||
"Merge": "",
|
||||
"Parent": "",
|
||||
"delete_confirmation": "",
|
||||
"move_confirmation": "",
|
||||
"merge_confirmation": "",
|
||||
"create_rule": "",
|
||||
"Recipes": "Рецепти",
|
||||
"Move": "Перемістити",
|
||||
"Merge": "Об'єднати",
|
||||
"Parent": "Батько",
|
||||
"delete_confirmation": "Ви впевнені, що хочете видалити {source}?",
|
||||
"move_confirmation": "Перемістити <i>{child}</i> до батька <i>{parent}</i>",
|
||||
"merge_confirmation": "Замінити <i>{source}</i> на <i>{target}</i>",
|
||||
"create_rule": "і створити автоматизацію",
|
||||
"move_selection": "",
|
||||
"merge_selection": "",
|
||||
"Root": "",
|
||||
"Ignore_Shopping": "",
|
||||
"Shopping_Category": "",
|
||||
"Shopping_Categories": "",
|
||||
"Edit_Food": "",
|
||||
"Move_Food": "",
|
||||
"New_Food": "",
|
||||
"Hide_Food": "",
|
||||
"Root": "Корінь",
|
||||
"Ignore_Shopping": "Ігнорувати Покупки",
|
||||
"Shopping_Category": "Категорія Покупок",
|
||||
"Shopping_Categories": "Категорії Покупок",
|
||||
"Edit_Food": "Редагувати Їжу",
|
||||
"Move_Food": "Перемістити Їжу",
|
||||
"New_Food": "Нова Їжа",
|
||||
"Hide_Food": "Сховати Їжу",
|
||||
"Food_Alias": "",
|
||||
"Unit_Alias": "",
|
||||
"Keyword_Alias": "",
|
||||
"Delete_Food": "",
|
||||
"No_ID": "",
|
||||
"Meal_Plan_Days": "",
|
||||
"merge_title": "",
|
||||
"move_title": "",
|
||||
"Food": "",
|
||||
"Recipe_Book": "",
|
||||
"del_confirmation_tree": "",
|
||||
"delete_title": "",
|
||||
"create_title": "",
|
||||
"edit_title": "",
|
||||
"Name": "",
|
||||
"Type": "",
|
||||
"Description": "",
|
||||
"Recipe": "",
|
||||
"tree_root": "",
|
||||
"Icon": "",
|
||||
"Unit": "",
|
||||
"No_Results": "",
|
||||
"New_Unit": "",
|
||||
"Create_New_Shopping Category": "",
|
||||
"Create_New_Food": "",
|
||||
"Create_New_Keyword": "",
|
||||
"Create_New_Unit": "",
|
||||
"Create_New_Meal_Type": "",
|
||||
"Create_New_Shopping_Category": "",
|
||||
"and_up": "",
|
||||
"and_down": "",
|
||||
"Instructions": "",
|
||||
"Unrated": "",
|
||||
"Automate": "",
|
||||
"Empty": "",
|
||||
"Key_Ctrl": "",
|
||||
"Key_Shift": "",
|
||||
"Time": "",
|
||||
"Text": "",
|
||||
"Shopping_list": "",
|
||||
"Added_by": "",
|
||||
"Added_on": "",
|
||||
"AddToShopping": "",
|
||||
"IngredientInShopping": "",
|
||||
"NotInShopping": "",
|
||||
"OnHand": "",
|
||||
"FoodOnHand": "",
|
||||
"FoodNotOnHand": "",
|
||||
"Undefined": "",
|
||||
"Create_Meal_Plan_Entry": "",
|
||||
"Edit_Meal_Plan_Entry": "",
|
||||
"Title": "",
|
||||
"Week": "",
|
||||
"Month": "",
|
||||
"Year": "",
|
||||
"Planner": "",
|
||||
"Planner_Settings": "",
|
||||
"Period": "",
|
||||
"Plan_Period_To_Show": "",
|
||||
"Periods": "",
|
||||
"Plan_Show_How_Many_Periods": "",
|
||||
"Starting_Day": "",
|
||||
"Meal_Types": "",
|
||||
"Meal_Type": "",
|
||||
"New_Entry": "",
|
||||
"Clone": "",
|
||||
"Drag_Here_To_Delete": "",
|
||||
"Meal_Type_Required": "",
|
||||
"Title_or_Recipe_Required": "",
|
||||
"Color": "",
|
||||
"New_Meal_Type": "",
|
||||
"AddFoodToShopping": "",
|
||||
"RemoveFoodFromShopping": "",
|
||||
"DeleteShoppingConfirm": "",
|
||||
"IgnoredFood": "",
|
||||
"Add_Servings_to_Shopping": "",
|
||||
"Week_Numbers": "",
|
||||
"Show_Week_Numbers": "",
|
||||
"Export_As_ICal": "",
|
||||
"Export_To_ICal": "",
|
||||
"Cannot_Add_Notes_To_Shopping": "",
|
||||
"Added_To_Shopping_List": "",
|
||||
"Shopping_List_Empty": "",
|
||||
"Next_Period": "",
|
||||
"Previous_Period": "",
|
||||
"Current_Period": "",
|
||||
"Next_Day": "",
|
||||
"Previous_Day": "",
|
||||
"Inherit": "",
|
||||
"InheritFields": "",
|
||||
"FoodInherit": "",
|
||||
"ShowUncategorizedFood": "",
|
||||
"GroupBy": "",
|
||||
"SupermarketCategoriesOnly": "",
|
||||
"MoveCategory": "",
|
||||
"CountMore": "",
|
||||
"IgnoreThis": "",
|
||||
"DelayFor": "",
|
||||
"Warning": "",
|
||||
"NoCategory": "",
|
||||
"Delete_Food": "Видалити Їжу",
|
||||
"No_ID": "ID не знайдено, неможливо видалити.",
|
||||
"Meal_Plan_Days": "Майбутній план харчування",
|
||||
"merge_title": "Об'єднати {type}",
|
||||
"move_title": "Перемістити {type}",
|
||||
"Food": "Їжа",
|
||||
"Recipe_Book": "Книга Рецептів",
|
||||
"del_confirmation_tree": "Ви впевненні, що хочете видалити {source} і всіх його дітей?",
|
||||
"delete_title": "Видалити {type}",
|
||||
"create_title": "Новий {type}",
|
||||
"edit_title": "Редагувати {type}",
|
||||
"Name": "Ім'я",
|
||||
"Type": "Тип",
|
||||
"Description": "Опис",
|
||||
"Recipe": "Рецепт",
|
||||
"tree_root": "Корінь Дерева",
|
||||
"Icon": "Іконка",
|
||||
"Unit": "Одиниця",
|
||||
"No_Results": "Немає Результату",
|
||||
"New_Unit": "Нова Одиниця",
|
||||
"Create_New_Shopping Category": "Створити Нову Категорію Покупок",
|
||||
"Create_New_Food": "Додати Нову Їжу",
|
||||
"Create_New_Keyword": "Додати Нове Ключове слово",
|
||||
"Create_New_Unit": "Додати Нову Одиницю",
|
||||
"Create_New_Meal_Type": "Додати Новий Тип Страви",
|
||||
"Create_New_Shopping_Category": "Додати Нову Категорію Покупок",
|
||||
"and_up": "І Уверх",
|
||||
"and_down": "І Вниз",
|
||||
"Instructions": "Інструкції",
|
||||
"Unrated": "Без рейтингу",
|
||||
"Automate": "Автоматично",
|
||||
"Empty": "Пусто",
|
||||
"Key_Ctrl": "Ctrl",
|
||||
"Key_Shift": "Shift",
|
||||
"Time": "Час",
|
||||
"Text": "Текст",
|
||||
"Shopping_list": "Список Покупок",
|
||||
"Added_by": "Додано",
|
||||
"Added_on": "Додано На",
|
||||
"AddToShopping": "Додати до списку покупок",
|
||||
"IngredientInShopping": "Цей інгредієнт є в вашому списку покупок.",
|
||||
"NotInShopping": "{food} немає в вашому списку покупок.",
|
||||
"OnHand": "Зараз На Руках",
|
||||
"FoodOnHand": "Ви маєте {food} на руках.",
|
||||
"FoodNotOnHand": "У вас немає {food} на руках.",
|
||||
"Undefined": "Невідомо",
|
||||
"Create_Meal_Plan_Entry": "Створити запис в плані харчування",
|
||||
"Edit_Meal_Plan_Entry": "Редагувати запис в плані харчування",
|
||||
"Title": "Заголовок",
|
||||
"Week": "Неділя",
|
||||
"Month": "Місяць",
|
||||
"Year": "Рік",
|
||||
"Planner": "Планувальний",
|
||||
"Planner_Settings": "Налаштування планувальника",
|
||||
"Period": "Період",
|
||||
"Plan_Period_To_Show": "Показати тижні, місяці або роки",
|
||||
"Periods": "Періоди",
|
||||
"Plan_Show_How_Many_Periods": "Як багато періодів показати",
|
||||
"Starting_Day": "Початковий день тижня",
|
||||
"Meal_Types": "Типи страви",
|
||||
"Meal_Type": "Тип страви",
|
||||
"New_Entry": "Новий запис",
|
||||
"Clone": "Клонувати",
|
||||
"Drag_Here_To_Delete": "Перемістіть сюди, щоб видалити",
|
||||
"Meal_Type_Required": "Тип страви є обов'язковим",
|
||||
"Title_or_Recipe_Required": "Вибір заголовку, або рецепту, є обов'язковим",
|
||||
"Color": "Колір",
|
||||
"New_Meal_Type": "Новий Тип страви",
|
||||
"AddFoodToShopping": "Додати {food} до вашого списку покупок",
|
||||
"RemoveFoodFromShopping": "Видалити {food} з вашого списку покупок",
|
||||
"DeleteShoppingConfirm": "Ви впевнені, що хочете видалити {food} з вашого списку покупок?",
|
||||
"IgnoredFood": "{food} ігнорується в покупках.",
|
||||
"Add_Servings_to_Shopping": "Додати {servings} Порції до Покупок",
|
||||
"Week_Numbers": "Номер тижня",
|
||||
"Show_Week_Numbers": "Показати номер тижня?",
|
||||
"Export_As_ICal": "Експортувати теперішній період до формату iCal",
|
||||
"Export_To_ICal": "Експортувати .ics",
|
||||
"Cannot_Add_Notes_To_Shopping": "Нотатки не можуть бути доданими до списку покупок",
|
||||
"Added_To_Shopping_List": "Додано до списку покупок",
|
||||
"Shopping_List_Empty": "Ваш список покупок зараз пустий, ви можете додати товари за допомогою контекстного меню плану харчування (права кнопка мишки на картку або на ліву кнопку на іконку меню)",
|
||||
"Next_Period": "Наступний період",
|
||||
"Previous_Period": "Попередній Період",
|
||||
"Current_Period": "Теперішній Період",
|
||||
"Next_Day": "Наступний День",
|
||||
"Previous_Day": "Попередній День",
|
||||
"Inherit": "Успадкувати",
|
||||
"InheritFields": "Успадкувати Значення Полів",
|
||||
"FoodInherit": "Пола Успадкованої Їжі",
|
||||
"ShowUncategorizedFood": "Показати Невідомо",
|
||||
"GroupBy": "По Групі",
|
||||
"SupermarketCategoriesOnly": "Тільки Категорії Супермаркету",
|
||||
"MoveCategory": "Перемістити До: ",
|
||||
"CountMore": "...+{count} більше",
|
||||
"IgnoreThis": "Ніколи {food} автоматично не додавати до покупок",
|
||||
"DelayFor": "Затримка на {hours} годин",
|
||||
"Warning": "Увага",
|
||||
"NoCategory": "Жодна категорія не вибрана.",
|
||||
"InheritWarning": "",
|
||||
"ShowDelayed": "",
|
||||
"Completed": "",
|
||||
"OfflineAlert": "",
|
||||
"shopping_share": "",
|
||||
"shopping_auto_sync": "",
|
||||
"one_url_per_line": "",
|
||||
"mealplan_autoadd_shopping": "",
|
||||
"ShowDelayed": "Показати Відкладені Предмети",
|
||||
"Completed": "Виконано",
|
||||
"OfflineAlert": "Ви офлайн, список покупок може не синхронізуватися.",
|
||||
"shopping_share": "Поділитися Списком Покупок",
|
||||
"shopping_auto_sync": "Автосинхронізація",
|
||||
"one_url_per_line": "Одна URL на лінію",
|
||||
"mealplan_autoadd_shopping": "Автоматично Додати План Харчування",
|
||||
"mealplan_autoexclude_onhand": "",
|
||||
"mealplan_autoinclude_related": "",
|
||||
"mealplan_autoinclude_related": "Додати Пов'язані Рецепти",
|
||||
"default_delay": "",
|
||||
"shopping_share_desc": "",
|
||||
"shopping_share_desc": "Користувачі будуть бачати всі елементи, які ви додаєте до списку покупок. Вони мають додати вас, щоб бачати елементи в їх списках.",
|
||||
"shopping_auto_sync_desc": "",
|
||||
"mealplan_autoadd_shopping_desc": "",
|
||||
"mealplan_autoexclude_onhand_desc": "",
|
||||
@@ -419,5 +419,24 @@
|
||||
"Use_Plural_Unit_Simple": "",
|
||||
"Use_Plural_Food_Always": "",
|
||||
"Use_Plural_Food_Simple": "",
|
||||
"plural_usage_info": ""
|
||||
"plural_usage_info": "",
|
||||
"warning_space_delete": "Ви можете видалити ваш простір разом зі всіма рецептами, списками покупок, планами харчування і всім іншим, що ви створили. Ця дія незворотня! Ви впевнені, що бажаєте це зробити?",
|
||||
"facet_count_info": "Показати кількість рецептів на полі пошуку.",
|
||||
"Amount": "Кількість",
|
||||
"Auto_Sort": "Автоматичне сортування",
|
||||
"Auto_Sort_Help": "Перемістити всі інгредієнти до більш підходящого кроку.",
|
||||
"reusable_help_text": "Запрошувальне посилання має бути тільки для одного користувача.",
|
||||
"Copy Token": "Скопіювати Токен",
|
||||
"Decimals": "Десятки",
|
||||
"Language": "Мова",
|
||||
"Theme": "Тема",
|
||||
"Private_Recipe": "Приватний Рецепт",
|
||||
"Private_Recipe_Help": "Рецепт показаний тільки Вам і тими з ким ви поділилися їм.",
|
||||
"Description_Replace": "Замінити Опис",
|
||||
"Instruction_Replace": "Замінити Інструкцію",
|
||||
"Use_Fractions": "Використовувати дроби",
|
||||
"Use_Fractions_Help": "Автоматично конвертувати десятки в дроби, коли дивитесь рецепт.",
|
||||
"Copy Link": "Скопіювати Посилання",
|
||||
"Original_Text": "Оригінальний текст",
|
||||
"Default_Unit": "Одиниця замовчуванням"
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
// These JavaScript module imports need to be bundled:
|
||||
import {precacheAndRoute} from 'workbox-precaching';
|
||||
import {registerRoute, setCatchHandler} from 'workbox-routing';
|
||||
import {CacheFirst, NetworkFirst, StaleWhileRevalidate} from 'workbox-strategies';
|
||||
import {CacheFirst, NetworkFirst, NetworkOnly, StaleWhileRevalidate} from 'workbox-strategies';
|
||||
import {ExpirationPlugin} from 'workbox-expiration';
|
||||
import {BackgroundSyncPlugin, Queue} from "workbox-background-sync";
|
||||
|
||||
|
||||
const OFFLINE_CACHE_NAME = 'offline-html';
|
||||
@@ -77,6 +78,39 @@ registerRoute(
|
||||
})
|
||||
)
|
||||
|
||||
const queue = new Queue('shopping-sync-queue', {
|
||||
maxRetentionTime: 7 * 24 * 60,
|
||||
});
|
||||
|
||||
registerRoute(
|
||||
new RegExp('api/shopping-list-entry/([0-9]+)'),
|
||||
new NetworkOnly({
|
||||
plugins: [
|
||||
{
|
||||
fetchDidFail: async ({request}) => {
|
||||
await queue.pushRequest({request});
|
||||
},
|
||||
}
|
||||
],
|
||||
}),
|
||||
'PATCH'
|
||||
)
|
||||
|
||||
addEventListener('message', (event) => {
|
||||
if (event.data.type === 'BGSYNC_REPLAY_REQUESTS') {
|
||||
queue.replayRequests().then((r) => {
|
||||
event.ports[0].postMessage('REPLAY_SUCCESS SW');
|
||||
}).catch((err) => {
|
||||
event.ports[0].postMessage('REPLAY_FAILURE');
|
||||
});
|
||||
}
|
||||
if (event.data.type === 'BGSYNC_COUNT_QUEUE') {
|
||||
queue.getAll().then((r) => {
|
||||
event.ports[0].postMessage(r.length);
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
registerRoute(
|
||||
new RegExp('api/*'),
|
||||
new NetworkFirst({
|
||||
|
||||
@@ -359,6 +359,7 @@ export const ApiMixin = {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// if passing parameters that are not part of the offical schema of the endpoint use parameter: options: {query: {simple: 1}}
|
||||
genericAPI: function (model, action, options) {
|
||||
let setup = getConfig(model, action)
|
||||
if (setup?.config?.function) {
|
||||
|
||||
420
vue/yarn.lock
420
vue/yarn.lock
@@ -158,9 +158,9 @@
|
||||
"@babel/highlight" "^7.18.6"
|
||||
|
||||
"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5":
|
||||
version "7.20.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec"
|
||||
integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==
|
||||
version "7.20.14"
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8"
|
||||
integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==
|
||||
|
||||
"@babel/core@^7.1.6", "@babel/core@^7.10.3", "@babel/core@^7.11.1", "@babel/core@^7.12.16", "@babel/core@^7.8.4":
|
||||
version "7.20.12"
|
||||
@@ -193,9 +193,9 @@
|
||||
semver "^6.3.0"
|
||||
|
||||
"@babel/generator@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a"
|
||||
integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==
|
||||
version "7.20.14"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce"
|
||||
integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==
|
||||
dependencies:
|
||||
"@babel/types" "^7.20.7"
|
||||
"@jridgewell/gen-mapping" "^0.3.2"
|
||||
@@ -415,9 +415,9 @@
|
||||
js-tokens "^4.0.0"
|
||||
|
||||
"@babel/parser@^7.1.6", "@babel/parser@^7.16.4", "@babel/parser@^7.18.4", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7", "@babel/parser@^7.7.0":
|
||||
version "7.20.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.13.tgz#ddf1eb5a813588d2fb1692b70c6fce75b945c088"
|
||||
integrity sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==
|
||||
version "7.20.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89"
|
||||
integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==
|
||||
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
|
||||
version "7.18.6"
|
||||
@@ -732,9 +732,9 @@
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-block-scoping@^7.20.2":
|
||||
version "7.20.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz#9f5a3424bd112a3f32fe0cf9364fbb155cff262a"
|
||||
integrity sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==
|
||||
version "7.20.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz#3e1b2aa9cbbe1eb8d644c823141a9c5c2a22392d"
|
||||
integrity sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
|
||||
@@ -1109,6 +1109,11 @@
|
||||
pirates "^4.0.5"
|
||||
source-map-support "^0.5.16"
|
||||
|
||||
"@babel/regjsgen@^0.8.0":
|
||||
version "0.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
|
||||
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
|
||||
|
||||
"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.0", "@babel/runtime@^7.18.6", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4":
|
||||
version "7.20.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b"
|
||||
@@ -1178,31 +1183,31 @@
|
||||
"@graphql-tools/utils" "8.9.0"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/merge@8.3.15":
|
||||
version "8.3.15"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.15.tgz#9b24ee5e9c36074684515c7d1587cd3e200c8a8f"
|
||||
integrity sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==
|
||||
"@graphql-tools/merge@8.3.18":
|
||||
version "8.3.18"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.18.tgz#bfbb517c68598a885809f16ce5c3bb1ebb8f04a2"
|
||||
integrity sha512-R8nBglvRWPAyLpZL/f3lxsY7wjnAeE0l056zHhcO/CgpvK76KYUt9oEkR05i8Hmt8DLRycBN0FiotJ0yDQWTVA==
|
||||
dependencies:
|
||||
"@graphql-tools/utils" "9.1.4"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/mock@^8.1.2":
|
||||
version "8.7.15"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.15.tgz#057714064ea99340bf89e95b5595b1921d406495"
|
||||
integrity sha512-0zImG5tuObhowqtijlB6TMAIVtCIBsnGGwNW8gnCOa+xZAqfGdUMsSma17tHC2XuI7xhv7A0O8pika9e3APLUg==
|
||||
version "8.7.18"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.18.tgz#12a3eee55e406197b81dca570d062918db206b2e"
|
||||
integrity sha512-ZbXMp86V0DmfgUZhr5aGHtNIS2hBazhvTpPlFCyNOP+RMio3ErKnSsma3T1jV1ZyMo11l7QrxV9Xxn3uA0dv+w==
|
||||
dependencies:
|
||||
"@graphql-tools/schema" "9.0.13"
|
||||
"@graphql-tools/utils" "9.1.4"
|
||||
"@graphql-tools/schema" "9.0.16"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
fast-json-stable-stringify "^2.1.0"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/schema@9.0.13":
|
||||
version "9.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.13.tgz#56b994777df29ac36586a3200fb6397abf7b9d83"
|
||||
integrity sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==
|
||||
"@graphql-tools/schema@9.0.16":
|
||||
version "9.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.16.tgz#7d340d69e6094dc01a2b9e625c7bb4fff89ea521"
|
||||
integrity sha512-kF+tbYPPf/6K2aHG3e1SWIbapDLQaqnIHVRG6ow3onkFoowwtKszvUyOASL6Krcv2x9bIMvd1UkvRf9OaoROQQ==
|
||||
dependencies:
|
||||
"@graphql-tools/merge" "8.3.15"
|
||||
"@graphql-tools/utils" "9.1.4"
|
||||
"@graphql-tools/merge" "8.3.18"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
tslib "^2.4.0"
|
||||
value-or-promise "1.0.12"
|
||||
|
||||
@@ -1223,13 +1228,19 @@
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/utils@9.1.4":
|
||||
version "9.1.4"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.1.4.tgz#2c9e0aefc9655dd73247667befe3c850ec014f3f"
|
||||
integrity sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==
|
||||
"@graphql-tools/utils@9.2.1":
|
||||
version "9.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57"
|
||||
integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==
|
||||
dependencies:
|
||||
"@graphql-typed-document-node/core" "^3.1.1"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-typed-document-node/core@^3.1.1":
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052"
|
||||
integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==
|
||||
|
||||
"@hapi/address@2.x.x":
|
||||
version "2.1.4"
|
||||
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
|
||||
@@ -1639,9 +1650,9 @@
|
||||
"@types/estree" "*"
|
||||
|
||||
"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1":
|
||||
version "8.4.10"
|
||||
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb"
|
||||
integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==
|
||||
version "8.21.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.0.tgz#21724cfe12b96696feafab05829695d4d7bd7c48"
|
||||
integrity sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==
|
||||
dependencies:
|
||||
"@types/estree" "*"
|
||||
"@types/json-schema" "*"
|
||||
@@ -1661,10 +1672,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
|
||||
integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
|
||||
|
||||
"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.31":
|
||||
version "4.17.32"
|
||||
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz#93dda387f5516af616d8d3f05f2c4c79d81e1b82"
|
||||
integrity sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==
|
||||
"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.33":
|
||||
version "4.17.33"
|
||||
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543"
|
||||
integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
"@types/qs" "*"
|
||||
@@ -1680,12 +1691,12 @@
|
||||
"@types/range-parser" "*"
|
||||
|
||||
"@types/express@*", "@types/express@^4.17.13":
|
||||
version "4.17.15"
|
||||
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff"
|
||||
integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==
|
||||
version "4.17.17"
|
||||
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4"
|
||||
integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==
|
||||
dependencies:
|
||||
"@types/body-parser" "*"
|
||||
"@types/express-serve-static-core" "^4.17.31"
|
||||
"@types/express-serve-static-core" "^4.17.33"
|
||||
"@types/qs" "*"
|
||||
"@types/serve-static" "*"
|
||||
|
||||
@@ -1747,9 +1758,9 @@
|
||||
integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
|
||||
|
||||
"@types/node@*":
|
||||
version "18.11.18"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f"
|
||||
integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==
|
||||
version "18.13.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.13.0.tgz#0400d1e6ce87e9d3032c19eb6c58205b0d3f7850"
|
||||
integrity sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==
|
||||
|
||||
"@types/node@^10.1.0":
|
||||
version "10.17.60"
|
||||
@@ -1871,14 +1882,15 @@
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^5.0.0":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz#112e6ae1e23a1dc8333ce82bb9c65c2608b4d8a3"
|
||||
integrity sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz#da3f2819633061ced84bb82c53bba45a6fe9963a"
|
||||
integrity sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.48.2"
|
||||
"@typescript-eslint/type-utils" "5.48.2"
|
||||
"@typescript-eslint/utils" "5.48.2"
|
||||
"@typescript-eslint/scope-manager" "5.51.0"
|
||||
"@typescript-eslint/type-utils" "5.51.0"
|
||||
"@typescript-eslint/utils" "5.51.0"
|
||||
debug "^4.3.4"
|
||||
grapheme-splitter "^1.0.4"
|
||||
ignore "^5.2.0"
|
||||
natural-compare-lite "^1.4.0"
|
||||
regexpp "^3.2.0"
|
||||
@@ -1898,13 +1910,13 @@
|
||||
eslint-utils "^3.0.0"
|
||||
|
||||
"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.47.1":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.2.tgz#c9edef2a0922d26a37dba03be20c5fff378313b3"
|
||||
integrity sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.51.0.tgz#2d74626652096d966ef107f44b9479f02f51f271"
|
||||
integrity sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.48.2"
|
||||
"@typescript-eslint/types" "5.48.2"
|
||||
"@typescript-eslint/typescript-estree" "5.48.2"
|
||||
"@typescript-eslint/scope-manager" "5.51.0"
|
||||
"@typescript-eslint/types" "5.51.0"
|
||||
"@typescript-eslint/typescript-estree" "5.51.0"
|
||||
debug "^4.3.4"
|
||||
|
||||
"@typescript-eslint/scope-manager@4.33.0":
|
||||
@@ -1915,21 +1927,21 @@
|
||||
"@typescript-eslint/types" "4.33.0"
|
||||
"@typescript-eslint/visitor-keys" "4.33.0"
|
||||
|
||||
"@typescript-eslint/scope-manager@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz#bb7676cb78f1e94921eaab637a4b5d596f838abc"
|
||||
integrity sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==
|
||||
"@typescript-eslint/scope-manager@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz#ad3e3c2ecf762d9a4196c0fbfe19b142ac498990"
|
||||
integrity sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.48.2"
|
||||
"@typescript-eslint/visitor-keys" "5.48.2"
|
||||
"@typescript-eslint/types" "5.51.0"
|
||||
"@typescript-eslint/visitor-keys" "5.51.0"
|
||||
|
||||
"@typescript-eslint/type-utils@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz#7d3aeca9fa37a7ab7e3d9056a99b42f342c48ad7"
|
||||
integrity sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==
|
||||
"@typescript-eslint/type-utils@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz#7af48005531700b62a20963501d47dfb27095988"
|
||||
integrity sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree" "5.48.2"
|
||||
"@typescript-eslint/utils" "5.48.2"
|
||||
"@typescript-eslint/typescript-estree" "5.51.0"
|
||||
"@typescript-eslint/utils" "5.51.0"
|
||||
debug "^4.3.4"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
@@ -1938,10 +1950,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72"
|
||||
integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==
|
||||
|
||||
"@typescript-eslint/types@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e"
|
||||
integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==
|
||||
"@typescript-eslint/types@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.51.0.tgz#e7c1622f46c7eea7e12bbf1edfb496d4dec37c90"
|
||||
integrity sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==
|
||||
|
||||
"@typescript-eslint/typescript-estree@4.33.0":
|
||||
version "4.33.0"
|
||||
@@ -1956,29 +1968,29 @@
|
||||
semver "^7.3.5"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/typescript-estree@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0"
|
||||
integrity sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==
|
||||
"@typescript-eslint/typescript-estree@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz#0ec8170d7247a892c2b21845b06c11eb0718f8de"
|
||||
integrity sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.48.2"
|
||||
"@typescript-eslint/visitor-keys" "5.48.2"
|
||||
"@typescript-eslint/types" "5.51.0"
|
||||
"@typescript-eslint/visitor-keys" "5.51.0"
|
||||
debug "^4.3.4"
|
||||
globby "^11.1.0"
|
||||
is-glob "^4.0.3"
|
||||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/utils@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.2.tgz#3777a91dcb22b8499a25519e06eef2e9569295a3"
|
||||
integrity sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==
|
||||
"@typescript-eslint/utils@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.51.0.tgz#074f4fabd5b12afe9c8aa6fdee881c050f8b4d47"
|
||||
integrity sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.9"
|
||||
"@types/semver" "^7.3.12"
|
||||
"@typescript-eslint/scope-manager" "5.48.2"
|
||||
"@typescript-eslint/types" "5.48.2"
|
||||
"@typescript-eslint/typescript-estree" "5.48.2"
|
||||
"@typescript-eslint/scope-manager" "5.51.0"
|
||||
"@typescript-eslint/types" "5.51.0"
|
||||
"@typescript-eslint/typescript-estree" "5.51.0"
|
||||
eslint-scope "^5.1.1"
|
||||
eslint-utils "^3.0.0"
|
||||
semver "^7.3.7"
|
||||
@@ -1991,12 +2003,12 @@
|
||||
"@typescript-eslint/types" "4.33.0"
|
||||
eslint-visitor-keys "^2.0.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz#c247582a0bcce467461d7b696513bf9455000060"
|
||||
integrity sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==
|
||||
"@typescript-eslint/visitor-keys@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz#c0147dd9a36c0de758aaebd5b48cae1ec59eba87"
|
||||
integrity sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.48.2"
|
||||
"@typescript-eslint/types" "5.51.0"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
"@vue/babel-helper-vue-jsx-merge-props@^1.4.0":
|
||||
@@ -2351,23 +2363,23 @@
|
||||
vue-codemod "^0.0.5"
|
||||
yaml-front-matter "^4.1.0"
|
||||
|
||||
"@vue/compiler-core@3.2.45", "@vue/compiler-core@^3.0.5":
|
||||
version "3.2.45"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz#d9311207d96f6ebd5f4660be129fb99f01ddb41b"
|
||||
integrity sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==
|
||||
"@vue/compiler-core@3.2.47", "@vue/compiler-core@^3.0.5":
|
||||
version "3.2.47"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz#3e07c684d74897ac9aa5922c520741f3029267f8"
|
||||
integrity sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.16.4"
|
||||
"@vue/shared" "3.2.45"
|
||||
"@vue/shared" "3.2.47"
|
||||
estree-walker "^2.0.2"
|
||||
source-map "^0.6.1"
|
||||
|
||||
"@vue/compiler-dom@3.2.45", "@vue/compiler-dom@^3.0.5":
|
||||
version "3.2.45"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz#c43cc15e50da62ecc16a42f2622d25dc5fd97dce"
|
||||
integrity sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==
|
||||
"@vue/compiler-dom@3.2.47", "@vue/compiler-dom@^3.0.5":
|
||||
version "3.2.47"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz#a0b06caf7ef7056939e563dcaa9cbde30794f305"
|
||||
integrity sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==
|
||||
dependencies:
|
||||
"@vue/compiler-core" "3.2.45"
|
||||
"@vue/shared" "3.2.45"
|
||||
"@vue/compiler-core" "3.2.47"
|
||||
"@vue/shared" "3.2.47"
|
||||
|
||||
"@vue/compiler-sfc@2.7.14":
|
||||
version "2.7.14"
|
||||
@@ -2379,28 +2391,28 @@
|
||||
source-map "^0.6.1"
|
||||
|
||||
"@vue/compiler-sfc@^3.2.45":
|
||||
version "3.2.45"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz#7f7989cc04ec9e7c55acd406827a2c4e96872c70"
|
||||
integrity sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==
|
||||
version "3.2.47"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz#1bdc36f6cdc1643f72e2c397eb1a398f5004ad3d"
|
||||
integrity sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.16.4"
|
||||
"@vue/compiler-core" "3.2.45"
|
||||
"@vue/compiler-dom" "3.2.45"
|
||||
"@vue/compiler-ssr" "3.2.45"
|
||||
"@vue/reactivity-transform" "3.2.45"
|
||||
"@vue/shared" "3.2.45"
|
||||
"@vue/compiler-core" "3.2.47"
|
||||
"@vue/compiler-dom" "3.2.47"
|
||||
"@vue/compiler-ssr" "3.2.47"
|
||||
"@vue/reactivity-transform" "3.2.47"
|
||||
"@vue/shared" "3.2.47"
|
||||
estree-walker "^2.0.2"
|
||||
magic-string "^0.25.7"
|
||||
postcss "^8.1.10"
|
||||
source-map "^0.6.1"
|
||||
|
||||
"@vue/compiler-ssr@3.2.45":
|
||||
version "3.2.45"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz#bd20604b6e64ea15344d5b6278c4141191c983b2"
|
||||
integrity sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==
|
||||
"@vue/compiler-ssr@3.2.47":
|
||||
version "3.2.47"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz#35872c01a273aac4d6070ab9d8da918ab13057ee"
|
||||
integrity sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==
|
||||
dependencies:
|
||||
"@vue/compiler-dom" "3.2.45"
|
||||
"@vue/shared" "3.2.45"
|
||||
"@vue/compiler-dom" "3.2.47"
|
||||
"@vue/shared" "3.2.47"
|
||||
|
||||
"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.3.0":
|
||||
version "3.3.0"
|
||||
@@ -2427,21 +2439,21 @@
|
||||
"@typescript-eslint/parser" "^5.0.0"
|
||||
vue-eslint-parser "^8.0.0"
|
||||
|
||||
"@vue/reactivity-transform@3.2.45":
|
||||
version "3.2.45"
|
||||
resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz#07ac83b8138550c83dfb50db43cde1e0e5e8124d"
|
||||
integrity sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==
|
||||
"@vue/reactivity-transform@3.2.47":
|
||||
version "3.2.47"
|
||||
resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz#e45df4d06370f8abf29081a16afd25cffba6d84e"
|
||||
integrity sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.16.4"
|
||||
"@vue/compiler-core" "3.2.45"
|
||||
"@vue/shared" "3.2.45"
|
||||
"@vue/compiler-core" "3.2.47"
|
||||
"@vue/shared" "3.2.47"
|
||||
estree-walker "^2.0.2"
|
||||
magic-string "^0.25.7"
|
||||
|
||||
"@vue/shared@3.2.45":
|
||||
version "3.2.45"
|
||||
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.45.tgz#a3fffa7489eafff38d984e23d0236e230c818bc2"
|
||||
integrity sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==
|
||||
"@vue/shared@3.2.47":
|
||||
version "3.2.47"
|
||||
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.47.tgz#e597ef75086c6e896ff5478a6bfc0a7aa4bbd14c"
|
||||
integrity sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==
|
||||
|
||||
"@vue/vue-loader-v15@npm:vue-loader@^15.9.7":
|
||||
version "15.10.1"
|
||||
@@ -2769,9 +2781,9 @@ acorn@^7.1.0, acorn@^7.4.0:
|
||||
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
|
||||
|
||||
acorn@^8.0.4, acorn@^8.0.5, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0:
|
||||
version "8.8.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73"
|
||||
integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
|
||||
version "8.8.2"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
|
||||
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
|
||||
|
||||
address@^1.1.2:
|
||||
version "1.2.2"
|
||||
@@ -3119,9 +3131,9 @@ astral-regex@^2.0.0:
|
||||
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
||||
|
||||
async-each@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
|
||||
integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77"
|
||||
integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==
|
||||
|
||||
async-retry@^1.2.1:
|
||||
version "1.3.3"
|
||||
@@ -3175,9 +3187,9 @@ available-typed-arrays@^1.0.5:
|
||||
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
|
||||
|
||||
axios@^1.2.0:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.3.tgz#31a3d824c0ebf754a004b585e5f04a5f87e6c4ff"
|
||||
integrity sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.2.tgz#7ac517f0fa3ec46e0e636223fd973713a09c72b3"
|
||||
integrity sha512-1M3O703bYqYuPhbHeya5bnhpYVsDDRyQSabNja04mZtboLNSuZ4YrltestrLXfHgmzua4TpUqRiVKbiQuo2epw==
|
||||
dependencies:
|
||||
follow-redirects "^1.15.0"
|
||||
form-data "^4.0.0"
|
||||
@@ -3664,14 +3676,14 @@ browserify-zlib@^0.2.0:
|
||||
pako "~1.0.5"
|
||||
|
||||
browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.3, browserslist@^4.16.6, browserslist@^4.21.3, browserslist@^4.21.4:
|
||||
version "4.21.4"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
|
||||
integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
|
||||
version "4.21.5"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
|
||||
integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30001400"
|
||||
electron-to-chromium "^1.4.251"
|
||||
node-releases "^2.0.6"
|
||||
update-browserslist-db "^1.0.9"
|
||||
caniuse-lite "^1.0.30001449"
|
||||
electron-to-chromium "^1.4.284"
|
||||
node-releases "^2.0.8"
|
||||
update-browserslist-db "^1.0.10"
|
||||
|
||||
btoa@^1.2.1:
|
||||
version "1.2.1"
|
||||
@@ -3843,10 +3855,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.30001400, caniuse-lite@^1.0.30001426:
|
||||
version "1.0.30001447"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001447.tgz#ef1f39ae38d839d7176713735a8e467a0a2523bd"
|
||||
integrity sha512-bdKU1BQDPeEXe9A39xJnGtY0uRq/z5osrnXUw0TcK+EYno45Y+U7QU9HhHEyzvMDffpYadFXi3idnSNkcwLkTw==
|
||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001426, caniuse-lite@^1.0.30001449:
|
||||
version "1.0.30001451"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz#2e197c698fc1373d63e1406d6607ea4617c613f1"
|
||||
integrity sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==
|
||||
|
||||
canvg@^3.0.6:
|
||||
version "3.0.10"
|
||||
@@ -4286,9 +4298,9 @@ content-disposition@0.5.4, content-disposition@^0.5.2:
|
||||
safe-buffer "5.2.1"
|
||||
|
||||
content-type@~1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
|
||||
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
|
||||
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
|
||||
|
||||
convert-source-map@^1.5.1, convert-source-map@^1.7.0:
|
||||
version "1.9.0"
|
||||
@@ -4718,9 +4730,9 @@ deepmerge@^1.5.2:
|
||||
integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
|
||||
|
||||
deepmerge@^4.2.0, deepmerge@^4.2.2:
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
|
||||
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b"
|
||||
integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==
|
||||
|
||||
default-gateway@^6.0.3:
|
||||
version "6.0.3"
|
||||
@@ -5003,10 +5015,10 @@ ejs@^3.1.6:
|
||||
dependencies:
|
||||
jake "^10.8.5"
|
||||
|
||||
electron-to-chromium@^1.4.251:
|
||||
version "1.4.284"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
|
||||
integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
|
||||
electron-to-chromium@^1.4.284:
|
||||
version "1.4.289"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.289.tgz#02b59b1096486fc0bd4871a0484d8317802c6658"
|
||||
integrity sha512-relLdMfPBxqGCxy7Gyfm1HcbRPcFUJdlgnCPVgQ23sr1TvUrRJz0/QPoGP0+x41wOVSTN/Wi3w6YDgHiHJGOzg==
|
||||
|
||||
elliptic@^6.5.3:
|
||||
version "6.5.4"
|
||||
@@ -5030,9 +5042,9 @@ emoji-mart-vue-fast@^12.0.1:
|
||||
core-js "^3.23.5"
|
||||
|
||||
emoji-mart@^5.4.0:
|
||||
version "5.5.1"
|
||||
resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-5.5.1.tgz#b0c5bd11b3b9558fd8f5e35225369628e0226d4c"
|
||||
integrity sha512-16hsygz4oz7BVi0tGEWZRQXs4+KC3IyR1s2uftRECYyLstZHoIUAceZ+VvEMhEZUpWtEKMWBTjgGJJVDBuOIVQ==
|
||||
version "5.5.2"
|
||||
resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-5.5.2.tgz#3ddbaf053139cf4aa217650078bc1c50ca8381af"
|
||||
integrity sha512-Sqc/nso4cjxhOwWJsp9xkVm8OF5c+mJLZJFoFfzRuKO+yWiN7K8c96xmtughYb0d/fZ8UC6cLIQ/p4BR6Pv3/A==
|
||||
|
||||
emoji-regex@^7.0.1:
|
||||
version "7.0.3"
|
||||
@@ -5827,9 +5839,9 @@ flatted@^3.1.0:
|
||||
integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
|
||||
|
||||
flow-parser@0.*:
|
||||
version "0.198.1"
|
||||
resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.198.1.tgz#56a77de3637c0f39284d4a112868f0cbfaa72012"
|
||||
integrity sha512-WgmXdj+QWApMqtnMTeG7bF6tpX/+jsH5r/i61ukFCSXVgsaldLa/KOy+hcwQ3dbxsMGYM5iLQme6Z0/s0z2OkQ==
|
||||
version "0.199.1"
|
||||
resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.199.1.tgz#d2e37d3ccd3a4301738a429079a41320a54ada57"
|
||||
integrity sha512-Mt+GFUQYij3miM7Z6o8E3aHTGXZKSOhvlCFgdQRoi6fkWfhyijnoX51zpOxM5PmZuiV6gallWhDZzwOsWxRutg==
|
||||
|
||||
flush-write-stream@^1.0.0:
|
||||
version "1.1.1"
|
||||
@@ -6144,9 +6156,9 @@ globals@^11.1.0:
|
||||
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
||||
|
||||
globals@^13.6.0, globals@^13.9.0:
|
||||
version "13.19.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8"
|
||||
integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==
|
||||
version "13.20.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82"
|
||||
integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
|
||||
dependencies:
|
||||
type-fest "^0.20.2"
|
||||
|
||||
@@ -6216,6 +6228,11 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
|
||||
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
|
||||
|
||||
grapheme-splitter@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
|
||||
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
|
||||
|
||||
graphql-subscriptions@^1.2.0:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d"
|
||||
@@ -8051,9 +8068,9 @@ no-case@^3.0.4:
|
||||
tslib "^2.0.3"
|
||||
|
||||
node-abort-controller@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.0.1.tgz#f91fa50b1dee3f909afabb7e261b1e1d6b0cb74e"
|
||||
integrity sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548"
|
||||
integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==
|
||||
|
||||
node-dir@^0.1.17:
|
||||
version "0.1.17"
|
||||
@@ -8063,9 +8080,9 @@ node-dir@^0.1.17:
|
||||
minimatch "^3.0.2"
|
||||
|
||||
node-fetch@^2.6.7:
|
||||
version "2.6.8"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e"
|
||||
integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==
|
||||
version "2.6.9"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6"
|
||||
integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==
|
||||
dependencies:
|
||||
whatwg-url "^5.0.0"
|
||||
|
||||
@@ -8115,10 +8132,10 @@ node-notifier@^10.0.0:
|
||||
uuid "^8.3.2"
|
||||
which "^2.0.2"
|
||||
|
||||
node-releases@^2.0.6:
|
||||
version "2.0.8"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae"
|
||||
integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==
|
||||
node-releases@^2.0.8:
|
||||
version "2.0.10"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
|
||||
integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
|
||||
|
||||
normalize-package-data@^2.5.0:
|
||||
version "2.5.0"
|
||||
@@ -8282,9 +8299,9 @@ onetime@^5.1.0, onetime@^5.1.2:
|
||||
mimic-fn "^2.1.0"
|
||||
|
||||
open@^8.0.2, open@^8.0.9:
|
||||
version "8.4.0"
|
||||
resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8"
|
||||
integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==
|
||||
version "8.4.1"
|
||||
resolved "https://registry.yarnpkg.com/open/-/open-8.4.1.tgz#2ab3754c07f5d1f99a7a8d6a82737c95e3101cff"
|
||||
integrity sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==
|
||||
dependencies:
|
||||
define-lazy-prop "^2.0.0"
|
||||
is-docker "^2.1.1"
|
||||
@@ -8962,9 +8979,9 @@ prepend-http@^2.0.0:
|
||||
integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==
|
||||
|
||||
"prettier@^1.18.2 || ^2.0.0":
|
||||
version "2.8.3"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632"
|
||||
integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==
|
||||
version "2.8.4"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3"
|
||||
integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==
|
||||
|
||||
pretty-bytes@^5.3.0, pretty-bytes@^5.4.1:
|
||||
version "5.6.0"
|
||||
@@ -9317,22 +9334,17 @@ regexpp@^3.1.0, regexpp@^3.2.0:
|
||||
integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
|
||||
|
||||
regexpu-core@^5.2.1:
|
||||
version "5.2.2"
|
||||
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc"
|
||||
integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==
|
||||
version "5.3.0"
|
||||
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.0.tgz#4d0d044b76fedbad6238703ae84bfdedee2cf074"
|
||||
integrity sha512-ZdhUQlng0RoscyW7jADnUZ25F5eVtHdMyXSb2PiwafvteRAOJUjFoUPEYZSIfP99fBIs3maLIRfpEddT78wAAQ==
|
||||
dependencies:
|
||||
"@babel/regjsgen" "^0.8.0"
|
||||
regenerate "^1.4.2"
|
||||
regenerate-unicode-properties "^10.1.0"
|
||||
regjsgen "^0.7.1"
|
||||
regjsparser "^0.9.1"
|
||||
unicode-match-property-ecmascript "^2.0.0"
|
||||
unicode-match-property-value-ecmascript "^2.1.0"
|
||||
|
||||
regjsgen@^0.7.1:
|
||||
version "0.7.1"
|
||||
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6"
|
||||
integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==
|
||||
|
||||
regjsparser@^0.9.1:
|
||||
version "0.9.1"
|
||||
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
|
||||
@@ -9843,9 +9855,9 @@ shebang-regex@^3.0.0:
|
||||
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
||||
|
||||
shell-quote@^1.7.3:
|
||||
version "1.7.4"
|
||||
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8"
|
||||
integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba"
|
||||
integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==
|
||||
|
||||
shellwords@^0.1.1:
|
||||
version "0.1.1"
|
||||
@@ -10546,9 +10558,9 @@ terser@^4.1.2, terser@^4.6.2:
|
||||
source-map-support "~0.5.12"
|
||||
|
||||
terser@^5.0.0, terser@^5.10.0, terser@^5.14.1:
|
||||
version "5.16.1"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880"
|
||||
integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==
|
||||
version "5.16.3"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.3.tgz#3266017a9b682edfe019b8ecddd2abaae7b39c6b"
|
||||
integrity sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==
|
||||
dependencies:
|
||||
"@jridgewell/source-map" "^0.3.2"
|
||||
acorn "^8.5.0"
|
||||
@@ -10736,9 +10748,9 @@ tslib@^1.8.1, tslib@^1.9.0:
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
|
||||
tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
|
||||
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
|
||||
integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
|
||||
|
||||
tsutils@^3.21.0:
|
||||
version "3.21.0"
|
||||
@@ -10824,9 +10836,9 @@ typescript@~4.5.5:
|
||||
integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
|
||||
|
||||
typescript@~4.9.3:
|
||||
version "4.9.4"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78"
|
||||
integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==
|
||||
version "4.9.5"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
|
||||
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
|
||||
|
||||
unbox-primitive@^1.0.2:
|
||||
version "1.0.2"
|
||||
@@ -10935,7 +10947,7 @@ upath@^1.1.1, upath@^1.1.2, upath@^1.2.0:
|
||||
resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
|
||||
integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
|
||||
|
||||
update-browserslist-db@^1.0.9:
|
||||
update-browserslist-db@^1.0.10:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
|
||||
integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
|
||||
|
||||
Reference in New Issue
Block a user