* Add ability to inject into Python files
* Update outdated references to gen_global_components.py
* Add code gen for registration locale validation
* sort validators
* update for pydantic 2
* run generator again
---------
Co-authored-by: Gasper Gril <gasper@gril.si>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
* add language direction to locale generation
* apply language direction when setting language
---------
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
* refactor normalized search migration to use dummy default
* changed group slug migration to use raw SQL
* updated comment
* added tests with anonymized backups (currently failing)
* typo
* fixed LDAP enum in test data
* fix for adding label settings across groups
* add migration data fixes
* fix shopping list label settings test
* re-run db init instead of just running alembic migration, to include fixes
* intentionally broke SQLAlchemy GUID handling
* safely convert between GUID types in different databases
* restore original test data after testing backup restores
* added missing group name update to migration
`email.com` is not a reserved domain, incorrect configuration could result in unintentional effects.
`example.com` is reserved by IANA for bogus purposes, see RFC 6761.
* upgrade sqlalchemy to 2.0
* rewrite all db models to sqla 2.0 mapping api
* fix some importing and typing weirdness
* fix types of a lot of nullable columns
* remove get_ref methods
* fix issues found by tests
* rewrite all queries in repository_recipe to 2.0 style
* rewrite all repository queries to 2.0 api
* rewrite all remaining queries to 2.0 api
* remove now-unneeded __allow_unmapped__ flag
* remove and fix some unneeded cases of "# type: ignore"
* fix formatting
* bump black version
* run black
* can this please be the last one. okay. just. okay.
* fix repository errors
* remove return
* drop open API validator
---------
Co-authored-by: Sören Busch <fleshgolem@gmx.net>
* add vitest
* initialize lib w/ tests
* move to dev dep
* run tests in CI
* update file names
* move api folder to lib
* move api and api types to same folder
* update generator outpath
* rm husky
* i guess i _did_ need those types
* reorg types
* extract validators into testable components
* (WIP) start composable testing
* fix import type
* fix linter complaint
* simplify icon type def
* fix linter errors (maybe?)
* rename client file for sorting
This PR does too many things :(
1. Major refactoring of the dev/scripts and dev/code-generation folders.
Primarily this was removing duplicate code and cleaning up some poorly written code snippets as well as making them more idempotent so then can be re-run over and over again but still maintain the same results. This is working on my machine, but I've been having problems in CI and comparing diffs so running generators in CI will have to wait.
2. Re-Implement using the generated api routes for testing
This was a _huge_ refactor that touched damn near every test file but now we have auto-generated typed routes with inline hints and it's used for nearly every test excluding a few that use classes for better parameterization. This should greatly reduce errors when writing new tests.
3. Minor Perf improvements for the All Recipes endpoint
A. Removed redundant loops
B. Uses orjson to do the encoding directly and returns a byte response instead of relying on the default
jsonable_encoder.
4. Fix some TS type errors that cropped up for seemingly no reason half way through the PR.
See this issue https://github.com/phillipdupuis/pydantic-to-typescript/issues/28
Basically, the generated TS type is not-correct since Pydantic will automatically fill in null fields. The resulting TS type is generated with a ? to indicate it can be null even though we _know_ that i can't be.
* docs: fix typos
* typos: fix typos found by `codespell` across the codebase
* docs: fix `macOS` spelling
* docs: fix `authentification` terminology
"Authentification" is not a thing.
* docs: fix `localhost` typo in example link
* typos: fix in-code typos
These are potentially higher risk, but no other mentions of these typos
show up in the codebase.
* add data-types required for login security
* implement user lockout checking at login
* cleanup legacy patterns
* expose passwords in test_user
* test user lockout after bad attempts
* test user service
* bump alembic version
* save increment to database
* add locked_at to datetime transformer on import
* do proper test cleanup
* implement scheduled task
* spelling
* document env variables
* implement context manager for session
* use context manager
* implement reset script
* cleanup generator
* run generator
* implement API endpoint for resetting locked users
* add button to reset all locked users
* add info when account is locked
* use ignore instead of expect-error
* generate types
* use generated types
* ui updates
* init button link for common styles
* add links
* setup label views
* add delete confirmation
* reset when not saved
* link label to foods and auto set when adding to shopping list
* generate types
* use inheritence to manage exception handling
* fix schema generation and add test for open_api generation
* add header to api docs
* move list consilidation to service
* split list and list items controller
* shopping list/list item tests - PARTIAL
* enable recipe add/remove in shopping lists
* generate types
* linting
* init global utility components
* update types and add list item api
* fix import cycle and database error
* add container and border classes
* new recipe list component
* fix tests
* breakout item editor
* refactor item editor
* update bulk actions
* update input / color contrast
* type generation
* refactor controller dependencies
* include food/unit editor
* remove console.logs
* fix and update type generation
* fix incorrect type for column
* fix postgres error
* fix delete by variable
* auto remove refs
* fix typo
* fix group page
* setup group notification for backend
* update type generators
* script to auto-generate schema exports
* setup frontend CRUD interface
* remove old notifications UI
* drop old events api
* add test functionality
* update naming for fields
* add event dispatcher functionality
* bump to python 3.10
* bump python version
* purge old event code
* use-async apprise
* set mealie logo as image
* unify styles for buttons rows
* add links to banners
* Activate more linting rules from eslint and typescript
* Properly add VForm as type information
* Fix usage of native types
* Fix more linting issues
* Rename vuetify types file, add VTooltip
* Fix some more typing problems
* Use composition API for more components
* Convert RecipeRating
* Convert RecipeNutrition
* Convert more components to composition API
* Fix globals plugin for type checking
* Add missing icon types
* Fix vuetify types in Nuxt context
* Use composition API for RecipeActionMenu
* Convert error.vue to composition API
* Convert RecipeContextMenu to composition API
* Use more composition API and type checking in recipe/create
* Convert AppButtonUpload to composition API
* Fix some type checking in RecipeContextMenu
* Remove unused components BaseAutoForm and BaseColorPicker
* Convert RecipeCategoryTagDialog to composition API
* Convert RecipeCardSection to composition API
* Convert RecipeCategoryTagSelector to composition API
* Properly import vuetify type definitions
* Convert BaseButton to composition API
* Convert AutoForm to composition API
* Remove unused requests API file
* Remove static routes from recipe API
* Fix more type errors
* Convert AppHeader to composition API, fixing some search bar focus problems
* Convert RecipeDialogSearch to composition API
* Update API types from pydantic models, handle undefined values
* Improve more typing problems
* Add types to other plugins
* Properly type the CRUD API access
* Fix typing of static image routes
* Fix more typing stuff
* Fix some more typing problems
* Turn off more rules
* add default assets for user profile
* add recipe avatar
* change user_id to UUID
* add profile image upload
* setup image cache keys
* cleanup tests and add image tests
* purge user data on delete
* new user repository tests
* add user_id validator for int -> UUID conversion
* delete depreciated route
* force set content type
* refactor tests to use temp directory
* validate parent exists before createing
* set user_id to correct type
* update instruction id
* reset primary key on migration
* unify look and feel + button validators
* Fixes#741
* add github script to mealei-next
* feat(frontend): 💄 improve user-flow for creating ingredients and units in editor
Creating a unit/food in the recipe editor will not automatically assign that to the auto-complete element on the ingredient. It also no longer needs a dialog and will show at the bottom of the menu at all times.
* fix whitespace issue with slot
* add security check to properties
* fix event refresh on delete
* remove depreciated page
* improve API token flow
* hide recipe data if not advanced user
* misc adds
Co-authored-by: Hayden <hay-kot@pm.me>
* count responses
* perf(backend): ⚡ remove validation on recipe summary response
use the construct() method from pydantic to reduce get time as well as optimize the SQL query for recipes
* update UI to support new categories/tags
* fix(backend): 🐛 restrict recipes by group
Co-authored-by: Hayden <hay-kot@pm.me>
* fix favorite color issue
* db and models for comments
* rename files
* initial UI for comments
* fix format
* import / export
* fixes#428
* format
Co-authored-by: hay-kot <hay-kot@pm.me>
* update tag route
* search.and
* offset for mobile
* relative imports
* get settings
* new page
* category/tag CRUD
* bulk assign frontend
* Bulk assign
* debounce search
* remove dev data
* recipe store refactor
* fix mobile view
* fix failing tests
* commit test data
Co-authored-by: hay-kot <hay-kot@pm.me>