mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-31 10:13:32 -04:00 
			
		
		
		
	* Add pytesseract * Add simple ocr endpoint replace extension argument * feat/ocr-editor gui * fix frontend linting issues * Add service unit tests * Add split text modes & single ingredient/instruction editing * make split mode really reactive * Remove default step and ingredient * make the linter haappy * Accept only image uploads * Add automatic recipe title suggestion * Correct regex * fix incorrect array.map method usage * make the linter happy again * Swap route to use asset name * Rearange buttons * fix test data * feat: Allow making image the recipe image * Add translation * Make the linter happy * Restrict function setPropertyValueByPath generic * Restrict template literal type * Add a more friendly icon to creation page * update poetry lock file * Correct sloppy ocr classes * Make MyPy happy * Rewrite safer tests * Add tesseract to backend test CI container dependencies * Make canvas element a component global * Remove unwanted spaces in selected text * Add way to know if recipe was created with ocr * Access to ocr-editor for ocr recipes * Update Alembic revision * Make the frontend build * Fix scrolling offset bug * Allow creation of recipes with custom settings * Fix rebasing mistakes * Add format_tsv_output test * Exclude the tests data directory only * Enforce camelCase for frontend functions * Remove import of unused component * Fix type and class initialization * Add multi-language support * Highlight words in mount * Fix image ratio bug * Better ocr creation page * Revert awkward feature to scroll in Selection mode * Rebasing alembic migrations sux * Remove obsolete getShared function * Add function docstring * Move down ocr creation option * Make toolbar icons more generic * Show help at the bottom of the page * move ocr types to own file * Use template ref for the canvas * Use i18n.tc to get strings directly * Correct naming mistake * Move Ocr editor to own directory * Create Ocr Editor parts * Safeguard recipe properties access * Add loading frontend animation due to longer request time * minor cleanup chores Co-authored-by: Miroito <alban.vachette@gmail.com>
		
			
				
	
	
		
			103 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { RecipeAPI } from "./class-interfaces/recipes";
 | |
| import { UserApi } from "./class-interfaces/users";
 | |
| import { GroupAPI } from "./class-interfaces/groups";
 | |
| import { BackupAPI } from "./class-interfaces/backups";
 | |
| import { UploadFile } from "./class-interfaces/upload";
 | |
| import { CategoriesAPI } from "./class-interfaces/organizer-categories";
 | |
| import { TagsAPI } from "./class-interfaces/organizer-tags";
 | |
| import { UtilsAPI } from "./class-interfaces/utils";
 | |
| import { FoodAPI } from "./class-interfaces/recipe-foods";
 | |
| import { UnitAPI } from "./class-interfaces/recipe-units";
 | |
| import { CookbookAPI } from "./class-interfaces/group-cookbooks";
 | |
| import { WebhooksAPI } from "./class-interfaces/group-webhooks";
 | |
| import { RegisterAPI } from "./class-interfaces/user-registration";
 | |
| import { MealPlanAPI } from "./class-interfaces/group-mealplan";
 | |
| import { EmailAPI } from "./class-interfaces/email";
 | |
| import { BulkActionsAPI } from "./class-interfaces/recipe-bulk-actions";
 | |
| import { GroupServerTaskAPI } from "./class-interfaces/group-tasks";
 | |
| import { AdminAPI } from "./admin-api";
 | |
| import { ToolsApi } from "./class-interfaces/organizer-tools";
 | |
| import { GroupMigrationApi } from "./class-interfaces/group-migrations";
 | |
| import { GroupReportsApi } from "./class-interfaces/group-reports";
 | |
| import { ShoppingApi } from "./class-interfaces/group-shopping-lists";
 | |
| import { MultiPurposeLabelsApi } from "./class-interfaces/group-multiple-purpose-labels";
 | |
| import { GroupEventNotifierApi } from "./class-interfaces/group-event-notifier";
 | |
| import { MealPlanRulesApi } from "./class-interfaces/group-mealplan-rules";
 | |
| import { GroupDataSeederApi } from "./class-interfaces/group-seeder";
 | |
| import {OcrAPI} from "./class-interfaces/ocr";
 | |
| import { ApiRequestInstance } from "~/types/api";
 | |
| 
 | |
| class Api {
 | |
|   public recipes: RecipeAPI;
 | |
|   public users: UserApi;
 | |
|   public groups: GroupAPI;
 | |
|   public backups: BackupAPI;
 | |
|   public categories: CategoriesAPI;
 | |
|   public tags: TagsAPI;
 | |
|   public utils: UtilsAPI;
 | |
|   public foods: FoodAPI;
 | |
|   public units: UnitAPI;
 | |
|   public cookbooks: CookbookAPI;
 | |
|   public groupWebhooks: WebhooksAPI;
 | |
|   public register: RegisterAPI;
 | |
|   public mealplans: MealPlanAPI;
 | |
|   public mealplanRules: MealPlanRulesApi;
 | |
|   public email: EmailAPI;
 | |
|   public bulk: BulkActionsAPI;
 | |
|   public groupMigration: GroupMigrationApi;
 | |
|   public groupReports: GroupReportsApi;
 | |
|   public grouperServerTasks: GroupServerTaskAPI;
 | |
|   public tools: ToolsApi;
 | |
|   public shopping: ShoppingApi;
 | |
|   public multiPurposeLabels: MultiPurposeLabelsApi;
 | |
|   public groupEventNotifier: GroupEventNotifierApi;
 | |
|   public upload: UploadFile;
 | |
|   public seeders: GroupDataSeederApi;
 | |
|   public ocr: OcrAPI;
 | |
| 
 | |
|   constructor(requests: ApiRequestInstance) {
 | |
|     // Recipes
 | |
|     this.recipes = new RecipeAPI(requests);
 | |
|     this.categories = new CategoriesAPI(requests);
 | |
|     this.tags = new TagsAPI(requests);
 | |
|     this.units = new UnitAPI(requests);
 | |
|     this.foods = new FoodAPI(requests);
 | |
|     this.tools = new ToolsApi(requests);
 | |
| 
 | |
|     // Users
 | |
|     this.users = new UserApi(requests);
 | |
|     this.groups = new GroupAPI(requests);
 | |
|     this.cookbooks = new CookbookAPI(requests);
 | |
|     this.groupWebhooks = new WebhooksAPI(requests);
 | |
|     this.register = new RegisterAPI(requests);
 | |
|     this.mealplans = new MealPlanAPI(requests);
 | |
|     this.mealplanRules = new MealPlanRulesApi(requests);
 | |
|     this.grouperServerTasks = new GroupServerTaskAPI(requests);
 | |
| 
 | |
|     // Group
 | |
|     this.groupMigration = new GroupMigrationApi(requests);
 | |
|     this.groupReports = new GroupReportsApi(requests);
 | |
|     this.shopping = new ShoppingApi(requests);
 | |
|     this.multiPurposeLabels = new MultiPurposeLabelsApi(requests);
 | |
|     this.seeders = new GroupDataSeederApi(requests);
 | |
| 
 | |
|     // Admin
 | |
|     this.backups = new BackupAPI(requests);
 | |
| 
 | |
|     // Utils
 | |
|     this.upload = new UploadFile(requests);
 | |
|     this.utils = new UtilsAPI(requests);
 | |
| 
 | |
|     this.email = new EmailAPI(requests);
 | |
|     this.bulk = new BulkActionsAPI(requests);
 | |
|     this.groupEventNotifier = new GroupEventNotifierApi(requests);
 | |
| 
 | |
|     // ocr
 | |
|     this.ocr = new OcrAPI(requests);
 | |
| 
 | |
|     Object.freeze(this);
 | |
|   }
 | |
| }
 | |
| 
 | |
| export { Api, AdminAPI };
 |