diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 91ce5b097..627ce29e5 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -12,7 +12,7 @@ repos:
exclude: ^tests/data/
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
- rev: v0.12.4
+ rev: v0.12.5
hooks:
- id: ruff
- id: ruff-format
diff --git a/frontend/components/Domain/Recipe/RecipeCardMobile.vue b/frontend/components/Domain/Recipe/RecipeCardMobile.vue
index c6c0cdbec..e5d74569d 100644
--- a/frontend/components/Domain/Recipe/RecipeCardMobile.vue
+++ b/frontend/components/Domain/Recipe/RecipeCardMobile.vue
@@ -3,7 +3,10 @@
diff --git a/frontend/components/Domain/Recipe/RecipePage/RecipePage.vue b/frontend/components/Domain/Recipe/RecipePage/RecipePage.vue
index 46eda6bbc..6a1f9a3d4 100644
--- a/frontend/components/Domain/Recipe/RecipePage/RecipePage.vue
+++ b/frontend/components/Domain/Recipe/RecipePage/RecipePage.vue
@@ -81,7 +81,7 @@
@@ -278,7 +278,7 @@ async function deleteRecipe() {
* View Preferences
*/
const landscape = computed(() => {
- const preferLandscape = recipe.value.settings.landscapeView;
+ const preferLandscape = recipe.value.settings?.landscapeView;
const smallScreen = !$vuetify.display.smAndUp.value;
if (preferLandscape) {
diff --git a/frontend/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInstructions.vue b/frontend/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInstructions.vue
index 65211b859..fba525a2b 100644
--- a/frontend/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInstructions.vue
+++ b/frontend/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInstructions.vue
@@ -29,33 +29,31 @@
{{ activeText }}
-
-
+
{{ $t("recipe.linked-to-other-step") }}
-
-
+
diff --git a/frontend/components/Domain/Recipe/RecipeTimeline.vue b/frontend/components/Domain/Recipe/RecipeTimeline.vue
index 49ed1694d..56be7b42b 100644
--- a/frontend/components/Domain/Recipe/RecipeTimeline.vue
+++ b/frontend/components/Domain/Recipe/RecipeTimeline.vue
@@ -242,28 +242,28 @@ export default defineNuxtComponent({
alert.success(i18n.t("events.event-deleted") as string);
};
- async function getRecipe(recipeId: string): Promise {
- const { data } = await api.recipes.getOne(recipeId);
- return data;
+ async function getRecipes(recipeIds: string[]): Promise {
+ const qf = "id IN [" + recipeIds.map(id => `"${id}"`).join(", ") + "]";
+ const { data } = await api.recipes.getAll(1, -1, { queryFilter: qf });
+ return data?.items || [];
};
async function updateRecipes(events: RecipeTimelineEventOut[]) {
- const recipePromises: Promise[] = [];
- const seenRecipeIds: string[] = [];
+ const recipeIds: string[] = [];
events.forEach((event) => {
- if (seenRecipeIds.includes(event.recipeId) || recipes.has(event.recipeId)) {
+ if (recipeIds.includes(event.recipeId) || recipes.has(event.recipeId)) {
return;
}
- seenRecipeIds.push(event.recipeId);
- recipePromises.push(getRecipe(event.recipeId));
+ recipeIds.push(event.recipeId);
});
- const results = await Promise.all(recipePromises);
+ const results = await getRecipes(recipeIds);
results.forEach((result) => {
- if (result && result.id) {
- recipes.set(result.id, result);
+ if (!result?.id) {
+ return;
}
+ recipes.set(result.id, result);
});
}
diff --git a/frontend/components/Domain/Recipe/RecipeTimelineItem.vue b/frontend/components/Domain/Recipe/RecipeTimelineItem.vue
index 1913ae36d..531d52241 100644
--- a/frontend/components/Domain/Recipe/RecipeTimelineItem.vue
+++ b/frontend/components/Domain/Recipe/RecipeTimelineItem.vue
@@ -53,6 +53,7 @@
-
-
-
-
-
-
-
+
-
+
diff --git a/frontend/pages/group/data/tools.vue b/frontend/pages/group/data/tools.vue
index 24a1e96c9..3da92758b 100644
--- a/frontend/pages/group/data/tools.vue
+++ b/frontend/pages/group/data/tools.vue
@@ -73,6 +73,7 @@
:title="$t('general.confirm')"
:icon="$globals.icons.alertCircle"
color="error"
+ can-confirm
@confirm="deleteSelected"
>
diff --git a/mealie/repos/seed/resources/foods/locales/el-GR.json b/mealie/repos/seed/resources/foods/locales/el-GR.json
index c8228b93d..57f4b36ca 100644
--- a/mealie/repos/seed/resources/foods/locales/el-GR.json
+++ b/mealie/repos/seed/resources/foods/locales/el-GR.json
@@ -16,8 +16,8 @@
"bell pepper": {
"aliases": [],
"description": "",
- "name": "bell pepper",
- "plural_name": "bell peppers"
+ "name": "στρογγυλή πιπεριά",
+ "plural_name": "στρογγυλές πιπεριές"
},
"carrot": {
"aliases": [],
@@ -168,20 +168,20 @@
"arugula": {
"aliases": [],
"description": "",
- "name": "arugula",
- "plural_name": "arugulas"
+ "name": "ρόκα",
+ "plural_name": "ρόκα"
},
"leek": {
"aliases": [],
"description": "",
- "name": "leek",
- "plural_name": "leeks"
+ "name": "πράσο",
+ "plural_name": "πράσα"
},
"eggplant": {
"aliases": [],
"description": "",
- "name": "eggplant",
- "plural_name": "eggplants"
+ "name": "μελιτζάνα",
+ "plural_name": "μελιτζάνες"
},
"lettuce": {
"aliases": [],
@@ -198,8 +198,8 @@
"romaine": {
"aliases": [],
"description": "",
- "name": "romaine",
- "plural_name": "romaines"
+ "name": "μαρούλι",
+ "plural_name": "μαρούλια"
},
"beetroot": {
"aliases": [],
@@ -210,8 +210,8 @@
"brussels sprout": {
"aliases": [],
"description": "",
- "name": "brussels sprout",
- "plural_name": "brussels sprouts"
+ "name": "λαχανάκι Βρυξελλών",
+ "plural_name": "λαχανάκια Βρυξελλών"
},
"fennel": {
"aliases": [],
@@ -222,8 +222,8 @@
"sun dried tomato": {
"aliases": [],
"description": "",
- "name": "sun dried tomato",
- "plural_name": "sun dried tomatoes"
+ "name": "αποξηραμένη ντομάτα",
+ "plural_name": "αποξηραμένες ντομάτες"
},
"radish": {
"aliases": [],
@@ -628,93 +628,93 @@
"foods": {
"tomato": {
"aliases": [],
- "description": "Yes they are a fruit",
- "name": "tomato",
- "plural_name": "tomatoes"
+ "description": "Σωστά, είναι φρούτο",
+ "name": "ντομάτα",
+ "plural_name": "ντομάτες"
},
"lemon": {
"aliases": [],
"description": "",
- "name": "lemon",
- "plural_name": "lemons"
+ "name": "λεμόνι",
+ "plural_name": "λεμόνια"
},
"lime": {
"aliases": [],
"description": "",
- "name": "lime",
- "plural_name": "limes"
+ "name": "λάιμ",
+ "plural_name": "λάιμ"
},
"apple": {
"aliases": [],
"description": "",
- "name": "apple",
+ "name": "μήλο",
"plural_name": "μήλα"
},
"banana": {
"aliases": [],
"description": "",
- "name": "banana",
- "plural_name": "bananas"
+ "name": "μπανάνα",
+ "plural_name": "μπανάνες"
},
"orange": {
"aliases": [],
"description": "",
- "name": "orange",
- "plural_name": "oranges"
+ "name": "πορτοκάλι",
+ "plural_name": "πορτοκάλια"
},
"raisin": {
"aliases": [],
"description": "",
- "name": "raisin",
- "plural_name": "raisins"
+ "name": "σταφίδα",
+ "plural_name": "σταφίδες"
},
"pineapple": {
"aliases": [],
"description": "",
- "name": "pineapple",
- "plural_name": "pineapples"
+ "name": "ανανάς",
+ "plural_name": "ανανάδες"
},
"mango": {
"aliases": [],
"description": "",
- "name": "mango",
- "plural_name": "mangoes"
+ "name": "μάνγκο",
+ "plural_name": "μάνγκο"
},
"peach": {
"aliases": [],
"description": "",
- "name": "peach",
- "plural_name": "peaches"
+ "name": "ροδάκινο",
+ "plural_name": "ροδάκινα"
},
"date": {
"aliases": [],
"description": "",
- "name": "date",
- "plural_name": "dates"
+ "name": "χουρμάς",
+ "plural_name": "χουρμάδες"
},
"coconut": {
"aliases": [],
"description": "",
- "name": "coconut",
- "plural_name": "coconuts"
+ "name": "καρύδα",
+ "plural_name": "καρύδες"
},
"craisin": {
"aliases": [],
"description": "",
- "name": "craisin",
- "plural_name": "craisins"
+ "name": "αποξηραμένο κράνμπερι",
+ "plural_name": "αποξηραμένα κράνμπερι"
},
"pear": {
"aliases": [],
"description": "",
- "name": "pear",
- "plural_name": "pears"
+ "name": "αχλάδι",
+ "plural_name": "αχλάδια"
},
"grape": {
"aliases": [],
"description": "",
- "name": "grape",
- "plural_name": "grapes"
+ "name": "σταφύλι",
+ "plural_name": "σταφύλια"
},
"pomegranate": {
"aliases": [],
@@ -725,8 +725,8 @@
"watermelon": {
"aliases": [],
"description": "",
- "name": "watermelon",
- "plural_name": "watermelons"
+ "name": "καρπούζι",
+ "plural_name": "καρπούζια"
},
"rhubarb": {
"aliases": [],
@@ -743,8 +743,8 @@
"kiwi": {
"aliases": [],
"description": "",
- "name": "kiwi",
- "plural_name": "kiwis"
+ "name": "ακτινίδιο",
+ "plural_name": "ακτινίδια"
},
"grapefruit": {
"aliases": [],
@@ -821,8 +821,8 @@
"nectarine": {
"aliases": [],
"description": "",
- "name": "nectarine",
- "plural_name": "nectarines"
+ "name": "νεκταρίνι",
+ "plural_name": "νεκταρίνια"
},
"dried fig": {
"aliases": [],
diff --git a/mealie/repos/seed/resources/foods/locales/fr-FR.json b/mealie/repos/seed/resources/foods/locales/fr-FR.json
index 86847bb01..d02ae496e 100644
--- a/mealie/repos/seed/resources/foods/locales/fr-FR.json
+++ b/mealie/repos/seed/resources/foods/locales/fr-FR.json
@@ -14515,8 +14515,8 @@
"rum": {
"aliases": [],
"description": "",
- "name": "rum",
- "plural_name": "rums"
+ "name": "rhum",
+ "plural_name": "rhums"
},
"vodka": {
"aliases": [],
@@ -14581,8 +14581,8 @@
"white rum": {
"aliases": [],
"description": "",
- "name": "white rum",
- "plural_name": "white rums"
+ "name": "rhum blanc",
+ "plural_name": "rhums blancs"
},
"coffee liqueur": {
"aliases": [],
diff --git a/mealie/repos/seed/resources/foods/locales/he-IL.json b/mealie/repos/seed/resources/foods/locales/he-IL.json
index 93b7ab1f0..685be8a40 100644
--- a/mealie/repos/seed/resources/foods/locales/he-IL.json
+++ b/mealie/repos/seed/resources/foods/locales/he-IL.json
@@ -4415,8 +4415,8 @@
"chicken tender": {
"aliases": [],
"description": "",
- "name": "chicken tender",
- "plural_name": "chicken tenders"
+ "name": "שניצלון עוף",
+ "plural_name": "שניצלוני עוף"
},
"turkey sausage": {
"aliases": [],
@@ -4463,8 +4463,8 @@
"cornish hen": {
"aliases": [],
"description": "",
- "name": "cornish hen",
- "plural_name": "cornish hens"
+ "name": "עוף קורניש",
+ "plural_name": "עופות קורניש"
},
"deli turkey": {
"aliases": [],
@@ -4565,8 +4565,8 @@
"foie gra": {
"aliases": [],
"description": "",
- "name": "foie gra",
- "plural_name": "foie gras"
+ "name": "כבד אווז",
+ "plural_name": "כבדי אווז"
},
"chicken giblet": {
"aliases": [],
@@ -4607,8 +4607,8 @@
"chicken andouille": {
"aliases": [],
"description": "",
- "name": "chicken andouille",
- "plural_name": "chicken andouilles"
+ "name": "אנדוי עוף",
+ "plural_name": "אנדוי עוף"
},
"chicken gizzard": {
"aliases": [],
@@ -4631,8 +4631,8 @@
"crispy chicken strip": {
"aliases": [],
"description": "",
- "name": "crispy chicken strip",
- "plural_name": "crispy chicken strips"
+ "name": "שניצלון עוף",
+ "plural_name": "שניצלוני עוף"
},
"ostrich": {
"aliases": [],
@@ -4643,20 +4643,20 @@
"popcorn chicken": {
"aliases": [],
"description": "",
- "name": "popcorn chicken",
- "plural_name": "popcorn chickens"
+ "name": "עוף פופקורן",
+ "plural_name": "עוף פופקורן"
},
"turkey kielbasa": {
"aliases": [],
"description": "",
- "name": "turkey kielbasa",
- "plural_name": "turkey kielbasas"
+ "name": "קילבסה הודו",
+ "plural_name": "קילבסה הודו"
},
"chicken-apple sausage": {
"aliases": [],
"description": "",
- "name": "chicken-apple sausage",
- "plural_name": "chicken-apple sausages"
+ "name": "נקניקיית עוף-תפוח",
+ "plural_name": "נקניקיות עוף-תפוח"
},
"chicken foot": {
"aliases": [],
@@ -4727,8 +4727,8 @@
"duck liver": {
"aliases": [],
"description": "",
- "name": "duck liver",
- "plural_name": "duck livers"
+ "name": "כבד אווז",
+ "plural_name": "כבדי אווז"
},
"guinea fowl": {
"aliases": [],
@@ -4739,8 +4739,8 @@
"smoked turkey wing": {
"aliases": [],
"description": "",
- "name": "smoked turkey wing",
- "plural_name": "smoked turkey wings"
+ "name": "כנף הודו מעושנת",
+ "plural_name": "כנפי הודו מעושנות"
},
"chicken curry-cut": {
"aliases": [],
@@ -4751,8 +4751,8 @@
"chicken schnitzel": {
"aliases": [],
"description": "",
- "name": "chicken schnitzel",
- "plural_name": "chicken schnitzels"
+ "name": "שניצל עוף",
+ "plural_name": "שניצלי עוף"
},
"grouse": {
"aliases": [],
@@ -4805,8 +4805,8 @@
"chicken bacon": {
"aliases": [],
"description": "",
- "name": "chicken bacon",
- "plural_name": "chicken bacons"
+ "name": "בייקון עוף",
+ "plural_name": "בייקון עוף"
},
"turkey rissole": {
"aliases": [],
@@ -4829,8 +4829,8 @@
"duck neck": {
"aliases": [],
"description": "",
- "name": "duck neck",
- "plural_name": "duck necks"
+ "name": "גרון ברווז",
+ "plural_name": "גרונות ברווז"
},
"chicken chorizo": {
"aliases": [],
@@ -4877,8 +4877,8 @@
"turkey tail": {
"aliases": [],
"description": "",
- "name": "turkey tail",
- "plural_name": "turkey tails"
+ "name": "זנב הודו",
+ "plural_name": "זנבות הודו"
},
"chicken milanesa": {
"aliases": [],
@@ -4905,14 +4905,14 @@
"cod": {
"aliases": [],
"description": "",
- "name": "cod",
- "plural_name": "cod"
+ "name": "קוד (בקלה)",
+ "plural_name": "קוד (בקלה)"
},
"tilapia": {
"aliases": [],
"description": "",
- "name": "tilapia",
- "plural_name": "tilapias"
+ "name": "אמנון",
+ "plural_name": "אמנון"
},
"tuna steak": {
"aliases": [],
@@ -4935,80 +4935,80 @@
"red snapper": {
"aliases": [],
"description": "",
- "name": "red snapper",
- "plural_name": "red snappers"
+ "name": "לוטיין אדום (רד סנפר)",
+ "plural_name": "לוטיינים אדומים (רד סנפר)"
},
"sea bas": {
"aliases": [],
"description": "",
- "name": "sea bas",
- "plural_name": "sea bass"
+ "name": "בס ים",
+ "plural_name": "בס ים"
},
"fish fillet": {
"aliases": [],
"description": "",
- "name": "fish fillet",
- "plural_name": "fish fillets"
+ "name": "פילה דגים",
+ "plural_name": "פילה דגים"
},
"trout": {
"aliases": [],
"description": "",
- "name": "trout",
- "plural_name": "trout"
+ "name": "טרוטה (פורל)",
+ "plural_name": "טרוטה (פורל)"
},
"catfish": {
"aliases": [],
"description": "",
- "name": "catfish",
- "plural_name": "catfishes"
+ "name": "שפמנון",
+ "plural_name": "שפמנונים"
},
"surimi": {
"aliases": [],
"description": "",
- "name": "surimi",
- "plural_name": "surimis"
+ "name": "סורימי",
+ "plural_name": "סורימי"
},
"swordfish": {
"aliases": [],
"description": "",
- "name": "swordfish",
- "plural_name": "swordfish"
+ "name": "דג חרב",
+ "plural_name": "דגי חרב"
},
"sardine": {
"aliases": [],
"description": "",
- "name": "sardine",
- "plural_name": "sardines"
+ "name": "סרדין",
+ "plural_name": "סרדינים"
},
"sole": {
"aliases": [],
"description": "",
- "name": "sole",
- "plural_name": "soles"
+ "name": "סול",
+ "plural_name": "סול"
},
"mahi mahi": {
"aliases": [],
"description": "",
- "name": "mahi mahi",
- "plural_name": "mahi mahis"
+ "name": "רעמתן כחלחל",
+ "plural_name": "רעמתנים כחלחלים"
},
"mackerel": {
"aliases": [],
"description": "",
- "name": "mackerel",
- "plural_name": "mackerel"
+ "name": "מקרל",
+ "plural_name": "מקרלים"
},
"smoked trout": {
"aliases": [],
"description": "",
- "name": "smoked trout",
- "plural_name": "smoked trout"
+ "name": "טרוטה (פורל) מעושן",
+ "plural_name": "טרוטה (פורל) מעושנים"
},
"caviar": {
"aliases": [],
"description": "",
- "name": "caviar",
- "plural_name": "caviars"
+ "name": "קוויאר",
+ "plural_name": "קוויאר"
},
"haddock": {
"aliases": [],
@@ -5019,8 +5019,8 @@
"monkfish": {
"aliases": [],
"description": "",
- "name": "monkfish",
- "plural_name": "monkfish"
+ "name": "דג נזיר",
+ "plural_name": "דגי נזיר"
},
"smoked haddock": {
"aliases": [],
@@ -5043,8 +5043,8 @@
"hake": {
"aliases": [],
"description": "",
- "name": "hake",
- "plural_name": "hakes"
+ "name": "מרלוזה",
+ "plural_name": "מרלוזות"
},
"pollock": {
"aliases": [],
@@ -5055,8 +5055,8 @@
"salt cod": {
"aliases": [],
"description": "",
- "name": "salt cod",
- "plural_name": "salt cod"
+ "name": "קוד (בקלה) מלח",
+ "plural_name": "קוד (בקלה) מלח"
},
"smoked mackerel": {
"aliases": [],
@@ -5127,8 +5127,8 @@
"black cod": {
"aliases": [],
"description": "",
- "name": "black cod",
- "plural_name": "black cod"
+ "name": "קוד (בקלה) שחור",
+ "plural_name": "קוד (בקלה) שחור"
},
"kingfish": {
"aliases": [],
@@ -5205,8 +5205,8 @@
"yellowtail": {
"aliases": [],
"description": "",
- "name": "yellowtail",
- "plural_name": "yellowtails"
+ "name": "לוטיין צהוב-זנב",
+ "plural_name": "לוטיינים צהובי-זנב"
},
"battered fish": {
"aliases": [],
@@ -5223,8 +5223,8 @@
"pickled herring": {
"aliases": [],
"description": "",
- "name": "pickled herring",
- "plural_name": "pickled herrings"
+ "name": "מליח (הרינג) כבוש",
+ "plural_name": "מליח (הרינג) כבושים"
},
"john dory": {
"aliases": [],
@@ -5247,8 +5247,8 @@
"fresh mackerel": {
"aliases": [],
"description": "",
- "name": "fresh mackerel",
- "plural_name": "fresh mackerel"
+ "name": "מקרל טרי",
+ "plural_name": "מקרלים טריים"
},
"salmon trout": {
"aliases": [],
@@ -5813,8 +5813,8 @@
"cinnamon": {
"aliases": [],
"description": "",
- "name": "cinnamon",
- "plural_name": "cinnamons"
+ "name": "קינמון",
+ "plural_name": "קינמון"
},
"parsley": {
"aliases": [],
@@ -6335,8 +6335,8 @@
"saigon cinnamon": {
"aliases": [],
"description": "",
- "name": "saigon cinnamon",
- "plural_name": "saigon cinnamons"
+ "name": "קינמון צאלון",
+ "plural_name": "קינמון צאלון"
},
"lemongrass paste": {
"aliases": [],
@@ -6550,8 +6550,8 @@
"cinnamon sugar": {
"aliases": [],
"description": "",
- "name": "cinnamon sugar",
- "plural_name": "cinnamon sugars"
+ "name": "סוכר קינמון",
+ "plural_name": "סוכרי קינמון"
},
"liquid stevia": {
"aliases": [],
@@ -6760,8 +6760,8 @@
"apple syrup": {
"aliases": [],
"description": "",
- "name": "apple syrup",
- "plural_name": "apple syrups"
+ "name": "סירופ תפוחים",
+ "plural_name": "סירופי תפוחים"
},
"allulose": {
"aliases": [],
@@ -6922,8 +6922,8 @@
"fructose": {
"aliases": [],
"description": "",
- "name": "fructose",
- "plural_name": "fructoses"
+ "name": "פרוקטוז (סוכר פירות)",
+ "plural_name": "פרוקטוז (סוכר פירות)"
},
"honey powder": {
"aliases": [],
@@ -6940,8 +6940,8 @@
"grape syrup": {
"aliases": [],
"description": "",
- "name": "grape syrup",
- "plural_name": "grape syrups"
+ "name": "דבש ענבים",
+ "plural_name": "דבש ענבים"
},
"brown butter syrup": {
"aliases": [],
@@ -6958,8 +6958,8 @@
"mastic gum": {
"aliases": [],
"description": "",
- "name": "mastic gum",
- "plural_name": "mastic gums"
+ "name": "מסטיקא",
+ "plural_name": "מסטיקא"
},
"gum syrup": {
"aliases": [],
@@ -7000,8 +7000,8 @@
"chocolate sugar": {
"aliases": [],
"description": "",
- "name": "chocolate sugar",
- "plural_name": "chocolate sugars"
+ "name": "סוכר שוקולד",
+ "plural_name": "סוכרי שוקולד"
},
"flavored syrup": {
"aliases": [],
@@ -7208,8 +7208,8 @@
"apple pie spice": {
"aliases": [],
"description": "",
- "name": "apple pie spice",
- "plural_name": "apple pie spices"
+ "name": "תבלין פאי תפוחים",
+ "plural_name": "תבליני פאי תפוחים"
},
"za'atar": {
"aliases": [],
@@ -7914,8 +7914,8 @@
"jello": {
"aliases": [],
"description": "",
- "name": "jello",
- "plural_name": "jelloes"
+ "name": "ג׳לי",
+ "plural_name": "ג׳לי"
},
"butterscotch chip": {
"aliases": [],
@@ -8052,8 +8052,8 @@
"cinnamon chip": {
"aliases": [],
"description": "",
- "name": "cinnamon chip",
- "plural_name": "cinnamon chips"
+ "name": "שבב קינמון",
+ "plural_name": "שבבי קינמון"
},
"agar agar": {
"aliases": [],
@@ -8362,8 +8362,8 @@
"cinnamon roll dough": {
"aliases": [],
"description": "",
- "name": "cinnamon roll dough",
- "plural_name": "cinnamon roll doughs"
+ "name": "בצק לשבלול קינמון (סינבון)",
+ "plural_name": "בצקים לשבלולי קינמון (סינבונים)"
},
"dosa batter": {
"aliases": [],
@@ -8540,8 +8540,8 @@
"rice": {
"aliases": [],
"description": "",
- "name": "rice",
- "plural_name": "rices"
+ "name": "אורז",
+ "plural_name": "אורז"
},
"Rice Krispie Cereal": {
"aliases": [
@@ -8710,8 +8710,8 @@
"red quinoa": {
"aliases": [],
"description": "",
- "name": "red quinoa",
- "plural_name": "red quinoas"
+ "name": "קינואה אדומה",
+ "plural_name": "קינואה אדומה"
},
"raw buckwheat": {
"aliases": [],
@@ -8770,8 +8770,8 @@
"amaranth": {
"aliases": [],
"description": "",
- "name": "amaranth",
- "plural_name": "amaranths"
+ "name": "ירבוז (אמרנט)",
+ "plural_name": "ירבוז (אמרנט)"
},
"kasha": {
"aliases": [],
@@ -8788,8 +8788,8 @@
"puffed rice": {
"aliases": [],
"description": "",
- "name": "puffed rice",
- "plural_name": "puffed rices"
+ "name": "פצפוצי אורז",
+ "plural_name": "פצפוצי אורז"
},
"pearled farro": {
"aliases": [],
@@ -8890,8 +8890,8 @@
"puffed quinoa": {
"aliases": [],
"description": "",
- "name": "puffed quinoa",
- "plural_name": "puffed quinoas"
+ "name": "פצפוצי קינואה",
+ "plural_name": "פצפוצי קינואה"
},
"cilantro lime rice": {
"aliases": [],
@@ -8908,8 +8908,8 @@
"puffed wheat": {
"aliases": [],
"description": "",
- "name": "puffed wheat",
- "plural_name": "puffed wheats"
+ "name": "פצפוצי חיטה (שלווה)",
+ "plural_name": "פצפוצי חיטה (שלווה)"
},
"hulled barley": {
"aliases": [],
@@ -8992,8 +8992,8 @@
"puffed amaranth": {
"aliases": [],
"description": "",
- "name": "puffed amaranth",
- "plural_name": "puffed amaranths"
+ "name": "פצפוצי ירבוז (אמרנט)",
+ "plural_name": "פצפוצי ירבוז (אמרנט)"
},
"coconut rice": {
"aliases": [],
@@ -9004,14 +9004,14 @@
"amaranth flake": {
"aliases": [],
"description": "",
- "name": "amaranth flake",
- "plural_name": "amaranth flakes"
+ "name": "פתיתי ירבוז (אמרנט)",
+ "plural_name": "פתיתי ירבוז (אמרנט)"
},
"puffed kamut": {
"aliases": [],
"description": "",
- "name": "puffed kamut",
- "plural_name": "puffed kamuts"
+ "name": "פצפוצי חיטת קמוט",
+ "plural_name": "פצפוצי חיטת קמוט"
},
"bamboo rice": {
"aliases": [],
@@ -9980,8 +9980,8 @@
"quinoa pasta": {
"aliases": [],
"description": "",
- "name": "quinoa pasta",
- "plural_name": "quinoa pastas"
+ "name": "פסטת קינואה",
+ "plural_name": "פסטות קינואה"
},
"bean pasta": {
"aliases": [],
@@ -10510,8 +10510,8 @@
"chocolate muffin": {
"aliases": [],
"description": "",
- "name": "chocolate muffin",
- "plural_name": "chocolate muffins"
+ "name": "מאפין שוקולד",
+ "plural_name": "מאפינס שוקולד"
},
"milk bread": {
"aliases": [],
@@ -12160,8 +12160,8 @@
"canned pineapple": {
"aliases": [],
"description": "",
- "name": "canned pineapple",
- "plural_name": "canned pineapples"
+ "name": "אננס משומר",
+ "plural_name": "אננסים משומרים"
},
"chipotle in adobo": {
"aliases": [],
@@ -12358,8 +12358,8 @@
"canned apple": {
"aliases": [],
"description": "",
- "name": "canned apple",
- "plural_name": "canned apples"
+ "name": "תפוח עץ משומר",
+ "plural_name": "תפוחי עץ משומרים"
},
"canned green bean": {
"aliases": [],
@@ -12394,8 +12394,8 @@
"fruit cocktail": {
"aliases": [],
"description": "",
- "name": "fruit cocktail",
- "plural_name": "fruit cocktails"
+ "name": "קוקטייל פירות",
+ "plural_name": "קוקטיילי פירות"
},
"canned lentil": {
"aliases": [],
@@ -12892,8 +12892,8 @@
"cocktail sauce": {
"aliases": [],
"description": "",
- "name": "cocktail sauce",
- "plural_name": "cocktail sauces"
+ "name": "רוטב קוקטייל",
+ "plural_name": "רטבי קוקטייל"
},
"cheese dip": {
"aliases": [],
@@ -13670,8 +13670,8 @@
"chicken soup mix": {
"aliases": [],
"description": "",
- "name": "chicken soup mix",
- "plural_name": "chicken soup mixes"
+ "name": "תערובת מרק עןף",
+ "plural_name": "תערובות מרק עוף"
},
"cream of bacon": {
"aliases": [],
@@ -13802,8 +13802,8 @@
"oxtail soup": {
"aliases": [],
"description": "",
- "name": "oxtail soup",
- "plural_name": "oxtail soups"
+ "name": "מרק זנבות שור",
+ "plural_name": "מרקי זנבות שור"
},
"potato soup mix": {
"aliases": [],
@@ -15251,8 +15251,8 @@
"drinking chocolate": {
"aliases": [],
"description": "",
- "name": "drinking chocolate",
- "plural_name": "drinking chocolates"
+ "name": "שוקו",
+ "plural_name": "שוקו"
},
"tonic water": {
"aliases": [],
@@ -15401,8 +15401,8 @@
"energy drink": {
"aliases": [],
"description": "",
- "name": "energy drink",
- "plural_name": "energy drinks"
+ "name": "משקה אנרגייה",
+ "plural_name": "משקאות אנרגייה"
},
"chamomile tea": {
"aliases": [],
@@ -15665,8 +15665,8 @@
"sports drink": {
"aliases": [],
"description": "",
- "name": "sports drink",
- "plural_name": "sports drinks"
+ "name": "משקה ספורט",
+ "plural_name": "משקאות ספורט"
},
"acai berry juice": {
"aliases": [],
diff --git a/mealie/repos/seed/resources/foods/locales/nl-NL.json b/mealie/repos/seed/resources/foods/locales/nl-NL.json
index ad7071330..767308182 100644
--- a/mealie/repos/seed/resources/foods/locales/nl-NL.json
+++ b/mealie/repos/seed/resources/foods/locales/nl-NL.json
@@ -2453,20 +2453,20 @@
"hard goat cheese": {
"aliases": [],
"description": "",
- "name": "hard goat cheese",
- "plural_name": "hard goat cheeses"
+ "name": "harde geiten kaas",
+ "plural_name": "harde geiten kazen"
},
"kashkaval": {
"aliases": [],
"description": "",
"name": "kashkaval",
- "plural_name": "kashkavals"
+ "plural_name": "schapen kaas"
},
"sheep cheese": {
"aliases": [],
"description": "",
- "name": "sheep cheese",
- "plural_name": "sheep cheeses"
+ "name": "schapen kaas",
+ "plural_name": "schapen kazen"
},
"amul cheese": {
"aliases": [],
diff --git a/mealie/repos/seed/resources/foods/locales/sv-SE.json b/mealie/repos/seed/resources/foods/locales/sv-SE.json
index 5c2ddfd65..f7f8e92c1 100644
--- a/mealie/repos/seed/resources/foods/locales/sv-SE.json
+++ b/mealie/repos/seed/resources/foods/locales/sv-SE.json
@@ -8540,8 +8540,8 @@
"rice": {
"aliases": [],
"description": "",
- "name": "rice",
- "plural_name": "rices"
+ "name": "ris",
+ "plural_name": "ris"
},
"Rice Krispie Cereal": {
"aliases": [
@@ -8555,13 +8555,13 @@
"aliases": [],
"description": "",
"name": "quinoa",
- "plural_name": "quinoas"
+ "plural_name": "quinoa"
},
"basmati rice": {
"aliases": [],
"description": "",
- "name": "basmati rice",
- "plural_name": "basmati rices"
+ "name": "basmatiris",
+ "plural_name": "basmatiris"
},
"brown rice": {
"aliases": [],
@@ -8578,26 +8578,26 @@
"breakfast cereal": {
"aliases": [],
"description": "",
- "name": "breakfast cereal",
- "plural_name": "breakfast cereals"
+ "name": "frukostflinga",
+ "plural_name": "frukostflingor"
},
"risotto rice": {
"aliases": [],
"description": "",
- "name": "risotto rice",
- "plural_name": "risotto rices"
+ "name": "risottoris",
+ "plural_name": "risottoris"
},
"couscou": {
"aliases": [],
"description": "",
- "name": "couscou",
+ "name": "couscous",
"plural_name": "couscous"
},
"rice cereal": {
"aliases": [],
"description": "",
- "name": "rice cereal",
- "plural_name": "rice cereals"
+ "name": "risflinga",
+ "plural_name": "risflingor"
},
"wild rice": {
"aliases": [],
@@ -8614,14 +8614,14 @@
"jasmine rice": {
"aliases": [],
"description": "",
- "name": "jasmine rice",
- "plural_name": "jasmine rices"
+ "name": "jasminris",
+ "plural_name": "jasminris"
},
"polenta": {
"aliases": [],
"description": "",
"name": "polenta",
- "plural_name": "polentas"
+ "plural_name": "polenta"
},
"granola cereal": {
"aliases": [],
@@ -8633,7 +8633,7 @@
"aliases": [],
"description": "",
"name": "bulgur",
- "plural_name": "bulgurs"
+ "plural_name": "bulgur"
},
"pearl barley": {
"aliases": [],
@@ -8686,8 +8686,8 @@
"sushi rice": {
"aliases": [],
"description": "",
- "name": "sushi rice",
- "plural_name": "sushi rices"
+ "name": "sushiris",
+ "plural_name": "sushiris"
},
"glutinous rice": {
"aliases": [],
@@ -8764,8 +8764,8 @@
"muesli": {
"aliases": [],
"description": "",
- "name": "muesli",
- "plural_name": "mueslis"
+ "name": "müsli",
+ "plural_name": "müsli"
},
"amaranth": {
"aliases": [],
@@ -8812,8 +8812,8 @@
"paella rice": {
"aliases": [],
"description": "",
- "name": "paella rice",
- "plural_name": "paella rices"
+ "name": "paellaris",
+ "plural_name": "paellaris"
},
"sorghum": {
"aliases": [],
@@ -8986,8 +8986,8 @@
"gluten-free breakfast cereal": {
"aliases": [],
"description": "",
- "name": "gluten-free breakfast cereal",
- "plural_name": "gluten-free breakfast cereals"
+ "name": "glutenfri frukostflinga",
+ "plural_name": "glutenfria frukostflingor"
},
"puffed amaranth": {
"aliases": [],
@@ -9092,8 +9092,8 @@
"pea": {
"aliases": [],
"description": "",
- "name": "pea",
- "plural_name": "peas"
+ "name": "ärta",
+ "plural_name": "ärtor"
},
"green bean": {
"aliases": [],
@@ -9104,8 +9104,8 @@
"chickpea": {
"aliases": [],
"description": "",
- "name": "chickpea",
- "plural_name": "chickpeas"
+ "name": "kikärta",
+ "plural_name": "kikärtor"
},
"black bean": {
"aliases": [],
@@ -9116,20 +9116,20 @@
"kidney bean": {
"aliases": [],
"description": "",
- "name": "kidney bean",
- "plural_name": "kidney beans"
+ "name": "kidneyböna",
+ "plural_name": "kidneybönor"
},
"white bean": {
"aliases": [],
"description": "",
- "name": "white bean",
- "plural_name": "white beans"
+ "name": "vit böna",
+ "plural_name": "vita bönor"
},
"lentil": {
"aliases": [],
"description": "",
- "name": "lentil",
- "plural_name": "lentils"
+ "name": "lins",
+ "plural_name": "linser"
},
"pinto bean": {
"aliases": [],
@@ -9152,8 +9152,8 @@
"red lentil": {
"aliases": [],
"description": "",
- "name": "red lentil",
- "plural_name": "red lentils"
+ "name": "röd lins",
+ "plural_name": "röda linser"
},
"cannellini bean": {
"aliases": [],
@@ -9170,14 +9170,14 @@
"edamame": {
"aliases": [],
"description": "",
- "name": "edamame",
- "plural_name": "edamames"
+ "name": "edamameböna",
+ "plural_name": "edamamebönor"
},
"green lentil": {
"aliases": [],
"description": "",
- "name": "green lentil",
- "plural_name": "green lentils"
+ "name": "grön lins",
+ "plural_name": "gröna linser"
},
"urad dal": {
"aliases": [],
@@ -9188,8 +9188,8 @@
"lima bean": {
"aliases": [],
"description": "",
- "name": "lima bean",
- "plural_name": "lima beans"
+ "name": "limaböna",
+ "plural_name": "limabönor"
},
"chana dal": {
"aliases": [],
@@ -9296,8 +9296,8 @@
"yellow lentil": {
"aliases": [],
"description": "",
- "name": "yellow lentil",
- "plural_name": "yellow lentils"
+ "name": "gul lins",
+ "plural_name": "gula linser"
},
"mixed bean": {
"aliases": [],
@@ -9428,8 +9428,8 @@
"golden wax bean": {
"aliases": [],
"description": "",
- "name": "golden wax bean",
- "plural_name": "golden wax beans"
+ "name": "gul vaxböna",
+ "plural_name": "gula vaxbönor"
},
"moth bean": {
"aliases": [],
@@ -9782,8 +9782,8 @@
"instant noodle": {
"aliases": [],
"description": "",
- "name": "instant noodle",
- "plural_name": "instant noodles"
+ "name": "snabbnudel",
+ "plural_name": "snabbnudlar"
},
"somen noodle": {
"aliases": [],
@@ -10042,8 +10042,8 @@
"panko": {
"aliases": [],
"description": "",
- "name": "panko",
- "plural_name": "pankoes"
+ "name": "pankosmula",
+ "plural_name": "pankosmulor"
},
"flour tortilla": {
"aliases": [],
@@ -10114,14 +10114,14 @@
"crouton": {
"aliases": [],
"description": "",
- "name": "crouton",
- "plural_name": "croutons"
+ "name": "krutong",
+ "plural_name": "krutonger"
},
"whole-wheat tortilla": {
"aliases": [],
"description": "",
- "name": "whole-wheat tortilla",
- "plural_name": "whole-wheat tortillas"
+ "name": "fullkornstortilla",
+ "plural_name": "fullkornstortilla"
},
"english muffin": {
"aliases": [],
@@ -10144,8 +10144,8 @@
"rye bread": {
"aliases": [],
"description": "",
- "name": "rye bread",
- "plural_name": "rye breads"
+ "name": "rågbröd",
+ "plural_name": "rågbröd"
},
"flatbread": {
"aliases": [],
@@ -10156,14 +10156,14 @@
"dry-roasted peanut": {
"aliases": [],
"description": "",
- "name": "dry-roasted peanut",
- "plural_name": "dry-roasted peanuts"
+ "name": "torrostad jordnöt",
+ "plural_name": "torrostade jordnötter"
},
"potato chip": {
"aliases": [],
"description": "",
- "name": "potato chip",
- "plural_name": "potato chips"
+ "name": "potatischips",
+ "plural_name": "potatischips"
},
"naan": {
"aliases": [],
@@ -10282,8 +10282,8 @@
"gluten-free bread crumb": {
"aliases": [],
"description": "",
- "name": "gluten-free bread crumb",
- "plural_name": "gluten-free bread crumbs"
+ "name": "glutenfri brödsmula",
+ "plural_name": "glutenfria brödsmulor"
},
"tostada shell": {
"aliases": [],
@@ -10336,8 +10336,8 @@
"rice cake": {
"aliases": [],
"description": "",
- "name": "rice cake",
- "plural_name": "rice cakes"
+ "name": "riskaka",
+ "plural_name": "riskakor"
},
"panettone": {
"aliases": [],
@@ -10348,8 +10348,8 @@
"sweet potato fry": {
"aliases": [],
"description": "",
- "name": "sweet potato fry",
- "plural_name": "sweet potato fries"
+ "name": "sötpotatispommes",
+ "plural_name": "sötpotatispommes"
},
"sev": {
"aliases": [],
@@ -10658,8 +10658,8 @@
"coconut oil": {
"aliases": [],
"description": "",
- "name": "coconut oil",
- "plural_name": "coconut oils"
+ "name": "kokosnötsolja",
+ "plural_name": "kokosnötsoljor"
},
"cooking spray": {
"aliases": [],
@@ -10670,20 +10670,20 @@
"sesame oil": {
"aliases": [],
"description": "",
- "name": "sesame oil",
- "plural_name": "sesame oils"
+ "name": "sesamolja",
+ "plural_name": "sesamoljor"
},
"frying oil": {
"aliases": [],
"description": "",
- "name": "frying oil",
- "plural_name": "frying oils"
+ "name": "frityrolja",
+ "plural_name": "frityroljor"
},
"sunflower oil": {
"aliases": [],
"description": "",
- "name": "sunflower oil",
- "plural_name": "sunflower oils"
+ "name": "solrosolja",
+ "plural_name": "solrosoljor"
},
"avocado oil": {
"aliases": [],
@@ -10700,8 +10700,8 @@
"peanut oil": {
"aliases": [],
"description": "",
- "name": "peanut oil",
- "plural_name": "peanut oils"
+ "name": "jordnötsolja",
+ "plural_name": "jordnötsoljor"
},
"grapeseed oil": {
"aliases": [
@@ -10756,8 +10756,8 @@
"truffle oil": {
"aliases": [],
"description": "",
- "name": "truffle oil",
- "plural_name": "truffle oils"
+ "name": "tryffelolja",
+ "plural_name": "tryffeloljor"
},
"bacon grease": {
"aliases": [],
@@ -10786,8 +10786,8 @@
"duck fat": {
"aliases": [],
"description": "",
- "name": "duck fat",
- "plural_name": "duck fats"
+ "name": "ankfett",
+ "plural_name": "ankfett"
},
"rice bran oil": {
"aliases": [],
@@ -10822,8 +10822,8 @@
"white truffle oil": {
"aliases": [],
"description": "",
- "name": "white truffle oil",
- "plural_name": "white truffle oils"
+ "name": "vit tryffelolja",
+ "plural_name": "vit tryffeloljor"
},
"pumpkin seed oil": {
"aliases": [],
@@ -10870,14 +10870,14 @@
"palm oil": {
"aliases": [],
"description": "",
- "name": "palm oil",
- "plural_name": "palm oils"
+ "name": "palmolja",
+ "plural_name": "palmoljor"
},
"basil oil": {
"aliases": [],
"description": "",
- "name": "basil oil",
- "plural_name": "basil oils"
+ "name": "basilikaolja",
+ "plural_name": "basilikaoljor"
},
"pork fat": {
"aliases": [],
@@ -11078,44 +11078,44 @@
"mayonnaise": {
"aliases": [],
"description": "",
- "name": "mayonnaise",
- "plural_name": "mayonnaises"
+ "name": "majonnäs",
+ "plural_name": "majonnäser"
},
"apple cider vinegar": {
"aliases": [],
"description": "",
- "name": "apple cider vinegar",
- "plural_name": "apple cider vinegars"
+ "name": "äppelcidervinäger",
+ "plural_name": "äppelcidervinäger"
},
"balsamic vinegar": {
"aliases": [],
"description": "",
- "name": "balsamic vinegar",
- "plural_name": "balsamic vinegars"
+ "name": "balsamvinäger",
+ "plural_name": "balsamvinäger"
},
"vinegar": {
"aliases": [],
"description": "",
- "name": "vinegar",
- "plural_name": "vinegars"
+ "name": "vinäger",
+ "plural_name": "vinäger"
},
"red wine vinegar": {
"aliases": [],
"description": "",
- "name": "red wine vinegar",
- "plural_name": "red wine vinegars"
+ "name": "rödvinsvinäger",
+ "plural_name": "rödvinsvinäger"
},
"rice wine vinegar": {
"aliases": [],
"description": "",
- "name": "rice wine vinegar",
- "plural_name": "rice wine vinegars"
+ "name": "risvinsvinäger",
+ "plural_name": "risvinsvinäger"
},
"white wine vinegar": {
"aliases": [],
"description": "",
- "name": "white wine vinegar",
- "plural_name": "white wine vinegars"
+ "name": "vitvinsvinäger",
+ "plural_name": "vitvinsvinäger"
},
"ranch dressing": {
"aliases": [],
@@ -11150,8 +11150,8 @@
"white balsamic vinegar": {
"aliases": [],
"description": "",
- "name": "white balsamic vinegar",
- "plural_name": "white balsamic vinegars"
+ "name": "vit balsamvinäger",
+ "plural_name": "vit balsamvinäger"
},
"champagne vinegar": {
"aliases": [],
@@ -11210,8 +11210,8 @@
"raspberry vinegar": {
"aliases": [],
"description": "",
- "name": "raspberry vinegar",
- "plural_name": "raspberry vinegars"
+ "name": "hallonvinäger",
+ "plural_name": "hallonvinäger"
},
"japanese mayonnaise": {
"aliases": [],
@@ -11222,8 +11222,8 @@
"tarragon vinegar": {
"aliases": [],
"description": "",
- "name": "tarragon vinegar",
- "plural_name": "tarragon vinegars"
+ "name": "dragonvinäger",
+ "plural_name": "dragonvinäger"
},
"greek vinaigrette": {
"aliases": [],
@@ -11246,8 +11246,8 @@
"aioli sauce": {
"aliases": [],
"description": "",
- "name": "aioli sauce",
- "plural_name": "aioli sauces"
+ "name": "aioli",
+ "plural_name": "aioli"
},
"french dressing": {
"aliases": [],
@@ -11420,8 +11420,8 @@
"honey vinegar": {
"aliases": [],
"description": "",
- "name": "honey vinegar",
- "plural_name": "honey vinegars"
+ "name": "honungsvinäger",
+ "plural_name": "honungsvinäger"
},
"tandoori mayonnaise": {
"aliases": [],
@@ -11432,8 +11432,8 @@
"chili vinegar": {
"aliases": [],
"description": "",
- "name": "chili vinegar",
- "plural_name": "chili vinegars"
+ "name": "chillivinäger",
+ "plural_name": "chillivinäger"
},
"chili-lime dressing": {
"aliases": [],
@@ -11490,14 +11490,14 @@
"soy sauce": {
"aliases": [],
"description": "",
- "name": "soy sauce",
- "plural_name": "soy sauces"
+ "name": "soja",
+ "plural_name": "soja"
},
"dijon mustard": {
"aliases": [],
"description": "",
- "name": "dijon mustard",
- "plural_name": "dijon mustards"
+ "name": "dijonsenap",
+ "plural_name": "dijonsenap"
},
"worcestershire": {
"aliases": [],
@@ -11521,13 +11521,13 @@
"aliases": [],
"description": "",
"name": "ketchup",
- "plural_name": "ketchups"
+ "plural_name": "ketchup"
},
"mustard": {
"aliases": [],
"description": "",
- "name": "mustard",
- "plural_name": "mustards"
+ "name": "senap",
+ "plural_name": "senap"
},
"fish sauce": {
"aliases": [],
@@ -11550,8 +11550,8 @@
"wholegrain mustard": {
"aliases": [],
"description": "",
- "name": "wholegrain mustard",
- "plural_name": "wholegrain mustards"
+ "name": "grov senap",
+ "plural_name": "grov senap"
},
"tamari": {
"aliases": [],
@@ -11610,8 +11610,8 @@
"dark soy sauce": {
"aliases": [],
"description": "",
- "name": "dark soy sauce",
- "plural_name": "dark soy sauces"
+ "name": "mörk soja",
+ "plural_name": "mörk soja"
},
"coconut amino": {
"aliases": [],
@@ -11665,19 +11665,19 @@
"aliases": [],
"description": "",
"name": "wasabi",
- "plural_name": "wasabis"
+ "plural_name": "wasabi"
},
"honey mustard": {
"aliases": [],
"description": "",
- "name": "honey mustard",
- "plural_name": "honey mustards"
+ "name": "honungssenap",
+ "plural_name": "honungssenap"
},
"mango chutney": {
"aliases": [],
"description": "",
"name": "mango chutney",
- "plural_name": "mango chutneys"
+ "plural_name": "mango chutney"
},
"english mustard": {
"aliases": [],
@@ -11689,7 +11689,7 @@
"aliases": [],
"description": "",
"name": "sambal oelek",
- "plural_name": "sambal oeleks"
+ "plural_name": "sambal oelek"
},
"preserved lemon": {
"aliases": [],
@@ -11712,8 +11712,8 @@
"shrimp paste": {
"aliases": [],
"description": "",
- "name": "shrimp paste",
- "plural_name": "shrimp pastes"
+ "name": "räkpasta",
+ "plural_name": "räkpasta"
},
"picante sauce": {
"aliases": [],
@@ -11880,8 +11880,8 @@
"hp sauce": {
"aliases": [],
"description": "",
- "name": "hp sauce",
- "plural_name": "hp sauces"
+ "name": "HP-sås",
+ "plural_name": "HP-såser"
},
"duck sauce": {
"aliases": [],
@@ -12012,8 +12012,8 @@
"remoulade": {
"aliases": [],
"description": "",
- "name": "remoulade",
- "plural_name": "remoulades"
+ "name": "remoulad",
+ "plural_name": "remoulad"
},
"white bbq sauce": {
"aliases": [],
@@ -12106,26 +12106,26 @@
"caper": {
"aliases": [],
"description": "",
- "name": "caper",
- "plural_name": "capers"
+ "name": "kapris",
+ "plural_name": "kapris"
},
"green olive": {
"aliases": [],
"description": "",
- "name": "green olive",
- "plural_name": "green olives"
+ "name": "grön oliv",
+ "plural_name": "gröna oliver"
},
"canned chickpea": {
"aliases": [],
"description": "",
- "name": "canned chickpea",
- "plural_name": "canned chickpeas"
+ "name": "konserverad kikärta",
+ "plural_name": "konserverade kikärtor"
},
"black olive": {
"aliases": [],
"description": "",
- "name": "black olive",
- "plural_name": "black olives"
+ "name": "svart oliv",
+ "plural_name": "svarta oliver"
},
"canned black bean": {
"aliases": [],
@@ -12142,14 +12142,14 @@
"kalamata olive": {
"aliases": [],
"description": "",
- "name": "kalamata olive",
- "plural_name": "kalamata olives"
+ "name": "kalamataoliv",
+ "plural_name": "kalamataoliver"
},
"canned tuna": {
"aliases": [],
"description": "",
- "name": "canned tuna",
- "plural_name": "canned tuna"
+ "name": "konserverad tonfisk",
+ "plural_name": "konserverade tonfiskar"
},
"pickle": {
"aliases": [],
@@ -12160,8 +12160,8 @@
"canned pineapple": {
"aliases": [],
"description": "",
- "name": "canned pineapple",
- "plural_name": "canned pineapples"
+ "name": "konserverad ananas",
+ "plural_name": "konserverade ananaser"
},
"chipotle in adobo": {
"aliases": [],
@@ -12226,8 +12226,8 @@
"canned whole tomato": {
"aliases": [],
"description": "",
- "name": "canned whole tomato",
- "plural_name": "canned whole tomatoes"
+ "name": "konserverad hel tomat",
+ "plural_name": "konserverade hela tomater"
},
"sweet pickle relish": {
"aliases": [],
@@ -12238,8 +12238,8 @@
"sauerkraut": {
"aliases": [],
"description": "",
- "name": "sauerkraut",
- "plural_name": "sauerkrauts"
+ "name": "surkål",
+ "plural_name": "surkål"
},
"creamed corn": {
"aliases": [],
@@ -12274,14 +12274,14 @@
"sun-dried tomato in oil": {
"aliases": [],
"description": "",
- "name": "sun-dried tomato in oil",
- "plural_name": "sun-dried tomatoes in oil"
+ "name": "soltorkad tomat i olja",
+ "plural_name": "soltorkade tomater i olja"
},
"kimchi": {
"aliases": [],
"description": "",
"name": "kimchi",
- "plural_name": "kimchis"
+ "plural_name": "kimchi"
},
"canned mandarin orange": {
"aliases": [],
@@ -12304,14 +12304,14 @@
"bamboo shoot": {
"aliases": [],
"description": "",
- "name": "bamboo shoot",
- "plural_name": "bamboo shoots"
+ "name": "bambuskott",
+ "plural_name": "bambuskott"
},
"canned mushroom": {
"aliases": [],
"description": "",
- "name": "canned mushroom",
- "plural_name": "canned mushrooms"
+ "name": "konserverad champinjon",
+ "plural_name": "konserverade champinjoner"
},
"baked bean": {
"aliases": [],
@@ -12400,20 +12400,20 @@
"canned lentil": {
"aliases": [],
"description": "",
- "name": "canned lentil",
- "plural_name": "canned lentils"
+ "name": "konserverad lins",
+ "plural_name": "konserverade linser"
},
"canned pea": {
"aliases": [],
"description": "",
- "name": "canned pea",
- "plural_name": "canned peas"
+ "name": "konserverad ärta",
+ "plural_name": "konserverade ärtor"
},
"pickled red onion": {
"aliases": [],
"description": "",
- "name": "pickled red onion",
- "plural_name": "pickled red onions"
+ "name": "picklad rödlök",
+ "plural_name": "picklade rödlökar"
},
"pimiento-stuffed green olive": {
"aliases": [],
@@ -12436,8 +12436,8 @@
"canned cherry tomato": {
"aliases": [],
"description": "",
- "name": "canned cherry tomato",
- "plural_name": "canned cherry tomatoes"
+ "name": "konserverad körsbärstomat",
+ "plural_name": "konserverade körsbärstomater"
},
"bread & butter pickle": {
"aliases": [],
@@ -12460,8 +12460,8 @@
"canned pear": {
"aliases": [],
"description": "",
- "name": "canned pear",
- "plural_name": "canned pears"
+ "name": "konserverat päron",
+ "plural_name": "konserverade päron"
},
"peppadew pepper": {
"aliases": [],
@@ -12484,8 +12484,8 @@
"canned baby corn": {
"aliases": [],
"description": "",
- "name": "canned baby corn",
- "plural_name": "canned baby corns"
+ "name": "konserverad minimajs",
+ "plural_name": "konserverade minimajs"
},
"mexican-style corn": {
"aliases": [],
@@ -12520,8 +12520,8 @@
"canned carrot": {
"aliases": [],
"description": "",
- "name": "canned carrot",
- "plural_name": "canned carrots"
+ "name": "konserverad morot",
+ "plural_name": "konserverade morötter"
},
"banana pepper ring": {
"aliases": [],
@@ -12586,8 +12586,8 @@
"canned asparagu": {
"aliases": [],
"description": "",
- "name": "canned asparagu",
- "plural_name": "canned asparagus"
+ "name": "konserverad sparris",
+ "plural_name": "konserverade sparris"
},
"fire-roasted green chile": {
"aliases": [],
@@ -12622,8 +12622,8 @@
"canned mackerel": {
"aliases": [],
"description": "",
- "name": "canned mackerel",
- "plural_name": "canned mackerel"
+ "name": "konserverad makrill",
+ "plural_name": "konserverade makrillar"
},
"pickled cherry pepper": {
"aliases": [],
@@ -12652,8 +12652,8 @@
"canned potato": {
"aliases": [],
"description": "",
- "name": "canned potato",
- "plural_name": "canned potatoes"
+ "name": "konserverad potatis",
+ "plural_name": "konserverade potatisar"
},
"okra pickle": {
"aliases": [],
@@ -12704,14 +12704,14 @@
"peanut butter": {
"aliases": [],
"description": "",
- "name": "peanut butter",
- "plural_name": "peanut butters"
+ "name": "jordnötssmör",
+ "plural_name": "jordnötssmör"
},
"tomato paste": {
"aliases": [],
"description": "",
- "name": "tomato paste",
- "plural_name": "tomato pastes"
+ "name": "tomatpuré",
+ "plural_name": "tomatpuréer"
},
"tomato sauce": {
"aliases": [],
@@ -12735,7 +12735,7 @@
"aliases": [],
"description": "",
"name": "pesto",
- "plural_name": "pestoes"
+ "plural_name": "pesto"
},
"marinara sauce": {
"aliases": [
@@ -12773,12 +12773,12 @@
"aliases": [],
"description": "",
"name": "guacamole",
- "plural_name": "guacamoles"
+ "plural_name": "guacamole"
},
"hummu": {
"aliases": [],
"description": "",
- "name": "hummu",
+ "name": "hummus",
"plural_name": "hummus"
},
"enchilada sauce": {
@@ -12844,8 +12844,8 @@
"taco sauce": {
"aliases": [],
"description": "",
- "name": "taco sauce",
- "plural_name": "taco sauces"
+ "name": "tacosås",
+ "plural_name": "tacosåser"
},
"beef gravy": {
"aliases": [],
@@ -12856,8 +12856,8 @@
"sun-dried tomato pesto": {
"aliases": [],
"description": "",
- "name": "sun-dried tomato pesto",
- "plural_name": "sun-dried tomato pestoes"
+ "name": "pesto på soltorkad tomat",
+ "plural_name": "pesto på soltorkad tomat"
},
"béchamel sauce": {
"aliases": [],
@@ -12880,8 +12880,8 @@
"garlic butter": {
"aliases": [],
"description": "",
- "name": "garlic butter",
- "plural_name": "garlic butter"
+ "name": "vitlökssmör",
+ "plural_name": "vitlökssmör"
},
"hollandaise sauce": {
"aliases": [],
diff --git a/mealie/routes/households/controller_webhooks.py b/mealie/routes/households/controller_webhooks.py
index 251bb3617..f76e33de9 100644
--- a/mealie/routes/households/controller_webhooks.py
+++ b/mealie/routes/households/controller_webhooks.py
@@ -10,7 +10,7 @@ from mealie.routes._base.mixins import HttpRepo
from mealie.schema import mapper
from mealie.schema.household.webhook import CreateWebhook, ReadWebhook, SaveWebhook, WebhookPagination
from mealie.schema.response.pagination import PaginationQuery
-from mealie.services.scheduler.tasks.post_webhooks import post_group_webhooks, post_single_webhook
+from mealie.services.scheduler.tasks.post_webhooks import post_group_webhooks, post_test_webhook
router = APIRouter(prefix="/households/webhooks", tags=["Households: Webhooks"])
@@ -55,7 +55,7 @@ class ReadWebhookController(BaseUserController):
@router.post("/{item_id}/test")
def test_one(self, item_id: UUID4, bg_tasks: BackgroundTasks):
webhook = self.mixins.get_one(item_id)
- bg_tasks.add_task(post_single_webhook, webhook, "Test Webhook")
+ bg_tasks.add_task(post_test_webhook, webhook, "Test Webhook")
@router.put("/{item_id}", response_model=ReadWebhook)
def update_one(self, item_id: UUID4, data: CreateWebhook):
diff --git a/mealie/services/event_bus_service/event_bus_listeners.py b/mealie/services/event_bus_service/event_bus_listeners.py
index 586876c63..0d1a84154 100644
--- a/mealie/services/event_bus_service/event_bus_listeners.py
+++ b/mealie/services/event_bus_service/event_bus_listeners.py
@@ -3,7 +3,6 @@ import json
from abc import ABC, abstractmethod
from collections.abc import Generator
from datetime import UTC, datetime
-from typing import cast
from urllib.parse import parse_qs, urlencode, urlsplit, urlunsplit
from fastapi.encoders import jsonable_encoder
@@ -148,15 +147,24 @@ class WebhookEventListener(EventListenerBase):
def publish_to_subscribers(self, event: Event, subscribers: list[ReadWebhook]) -> None:
with self.ensure_repos(self.group_id, self.household_id) as repos:
- if event.document_data.document_type == EventDocumentType.mealplan:
- webhook_data = cast(EventWebhookData, event.document_data)
- meal_repo = repos.meals
- meal_data = meal_repo.get_meals_by_date_range(
- webhook_data.webhook_start_dt, webhook_data.webhook_end_dt
- )
- if meal_data:
- webhook_data.webhook_body = meal_data
- self.publisher.publish(event, [webhook.url for webhook in subscribers])
+ if not isinstance(event.document_data, EventWebhookData):
+ return
+
+ match event.document_data.document_type:
+ case EventDocumentType.mealplan:
+ meal_repo = repos.meals
+ meal_data = meal_repo.get_meals_by_date_range(
+ event.document_data.webhook_start_dt, event.document_data.webhook_end_dt
+ )
+ event.document_data.webhook_body = meal_data or None
+ case _:
+ if event.event_type is EventTypes.test_message:
+ # make sure the webhook has a valid body so it gets sent
+ event.document_data.webhook_body = event.document_data.webhook_body or []
+
+ # Only publish to subscribers if we have a webhook body to send
+ if event.document_data.webhook_body is not None:
+ self.publisher.publish(event, [webhook.url for webhook in subscribers])
def get_scheduled_webhooks(self, start_dt: datetime, end_dt: datetime) -> list[ReadWebhook]:
"""Fetches all scheduled webhooks from the database"""
diff --git a/mealie/services/scheduler/tasks/post_webhooks.py b/mealie/services/scheduler/tasks/post_webhooks.py
index 5298fa2c8..87feef270 100644
--- a/mealie/services/scheduler/tasks/post_webhooks.py
+++ b/mealie/services/scheduler/tasks/post_webhooks.py
@@ -79,12 +79,12 @@ def post_group_webhooks(
)
-def post_single_webhook(webhook: ReadWebhook, message: str = "") -> None:
+def post_test_webhook(webhook: ReadWebhook, message: str = "") -> None:
dt = datetime.min.replace(tzinfo=UTC)
- event_type = EventTypes.webhook_task
+ event_type = EventTypes.test_message
event_document_data = EventWebhookData(
- document_type=EventDocumentType.mealplan,
+ document_type=EventDocumentType.generic,
operation=EventOperation.info,
webhook_start_dt=dt,
webhook_end_dt=dt,
diff --git a/poetry.lock b/poetry.lock
index 845879574..daa78b84c 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -478,100 +478,100 @@ markers = {main = "platform_system == \"Windows\" or sys_platform == \"win32\""}
[[package]]
name = "coverage"
-version = "7.10.0"
+version = "7.10.1"
description = "Code coverage measurement for Python"
optional = false
python-versions = ">=3.9"
groups = ["dev"]
files = [
- {file = "coverage-7.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cbd823f7ea5286c26406ad9e54268544d82f3d1cadb6d4f3b85e9877f0cab1ef"},
- {file = "coverage-7.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ab3f7a5dbaab937df0b9e9e8ec6eab235ba9a6f29d71fd3b24335affaed886cc"},
- {file = "coverage-7.10.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8c63aaf850523d8cbe3f5f1a5c78f689b223797bef902635f2493ab43498f36c"},
- {file = "coverage-7.10.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4c3133ce3fa84023f7c6921c4dca711be0b658784c5a51a797168229eae26172"},
- {file = "coverage-7.10.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3747d1d0af85b17d3a156cd30e4bbacf893815e846dc6c07050e9769da2b138e"},
- {file = "coverage-7.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:241923b350437f6a7cb343d9df72998305ef940c3c40009f06e05029a047677c"},
- {file = "coverage-7.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:13e82e499309307104d58ac66f9eed237f7aaceab4325416645be34064d9a2be"},
- {file = "coverage-7.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bf73cdde4f6c9cd4457b00bf1696236796ac3a241f859a55e0f84a4c58326a7f"},
- {file = "coverage-7.10.0-cp310-cp310-win32.whl", hash = "sha256:2396e13275b37870a3345f58bce8b15a7e0a985771d13a4b16ce9129954e07d6"},
- {file = "coverage-7.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:9d45c7c71fb3d2da92ab893602e3f28f2d1560cec765a27e1824a6e0f7e92cfd"},
- {file = "coverage-7.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4abc01843581a6f9dd72d4d15761861190973a2305416639435ef509288f7a04"},
- {file = "coverage-7.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a2093297773111d7d748fe4a99b68747e57994531fb5c57bbe439af17c11c169"},
- {file = "coverage-7.10.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:58240e27815bf105bd975c2fd42e700839f93d5aad034ef976411193ca32dbfd"},
- {file = "coverage-7.10.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d019eac999b40ad48521ea057958b07a9f549c0c6d257a20e5c7c4ba91af8d1c"},
- {file = "coverage-7.10.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:35e0a1f5454bc80faf4ceab10d1d48f025f92046c9c0f3bec2e1a9dda55137f8"},
- {file = "coverage-7.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a93dd7759c416dd1cc754123b926d065055cb9a33b6699e64a1e5bdfae1ff459"},
- {file = "coverage-7.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7b3d737266048368a6ffd68f1ecd662c54de56535c82eb8f98a55ac216a72cbd"},
- {file = "coverage-7.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:93227c2707cb0effd9163cd0d8f0d9ab628982f7a3e915d6d64c7107867b9a07"},
- {file = "coverage-7.10.0-cp311-cp311-win32.whl", hash = "sha256:69270af3014ab3058ad6108c6d0e218166f568b5a7a070dc3d62c0a63aca1c4d"},
- {file = "coverage-7.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:43c16bbb661a7b4dafac0ab69e44d6dbcc6a64c4d93aefd89edc6f8911b6ab4a"},
- {file = "coverage-7.10.0-cp311-cp311-win_arm64.whl", hash = "sha256:14e7c23fcb74ed808efb4eb48fcd25a759f0e20f685f83266d1df174860e4733"},
- {file = "coverage-7.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a2adcfdaf3b4d69b0c64ad024fe9dd6996782b52790fb6033d90f36f39e287df"},
- {file = "coverage-7.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2d7b27c2c0840e8eeff3f1963782bd9d3bc767488d2e67a31de18d724327f9f6"},
- {file = "coverage-7.10.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0ed50429786e935517570b08576a661fd79032e6060985ab492b9d39ba8e66ee"},
- {file = "coverage-7.10.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7171c139ab6571d70460ecf788b1dcaf376bfc75a42e1946b8c031d062bbbad4"},
- {file = "coverage-7.10.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a726aac7e6e406e403cdee4c443a13aed3ea3d67d856414c5beacac2e70c04e"},
- {file = "coverage-7.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2886257481a14e953e96861a00c0fe7151117a523f0470a51e392f00640bba03"},
- {file = "coverage-7.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:536578b79521e59c385a2e0a14a5dc2a8edd58761a966d79368413e339fc9535"},
- {file = "coverage-7.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77fae95558f7804a9ceefabf3c38ad41af1da92b39781b87197c6440dcaaa967"},
- {file = "coverage-7.10.0-cp312-cp312-win32.whl", hash = "sha256:97803e14736493eb029558e1502fe507bd6a08af277a5c8eeccf05c3e970cb84"},
- {file = "coverage-7.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:4c73ab554e54ffd38d114d6bc4a7115fb0c840cf6d8622211bee3da26e4bd25d"},
- {file = "coverage-7.10.0-cp312-cp312-win_arm64.whl", hash = "sha256:3ae95d5a9aedab853641026b71b2ddd01983a0a7e9bf870a20ef3c8f5d904699"},
- {file = "coverage-7.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d883fee92b9245c0120fa25b5d36de71ccd4cfc29735906a448271e935d8d86d"},
- {file = "coverage-7.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c87e59e88268d30e33d3665ede4fbb77b513981a2df0059e7c106ca3de537586"},
- {file = "coverage-7.10.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f669d969f669a11d6ceee0b733e491d9a50573eb92a71ffab13b15f3aa2665d4"},
- {file = "coverage-7.10.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9582bd6c6771300a847d328c1c4204e751dbc339a9e249eecdc48cada41f72e6"},
- {file = "coverage-7.10.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:91f97e9637dc7977842776fdb7ad142075d6fa40bc1b91cb73685265e0d31d32"},
- {file = "coverage-7.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ae4fa92b6601a62367c6c9967ad32ad4e28a89af54b6bb37d740946b0e0534dd"},
- {file = "coverage-7.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3a5cc8b97473e7b3623dd17a42d2194a2b49de8afecf8d7d03c8987237a9552c"},
- {file = "coverage-7.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dc1cbb7f623250e047c32bd7aa1bb62ebc62608d5004d74df095e1059141ac88"},
- {file = "coverage-7.10.0-cp313-cp313-win32.whl", hash = "sha256:1380cc5666d778e77f1587cd88cc317158111f44d54c0dd3975f0936993284e0"},
- {file = "coverage-7.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:bf03cf176af098ee578b754a03add4690b82bdfe070adfb5d192d0b1cd15cf82"},
- {file = "coverage-7.10.0-cp313-cp313-win_arm64.whl", hash = "sha256:8041c78cd145088116db2329b2fb6e89dc338116c962fbe654b7e9f5d72ab957"},
- {file = "coverage-7.10.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37cc2c06052771f48651160c080a86431884db9cd62ba622cab71049b90a95b3"},
- {file = "coverage-7.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:91f37270b16178b05fa107d85713d29bf21606e37b652d38646eef5f2dfbd458"},
- {file = "coverage-7.10.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f9b0b0168864d09bcb9a3837548f75121645c4cfd0efce0eb994c221955c5b10"},
- {file = "coverage-7.10.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:df0be435d3b616e7d3ee3f9ebbc0d784a213986fe5dff9c6f1042ee7cfd30157"},
- {file = "coverage-7.10.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:35e9aba1c4434b837b1d567a533feba5ce205e8e91179c97974b28a14c23d3a0"},
- {file = "coverage-7.10.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a0b0c481e74dfad631bdc2c883e57d8b058e5c90ba8ef087600995daf7bbec18"},
- {file = "coverage-7.10.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8aec1b7c8922808a433c13cd44ace6fceac0609f4587773f6c8217a06102674b"},
- {file = "coverage-7.10.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:04ec59ceb3a594af0927f2e0d810e1221212abd9a2e6b5b917769ff48760b460"},
- {file = "coverage-7.10.0-cp313-cp313t-win32.whl", hash = "sha256:b6871e62d29646eb9b3f5f92def59e7575daea1587db21f99e2b19561187abda"},
- {file = "coverage-7.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff99cff2be44f78920b76803f782e91ffb46ccc7fa89eccccc0da3ca94285b64"},
- {file = "coverage-7.10.0-cp313-cp313t-win_arm64.whl", hash = "sha256:3246b63501348fe47299d12c47a27cfc221cfbffa1c2d857bcc8151323a4ae4f"},
- {file = "coverage-7.10.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:1f628d91f941a375b4503cb486148dbeeffb48e17bc080e0f0adfee729361574"},
- {file = "coverage-7.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3a0e101d5af952d233557e445f42ebace20b06b4ceb615581595ced5386caa78"},
- {file = "coverage-7.10.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ec4c1abbcc53f9f650acb14ea71725d88246a9e14ed42f8dd1b4e1b694e9d842"},
- {file = "coverage-7.10.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9c95f3a7f041b4cc68a8e3fecfa6366170c13ac773841049f1cd19c8650094e0"},
- {file = "coverage-7.10.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a2cd597b69c16d24e310611f2ed6fcfb8f09429316038c03a57e7b4f5345244"},
- {file = "coverage-7.10.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:5e18591906a40c2b3609196c9879136aa4a47c5405052ca6b065ab10cb0b71d0"},
- {file = "coverage-7.10.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:485c55744252ed3f300cc1a0f5f365e684a0f2651a7aed301f7a67125906b80e"},
- {file = "coverage-7.10.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4dabea1516e5b0e9577282b149c8015e4dceeb606da66fb8d9d75932d5799bf5"},
- {file = "coverage-7.10.0-cp314-cp314-win32.whl", hash = "sha256:ac455f0537af22333fdc23b824cff81110dff2d47300bb2490f947b7c9a16017"},
- {file = "coverage-7.10.0-cp314-cp314-win_amd64.whl", hash = "sha256:b3c94b532f52f95f36fbfde3e178510a4d04eea640b484b2fe8f1491338dc653"},
- {file = "coverage-7.10.0-cp314-cp314-win_arm64.whl", hash = "sha256:2f807f2c3a9da99c80dfa73f09ef5fc3bd21e70c73ba1c538f23396a3a772252"},
- {file = "coverage-7.10.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:0a889ef25215990f65073c32cadf37483363a6a22914186dedc15a6b1a597d50"},
- {file = "coverage-7.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:39c638ecf3123805bacbf71aff8091e93af490c676fca10ab4e442375076e483"},
- {file = "coverage-7.10.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f2f2c0df0cbcf7dffa14f88a99c530cdef3f4fcfe935fa4f95d28be2e7ebc570"},
- {file = "coverage-7.10.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:048d19a5d641a2296745ab59f34a27b89a08c48d6d432685f22aac0ec1ea447f"},
- {file = "coverage-7.10.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1209b65d302d7a762004be37ab9396cbd8c99525ed572bdf455477e3a9449e06"},
- {file = "coverage-7.10.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e44aa79a36a7a0aec6ea109905a4a7c28552d90f34e5941b36217ae9556657d5"},
- {file = "coverage-7.10.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:96124be864b89395770c9a14652afcddbcdafb99466f53a9281c51d1466fb741"},
- {file = "coverage-7.10.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:aad222e841f94b42bd1d6be71737fade66943853f0807cf87887c88f70883a2a"},
- {file = "coverage-7.10.0-cp314-cp314t-win32.whl", hash = "sha256:0eed5354d28caa5c8ad60e07e938f253e4b2810ea7dd56784339b6ce98b6f104"},
- {file = "coverage-7.10.0-cp314-cp314t-win_amd64.whl", hash = "sha256:3da35f9980058acb960b2644527cc3911f1e00f94d309d704b309fa984029109"},
- {file = "coverage-7.10.0-cp314-cp314t-win_arm64.whl", hash = "sha256:cb9e138dfa8a4b5c52c92a537651e2ca4f2ca48d8cb1bc01a2cbe7a5773c2426"},
- {file = "coverage-7.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cf283ec9c6878826291b17442eb5c32d3d252dc77d25e082b460b2d2ea67ba3c"},
- {file = "coverage-7.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8a83488c9fc6fff487f2ab551f9b64c70672357b8949f0951b0cd778b3ed8165"},
- {file = "coverage-7.10.0-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:b86df3a7494d12338c11e59f210a0498d6109bbc3a4037f44de517ebb30a9c6b"},
- {file = "coverage-7.10.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6de9b460809e5e4787b742e786a36ae2346a53982e2be317cdcb7a33c56412fb"},
- {file = "coverage-7.10.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de5ef8a5954d63fa26a6aaa4600e48f885ce70fe495e8fce2c43aa9241fc9434"},
- {file = "coverage-7.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f178fe5e96f1e057527d5d0b20ab76b8616e0410169c33716cc226118eaf2c4f"},
- {file = "coverage-7.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4a38c42f0182a012fa9ec25bc6057e51114c1ba125be304f3f776d6d283cb303"},
- {file = "coverage-7.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bf09beb5c1785cb36aad042455c0afab561399b74bb8cdaf6e82b7d77322df99"},
- {file = "coverage-7.10.0-cp39-cp39-win32.whl", hash = "sha256:cb8dfbb5d3016cb8d1940444c0c69b40cdc6c8bde724b07716ee5ea47b5273c6"},
- {file = "coverage-7.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:58ff22653cd93d563110d1ff2aef958f5f21be9e917762f8124d0e36f80f172a"},
- {file = "coverage-7.10.0-py3-none-any.whl", hash = "sha256:310a786330bb0463775c21d68e26e79973839b66d29e065c5787122b8dd4489f"},
- {file = "coverage-7.10.0.tar.gz", hash = "sha256:2768885aef484b5dcde56262cbdfba559b770bfc46994fe9485dc3614c7a5867"},
+ {file = "coverage-7.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1c86eb388bbd609d15560e7cc0eb936c102b6f43f31cf3e58b4fd9afe28e1372"},
+ {file = "coverage-7.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b4ba0f488c1bdb6bd9ba81da50715a372119785458831c73428a8566253b86b"},
+ {file = "coverage-7.10.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:083442ecf97d434f0cb3b3e3676584443182653da08b42e965326ba12d6b5f2a"},
+ {file = "coverage-7.10.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c1a40c486041006b135759f59189385da7c66d239bad897c994e18fd1d0c128f"},
+ {file = "coverage-7.10.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3beb76e20b28046989300c4ea81bf690df84ee98ade4dc0bbbf774a28eb98440"},
+ {file = "coverage-7.10.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bc265a7945e8d08da28999ad02b544963f813a00f3ed0a7a0ce4165fd77629f8"},
+ {file = "coverage-7.10.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:47c91f32ba4ac46f1e224a7ebf3f98b4b24335bad16137737fe71a5961a0665c"},
+ {file = "coverage-7.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1a108dd78ed185020f66f131c60078f3fae3f61646c28c8bb4edd3fa121fc7fc"},
+ {file = "coverage-7.10.1-cp310-cp310-win32.whl", hash = "sha256:7092cc82382e634075cc0255b0b69cb7cada7c1f249070ace6a95cb0f13548ef"},
+ {file = "coverage-7.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:ac0c5bba938879c2fc0bc6c1b47311b5ad1212a9dcb8b40fe2c8110239b7faed"},
+ {file = "coverage-7.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b45e2f9d5b0b5c1977cb4feb5f594be60eb121106f8900348e29331f553a726f"},
+ {file = "coverage-7.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a7a4d74cb0f5e3334f9aa26af7016ddb94fb4bfa11b4a573d8e98ecba8c34f1"},
+ {file = "coverage-7.10.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d4b0aab55ad60ead26159ff12b538c85fbab731a5e3411c642b46c3525863437"},
+ {file = "coverage-7.10.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:dcc93488c9ebd229be6ee1f0d9aad90da97b33ad7e2912f5495804d78a3cd6b7"},
+ {file = "coverage-7.10.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa309df995d020f3438407081b51ff527171cca6772b33cf8f85344b8b4b8770"},
+ {file = "coverage-7.10.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cfb8b9d8855c8608f9747602a48ab525b1d320ecf0113994f6df23160af68262"},
+ {file = "coverage-7.10.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:320d86da829b012982b414c7cdda65f5d358d63f764e0e4e54b33097646f39a3"},
+ {file = "coverage-7.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dc60ddd483c556590da1d9482a4518292eec36dd0e1e8496966759a1f282bcd0"},
+ {file = "coverage-7.10.1-cp311-cp311-win32.whl", hash = "sha256:4fcfe294f95b44e4754da5b58be750396f2b1caca8f9a0e78588e3ef85f8b8be"},
+ {file = "coverage-7.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:efa23166da3fe2915f8ab452dde40319ac84dc357f635737174a08dbd912980c"},
+ {file = "coverage-7.10.1-cp311-cp311-win_arm64.whl", hash = "sha256:d12b15a8c3759e2bb580ffa423ae54be4f184cf23beffcbd641f4fe6e1584293"},
+ {file = "coverage-7.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6b7dc7f0a75a7eaa4584e5843c873c561b12602439d2351ee28c7478186c4da4"},
+ {file = "coverage-7.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:607f82389f0ecafc565813aa201a5cade04f897603750028dd660fb01797265e"},
+ {file = "coverage-7.10.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f7da31a1ba31f1c1d4d5044b7c5813878adae1f3af8f4052d679cc493c7328f4"},
+ {file = "coverage-7.10.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:51fe93f3fe4f5d8483d51072fddc65e717a175490804e1942c975a68e04bf97a"},
+ {file = "coverage-7.10.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3e59d00830da411a1feef6ac828b90bbf74c9b6a8e87b8ca37964925bba76dbe"},
+ {file = "coverage-7.10.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:924563481c27941229cb4e16eefacc35da28563e80791b3ddc5597b062a5c386"},
+ {file = "coverage-7.10.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ca79146ee421b259f8131f153102220b84d1a5e6fb9c8aed13b3badfd1796de6"},
+ {file = "coverage-7.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2b225a06d227f23f386fdc0eab471506d9e644be699424814acc7d114595495f"},
+ {file = "coverage-7.10.1-cp312-cp312-win32.whl", hash = "sha256:5ba9a8770effec5baaaab1567be916c87d8eea0c9ad11253722d86874d885eca"},
+ {file = "coverage-7.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:9eb245a8d8dd0ad73b4062135a251ec55086fbc2c42e0eb9725a9b553fba18a3"},
+ {file = "coverage-7.10.1-cp312-cp312-win_arm64.whl", hash = "sha256:7718060dd4434cc719803a5e526838a5d66e4efa5dc46d2b25c21965a9c6fcc4"},
+ {file = "coverage-7.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ebb08d0867c5a25dffa4823377292a0ffd7aaafb218b5d4e2e106378b1061e39"},
+ {file = "coverage-7.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f32a95a83c2e17422f67af922a89422cd24c6fa94041f083dd0bb4f6057d0bc7"},
+ {file = "coverage-7.10.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c4c746d11c8aba4b9f58ca8bfc6fbfd0da4efe7960ae5540d1a1b13655ee8892"},
+ {file = "coverage-7.10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7f39edd52c23e5c7ed94e0e4bf088928029edf86ef10b95413e5ea670c5e92d7"},
+ {file = "coverage-7.10.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab6e19b684981d0cd968906e293d5628e89faacb27977c92f3600b201926b994"},
+ {file = "coverage-7.10.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5121d8cf0eacb16133501455d216bb5f99899ae2f52d394fe45d59229e6611d0"},
+ {file = "coverage-7.10.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:df1c742ca6f46a6f6cbcaef9ac694dc2cb1260d30a6a2f5c68c5f5bcfee1cfd7"},
+ {file = "coverage-7.10.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:40f9a38676f9c073bf4b9194707aa1eb97dca0e22cc3766d83879d72500132c7"},
+ {file = "coverage-7.10.1-cp313-cp313-win32.whl", hash = "sha256:2348631f049e884839553b9974f0821d39241c6ffb01a418efce434f7eba0fe7"},
+ {file = "coverage-7.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:4072b31361b0d6d23f750c524f694e1a417c1220a30d3ef02741eed28520c48e"},
+ {file = "coverage-7.10.1-cp313-cp313-win_arm64.whl", hash = "sha256:3e31dfb8271937cab9425f19259b1b1d1f556790e98eb266009e7a61d337b6d4"},
+ {file = "coverage-7.10.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1c4f679c6b573a5257af6012f167a45be4c749c9925fd44d5178fd641ad8bf72"},
+ {file = "coverage-7.10.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:871ebe8143da284bd77b84a9136200bd638be253618765d21a1fce71006d94af"},
+ {file = "coverage-7.10.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:998c4751dabf7d29b30594af416e4bf5091f11f92a8d88eb1512c7ba136d1ed7"},
+ {file = "coverage-7.10.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:780f750a25e7749d0af6b3631759c2c14f45de209f3faaa2398312d1c7a22759"},
+ {file = "coverage-7.10.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:590bdba9445df4763bdbebc928d8182f094c1f3947a8dc0fc82ef014dbdd8324"},
+ {file = "coverage-7.10.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b2df80cb6a2af86d300e70acb82e9b79dab2c1e6971e44b78dbfc1a1e736b53"},
+ {file = "coverage-7.10.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d6a558c2725bfb6337bf57c1cd366c13798bfd3bfc9e3dd1f4a6f6fc95a4605f"},
+ {file = "coverage-7.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e6150d167f32f2a54690e572e0a4c90296fb000a18e9b26ab81a6489e24e78dd"},
+ {file = "coverage-7.10.1-cp313-cp313t-win32.whl", hash = "sha256:d946a0c067aa88be4a593aad1236493313bafaa27e2a2080bfe88db827972f3c"},
+ {file = "coverage-7.10.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e37c72eaccdd5ed1130c67a92ad38f5b2af66eeff7b0abe29534225db2ef7b18"},
+ {file = "coverage-7.10.1-cp313-cp313t-win_arm64.whl", hash = "sha256:89ec0ffc215c590c732918c95cd02b55c7d0f569d76b90bb1a5e78aa340618e4"},
+ {file = "coverage-7.10.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:166d89c57e877e93d8827dac32cedae6b0277ca684c6511497311249f35a280c"},
+ {file = "coverage-7.10.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bed4a2341b33cd1a7d9ffc47df4a78ee61d3416d43b4adc9e18b7d266650b83e"},
+ {file = "coverage-7.10.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ddca1e4f5f4c67980533df01430184c19b5359900e080248bbf4ed6789584d8b"},
+ {file = "coverage-7.10.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:37b69226001d8b7de7126cad7366b0778d36777e4d788c66991455ba817c5b41"},
+ {file = "coverage-7.10.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2f22102197bcb1722691296f9e589f02b616f874e54a209284dd7b9294b0b7f"},
+ {file = "coverage-7.10.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1e0c768b0f9ac5839dac5cf88992a4bb459e488ee8a1f8489af4cb33b1af00f1"},
+ {file = "coverage-7.10.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:991196702d5e0b120a8fef2664e1b9c333a81d36d5f6bcf6b225c0cf8b0451a2"},
+ {file = "coverage-7.10.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae8e59e5f4fd85d6ad34c2bb9d74037b5b11be072b8b7e9986beb11f957573d4"},
+ {file = "coverage-7.10.1-cp314-cp314-win32.whl", hash = "sha256:042125c89cf74a074984002e165d61fe0e31c7bd40ebb4bbebf07939b5924613"},
+ {file = "coverage-7.10.1-cp314-cp314-win_amd64.whl", hash = "sha256:a22c3bfe09f7a530e2c94c87ff7af867259c91bef87ed2089cd69b783af7b84e"},
+ {file = "coverage-7.10.1-cp314-cp314-win_arm64.whl", hash = "sha256:ee6be07af68d9c4fca4027c70cea0c31a0f1bc9cb464ff3c84a1f916bf82e652"},
+ {file = "coverage-7.10.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:d24fb3c0c8ff0d517c5ca5de7cf3994a4cd559cde0315201511dbfa7ab528894"},
+ {file = "coverage-7.10.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1217a54cfd79be20512a67ca81c7da3f2163f51bbfd188aab91054df012154f5"},
+ {file = "coverage-7.10.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:51f30da7a52c009667e02f125737229d7d8044ad84b79db454308033a7808ab2"},
+ {file = "coverage-7.10.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ed3718c757c82d920f1c94089066225ca2ad7f00bb904cb72b1c39ebdd906ccb"},
+ {file = "coverage-7.10.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc452481e124a819ced0c25412ea2e144269ef2f2534b862d9f6a9dae4bda17b"},
+ {file = "coverage-7.10.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9d6f494c307e5cb9b1e052ec1a471060f1dea092c8116e642e7a23e79d9388ea"},
+ {file = "coverage-7.10.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:fc0e46d86905ddd16b85991f1f4919028092b4e511689bbdaff0876bd8aab3dd"},
+ {file = "coverage-7.10.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:80b9ccd82e30038b61fc9a692a8dc4801504689651b281ed9109f10cc9fe8b4d"},
+ {file = "coverage-7.10.1-cp314-cp314t-win32.whl", hash = "sha256:e58991a2b213417285ec866d3cd32db17a6a88061a985dbb7e8e8f13af429c47"},
+ {file = "coverage-7.10.1-cp314-cp314t-win_amd64.whl", hash = "sha256:e88dd71e4ecbc49d9d57d064117462c43f40a21a1383507811cf834a4a620651"},
+ {file = "coverage-7.10.1-cp314-cp314t-win_arm64.whl", hash = "sha256:1aadfb06a30c62c2eb82322171fe1f7c288c80ca4156d46af0ca039052814bab"},
+ {file = "coverage-7.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:57b6e8789cbefdef0667e4a94f8ffa40f9402cee5fc3b8e4274c894737890145"},
+ {file = "coverage-7.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:85b22a9cce00cb03156334da67eb86e29f22b5e93876d0dd6a98646bb8a74e53"},
+ {file = "coverage-7.10.1-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:97b6983a2f9c76d345ca395e843a049390b39652984e4a3b45b2442fa733992d"},
+ {file = "coverage-7.10.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ddf2a63b91399a1c2f88f40bc1705d5a7777e31c7e9eb27c602280f477b582ba"},
+ {file = "coverage-7.10.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:47ab6dbbc31a14c5486420c2c1077fcae692097f673cf5be9ddbec8cdaa4cdbc"},
+ {file = "coverage-7.10.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:21eb7d8b45d3700e7c2936a736f732794c47615a20f739f4133d5230a6512a88"},
+ {file = "coverage-7.10.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:283005bb4d98ae33e45f2861cd2cde6a21878661c9ad49697f6951b358a0379b"},
+ {file = "coverage-7.10.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:fefe31d61d02a8b2c419700b1fade9784a43d726de26495f243b663cd9fe1513"},
+ {file = "coverage-7.10.1-cp39-cp39-win32.whl", hash = "sha256:e8ab8e4c7ec7f8a55ac05b5b715a051d74eac62511c6d96d5bb79aaafa3b04cf"},
+ {file = "coverage-7.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:c36baa0ecde742784aa76c2b816466d3ea888d5297fda0edbac1bf48fa94688a"},
+ {file = "coverage-7.10.1-py3-none-any.whl", hash = "sha256:fa2a258aa6bf188eb9a8948f7102a83da7c430a0dce918dbd8b60ef8fcb772d7"},
+ {file = "coverage-7.10.1.tar.gz", hash = "sha256:ae2b4856f29ddfe827106794f3589949a57da6f0d38ab01e24ec35107979ba57"},
]
[package.extras]
diff --git a/tests/integration_tests/user_household_tests/test_group_webhooks.py b/tests/integration_tests/user_household_tests/test_group_webhooks.py
index 3dd7d87b5..e91a25dd3 100644
--- a/tests/integration_tests/user_household_tests/test_group_webhooks.py
+++ b/tests/integration_tests/user_household_tests/test_group_webhooks.py
@@ -3,6 +3,8 @@ from datetime import UTC, datetime
import pytest
from fastapi.testclient import TestClient
+from mealie.schema.household.webhook import ReadWebhook
+from mealie.services.scheduler.tasks.post_webhooks import post_test_webhook
from tests.utils import api_routes, assert_deserialize, jsonify
from tests.utils.fixture_schemas import TestUser
@@ -84,3 +86,48 @@ def test_delete_webhook(api_client: TestClient, webhook_data, unique_user: TestU
response = api_client.get(api_routes.households_webhooks_item_id(item_id), headers=unique_user.token)
assert response.status_code == 404
+
+
+def test_post_test_webhook(
+ monkeypatch: pytest.MonkeyPatch, api_client: TestClient, unique_user: TestUser, webhook_data
+):
+ # Mock the requests.post to avoid actual HTTP calls
+ class MockResponse:
+ status_code = 200
+
+ mock_calls = []
+
+ def mock_post(*args, **kwargs):
+ mock_calls.append((args, kwargs))
+ return MockResponse()
+
+ monkeypatch.setattr("mealie.services.event_bus_service.publisher.requests.post", mock_post)
+
+ # Create a webhook and post it
+ response = api_client.post(
+ api_routes.households_webhooks,
+ json=jsonify(webhook_data),
+ headers=unique_user.token,
+ )
+ webhook_dict = assert_deserialize(response, 201)
+
+ webhook = ReadWebhook(
+ id=webhook_dict["id"],
+ name=webhook_dict["name"],
+ url=webhook_dict["url"],
+ scheduled_time=webhook_dict["scheduledTime"],
+ enabled=webhook_dict["enabled"],
+ group_id=webhook_dict["groupId"],
+ household_id=webhook_dict["householdId"],
+ )
+
+ test_message = "This is a test webhook message"
+ post_test_webhook(webhook, test_message)
+
+ # Verify that requests.post was called with the correct parameters
+ assert len(mock_calls) == 1
+ args, kwargs = mock_calls[0]
+
+ assert kwargs["json"]["message"]["body"] == test_message
+ assert kwargs["timeout"] == 15
+ assert args[0] == webhook.url