Add Label notifier

* Running 'task dev:generate' on current mealie-next
This commit is contained in:
Craig 2025-08-02 13:39:55 +00:00
commit 0741e07999
21 changed files with 198 additions and 183 deletions

View file

@ -1,5 +1,5 @@
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script
@ -117,6 +117,7 @@ export interface CustomPageBase {
export interface RecipeCategoryResponse {
name: string;
id: string;
groupId?: string | null;
slug: string;
recipes?: RecipeSummary[];
}
@ -149,18 +150,21 @@ export interface RecipeSummary {
}
export interface RecipeCategory {
id?: string | null;
groupId?: string | null;
name: string;
slug: string;
[k: string]: unknown;
}
export interface RecipeTag {
id?: string | null;
groupId?: string | null;
name: string;
slug: string;
[k: string]: unknown;
}
export interface RecipeTool {
id: string;
groupId?: string | null;
name: string;
slug: string;
householdsWithTool?: string[];

View file

@ -1,5 +1,5 @@
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script

View file

@ -1,5 +1,5 @@
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script
@ -39,7 +39,6 @@ export interface QueryFilterJSONPart {
attributeName?: string | null;
relationalOperator?: RelationalKeyword | RelationalOperator | null;
value?: string | string[] | null;
[k: string]: unknown;
}
export interface RecipeCookBook {
name: string;
@ -83,18 +82,21 @@ export interface RecipeSummary {
}
export interface RecipeCategory {
id?: string | null;
groupId?: string | null;
name: string;
slug: string;
[k: string]: unknown;
}
export interface RecipeTag {
id?: string | null;
groupId?: string | null;
name: string;
slug: string;
[k: string]: unknown;
}
export interface RecipeTool {
id: string;
groupId?: string | null;
name: string;
slug: string;
householdsWithTool?: string[];

View file

@ -1,5 +1,5 @@
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script

View file

@ -1,5 +1,5 @@
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script
@ -167,6 +167,7 @@ export interface GroupRecipeActionOut {
export interface GroupRecipeActionPayload {
action: GroupRecipeActionOut;
content: unknown;
recipeScale: number;
}
export interface HouseholdCreate {
groupId?: string | null;
@ -602,18 +603,21 @@ export interface RecipeSummary {
}
export interface RecipeCategory {
id?: string | null;
groupId?: string | null;
name: string;
slug: string;
[k: string]: unknown;
}
export interface RecipeTag {
id?: string | null;
groupId?: string | null;
name: string;
slug: string;
[k: string]: unknown;
}
export interface RecipeTool {
id: string;
groupId?: string | null;
name: string;
slug: string;
householdsWithTool?: string[];

View file

@ -1,5 +1,5 @@
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script

View file

@ -1,12 +1,10 @@
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script
*/
import type { HouseholdSummary } from "./household";
export type PlanEntryType = "breakfast" | "lunch" | "dinner" | "side";
export type PlanRulesDay = "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | "unset";
export type PlanRulesType = "breakfast" | "lunch" | "dinner" | "side" | "unset";
@ -44,9 +42,6 @@ export interface PlanRulesOut {
householdId: string;
id: string;
queryFilter?: QueryFilterJSON;
categories?: RecipeCategory[];
tags?: RecipeTag[];
households?: HouseholdSummary[];
}
export interface QueryFilterJSON {
parts?: QueryFilterJSONPart[];
@ -108,18 +103,21 @@ export interface RecipeSummary {
}
export interface RecipeCategory {
id?: string | null;
groupId?: string | null;
name: string;
slug: string;
[k: string]: unknown;
}
export interface RecipeTag {
id?: string | null;
groupId?: string | null;
name: string;
slug: string;
[k: string]: unknown;
}
export interface RecipeTool {
id: string;
groupId?: string | null;
name: string;
slug: string;
householdsWithTool?: string[];

View file

@ -19,6 +19,7 @@ export interface AssignCategories {
export interface CategoryBase {
name: string;
id: string;
groupId?: string | null;
slug: string;
}
export interface AssignSettings {
@ -41,6 +42,7 @@ export interface AssignTags {
export interface TagBase {
name: string;
id: string;
groupId?: string | null;
slug: string;
}
export interface CategoryIn {
@ -49,8 +51,8 @@ export interface CategoryIn {
export interface CategoryOut {
name: string;
id: string;
slug: string;
groupId: string;
slug: string;
}
export interface CategorySave {
name: string;
@ -98,11 +100,13 @@ export interface CreateRecipeBulk {
}
export interface RecipeCategory {
id?: string | null;
groupId?: string | null;
name: string;
slug: string;
}
export interface RecipeTag {
id?: string | null;
groupId?: string | null;
name: string;
slug: string;
}
@ -226,7 +230,7 @@ export interface Recipe {
groupId?: string;
name?: string | null;
slug?: string;
image?: string;
image?: unknown;
recipeServings?: number;
recipeYieldQuantity?: number;
recipeYield?: string | null;
@ -258,6 +262,7 @@ export interface Recipe {
}
export interface RecipeTool {
id: string;
groupId?: string | null;
name: string;
slug: string;
householdsWithTool?: string[];
@ -296,6 +301,7 @@ export interface UserBase {
export interface RecipeCategoryResponse {
name: string;
id: string;
groupId?: string | null;
slug: string;
recipes?: RecipeSummary[];
}
@ -404,6 +410,7 @@ export interface RecipeSuggestionResponseItem {
export interface RecipeTagResponse {
name: string;
id: string;
groupId?: string | null;
slug: string;
recipes?: RecipeSummary[];
}
@ -452,12 +459,14 @@ export interface RecipeToolOut {
name: string;
householdsWithTool?: string[];
id: string;
groupId: string;
slug: string;
}
export interface RecipeToolResponse {
name: string;
householdsWithTool?: string[];
id: string;
groupId: string;
slug: string;
recipes?: RecipeSummary[];
}
@ -512,7 +521,7 @@ export interface ScrapeRecipeTest {
url: string;
useOpenAI?: boolean;
}
export interface SlugResponse { }
export interface SlugResponse {}
export interface TagIn {
name: string;
}

View file

@ -1,5 +1,5 @@
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script

View file

@ -1,5 +1,5 @@
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script

View file

@ -1,5 +1,5 @@
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script
@ -63,6 +63,7 @@ export interface GroupInDB {
export interface CategoryBase {
name: string;
id: string;
groupId?: string | null;
slug: string;
}
export interface ReadWebhook {
@ -197,7 +198,6 @@ export interface UserBase {
canManage?: boolean;
canManageHousehold?: boolean;
canOrganize?: boolean;
advancedOptions?: boolean;
}
export interface UserIn {
id?: string | null;

View file

@ -1,41 +1,41 @@
// This Code is auto generated by gen_ts_types.py
import type AdvancedOnly from "@/components/global/AdvancedOnly.vue";
import type AppButtonCopy from "@/components/global/AppButtonCopy.vue";
import type AppButtonUpload from "@/components/global/AppButtonUpload.vue";
import type AppLoader from "@/components/global/AppLoader.vue";
import type AppToolbar from "@/components/global/AppToolbar.vue";
import type AutoForm from "@/components/global/AutoForm.vue";
import type BannerExperimental from "@/components/global/BannerExperimental.vue";
import type BannerWarning from "@/components/global/BannerWarning.vue";
import type BaseButton from "@/components/global/BaseButton.vue";
import type BaseButtonGroup from "@/components/global/BaseButtonGroup.vue";
import type BaseCardSectionTitle from "@/components/global/BaseCardSectionTitle.vue";
import type BaseDialog from "@/components/global/BaseDialog.vue";
import type BaseDivider from "@/components/global/BaseDivider.vue";
import type BaseOverflowButton from "@/components/global/BaseOverflowButton.vue";
import type BasePageTitle from "@/components/global/BasePageTitle.vue";
import type BaseStatCard from "@/components/global/BaseStatCard.vue";
import type BaseWizard from "@/components/global/BaseWizard.vue";
import type ButtonLink from "@/components/global/ButtonLink.vue";
import type ContextMenu from "@/components/global/ContextMenu.vue";
import type CrudTable from "@/components/global/CrudTable.vue";
import type DevDumpJson from "@/components/global/DevDumpJson.vue";
import type DocLink from "@/components/global/DocLink.vue";
import type DropZone from "@/components/global/DropZone.vue";
import type HelpIcon from "@/components/global/HelpIcon.vue";
import type ImageCropper from "@/components/global/ImageCropper.vue";
import type InputColor from "@/components/global/InputColor.vue";
import type InputLabelType from "@/components/global/InputLabelType.vue";
import type InputQuantity from "@/components/global/InputQuantity.vue";
import type LanguageDialog from "@/components/global/LanguageDialog.vue";
import type MarkdownEditor from "@/components/global/MarkdownEditor.vue";
import type RecipeJsonEditor from "@/components/global/RecipeJsonEditor.vue";
import type ReportTable from "@/components/global/ReportTable.vue";
import type SafeMarkdown from "@/components/global/SafeMarkdown.vue";
import type StatsCards from "@/components/global/StatsCards.vue";
import type ToggleState from "@/components/global/ToggleState.vue";
import type WakelockSwitch from "@/components/global/WakelockSwitch.vue";
import type DefaultLayout from "@/components/layout/DefaultLayout.vue";
import AdvancedOnly from "@/components/global/AdvancedOnly.vue";
import AppButtonCopy from "@/components/global/AppButtonCopy.vue";
import AppButtonUpload from "@/components/global/AppButtonUpload.vue";
import AppLoader from "@/components/global/AppLoader.vue";
import AppToolbar from "@/components/global/AppToolbar.vue";
import AutoForm from "@/components/global/AutoForm.vue";
import BannerExperimental from "@/components/global/BannerExperimental.vue";
import BannerWarning from "@/components/global/BannerWarning.vue";
import BaseButton from "@/components/global/BaseButton.vue";
import BaseButtonGroup from "@/components/global/BaseButtonGroup.vue";
import BaseCardSectionTitle from "@/components/global/BaseCardSectionTitle.vue";
import BaseDialog from "@/components/global/BaseDialog.vue";
import BaseDivider from "@/components/global/BaseDivider.vue";
import BaseOverflowButton from "@/components/global/BaseOverflowButton.vue";
import BasePageTitle from "@/components/global/BasePageTitle.vue";
import BaseStatCard from "@/components/global/BaseStatCard.vue";
import BaseWizard from "@/components/global/BaseWizard.vue";
import ButtonLink from "@/components/global/ButtonLink.vue";
import ContextMenu from "@/components/global/ContextMenu.vue";
import CrudTable from "@/components/global/CrudTable.vue";
import DevDumpJson from "@/components/global/DevDumpJson.vue";
import DocLink from "@/components/global/DocLink.vue";
import DropZone from "@/components/global/DropZone.vue";
import HelpIcon from "@/components/global/HelpIcon.vue";
import ImageCropper from "@/components/global/ImageCropper.vue";
import InputColor from "@/components/global/InputColor.vue";
import InputLabelType from "@/components/global/InputLabelType.vue";
import InputQuantity from "@/components/global/InputQuantity.vue";
import LanguageDialog from "@/components/global/LanguageDialog.vue";
import MarkdownEditor from "@/components/global/MarkdownEditor.vue";
import RecipeJsonEditor from "@/components/global/RecipeJsonEditor.vue";
import ReportTable from "@/components/global/ReportTable.vue";
import SafeMarkdown from "@/components/global/SafeMarkdown.vue";
import StatsCards from "@/components/global/StatsCards.vue";
import ToggleState from "@/components/global/ToggleState.vue";
import WakelockSwitch from "@/components/global/WakelockSwitch.vue";
import DefaultLayout from "@/components/layout/DefaultLayout.vue";
declare module "vue" {
export interface GlobalComponents {

View file

@ -3,11 +3,11 @@ from .datetime_parse import DateError, DateTimeError, DurationError, TimeError
from .mealie_model import HasUUID, MealieModel, SearchType
__all__ = [
"HasUUID",
"MealieModel",
"SearchType",
"DateError",
"DateTimeError",
"DurationError",
"TimeError",
"HasUUID",
"MealieModel",
"SearchType",
]

View file

@ -18,28 +18,10 @@ from .restore import (
from .settings import CustomPageBase, CustomPageOut
__all__ = [
"MaintenanceLogs",
"MaintenanceStorageDetails",
"MaintenanceSummary",
"ChowdownURL",
"MigrationFile",
"MigrationImport",
"Migrations",
"CustomPageBase",
"CustomPageOut",
"CommentImport",
"CustomPageImport",
"GroupImport",
"ImportBase",
"NotificationImport",
"RecipeImport",
"SettingsImport",
"UserImport",
"AllBackups",
"BackupFile",
"BackupOptions",
"CreateBackup",
"ImportJob",
"AdminAboutInfo",
"AppInfo",
"AppStartupInfo",
@ -49,5 +31,23 @@ __all__ = [
"EmailReady",
"EmailSuccess",
"EmailTest",
"CustomPageBase",
"CustomPageOut",
"AllBackups",
"BackupFile",
"BackupOptions",
"CreateBackup",
"ImportJob",
"MaintenanceLogs",
"MaintenanceStorageDetails",
"MaintenanceSummary",
"DebugResponse",
"CommentImport",
"CustomPageImport",
"GroupImport",
"ImportBase",
"NotificationImport",
"RecipeImport",
"SettingsImport",
"UserImport",
]

View file

@ -7,13 +7,13 @@ from .group_seeder import SeederConfig
from .group_statistics import GroupStorage
__all__ = [
"GroupAdminUpdate",
"GroupStorage",
"GroupDataExport",
"SeederConfig",
"CreateGroupPreferences",
"ReadGroupPreferences",
"UpdateGroupPreferences",
"GroupStorage",
"DataMigrationCreate",
"SupportedMigrations",
"SeederConfig",
"GroupAdminUpdate",
]

View file

@ -70,49 +70,6 @@ from .invite_token import CreateInviteToken, EmailInitationResponse, EmailInvita
from .webhook import CreateWebhook, ReadWebhook, SaveWebhook, WebhookPagination, WebhookType
__all__ = [
"GroupEventNotifierCreate",
"GroupEventNotifierOptions",
"GroupEventNotifierOptionsOut",
"GroupEventNotifierOptionsSave",
"GroupEventNotifierOut",
"GroupEventNotifierPrivate",
"GroupEventNotifierSave",
"GroupEventNotifierUpdate",
"GroupEventPagination",
"CreateGroupRecipeAction",
"GroupRecipeActionOut",
"GroupRecipeActionPagination",
"GroupRecipeActionPayload",
"GroupRecipeActionType",
"SaveGroupRecipeAction",
"CreateWebhook",
"ReadWebhook",
"SaveWebhook",
"WebhookPagination",
"WebhookType",
"CreateHouseholdPreferences",
"ReadHouseholdPreferences",
"SaveHouseholdPreferences",
"UpdateHouseholdPreferences",
"HouseholdCreate",
"HouseholdInDB",
"HouseholdPagination",
"HouseholdRecipeBase",
"HouseholdRecipeCreate",
"HouseholdRecipeOut",
"HouseholdRecipeSummary",
"HouseholdRecipeUpdate",
"HouseholdSave",
"HouseholdSummary",
"HouseholdUserSummary",
"UpdateHousehold",
"UpdateHouseholdAdmin",
"HouseholdStatistics",
"CreateInviteToken",
"EmailInitationResponse",
"EmailInvitation",
"ReadInviteToken",
"SaveInviteToken",
"ShoppingListAddRecipeParams",
"ShoppingListAddRecipeParamsBulk",
"ShoppingListCreate",
@ -136,5 +93,48 @@ __all__ = [
"ShoppingListSave",
"ShoppingListSummary",
"ShoppingListUpdate",
"GroupEventNotifierCreate",
"GroupEventNotifierOptions",
"GroupEventNotifierOptionsOut",
"GroupEventNotifierOptionsSave",
"GroupEventNotifierOut",
"GroupEventNotifierPrivate",
"GroupEventNotifierSave",
"GroupEventNotifierUpdate",
"GroupEventPagination",
"CreateGroupRecipeAction",
"GroupRecipeActionOut",
"GroupRecipeActionPagination",
"GroupRecipeActionPayload",
"GroupRecipeActionType",
"SaveGroupRecipeAction",
"CreateHouseholdPreferences",
"ReadHouseholdPreferences",
"SaveHouseholdPreferences",
"UpdateHouseholdPreferences",
"SetPermissions",
"CreateInviteToken",
"EmailInitationResponse",
"EmailInvitation",
"ReadInviteToken",
"SaveInviteToken",
"HouseholdStatistics",
"CreateWebhook",
"ReadWebhook",
"SaveWebhook",
"WebhookPagination",
"WebhookType",
"HouseholdCreate",
"HouseholdInDB",
"HouseholdPagination",
"HouseholdRecipeBase",
"HouseholdRecipeCreate",
"HouseholdRecipeOut",
"HouseholdRecipeSummary",
"HouseholdRecipeUpdate",
"HouseholdSave",
"HouseholdSummary",
"HouseholdUserSummary",
"UpdateHousehold",
"UpdateHouseholdAdmin",
]

View file

@ -12,9 +12,6 @@ from .plan_rules import PlanRulesCreate, PlanRulesDay, PlanRulesOut, PlanRulesPa
from .shopping_list import ListItem, ShoppingListIn, ShoppingListOut
__all__ = [
"ListItem",
"ShoppingListIn",
"ShoppingListOut",
"CreatePlanEntry",
"CreateRandomEntry",
"PlanEntryPagination",
@ -22,6 +19,9 @@ __all__ = [
"ReadPlanEntry",
"SavePlanEntry",
"UpdatePlanEntry",
"ListItem",
"ShoppingListIn",
"ShoppingListOut",
"PlanRulesCreate",
"PlanRulesDay",
"PlanRulesOut",

View file

@ -89,35 +89,6 @@ from .recipe_tool import RecipeToolCreate, RecipeToolOut, RecipeToolResponse, Re
from .request_helpers import RecipeDuplicate, RecipeSlug, RecipeZipTokenResponse, SlugResponse, UpdateImageResponse
__all__ = [
"IngredientReferences",
"RecipeStep",
"RecipeNote",
"CategoryBase",
"CategoryIn",
"CategoryOut",
"CategorySave",
"RecipeCategoryResponse",
"RecipeTagResponse",
"TagBase",
"TagIn",
"TagOut",
"TagSave",
"RecipeAsset",
"RecipeTimelineEventCreate",
"RecipeTimelineEventIn",
"RecipeTimelineEventOut",
"RecipeTimelineEventPagination",
"RecipeTimelineEventUpdate",
"TimelineEventImage",
"TimelineEventType",
"RecipeSuggestionQuery",
"RecipeSuggestionResponse",
"RecipeSuggestionResponseItem",
"Nutrition",
"RecipeShareToken",
"RecipeShareTokenCreate",
"RecipeShareTokenSave",
"RecipeShareTokenSummary",
"CreateIngredientFood",
"CreateIngredientFoodAlias",
"CreateIngredientUnit",
@ -140,13 +111,27 @@ __all__ = [
"SaveIngredientFood",
"SaveIngredientUnit",
"UnitFoodBase",
"RecipeTimelineEventCreate",
"RecipeTimelineEventIn",
"RecipeTimelineEventOut",
"RecipeTimelineEventPagination",
"RecipeTimelineEventUpdate",
"TimelineEventImage",
"TimelineEventType",
"Nutrition",
"AssignCategories",
"AssignSettings",
"AssignTags",
"DeleteRecipes",
"ExportBase",
"ExportRecipes",
"ExportTypes",
"RecipeCommentCreate",
"RecipeCommentOut",
"RecipeCommentPagination",
"RecipeCommentSave",
"RecipeCommentUpdate",
"UserBase",
"RecipeSettings",
"CreateRecipe",
"CreateRecipeBulk",
"CreateRecipeByUrlBulk",
@ -160,25 +145,40 @@ __all__ = [
"RecipeTagPagination",
"RecipeTool",
"RecipeToolPagination",
"ScrapeRecipe",
"ScrapeRecipeBase",
"ScrapeRecipeData",
"ScrapeRecipeTest",
"AssignCategories",
"AssignSettings",
"AssignTags",
"DeleteRecipes",
"ExportBase",
"ExportRecipes",
"ExportTypes",
"RecipeToolCreate",
"RecipeToolOut",
"RecipeToolResponse",
"RecipeToolSave",
"RecipeImageTypes",
"IngredientReferences",
"RecipeStep",
"RecipeNote",
"RecipeSuggestionQuery",
"RecipeSuggestionResponse",
"RecipeSuggestionResponseItem",
"RecipeSettings",
"RecipeShareToken",
"RecipeShareTokenCreate",
"RecipeShareTokenSave",
"RecipeShareTokenSummary",
"RecipeAsset",
"RecipeDuplicate",
"RecipeSlug",
"RecipeZipTokenResponse",
"SlugResponse",
"UpdateImageResponse",
"RecipeToolCreate",
"RecipeToolOut",
"RecipeToolResponse",
"RecipeToolSave",
"CategoryBase",
"CategoryIn",
"CategoryOut",
"CategorySave",
"RecipeCategoryResponse",
"RecipeTagResponse",
"TagBase",
"TagIn",
"TagOut",
"TagSave",
"ScrapeRecipe",
"ScrapeRecipeBase",
"ScrapeRecipeData",
"ScrapeRecipeTest",
"RecipeImageTypes",
]

View file

@ -28,14 +28,14 @@ __all__ = [
"QueryFilterJSONPart",
"RelationalKeyword",
"RelationalOperator",
"ValidationResponse",
"SearchFilter",
"OrderByNullPosition",
"OrderDirection",
"PaginationBase",
"PaginationQuery",
"RecipeSearchQuery",
"RequestQuery",
"SearchFilter",
"ValidationResponse",
"ErrorResponse",
"FileTokenResponse",
"SuccessResponse",

View file

@ -38,12 +38,6 @@ from .user_passwords import (
)
__all__ = [
"ForgotPassword",
"PasswordResetToken",
"PrivatePasswordResetToken",
"ResetPassword",
"SavePasswordResetToken",
"ValidateResetToken",
"CredentialsRequest",
"CredentialsRequestForm",
"Token",
@ -75,4 +69,10 @@ __all__ = [
"UserRatings",
"UserSummary",
"UserSummaryPagination",
"ForgotPassword",
"PasswordResetToken",
"PrivatePasswordResetToken",
"ResetPassword",
"SavePasswordResetToken",
"ValidateResetToken",
]

View file

@ -173,8 +173,6 @@ units = "/api/units"
"""`/api/units`"""
units_merge = "/api/units/merge"
"""`/api/units/merge`"""
users = "/api/users"
"""`/api/users`"""
users_api_tokens = "/api/users/api-tokens"
"""`/api/users/api-tokens`"""
users_forgot_password = "/api/users/forgot-password"