diff --git a/+page.server.ts b/+page.server.ts new file mode 100644 index 0000000..c338eb9 --- /dev/null +++ b/+page.server.ts @@ -0,0 +1,65 @@ +import type { Actions, Load } from '@sveltejs/kit'; +import { Recipe } from '../../../models/Recipe'; +import { dbConnect, dbDisconnect } from '../../../utils/db'; +import { redirect } from '@sveltejs/kit'; + +export const load: Load = async () => { + await dbConnect(); + let todos = await Recipe.find().lean(); + await dbDisconnect(); + todos = JSON.parse(JSON.stringify(todos)); + todos = todos.reverse(); + return { + todos, + }; +}; + +export const actions: Actions = { + create: async ({ request }) => { + const formData = await request.formData(); + const todoName = formData.get('todoName'); + + const newTodo = { + title: todoName, + isDone: false, + }; + + await dbConnect(); + await Recipe.create(newTodo); + await dbDisconnect(); + + console.log('New todo added: ', newTodo); + return { + success: true, + }; + }, + update: async ({ request }) => { + const formData = await request.formData(); + const todoId = formData.get('todoId'); + const todoName = formData.get('todoName'); + await dbConnect(); + await Recipe.findByIdAndUpdate(todoId, { + title: todoName, + }).lean(); + await dbDisconnect(); + + console.log('Todo updated: ', todoId); + + return { + success: true, + }; + }, + + delete: async ({ request }) => { + const formData = await request.formData(); + const todoId = formData.get('todoId'); + await dbConnect(); + await Recipe.findByIdAndDelete(todoId); + await dbDisconnect(); + + console.log('Todo deleted: ', todoId); + return { + success: true, + }; + }, +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6635cf5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..0c05da4 --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +engine-strict=true +resolution-mode=highest diff --git a/README.md b/README.md new file mode 100644 index 0000000..5c91169 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# create-svelte + +Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```bash +# create a new project in the current directory +npm create svelte@latest + +# create a new project in my-app +npm create svelte@latest my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```bash +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```bash +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. diff --git a/lib/images/aelplermagronen.webp b/lib/images/aelplermagronen.webp new file mode 100644 index 0000000..85004bd Binary files /dev/null and b/lib/images/aelplermagronen.webp differ diff --git a/lib/images/aglio_e_olio.webp b/lib/images/aglio_e_olio.webp new file mode 100644 index 0000000..8487386 Binary files /dev/null and b/lib/images/aglio_e_olio.webp differ diff --git a/lib/images/ajitama.webp b/lib/images/ajitama.webp new file mode 100644 index 0000000..a6da6fd Binary files /dev/null and b/lib/images/ajitama.webp differ diff --git a/lib/images/al_ragu.webp b/lib/images/al_ragu.webp new file mode 100644 index 0000000..b03118c Binary files /dev/null and b/lib/images/al_ragu.webp differ diff --git a/lib/images/anisbrot.webp b/lib/images/anisbrot.webp new file mode 100644 index 0000000..c6c2f0f Binary files /dev/null and b/lib/images/anisbrot.webp differ diff --git a/lib/images/annaomelette.webp b/lib/images/annaomelette.webp new file mode 100644 index 0000000..fa2cd04 Binary files /dev/null and b/lib/images/annaomelette.webp differ diff --git a/lib/images/apfelkompott.webp b/lib/images/apfelkompott.webp new file mode 100644 index 0000000..add02a7 Binary files /dev/null and b/lib/images/apfelkompott.webp differ diff --git a/lib/images/apfelstrudel.webp b/lib/images/apfelstrudel.webp new file mode 100644 index 0000000..35687f2 Binary files /dev/null and b/lib/images/apfelstrudel.webp differ diff --git a/lib/images/apfelwaehe.webp b/lib/images/apfelwaehe.webp new file mode 100644 index 0000000..018d4ed Binary files /dev/null and b/lib/images/apfelwaehe.webp differ diff --git a/lib/images/aprikosenwaehe.webp b/lib/images/aprikosenwaehe.webp new file mode 100644 index 0000000..dcf860e Binary files /dev/null and b/lib/images/aprikosenwaehe.webp differ diff --git a/lib/images/baerlauchravioli.webp b/lib/images/baerlauchravioli.webp new file mode 100644 index 0000000..57edc56 Binary files /dev/null and b/lib/images/baerlauchravioli.webp differ diff --git a/lib/images/basler_brunsli.webp b/lib/images/basler_brunsli.webp new file mode 100644 index 0000000..b70e7fd Binary files /dev/null and b/lib/images/basler_brunsli.webp differ diff --git a/lib/images/brezel.webp b/lib/images/brezel.webp new file mode 100644 index 0000000..d0bd18f Binary files /dev/null and b/lib/images/brezel.webp differ diff --git a/lib/images/broeseltopfen.webp b/lib/images/broeseltopfen.webp new file mode 100644 index 0000000..7ff725c Binary files /dev/null and b/lib/images/broeseltopfen.webp differ diff --git a/lib/images/brokkolisuppe.webp b/lib/images/brokkolisuppe.webp new file mode 100644 index 0000000..2c6e786 Binary files /dev/null and b/lib/images/brokkolisuppe.webp differ diff --git a/lib/images/brotgewuerz.webp b/lib/images/brotgewuerz.webp new file mode 100644 index 0000000..75d8497 Binary files /dev/null and b/lib/images/brotgewuerz.webp differ diff --git a/lib/images/buchtel_vanillesauce.webp b/lib/images/buchtel_vanillesauce.webp new file mode 100644 index 0000000..6ef8475 Binary files /dev/null and b/lib/images/buchtel_vanillesauce.webp differ diff --git a/lib/images/buendner_nusstorte.webp b/lib/images/buendner_nusstorte.webp new file mode 100644 index 0000000..d4b6271 Binary files /dev/null and b/lib/images/buendner_nusstorte.webp differ diff --git a/lib/images/burger_buns.webp b/lib/images/burger_buns.webp new file mode 100644 index 0000000..d79194e Binary files /dev/null and b/lib/images/burger_buns.webp differ diff --git a/lib/images/carbonara.webp b/lib/images/carbonara.webp new file mode 100644 index 0000000..46c99b7 Binary files /dev/null and b/lib/images/carbonara.webp differ diff --git a/lib/images/chaeschueechli.webp b/lib/images/chaeschueechli.webp new file mode 100644 index 0000000..f0c3c85 Binary files /dev/null and b/lib/images/chaeschueechli.webp differ diff --git a/lib/images/checca.webp b/lib/images/checca.webp new file mode 100644 index 0000000..f9c1d14 Binary files /dev/null and b/lib/images/checca.webp differ diff --git a/lib/images/daenische_kardamomkekse.webp b/lib/images/daenische_kardamomkekse.webp new file mode 100644 index 0000000..deaf9be Binary files /dev/null and b/lib/images/daenische_kardamomkekse.webp differ diff --git a/lib/images/dinette.webp b/lib/images/dinette.webp new file mode 100644 index 0000000..1214a38 Binary files /dev/null and b/lib/images/dinette.webp differ diff --git a/lib/images/eierschwammerlgoulash.webp b/lib/images/eierschwammerlgoulash.webp new file mode 100644 index 0000000..abbe8d9 Binary files /dev/null and b/lib/images/eierschwammerlgoulash.webp differ diff --git a/lib/images/eingelegte_zwiebel.webp b/lib/images/eingelegte_zwiebel.webp new file mode 100644 index 0000000..d04a41c Binary files /dev/null and b/lib/images/eingelegte_zwiebel.webp differ diff --git a/lib/images/erdaepfelgoulasch.webp b/lib/images/erdaepfelgoulasch.webp new file mode 100644 index 0000000..9309f4d Binary files /dev/null and b/lib/images/erdaepfelgoulasch.webp differ diff --git a/lib/images/fastenwaehe.webp b/lib/images/fastenwaehe.webp new file mode 100644 index 0000000..2a62112 Binary files /dev/null and b/lib/images/fastenwaehe.webp differ diff --git a/lib/images/firecracker.webp b/lib/images/firecracker.webp new file mode 100644 index 0000000..6da1123 Binary files /dev/null and b/lib/images/firecracker.webp differ diff --git a/lib/images/flammkuchen.webp b/lib/images/flammkuchen.webp new file mode 100644 index 0000000..6501b82 Binary files /dev/null and b/lib/images/flammkuchen.webp differ diff --git a/lib/images/frittatensuppe.webp b/lib/images/frittatensuppe.webp new file mode 100644 index 0000000..774c3ba Binary files /dev/null and b/lib/images/frittatensuppe.webp differ diff --git a/lib/images/germknoedel.webp b/lib/images/germknoedel.webp new file mode 100644 index 0000000..4d314eb Binary files /dev/null and b/lib/images/germknoedel.webp differ diff --git a/lib/images/gnocchi.webp b/lib/images/gnocchi.webp new file mode 100644 index 0000000..49e41f2 Binary files /dev/null and b/lib/images/gnocchi.webp differ diff --git a/lib/images/gratin_dauphinois.webp b/lib/images/gratin_dauphinois.webp new file mode 100644 index 0000000..38a77be Binary files /dev/null and b/lib/images/gratin_dauphinois.webp differ diff --git a/lib/images/gurkensalat.webp b/lib/images/gurkensalat.webp new file mode 100644 index 0000000..89bb042 Binary files /dev/null and b/lib/images/gurkensalat.webp differ diff --git a/lib/images/hashbrown.webp b/lib/images/hashbrown.webp new file mode 100644 index 0000000..5ac761f Binary files /dev/null and b/lib/images/hashbrown.webp differ diff --git a/lib/images/hoernli_mit_gehacktem.webp b/lib/images/hoernli_mit_gehacktem.webp new file mode 100644 index 0000000..1d4ca1c Binary files /dev/null and b/lib/images/hoernli_mit_gehacktem.webp differ diff --git a/lib/images/hollondaise.webp b/lib/images/hollondaise.webp new file mode 100644 index 0000000..57320ed Binary files /dev/null and b/lib/images/hollondaise.webp differ diff --git a/lib/images/hollundersirup.webp b/lib/images/hollundersirup.webp new file mode 100644 index 0000000..cb2ede2 Binary files /dev/null and b/lib/images/hollundersirup.webp differ diff --git a/lib/images/huehnerbouillon.webp b/lib/images/huehnerbouillon.webp new file mode 100644 index 0000000..627bc19 Binary files /dev/null and b/lib/images/huehnerbouillon.webp differ diff --git a/lib/images/hummus.webp b/lib/images/hummus.webp new file mode 100644 index 0000000..cfef298 Binary files /dev/null and b/lib/images/hummus.webp differ diff --git a/lib/images/kaesspaetzle.webp b/lib/images/kaesspaetzle.webp new file mode 100644 index 0000000..d2822a3 Binary files /dev/null and b/lib/images/kaesspaetzle.webp differ diff --git a/lib/images/kaiserschmarrn.webp b/lib/images/kaiserschmarrn.webp new file mode 100644 index 0000000..9c8b3ee Binary files /dev/null and b/lib/images/kaiserschmarrn.webp differ diff --git a/lib/images/karottensalat.webp b/lib/images/karottensalat.webp new file mode 100644 index 0000000..b0b7613 Binary files /dev/null and b/lib/images/karottensalat.webp differ diff --git a/lib/images/kartoffelsalat.webp b/lib/images/kartoffelsalat.webp new file mode 100644 index 0000000..71c6cb6 Binary files /dev/null and b/lib/images/kartoffelsalat.webp differ diff --git a/lib/images/kasnudeln.webp b/lib/images/kasnudeln.webp new file mode 100644 index 0000000..8a9163a Binary files /dev/null and b/lib/images/kasnudeln.webp differ diff --git a/lib/images/kirschwaehe.webp b/lib/images/kirschwaehe.webp new file mode 100644 index 0000000..67dbd74 Binary files /dev/null and b/lib/images/kirschwaehe.webp differ diff --git a/lib/images/kletzennudel.webp b/lib/images/kletzennudel.webp new file mode 100644 index 0000000..483f252 Binary files /dev/null and b/lib/images/kletzennudel.webp differ diff --git a/lib/images/knoblauchbrot.webp b/lib/images/knoblauchbrot.webp new file mode 100644 index 0000000..cc626d0 Binary files /dev/null and b/lib/images/knoblauchbrot.webp differ diff --git a/lib/images/knochensuppe.webp b/lib/images/knochensuppe.webp new file mode 100644 index 0000000..325431d Binary files /dev/null and b/lib/images/knochensuppe.webp differ diff --git a/lib/images/kokosbusserl.webp b/lib/images/kokosbusserl.webp new file mode 100644 index 0000000..6789166 Binary files /dev/null and b/lib/images/kokosbusserl.webp differ diff --git a/lib/images/kottbullar.webp b/lib/images/kottbullar.webp new file mode 100644 index 0000000..40dfde5 Binary files /dev/null and b/lib/images/kottbullar.webp differ diff --git a/lib/images/kraftbruehe.webp b/lib/images/kraftbruehe.webp new file mode 100644 index 0000000..4d6d138 Binary files /dev/null and b/lib/images/kraftbruehe.webp differ diff --git a/lib/images/kuerbiscremesuppe.webp b/lib/images/kuerbiscremesuppe.webp new file mode 100644 index 0000000..131fd30 Binary files /dev/null and b/lib/images/kuerbiscremesuppe.webp differ diff --git a/lib/images/kuerbisnudeln.webp b/lib/images/kuerbisnudeln.webp new file mode 100644 index 0000000..8dd2db5 Binary files /dev/null and b/lib/images/kuerbisnudeln.webp differ diff --git a/lib/images/lauch_dinette.webp b/lib/images/lauch_dinette.webp new file mode 100644 index 0000000..5fab550 Binary files /dev/null and b/lib/images/lauch_dinette.webp differ diff --git a/lib/images/lauchquiche.webp b/lib/images/lauchquiche.webp new file mode 100644 index 0000000..316e567 Binary files /dev/null and b/lib/images/lauchquiche.webp differ diff --git a/lib/images/linsen_curry.webp b/lib/images/linsen_curry.webp new file mode 100644 index 0000000..223e014 Binary files /dev/null and b/lib/images/linsen_curry.webp differ diff --git a/lib/images/load_html.js b/lib/images/load_html.js new file mode 100644 index 0000000..85b148b --- /dev/null +++ b/lib/images/load_html.js @@ -0,0 +1,12 @@ +document.querySelectorAll('.url_insert').forEach(url_insert); +function url_insert(el) { + var url = el.dataset.url; + var xhttp = new XMLHttpRequest(); + xhttp.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + el.innerHTML = this.response; + } + }; + xhttp.open("GET", url, true); + xhttp.send(); +} diff --git a/lib/images/marillenknoedel.webp b/lib/images/marillenknoedel.webp new file mode 100644 index 0000000..d507573 Binary files /dev/null and b/lib/images/marillenknoedel.webp differ diff --git a/lib/images/maronisuppe.webp b/lib/images/maronisuppe.webp new file mode 100644 index 0000000..b04d0be Binary files /dev/null and b/lib/images/maronisuppe.webp differ diff --git a/lib/images/masalachai.webp b/lib/images/masalachai.webp new file mode 100644 index 0000000..e152a58 Binary files /dev/null and b/lib/images/masalachai.webp differ diff --git a/lib/images/mayonnaise.webp b/lib/images/mayonnaise.webp new file mode 100644 index 0000000..f438be2 Binary files /dev/null and b/lib/images/mayonnaise.webp differ diff --git a/lib/images/miso_steak_aubergine.webp b/lib/images/miso_steak_aubergine.webp new file mode 100644 index 0000000..4705db8 Binary files /dev/null and b/lib/images/miso_steak_aubergine.webp differ diff --git a/lib/images/mousse_au_chocolat.webp b/lib/images/mousse_au_chocolat.webp new file mode 100644 index 0000000..4b1b242 Binary files /dev/null and b/lib/images/mousse_au_chocolat.webp differ diff --git a/lib/images/ofen_pommes_frites.webp b/lib/images/ofen_pommes_frites.webp new file mode 100644 index 0000000..4321762 Binary files /dev/null and b/lib/images/ofen_pommes_frites.webp differ diff --git a/lib/images/orecchiette.webp b/lib/images/orecchiette.webp new file mode 100644 index 0000000..e03846f Binary files /dev/null and b/lib/images/orecchiette.webp differ diff --git a/lib/images/orecchiette_al_pomodoro.webp b/lib/images/orecchiette_al_pomodoro.webp new file mode 100644 index 0000000..6200651 Binary files /dev/null and b/lib/images/orecchiette_al_pomodoro.webp differ diff --git a/lib/images/osterkuchen.webp b/lib/images/osterkuchen.webp new file mode 100644 index 0000000..d9dc467 Binary files /dev/null and b/lib/images/osterkuchen.webp differ diff --git a/lib/images/osterkuchen_osterlamm_schablone.svg b/lib/images/osterkuchen_osterlamm_schablone.svg new file mode 100644 index 0000000..c6e604a --- /dev/null +++ b/lib/images/osterkuchen_osterlamm_schablone.svg @@ -0,0 +1,30 @@ + + + + diff --git a/lib/images/osterlamm.webp b/lib/images/osterlamm.webp new file mode 100644 index 0000000..b916ad4 Binary files /dev/null and b/lib/images/osterlamm.webp differ diff --git a/lib/images/palatschinken.webp b/lib/images/palatschinken.webp new file mode 100644 index 0000000..11c7675 Binary files /dev/null and b/lib/images/palatschinken.webp differ diff --git a/lib/images/petersilkartoffeln.webp b/lib/images/petersilkartoffeln.webp new file mode 100644 index 0000000..b92acfa Binary files /dev/null and b/lib/images/petersilkartoffeln.webp differ diff --git a/lib/images/pfeffermaenner.webp b/lib/images/pfeffermaenner.webp new file mode 100644 index 0000000..f8ca93b Binary files /dev/null and b/lib/images/pfeffermaenner.webp differ diff --git a/lib/images/pilze.webp b/lib/images/pilze.webp new file mode 100644 index 0000000..72791be Binary files /dev/null and b/lib/images/pilze.webp differ diff --git a/lib/images/pilzrahmsauce.webp b/lib/images/pilzrahmsauce.webp new file mode 100644 index 0000000..ba51693 Binary files /dev/null and b/lib/images/pilzrahmsauce.webp differ diff --git a/lib/images/pizokel.webp b/lib/images/pizokel.webp new file mode 100644 index 0000000..4fe3c7a Binary files /dev/null and b/lib/images/pizokel.webp differ diff --git a/lib/images/pizza_chorizo.webp b/lib/images/pizza_chorizo.webp new file mode 100644 index 0000000..518c5de Binary files /dev/null and b/lib/images/pizza_chorizo.webp differ diff --git a/lib/images/pizza_veggie.webp b/lib/images/pizza_veggie.webp new file mode 100644 index 0000000..2da312d Binary files /dev/null and b/lib/images/pizza_veggie.webp differ diff --git a/lib/images/plunderteig.webp b/lib/images/plunderteig.webp new file mode 100644 index 0000000..509a9d8 Binary files /dev/null and b/lib/images/plunderteig.webp differ diff --git a/lib/images/poulet_katsu.webp b/lib/images/poulet_katsu.webp new file mode 100644 index 0000000..250be56 Binary files /dev/null and b/lib/images/poulet_katsu.webp differ diff --git a/lib/images/pressgurken.webp b/lib/images/pressgurken.webp new file mode 100644 index 0000000..d0301b4 Binary files /dev/null and b/lib/images/pressgurken.webp differ diff --git a/lib/images/quiche_lorraine.webp b/lib/images/quiche_lorraine.webp new file mode 100644 index 0000000..2a55fcd Binary files /dev/null and b/lib/images/quiche_lorraine.webp differ diff --git a/lib/images/randen_avocado_roesti.webp b/lib/images/randen_avocado_roesti.webp new file mode 100644 index 0000000..8ff1c22 Binary files /dev/null and b/lib/images/randen_avocado_roesti.webp differ diff --git a/lib/images/randensalat.webp b/lib/images/randensalat.webp new file mode 100644 index 0000000..c326660 Binary files /dev/null and b/lib/images/randensalat.webp differ diff --git a/lib/images/ratatouille.webp b/lib/images/ratatouille.webp new file mode 100644 index 0000000..bf4e4b8 Binary files /dev/null and b/lib/images/ratatouille.webp differ diff --git a/lib/images/reindling.webp b/lib/images/reindling.webp new file mode 100644 index 0000000..682fed9 Binary files /dev/null and b/lib/images/reindling.webp differ diff --git a/lib/images/rhabarberkonfi.webp b/lib/images/rhabarberkonfi.webp new file mode 100644 index 0000000..d2ee840 Binary files /dev/null and b/lib/images/rhabarberkonfi.webp differ diff --git a/lib/images/rindsgoulasch.webp b/lib/images/rindsgoulasch.webp new file mode 100644 index 0000000..4f5511e Binary files /dev/null and b/lib/images/rindsgoulasch.webp differ diff --git a/lib/images/roesti.webp b/lib/images/roesti.webp new file mode 100644 index 0000000..c45ee28 Binary files /dev/null and b/lib/images/roesti.webp differ diff --git a/lib/images/rote_linsen_hummus.webp b/lib/images/rote_linsen_hummus.webp new file mode 100644 index 0000000..4eb6fc9 Binary files /dev/null and b/lib/images/rote_linsen_hummus.webp differ diff --git a/lib/images/rotkraut.webp b/lib/images/rotkraut.webp new file mode 100644 index 0000000..b5122c3 Binary files /dev/null and b/lib/images/rotkraut.webp differ diff --git a/lib/images/ruchbrot.webp b/lib/images/ruchbrot.webp new file mode 100644 index 0000000..930cb38 Binary files /dev/null and b/lib/images/ruchbrot.webp differ diff --git a/lib/images/rustikal.webp b/lib/images/rustikal.webp new file mode 100644 index 0000000..991089c Binary files /dev/null and b/lib/images/rustikal.webp differ diff --git a/lib/images/sachertorte.webp b/lib/images/sachertorte.webp new file mode 100644 index 0000000..9e84554 Binary files /dev/null and b/lib/images/sachertorte.webp differ diff --git a/lib/images/salbei_spaghetti.webp b/lib/images/salbei_spaghetti.webp new file mode 100644 index 0000000..2363982 Binary files /dev/null and b/lib/images/salbei_spaghetti.webp differ diff --git a/lib/images/sauerkrautauflauf.webp b/lib/images/sauerkrautauflauf.webp new file mode 100644 index 0000000..ebc0bc8 Binary files /dev/null and b/lib/images/sauerkrautauflauf.webp differ diff --git a/lib/images/sauerteigbrot.webp b/lib/images/sauerteigbrot.webp new file mode 100644 index 0000000..28b10ec Binary files /dev/null and b/lib/images/sauerteigbrot.webp differ diff --git a/lib/images/schoggi.webp b/lib/images/schoggi.webp new file mode 100644 index 0000000..deada2c Binary files /dev/null and b/lib/images/schoggi.webp differ diff --git a/lib/images/schupfnudeln.webp b/lib/images/schupfnudeln.webp new file mode 100644 index 0000000..961a82d Binary files /dev/null and b/lib/images/schupfnudeln.webp differ diff --git a/lib/images/schupfnudeln_mit_kraut_und_speck.webp b/lib/images/schupfnudeln_mit_kraut_und_speck.webp new file mode 100644 index 0000000..b6d7b54 Binary files /dev/null and b/lib/images/schupfnudeln_mit_kraut_und_speck.webp differ diff --git a/lib/images/semmelknoedel.webp b/lib/images/semmelknoedel.webp new file mode 100644 index 0000000..c6635fd Binary files /dev/null and b/lib/images/semmelknoedel.webp differ diff --git a/lib/images/semmeln.webp b/lib/images/semmeln.webp new file mode 100644 index 0000000..f274cdc Binary files /dev/null and b/lib/images/semmeln.webp differ diff --git a/lib/images/shokupan.webp b/lib/images/shokupan.webp new file mode 100644 index 0000000..895f441 Binary files /dev/null and b/lib/images/shokupan.webp differ diff --git a/lib/images/siebbrot.webp b/lib/images/siebbrot.webp new file mode 100644 index 0000000..fb37b37 Binary files /dev/null and b/lib/images/siebbrot.webp differ diff --git a/lib/images/spinat_spaghetti.webp b/lib/images/spinat_spaghetti.webp new file mode 100644 index 0000000..3c1bf64 Binary files /dev/null and b/lib/images/spinat_spaghetti.webp differ diff --git a/lib/images/spitzbuben.webp b/lib/images/spitzbuben.webp new file mode 100644 index 0000000..0d794a2 Binary files /dev/null and b/lib/images/spitzbuben.webp differ diff --git a/lib/images/strudelteig.webp b/lib/images/strudelteig.webp new file mode 100644 index 0000000..38ea584 Binary files /dev/null and b/lib/images/strudelteig.webp differ diff --git a/lib/images/tiramisu.webp b/lib/images/tiramisu.webp new file mode 100644 index 0000000..184abc2 Binary files /dev/null and b/lib/images/tiramisu.webp differ diff --git a/lib/images/tirggel.webp b/lib/images/tirggel.webp new file mode 100644 index 0000000..a2222dc Binary files /dev/null and b/lib/images/tirggel.webp differ diff --git a/lib/images/tomatensuppe.webp b/lib/images/tomatensuppe.webp new file mode 100644 index 0000000..0e2437e Binary files /dev/null and b/lib/images/tomatensuppe.webp differ diff --git a/lib/images/uromas_vanillekipferl.webp b/lib/images/uromas_vanillekipferl.webp new file mode 100644 index 0000000..1e4cea9 Binary files /dev/null and b/lib/images/uromas_vanillekipferl.webp differ diff --git a/lib/images/weihnachtsgans.webp b/lib/images/weihnachtsgans.webp new file mode 100644 index 0000000..511cdb4 Binary files /dev/null and b/lib/images/weihnachtsgans.webp differ diff --git a/lib/images/wienerschnitzel.webp b/lib/images/wienerschnitzel.webp new file mode 100644 index 0000000..8db81d5 Binary files /dev/null and b/lib/images/wienerschnitzel.webp differ diff --git a/lib/images/wintergemuesestrudel.webp b/lib/images/wintergemuesestrudel.webp new file mode 100644 index 0000000..0ebf4a5 Binary files /dev/null and b/lib/images/wintergemuesestrudel.webp differ diff --git a/lib/images/zimtsterne.webp b/lib/images/zimtsterne.webp new file mode 100644 index 0000000..5cb4525 Binary files /dev/null and b/lib/images/zimtsterne.webp differ diff --git a/lib/images/zitrone_kaeseravioli.webp b/lib/images/zitrone_kaeseravioli.webp new file mode 100644 index 0000000..c81dac8 Binary files /dev/null and b/lib/images/zitrone_kaeseravioli.webp differ diff --git a/lib/images/zopf.webp b/lib/images/zopf.webp new file mode 100644 index 0000000..a276abe Binary files /dev/null and b/lib/images/zopf.webp differ diff --git a/lib/images/zopf2.webp b/lib/images/zopf2.webp new file mode 100644 index 0000000..18d75e2 Binary files /dev/null and b/lib/images/zopf2.webp differ diff --git a/lib/images/zucchinicremesuppe.webp b/lib/images/zucchinicremesuppe.webp new file mode 100644 index 0000000..672b67b Binary files /dev/null and b/lib/images/zucchinicremesuppe.webp differ diff --git a/lib/images/zwiebelsuppe.webp b/lib/images/zwiebelsuppe.webp new file mode 100644 index 0000000..6b84d38 Binary files /dev/null and b/lib/images/zwiebelsuppe.webp differ diff --git a/lib/img/rhabarberkonfi.webp b/lib/img/rhabarberkonfi.webp new file mode 100644 index 0000000..d2ee840 Binary files /dev/null and b/lib/img/rhabarberkonfi.webp differ diff --git a/package.json b/package.json new file mode 100644 index 0000000..04db431 --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "sk-recipes-test", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/kit": "^1.5.0", + "svelte": "^3.54.0", + "svelte-check": "^3.0.1", + "svelte-preprocess-import-assets": "^1.0.0", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "vite": "^4.3.0" + }, + "type": "module", + "dependencies": { + "mongoose": "^7.3.0" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..e7cb22d --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1173 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + mongoose: + specifier: ^7.3.0 + version: 7.3.0 + +devDependencies: + '@sveltejs/adapter-auto': + specifier: ^2.0.0 + version: 2.1.0(@sveltejs/kit@1.20.2) + '@sveltejs/kit': + specifier: ^1.5.0 + version: 1.20.2(svelte@3.59.1)(vite@4.3.9) + svelte: + specifier: ^3.54.0 + version: 3.59.1 + svelte-check: + specifier: ^3.0.1 + version: 3.4.3(svelte@3.59.1) + svelte-preprocess-import-assets: + specifier: ^1.0.0 + version: 1.0.0(svelte@3.59.1) + tslib: + specifier: ^2.4.1 + version: 2.5.3 + typescript: + specifier: ^5.0.0 + version: 5.1.3 + vite: + specifier: ^4.3.0 + version: 4.3.9 + +packages: + + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@polka/url@1.0.0-next.21: + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + dev: true + + /@sveltejs/adapter-auto@2.1.0(@sveltejs/kit@1.20.2): + resolution: {integrity: sha512-o2pZCfATFtA/Gw/BB0Xm7k4EYaekXxaPGER3xGSY3FvzFJGTlJlZjBseaXwYSM94lZ0HniOjTokN3cWaLX6fow==} + peerDependencies: + '@sveltejs/kit': ^1.0.0 + dependencies: + '@sveltejs/kit': 1.20.2(svelte@3.59.1)(vite@4.3.9) + import-meta-resolve: 3.0.0 + dev: true + + /@sveltejs/kit@1.20.2(svelte@3.59.1)(vite@4.3.9): + resolution: {integrity: sha512-MtR1i+HtmYWcRgtubw1GQqT/+CWXL/z24PegE0xYAdObbhdr7YtEfmoe705D/JZMtMmoPXrmSk4W0MfL5A3lYw==} + engines: {node: ^16.14 || >=18} + hasBin: true + requiresBuild: true + peerDependencies: + svelte: ^3.54.0 || ^4.0.0-next.0 + vite: ^4.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.1)(vite@4.3.9) + '@types/cookie': 0.5.1 + cookie: 0.5.0 + devalue: 4.3.2 + esm-env: 1.0.0 + kleur: 4.1.5 + magic-string: 0.30.0 + mime: 3.0.0 + sade: 1.8.1 + set-cookie-parser: 2.6.0 + sirv: 2.0.3 + svelte: 3.59.1 + tiny-glob: 0.2.9 + undici: 5.22.1 + vite: 4.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.1)(vite@4.3.9): + resolution: {integrity: sha512-Cy1dUMcYCnDVV/hPLXa43YZJ2jGKVW5rA0xuNL9dlmYhT0yoS1g7+FOFSRlgk0BXKk/Oc7grs+8BVA5Iz2fr8A==} + engines: {node: ^14.18.0 || >= 16} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^2.2.0 + svelte: ^3.54.0 || ^4.0.0-next.0 + vite: ^4.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.1)(vite@4.3.9) + debug: 4.3.4 + svelte: 3.59.1 + vite: 4.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /@sveltejs/vite-plugin-svelte@2.4.1(svelte@3.59.1)(vite@4.3.9): + resolution: {integrity: sha512-bNNKvoRY89ptY7udeBSCmTdCVwkjmMcZ0j/z9J5MuedT8jPjq0zrknAo/jF1sToAza4NVaAgR9AkZoD9oJJmnA==} + engines: {node: ^14.18.0 || >= 16} + peerDependencies: + svelte: ^3.54.0 || ^4.0.0-next.0 + vite: ^4.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.1)(vite@4.3.9) + debug: 4.3.4 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.0 + svelte: 3.59.1 + svelte-hmr: 0.15.2(svelte@3.59.1) + vite: 4.3.9 + vitefu: 0.2.4(vite@4.3.9) + transitivePeerDependencies: + - supports-color + dev: true + + /@types/cookie@0.5.1: + resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} + dev: true + + /@types/node@20.3.1: + resolution: {integrity: sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==} + dev: false + + /@types/pug@2.0.6: + resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} + dev: true + + /@types/webidl-conversions@7.0.0: + resolution: {integrity: sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==} + dev: false + + /@types/whatwg-url@8.2.2: + resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} + dependencies: + '@types/node': 20.3.1 + '@types/webidl-conversions': 7.0.0 + dev: false + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /bson@5.3.0: + resolution: {integrity: sha512-ukmCZMneMlaC5ebPHXIkP8YJzNl5DC41N5MAIvKDqLggdao342t4McltoJBQfQya/nHBWAcSsYRqlXPoQkTJag==} + engines: {node: '>=14.20.1'} + dev: false + + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true + + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /devalue@4.3.2: + resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + dev: true + + /es6-promise@3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + dev: true + + /esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: true + + /esm-env@1.0.0: + resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} + dev: true + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-meta-resolve@3.0.0: + resolution: {integrity: sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ip@2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + dev: false + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /kareem@2.5.1: + resolution: {integrity: sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==} + engines: {node: '>=12.0.0'} + dev: false + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: true + + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /magic-string@0.30.0: + resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /memory-pager@1.5.0: + resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + dev: false + optional: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /mongodb-connection-string-url@2.6.0: + resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==} + dependencies: + '@types/whatwg-url': 8.2.2 + whatwg-url: 11.0.0 + dev: false + + /mongodb@5.6.0: + resolution: {integrity: sha512-z8qVs9NfobHJm6uzK56XBZF8XwM9H294iRnB7wNjF0SnY93si5HPziIJn+qqvUR5QOff/4L0gCD6SShdR/GtVQ==} + engines: {node: '>=14.20.1'} + peerDependencies: + '@aws-sdk/credential-providers': ^3.201.0 + mongodb-client-encryption: '>=2.3.0 <3' + snappy: ^7.2.2 + peerDependenciesMeta: + '@aws-sdk/credential-providers': + optional: true + mongodb-client-encryption: + optional: true + snappy: + optional: true + dependencies: + bson: 5.3.0 + mongodb-connection-string-url: 2.6.0 + socks: 2.7.1 + optionalDependencies: + saslprep: 1.0.3 + dev: false + + /mongoose@7.3.0: + resolution: {integrity: sha512-gvkV5qxmBkGohlk7VTeePMPM2OkQPeqVYZHvjoM4goOIK6G1eSfJMZwXV21asivXxlaz6OuP29TfGAKrKooDAg==} + engines: {node: '>=14.20.1'} + dependencies: + bson: 5.3.0 + kareem: 2.5.1 + mongodb: 5.6.0 + mpath: 0.9.0 + mquery: 5.0.0 + ms: 2.1.3 + sift: 16.0.1 + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - mongodb-client-encryption + - snappy + - supports-color + dev: false + + /mpath@0.9.0: + resolution: {integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==} + engines: {node: '>=4.0.0'} + dev: false + + /mquery@5.0.0: + resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} + engines: {node: '>=14.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: false + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /postcss@8.4.24: + resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup@3.25.1: + resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: true + + /sander@0.5.1: + resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} + dependencies: + es6-promise: 3.3.1 + graceful-fs: 4.2.11 + mkdirp: 0.5.6 + rimraf: 2.7.1 + dev: true + + /saslprep@1.0.3: + resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + sparse-bitfield: 3.0.3 + dev: false + optional: true + + /set-cookie-parser@2.6.0: + resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} + dev: true + + /sift@16.0.1: + resolution: {integrity: sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==} + dev: false + + /sirv@2.0.3: + resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.21 + mrmime: 1.0.1 + totalist: 3.0.1 + dev: true + + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: false + + /socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + dependencies: + ip: 2.0.0 + smart-buffer: 4.2.0 + dev: false + + /sorcery@0.11.0: + resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} + hasBin: true + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + buffer-crc32: 0.2.13 + minimist: 1.2.8 + sander: 0.5.1 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /sparse-bitfield@3.0.3: + resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} + dependencies: + memory-pager: 1.5.0 + dev: false + optional: true + + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /svelte-check@3.4.3(svelte@3.59.1): + resolution: {integrity: sha512-O07soQFY3X0VDt+bcGc6D5naz0cLtjwnmNP9JsEBPVyMemFEqUhL2OdLqvkl5H/u8Jwm50EiAU4BPRn5iin/kg==} + hasBin: true + peerDependencies: + svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 + dependencies: + '@jridgewell/trace-mapping': 0.3.18 + chokidar: 3.5.3 + fast-glob: 3.2.12 + import-fresh: 3.3.0 + picocolors: 1.0.0 + sade: 1.8.1 + svelte: 3.59.1 + svelte-preprocess: 5.0.4(svelte@3.59.1)(typescript@5.1.3) + typescript: 5.1.3 + transitivePeerDependencies: + - '@babel/core' + - coffeescript + - less + - postcss + - postcss-load-config + - pug + - sass + - stylus + - sugarss + dev: true + + /svelte-hmr@0.15.2(svelte@3.59.1): + resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==} + engines: {node: ^12.20 || ^14.13.1 || >= 16} + peerDependencies: + svelte: ^3.19.0 || ^4.0.0-next.0 + dependencies: + svelte: 3.59.1 + dev: true + + /svelte-parse-markup@0.1.1(svelte@3.59.1): + resolution: {integrity: sha512-xCBSldaZdwi0u0ANASVCUFynCaV8z5D6sQOnzPcYSEoD9dd40MLzOKMBVmuTf/LUuPvc+cUvF132MnwdG7mDig==} + peerDependencies: + svelte: ^3.0.0 + dependencies: + svelte: 3.59.1 + dev: true + + /svelte-preprocess-import-assets@1.0.0(svelte@3.59.1): + resolution: {integrity: sha512-iuRDcuTtZnqDnq+50LWGj6YF0tziqM7QK3X+o63uKfpsZw4sFnYzb8uerEY1s9EulPa4GVeMjWZDCPgOZu1chA==} + peerDependencies: + svelte: ^3.37.0 + dependencies: + magic-string: 0.30.0 + svelte: 3.59.1 + svelte-parse-markup: 0.1.1(svelte@3.59.1) + dev: true + + /svelte-preprocess@5.0.4(svelte@3.59.1)(typescript@5.1.3): + resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} + engines: {node: '>= 14.10.0'} + requiresBuild: true + peerDependencies: + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 || ^4.0.0 + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.55.0 + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 + svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 + typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + optional: true + postcss: + optional: true + postcss-load-config: + optional: true + pug: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + typescript: + optional: true + dependencies: + '@types/pug': 2.0.6 + detect-indent: 6.1.0 + magic-string: 0.27.0 + sorcery: 0.11.0 + strip-indent: 3.0.0 + svelte: 3.59.1 + typescript: 5.1.3 + dev: true + + /svelte@3.59.1: + resolution: {integrity: sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ==} + engines: {node: '>= 8'} + dev: true + + /tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true + + /tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.3.0 + dev: false + + /tslib@2.5.3: + resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + dev: true + + /typescript@5.1.3: + resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /undici@5.22.1: + resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==} + engines: {node: '>=14.0'} + dependencies: + busboy: 1.6.0 + dev: true + + /vite@4.3.9: + resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.17.19 + postcss: 8.4.24 + rollup: 3.25.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vitefu@0.2.4(vite@4.3.9): + resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + vite: 4.3.9 + dev: true + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: false + + /whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: false + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true diff --git a/src/+page.svelte b/src/+page.svelte new file mode 100644 index 0000000..5ba19fe --- /dev/null +++ b/src/+page.svelte @@ -0,0 +1,61 @@ + + +

{data.name}

+ +{#if data.images.length > 0} + 1} class='double'> + {#each data.images as media} +
+ {media.alt} +
{media.caption}
+
+ {/each} +
+{/if} + +{data.recipe.baking.length} bei {data.recipe.baking.temperature} °C +{#if data.baking.mode} + {data.baking.mode} +{:else} + Ober-/Unterhitze +{/if} + +data.preparation +data.total_time +data.portions + +{#if data.ingredients} +

Zutaten

+{#each data.ingredients as list} +{#if list.name} +

{list.name}

+{/if} + +{/each} +{/if} + + +{#if data.instructions} +

Zubereitung

+{#each data.instructions as list} +{#if list.name} +

{list.name}

+{/if} +
    + {#each list.steps as step} +
  1. {step}
  2. + {/each} +
+{/each} +{/if} diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..f59b884 --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,12 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface Platform {} + } +} + +export {}; diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..effe0d0 --- /dev/null +++ b/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/lib/assets/aelplermagronen.webp b/src/lib/assets/aelplermagronen.webp new file mode 100644 index 0000000..85004bd Binary files /dev/null and b/src/lib/assets/aelplermagronen.webp differ diff --git a/src/lib/assets/aglio_e_olio.webp b/src/lib/assets/aglio_e_olio.webp new file mode 100644 index 0000000..8487386 Binary files /dev/null and b/src/lib/assets/aglio_e_olio.webp differ diff --git a/src/lib/assets/ajitama.webp b/src/lib/assets/ajitama.webp new file mode 100644 index 0000000..a6da6fd Binary files /dev/null and b/src/lib/assets/ajitama.webp differ diff --git a/src/lib/assets/al_ragu.webp b/src/lib/assets/al_ragu.webp new file mode 100644 index 0000000..b03118c Binary files /dev/null and b/src/lib/assets/al_ragu.webp differ diff --git a/src/lib/assets/anisbrot.webp b/src/lib/assets/anisbrot.webp new file mode 100644 index 0000000..c6c2f0f Binary files /dev/null and b/src/lib/assets/anisbrot.webp differ diff --git a/src/lib/assets/annaomelette.webp b/src/lib/assets/annaomelette.webp new file mode 100644 index 0000000..fa2cd04 Binary files /dev/null and b/src/lib/assets/annaomelette.webp differ diff --git a/src/lib/assets/apfelkompott.webp b/src/lib/assets/apfelkompott.webp new file mode 100644 index 0000000..add02a7 Binary files /dev/null and b/src/lib/assets/apfelkompott.webp differ diff --git a/src/lib/assets/apfelstrudel.webp b/src/lib/assets/apfelstrudel.webp new file mode 100644 index 0000000..35687f2 Binary files /dev/null and b/src/lib/assets/apfelstrudel.webp differ diff --git a/src/lib/assets/apfelwaehe.webp b/src/lib/assets/apfelwaehe.webp new file mode 100644 index 0000000..018d4ed Binary files /dev/null and b/src/lib/assets/apfelwaehe.webp differ diff --git a/src/lib/assets/aprikosenwaehe.webp b/src/lib/assets/aprikosenwaehe.webp new file mode 100644 index 0000000..dcf860e Binary files /dev/null and b/src/lib/assets/aprikosenwaehe.webp differ diff --git a/src/lib/assets/baerlauchravioli.webp b/src/lib/assets/baerlauchravioli.webp new file mode 100644 index 0000000..57edc56 Binary files /dev/null and b/src/lib/assets/baerlauchravioli.webp differ diff --git a/src/lib/assets/basler_brunsli.webp b/src/lib/assets/basler_brunsli.webp new file mode 100644 index 0000000..b70e7fd Binary files /dev/null and b/src/lib/assets/basler_brunsli.webp differ diff --git a/src/lib/assets/brezel.webp b/src/lib/assets/brezel.webp new file mode 100644 index 0000000..d0bd18f Binary files /dev/null and b/src/lib/assets/brezel.webp differ diff --git a/src/lib/assets/broeseltopfen.webp b/src/lib/assets/broeseltopfen.webp new file mode 100644 index 0000000..7ff725c Binary files /dev/null and b/src/lib/assets/broeseltopfen.webp differ diff --git a/src/lib/assets/brokkolisuppe.webp b/src/lib/assets/brokkolisuppe.webp new file mode 100644 index 0000000..2c6e786 Binary files /dev/null and b/src/lib/assets/brokkolisuppe.webp differ diff --git a/src/lib/assets/brotgewuerz.webp b/src/lib/assets/brotgewuerz.webp new file mode 100644 index 0000000..75d8497 Binary files /dev/null and b/src/lib/assets/brotgewuerz.webp differ diff --git a/src/lib/assets/buchtel_vanillesauce.webp b/src/lib/assets/buchtel_vanillesauce.webp new file mode 100644 index 0000000..6ef8475 Binary files /dev/null and b/src/lib/assets/buchtel_vanillesauce.webp differ diff --git a/src/lib/assets/buendner_nusstorte.webp b/src/lib/assets/buendner_nusstorte.webp new file mode 100644 index 0000000..d4b6271 Binary files /dev/null and b/src/lib/assets/buendner_nusstorte.webp differ diff --git a/src/lib/assets/burger_buns.webp b/src/lib/assets/burger_buns.webp new file mode 100644 index 0000000..d79194e Binary files /dev/null and b/src/lib/assets/burger_buns.webp differ diff --git a/src/lib/assets/carbonara.webp b/src/lib/assets/carbonara.webp new file mode 100644 index 0000000..46c99b7 Binary files /dev/null and b/src/lib/assets/carbonara.webp differ diff --git a/src/lib/assets/chaeschueechli.webp b/src/lib/assets/chaeschueechli.webp new file mode 100644 index 0000000..f0c3c85 Binary files /dev/null and b/src/lib/assets/chaeschueechli.webp differ diff --git a/src/lib/assets/checca.webp b/src/lib/assets/checca.webp new file mode 100644 index 0000000..f9c1d14 Binary files /dev/null and b/src/lib/assets/checca.webp differ diff --git a/src/lib/assets/daenische_kardamomkekse.webp b/src/lib/assets/daenische_kardamomkekse.webp new file mode 100644 index 0000000..deaf9be Binary files /dev/null and b/src/lib/assets/daenische_kardamomkekse.webp differ diff --git a/src/lib/assets/dinette.webp b/src/lib/assets/dinette.webp new file mode 100644 index 0000000..1214a38 Binary files /dev/null and b/src/lib/assets/dinette.webp differ diff --git a/src/lib/assets/eierschwammerlgoulash.webp b/src/lib/assets/eierschwammerlgoulash.webp new file mode 100644 index 0000000..abbe8d9 Binary files /dev/null and b/src/lib/assets/eierschwammerlgoulash.webp differ diff --git a/src/lib/assets/eingelegte_zwiebel.webp b/src/lib/assets/eingelegte_zwiebel.webp new file mode 100644 index 0000000..d04a41c Binary files /dev/null and b/src/lib/assets/eingelegte_zwiebel.webp differ diff --git a/src/lib/assets/erdaepfelgoulasch.webp b/src/lib/assets/erdaepfelgoulasch.webp new file mode 100644 index 0000000..9309f4d Binary files /dev/null and b/src/lib/assets/erdaepfelgoulasch.webp differ diff --git a/src/lib/assets/fastenwaehe.webp b/src/lib/assets/fastenwaehe.webp new file mode 100644 index 0000000..2a62112 Binary files /dev/null and b/src/lib/assets/fastenwaehe.webp differ diff --git a/src/lib/assets/firecracker.webp b/src/lib/assets/firecracker.webp new file mode 100644 index 0000000..6da1123 Binary files /dev/null and b/src/lib/assets/firecracker.webp differ diff --git a/src/lib/assets/flammkuchen.webp b/src/lib/assets/flammkuchen.webp new file mode 100644 index 0000000..6501b82 Binary files /dev/null and b/src/lib/assets/flammkuchen.webp differ diff --git a/src/lib/assets/frittatensuppe.webp b/src/lib/assets/frittatensuppe.webp new file mode 100644 index 0000000..774c3ba Binary files /dev/null and b/src/lib/assets/frittatensuppe.webp differ diff --git a/src/lib/assets/germknoedel.webp b/src/lib/assets/germknoedel.webp new file mode 100644 index 0000000..4d314eb Binary files /dev/null and b/src/lib/assets/germknoedel.webp differ diff --git a/src/lib/assets/gnocchi.webp b/src/lib/assets/gnocchi.webp new file mode 100644 index 0000000..49e41f2 Binary files /dev/null and b/src/lib/assets/gnocchi.webp differ diff --git a/src/lib/assets/gratin_dauphinois.webp b/src/lib/assets/gratin_dauphinois.webp new file mode 100644 index 0000000..38a77be Binary files /dev/null and b/src/lib/assets/gratin_dauphinois.webp differ diff --git a/src/lib/assets/gurkensalat.webp b/src/lib/assets/gurkensalat.webp new file mode 100644 index 0000000..89bb042 Binary files /dev/null and b/src/lib/assets/gurkensalat.webp differ diff --git a/src/lib/assets/hashbrown.webp b/src/lib/assets/hashbrown.webp new file mode 100644 index 0000000..5ac761f Binary files /dev/null and b/src/lib/assets/hashbrown.webp differ diff --git a/src/lib/assets/hoernli_mit_gehacktem.webp b/src/lib/assets/hoernli_mit_gehacktem.webp new file mode 100644 index 0000000..1d4ca1c Binary files /dev/null and b/src/lib/assets/hoernli_mit_gehacktem.webp differ diff --git a/src/lib/assets/hollondaise.webp b/src/lib/assets/hollondaise.webp new file mode 100644 index 0000000..57320ed Binary files /dev/null and b/src/lib/assets/hollondaise.webp differ diff --git a/src/lib/assets/hollundersirup.webp b/src/lib/assets/hollundersirup.webp new file mode 100644 index 0000000..cb2ede2 Binary files /dev/null and b/src/lib/assets/hollundersirup.webp differ diff --git a/src/lib/assets/huehnerbouillon.webp b/src/lib/assets/huehnerbouillon.webp new file mode 100644 index 0000000..627bc19 Binary files /dev/null and b/src/lib/assets/huehnerbouillon.webp differ diff --git a/src/lib/assets/hummus.webp b/src/lib/assets/hummus.webp new file mode 100644 index 0000000..cfef298 Binary files /dev/null and b/src/lib/assets/hummus.webp differ diff --git a/src/lib/assets/kaesspaetzle.webp b/src/lib/assets/kaesspaetzle.webp new file mode 100644 index 0000000..d2822a3 Binary files /dev/null and b/src/lib/assets/kaesspaetzle.webp differ diff --git a/src/lib/assets/kaiserschmarrn.webp b/src/lib/assets/kaiserschmarrn.webp new file mode 100644 index 0000000..9c8b3ee Binary files /dev/null and b/src/lib/assets/kaiserschmarrn.webp differ diff --git a/src/lib/assets/karottensalat.webp b/src/lib/assets/karottensalat.webp new file mode 100644 index 0000000..b0b7613 Binary files /dev/null and b/src/lib/assets/karottensalat.webp differ diff --git a/src/lib/assets/kartoffelsalat.webp b/src/lib/assets/kartoffelsalat.webp new file mode 100644 index 0000000..71c6cb6 Binary files /dev/null and b/src/lib/assets/kartoffelsalat.webp differ diff --git a/src/lib/assets/kasnudeln.webp b/src/lib/assets/kasnudeln.webp new file mode 100644 index 0000000..8a9163a Binary files /dev/null and b/src/lib/assets/kasnudeln.webp differ diff --git a/src/lib/assets/kirschwaehe.webp b/src/lib/assets/kirschwaehe.webp new file mode 100644 index 0000000..67dbd74 Binary files /dev/null and b/src/lib/assets/kirschwaehe.webp differ diff --git a/src/lib/assets/kletzennudel.webp b/src/lib/assets/kletzennudel.webp new file mode 100644 index 0000000..483f252 Binary files /dev/null and b/src/lib/assets/kletzennudel.webp differ diff --git a/src/lib/assets/knoblauchbrot.webp b/src/lib/assets/knoblauchbrot.webp new file mode 100644 index 0000000..cc626d0 Binary files /dev/null and b/src/lib/assets/knoblauchbrot.webp differ diff --git a/src/lib/assets/knochensuppe.webp b/src/lib/assets/knochensuppe.webp new file mode 100644 index 0000000..325431d Binary files /dev/null and b/src/lib/assets/knochensuppe.webp differ diff --git a/src/lib/assets/kokosbusserl.webp b/src/lib/assets/kokosbusserl.webp new file mode 100644 index 0000000..6789166 Binary files /dev/null and b/src/lib/assets/kokosbusserl.webp differ diff --git a/src/lib/assets/kottbullar.webp b/src/lib/assets/kottbullar.webp new file mode 100644 index 0000000..40dfde5 Binary files /dev/null and b/src/lib/assets/kottbullar.webp differ diff --git a/src/lib/assets/kraftbruehe.webp b/src/lib/assets/kraftbruehe.webp new file mode 100644 index 0000000..4d6d138 Binary files /dev/null and b/src/lib/assets/kraftbruehe.webp differ diff --git a/src/lib/assets/kuerbiscremesuppe.webp b/src/lib/assets/kuerbiscremesuppe.webp new file mode 100644 index 0000000..131fd30 Binary files /dev/null and b/src/lib/assets/kuerbiscremesuppe.webp differ diff --git a/src/lib/assets/kuerbisnudeln.webp b/src/lib/assets/kuerbisnudeln.webp new file mode 100644 index 0000000..8dd2db5 Binary files /dev/null and b/src/lib/assets/kuerbisnudeln.webp differ diff --git a/src/lib/assets/lauch_dinette.webp b/src/lib/assets/lauch_dinette.webp new file mode 100644 index 0000000..5fab550 Binary files /dev/null and b/src/lib/assets/lauch_dinette.webp differ diff --git a/src/lib/assets/lauchquiche.webp b/src/lib/assets/lauchquiche.webp new file mode 100644 index 0000000..316e567 Binary files /dev/null and b/src/lib/assets/lauchquiche.webp differ diff --git a/src/lib/assets/linsen_curry.webp b/src/lib/assets/linsen_curry.webp new file mode 100644 index 0000000..223e014 Binary files /dev/null and b/src/lib/assets/linsen_curry.webp differ diff --git a/src/lib/assets/load_html.js b/src/lib/assets/load_html.js new file mode 100644 index 0000000..85b148b --- /dev/null +++ b/src/lib/assets/load_html.js @@ -0,0 +1,12 @@ +document.querySelectorAll('.url_insert').forEach(url_insert); +function url_insert(el) { + var url = el.dataset.url; + var xhttp = new XMLHttpRequest(); + xhttp.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + el.innerHTML = this.response; + } + }; + xhttp.open("GET", url, true); + xhttp.send(); +} diff --git a/src/lib/assets/marillenknoedel.webp b/src/lib/assets/marillenknoedel.webp new file mode 100644 index 0000000..d507573 Binary files /dev/null and b/src/lib/assets/marillenknoedel.webp differ diff --git a/src/lib/assets/maronisuppe.webp b/src/lib/assets/maronisuppe.webp new file mode 100644 index 0000000..b04d0be Binary files /dev/null and b/src/lib/assets/maronisuppe.webp differ diff --git a/src/lib/assets/masalachai.webp b/src/lib/assets/masalachai.webp new file mode 100644 index 0000000..e152a58 Binary files /dev/null and b/src/lib/assets/masalachai.webp differ diff --git a/src/lib/assets/mayonnaise.webp b/src/lib/assets/mayonnaise.webp new file mode 100644 index 0000000..f438be2 Binary files /dev/null and b/src/lib/assets/mayonnaise.webp differ diff --git a/src/lib/assets/miso_steak_aubergine.webp b/src/lib/assets/miso_steak_aubergine.webp new file mode 100644 index 0000000..4705db8 Binary files /dev/null and b/src/lib/assets/miso_steak_aubergine.webp differ diff --git a/src/lib/assets/mousse_au_chocolat.webp b/src/lib/assets/mousse_au_chocolat.webp new file mode 100644 index 0000000..4b1b242 Binary files /dev/null and b/src/lib/assets/mousse_au_chocolat.webp differ diff --git a/src/lib/assets/ofen_pommes_frites.webp b/src/lib/assets/ofen_pommes_frites.webp new file mode 100644 index 0000000..4321762 Binary files /dev/null and b/src/lib/assets/ofen_pommes_frites.webp differ diff --git a/src/lib/assets/orecchiette.webp b/src/lib/assets/orecchiette.webp new file mode 100644 index 0000000..e03846f Binary files /dev/null and b/src/lib/assets/orecchiette.webp differ diff --git a/src/lib/assets/orecchiette_al_pomodoro.webp b/src/lib/assets/orecchiette_al_pomodoro.webp new file mode 100644 index 0000000..6200651 Binary files /dev/null and b/src/lib/assets/orecchiette_al_pomodoro.webp differ diff --git a/src/lib/assets/osterkuchen.webp b/src/lib/assets/osterkuchen.webp new file mode 100644 index 0000000..d9dc467 Binary files /dev/null and b/src/lib/assets/osterkuchen.webp differ diff --git a/src/lib/assets/osterkuchen_osterlamm_schablone.svg b/src/lib/assets/osterkuchen_osterlamm_schablone.svg new file mode 100644 index 0000000..c6e604a --- /dev/null +++ b/src/lib/assets/osterkuchen_osterlamm_schablone.svg @@ -0,0 +1,30 @@ + + + + diff --git a/src/lib/assets/osterlamm.webp b/src/lib/assets/osterlamm.webp new file mode 100644 index 0000000..b916ad4 Binary files /dev/null and b/src/lib/assets/osterlamm.webp differ diff --git a/src/lib/assets/palatschinken.webp b/src/lib/assets/palatschinken.webp new file mode 100644 index 0000000..11c7675 Binary files /dev/null and b/src/lib/assets/palatschinken.webp differ diff --git a/src/lib/assets/petersilkartoffeln.webp b/src/lib/assets/petersilkartoffeln.webp new file mode 100644 index 0000000..b92acfa Binary files /dev/null and b/src/lib/assets/petersilkartoffeln.webp differ diff --git a/src/lib/assets/pfeffermaenner.webp b/src/lib/assets/pfeffermaenner.webp new file mode 100644 index 0000000..f8ca93b Binary files /dev/null and b/src/lib/assets/pfeffermaenner.webp differ diff --git a/src/lib/assets/pilze.webp b/src/lib/assets/pilze.webp new file mode 100644 index 0000000..72791be Binary files /dev/null and b/src/lib/assets/pilze.webp differ diff --git a/src/lib/assets/pilzrahmsauce.webp b/src/lib/assets/pilzrahmsauce.webp new file mode 100644 index 0000000..ba51693 Binary files /dev/null and b/src/lib/assets/pilzrahmsauce.webp differ diff --git a/src/lib/assets/pizokel.webp b/src/lib/assets/pizokel.webp new file mode 100644 index 0000000..4fe3c7a Binary files /dev/null and b/src/lib/assets/pizokel.webp differ diff --git a/src/lib/assets/pizza_chorizo.webp b/src/lib/assets/pizza_chorizo.webp new file mode 100644 index 0000000..518c5de Binary files /dev/null and b/src/lib/assets/pizza_chorizo.webp differ diff --git a/src/lib/assets/pizza_veggie.webp b/src/lib/assets/pizza_veggie.webp new file mode 100644 index 0000000..2da312d Binary files /dev/null and b/src/lib/assets/pizza_veggie.webp differ diff --git a/src/lib/assets/plunderteig.webp b/src/lib/assets/plunderteig.webp new file mode 100644 index 0000000..509a9d8 Binary files /dev/null and b/src/lib/assets/plunderteig.webp differ diff --git a/src/lib/assets/poulet_katsu.webp b/src/lib/assets/poulet_katsu.webp new file mode 100644 index 0000000..250be56 Binary files /dev/null and b/src/lib/assets/poulet_katsu.webp differ diff --git a/src/lib/assets/pressgurken.webp b/src/lib/assets/pressgurken.webp new file mode 100644 index 0000000..d0301b4 Binary files /dev/null and b/src/lib/assets/pressgurken.webp differ diff --git a/src/lib/assets/quiche_lorraine.webp b/src/lib/assets/quiche_lorraine.webp new file mode 100644 index 0000000..2a55fcd Binary files /dev/null and b/src/lib/assets/quiche_lorraine.webp differ diff --git a/src/lib/assets/randen_avocado_roesti.webp b/src/lib/assets/randen_avocado_roesti.webp new file mode 100644 index 0000000..8ff1c22 Binary files /dev/null and b/src/lib/assets/randen_avocado_roesti.webp differ diff --git a/src/lib/assets/randensalat.webp b/src/lib/assets/randensalat.webp new file mode 100644 index 0000000..c326660 Binary files /dev/null and b/src/lib/assets/randensalat.webp differ diff --git a/src/lib/assets/ratatouille.webp b/src/lib/assets/ratatouille.webp new file mode 100644 index 0000000..bf4e4b8 Binary files /dev/null and b/src/lib/assets/ratatouille.webp differ diff --git a/src/lib/assets/reindling.webp b/src/lib/assets/reindling.webp new file mode 100644 index 0000000..682fed9 Binary files /dev/null and b/src/lib/assets/reindling.webp differ diff --git a/src/lib/assets/rhabarberkonfi.webp b/src/lib/assets/rhabarberkonfi.webp new file mode 100644 index 0000000..d2ee840 Binary files /dev/null and b/src/lib/assets/rhabarberkonfi.webp differ diff --git a/src/lib/assets/rindsgoulasch.webp b/src/lib/assets/rindsgoulasch.webp new file mode 100644 index 0000000..4f5511e Binary files /dev/null and b/src/lib/assets/rindsgoulasch.webp differ diff --git a/src/lib/assets/roesti.webp b/src/lib/assets/roesti.webp new file mode 100644 index 0000000..c45ee28 Binary files /dev/null and b/src/lib/assets/roesti.webp differ diff --git a/src/lib/assets/rote_linsen_hummus.webp b/src/lib/assets/rote_linsen_hummus.webp new file mode 100644 index 0000000..4eb6fc9 Binary files /dev/null and b/src/lib/assets/rote_linsen_hummus.webp differ diff --git a/src/lib/assets/rotkraut.webp b/src/lib/assets/rotkraut.webp new file mode 100644 index 0000000..b5122c3 Binary files /dev/null and b/src/lib/assets/rotkraut.webp differ diff --git a/src/lib/assets/ruchbrot.webp b/src/lib/assets/ruchbrot.webp new file mode 100644 index 0000000..930cb38 Binary files /dev/null and b/src/lib/assets/ruchbrot.webp differ diff --git a/src/lib/assets/rustikal.webp b/src/lib/assets/rustikal.webp new file mode 100644 index 0000000..991089c Binary files /dev/null and b/src/lib/assets/rustikal.webp differ diff --git a/src/lib/assets/sachertorte.webp b/src/lib/assets/sachertorte.webp new file mode 100644 index 0000000..9e84554 Binary files /dev/null and b/src/lib/assets/sachertorte.webp differ diff --git a/src/lib/assets/salbei_spaghetti.webp b/src/lib/assets/salbei_spaghetti.webp new file mode 100644 index 0000000..2363982 Binary files /dev/null and b/src/lib/assets/salbei_spaghetti.webp differ diff --git a/src/lib/assets/sauerkrautauflauf.webp b/src/lib/assets/sauerkrautauflauf.webp new file mode 100644 index 0000000..ebc0bc8 Binary files /dev/null and b/src/lib/assets/sauerkrautauflauf.webp differ diff --git a/src/lib/assets/sauerteigbrot.webp b/src/lib/assets/sauerteigbrot.webp new file mode 100644 index 0000000..28b10ec Binary files /dev/null and b/src/lib/assets/sauerteigbrot.webp differ diff --git a/src/lib/assets/schoggi.webp b/src/lib/assets/schoggi.webp new file mode 100644 index 0000000..deada2c Binary files /dev/null and b/src/lib/assets/schoggi.webp differ diff --git a/src/lib/assets/schupfnudeln.webp b/src/lib/assets/schupfnudeln.webp new file mode 100644 index 0000000..961a82d Binary files /dev/null and b/src/lib/assets/schupfnudeln.webp differ diff --git a/src/lib/assets/schupfnudeln_mit_kraut_und_speck.webp b/src/lib/assets/schupfnudeln_mit_kraut_und_speck.webp new file mode 100644 index 0000000..b6d7b54 Binary files /dev/null and b/src/lib/assets/schupfnudeln_mit_kraut_und_speck.webp differ diff --git a/src/lib/assets/semmelknoedel.webp b/src/lib/assets/semmelknoedel.webp new file mode 100644 index 0000000..c6635fd Binary files /dev/null and b/src/lib/assets/semmelknoedel.webp differ diff --git a/src/lib/assets/semmeln.webp b/src/lib/assets/semmeln.webp new file mode 100644 index 0000000..f274cdc Binary files /dev/null and b/src/lib/assets/semmeln.webp differ diff --git a/src/lib/assets/shokupan.webp b/src/lib/assets/shokupan.webp new file mode 100644 index 0000000..895f441 Binary files /dev/null and b/src/lib/assets/shokupan.webp differ diff --git a/src/lib/assets/siebbrot.webp b/src/lib/assets/siebbrot.webp new file mode 100644 index 0000000..fb37b37 Binary files /dev/null and b/src/lib/assets/siebbrot.webp differ diff --git a/src/lib/assets/spinat_spaghetti.webp b/src/lib/assets/spinat_spaghetti.webp new file mode 100644 index 0000000..3c1bf64 Binary files /dev/null and b/src/lib/assets/spinat_spaghetti.webp differ diff --git a/src/lib/assets/spitzbuben.webp b/src/lib/assets/spitzbuben.webp new file mode 100644 index 0000000..0d794a2 Binary files /dev/null and b/src/lib/assets/spitzbuben.webp differ diff --git a/src/lib/assets/strudelteig.webp b/src/lib/assets/strudelteig.webp new file mode 100644 index 0000000..38ea584 Binary files /dev/null and b/src/lib/assets/strudelteig.webp differ diff --git a/src/lib/assets/tiramisu.webp b/src/lib/assets/tiramisu.webp new file mode 100644 index 0000000..184abc2 Binary files /dev/null and b/src/lib/assets/tiramisu.webp differ diff --git a/src/lib/assets/tirggel.webp b/src/lib/assets/tirggel.webp new file mode 100644 index 0000000..a2222dc Binary files /dev/null and b/src/lib/assets/tirggel.webp differ diff --git a/src/lib/assets/tomatensuppe.webp b/src/lib/assets/tomatensuppe.webp new file mode 100644 index 0000000..0e2437e Binary files /dev/null and b/src/lib/assets/tomatensuppe.webp differ diff --git a/src/lib/assets/uromas_vanillekipferl.webp b/src/lib/assets/uromas_vanillekipferl.webp new file mode 100644 index 0000000..1e4cea9 Binary files /dev/null and b/src/lib/assets/uromas_vanillekipferl.webp differ diff --git a/src/lib/assets/weihnachtsgans.webp b/src/lib/assets/weihnachtsgans.webp new file mode 100644 index 0000000..511cdb4 Binary files /dev/null and b/src/lib/assets/weihnachtsgans.webp differ diff --git a/src/lib/assets/wienerschnitzel.webp b/src/lib/assets/wienerschnitzel.webp new file mode 100644 index 0000000..8db81d5 Binary files /dev/null and b/src/lib/assets/wienerschnitzel.webp differ diff --git a/src/lib/assets/wintergemuesestrudel.webp b/src/lib/assets/wintergemuesestrudel.webp new file mode 100644 index 0000000..0ebf4a5 Binary files /dev/null and b/src/lib/assets/wintergemuesestrudel.webp differ diff --git a/src/lib/assets/zimtsterne.webp b/src/lib/assets/zimtsterne.webp new file mode 100644 index 0000000..5cb4525 Binary files /dev/null and b/src/lib/assets/zimtsterne.webp differ diff --git a/src/lib/assets/zitrone_kaeseravioli.webp b/src/lib/assets/zitrone_kaeseravioli.webp new file mode 100644 index 0000000..c81dac8 Binary files /dev/null and b/src/lib/assets/zitrone_kaeseravioli.webp differ diff --git a/src/lib/assets/zopf.webp b/src/lib/assets/zopf.webp new file mode 100644 index 0000000..a276abe Binary files /dev/null and b/src/lib/assets/zopf.webp differ diff --git a/src/lib/assets/zopf2.webp b/src/lib/assets/zopf2.webp new file mode 100644 index 0000000..18d75e2 Binary files /dev/null and b/src/lib/assets/zopf2.webp differ diff --git a/src/lib/assets/zucchinicremesuppe.webp b/src/lib/assets/zucchinicremesuppe.webp new file mode 100644 index 0000000..672b67b Binary files /dev/null and b/src/lib/assets/zucchinicremesuppe.webp differ diff --git a/src/lib/assets/zwiebelsuppe.webp b/src/lib/assets/zwiebelsuppe.webp new file mode 100644 index 0000000..6b84d38 Binary files /dev/null and b/src/lib/assets/zwiebelsuppe.webp differ diff --git a/src/models/Recipe.ts b/src/models/Recipe.ts new file mode 100644 index 0000000..9f20b19 --- /dev/null +++ b/src/models/Recipe.ts @@ -0,0 +1,40 @@ +import mongoose from 'mongoose'; + +const RecipeSchema = new mongoose.Schema( + { + short_name: {type: String, required: true}, + name : {type: String, required: true,}, + category : {type: String, required: true,}, + icon: {type: String, required: true}, + dateCreated: {type: Date, default: Date.now}, + dateModified: {type: Date, default: Date.now}, + images: [ { + mediapath: {type: String, required: true}, + alt: String, + caption: String, + }], + description: {type: String, required: true}, + tags : [String], + season : [Number], + baking: { temperature: {type: String, default: ""}, + length: {type: String, default: ""}, + mode: {type: String, default: ""}, + }, + preparation : String, + fermentation: {bulk: String, + final: String, + }, + portions : String, + total_time : String, + ingredients : [ { name: {type: String, default: ""}, + list: [{name: {type: String, default: ""}, + unit: String, + amount: Number, + }] + }], + instructions : [{name: {type: String, default: ""}, + steps: [String]}], + } +); + +export const Recipe = mongoose.model("Recipe", RecipeSchema); diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..5982b0a --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,2 @@ +

Welcome to SvelteKit

+

Visit kit.svelte.dev to read the documentation

diff --git a/src/routes/api/items/[name]/+server.ts b/src/routes/api/items/[name]/+server.ts new file mode 100644 index 0000000..0a3daa0 --- /dev/null +++ b/src/routes/api/items/[name]/+server.ts @@ -0,0 +1,13 @@ +import { json, type RequestHandler } from '@sveltejs/kit'; +import { Recipe } from '../../../../models/Recipe'; +import { dbConnect, dbDisconnect } from '../../../../utils/db'; +import type {RecipeModelType} from '../../../../types/types'; + +export const GET: RequestHandler = async ({params}) => { + await dbConnect(); + let recipe = (await Recipe.findOne({ short_name: params.name}).lean()) as RecipeModelType[]; + await dbDisconnect(); + + recipe = JSON.parse(JSON.stringify(recipe)); + return json(recipe); +}; diff --git a/src/routes/api/items/all_brief/+server.ts b/src/routes/api/items/all_brief/+server.ts new file mode 100644 index 0000000..35c36c8 --- /dev/null +++ b/src/routes/api/items/all_brief/+server.ts @@ -0,0 +1,13 @@ +import { json, type RequestHandler } from '@sveltejs/kit'; +import { Recipe } from '../../../../models/Recipe' +import { dbConnect, dbDisconnect } from '../../../../utils/db'; + +export const GET: RequestHandler = async ({params}) => { + let current_month = 6; + await dbConnect(); + let found_brief = (await Recipe.find({}, 'name short_name images tags category icon description season').lean()); + await dbDisconnect(); + console.log(found_brief) + let recipes = JSON.parse(JSON.stringify(found_brief)); + return json(recipes); +}; diff --git a/src/routes/api/items/in_season/+server.ts b/src/routes/api/items/in_season/+server.ts new file mode 100644 index 0000000..5ea49fc --- /dev/null +++ b/src/routes/api/items/in_season/+server.ts @@ -0,0 +1,12 @@ +import { json, type RequestHandler } from '@sveltejs/kit'; +import { Recipe } from '../../../../models/Recipe' +import { dbConnect, dbDisconnect } from '../../../../utils/db'; + +export const GET: RequestHandler = async ({params}) => { + let current_month = 6; + await dbConnect(); + let found_in_season = (await Recipe.find({season: current_month}, 'name short_name images tags category icon description season').lean()); + await dbDisconnect(); + found_in_season = JSON.parse(JSON.stringify(found_in_season)); + return json(found_in_season); +}; diff --git a/src/routes/api/items/tag/[tag]/+server.ts b/src/routes/api/items/tag/[tag]/+server.ts new file mode 100644 index 0000000..f850280 --- /dev/null +++ b/src/routes/api/items/tag/[tag]/+server.ts @@ -0,0 +1,13 @@ +import { json, type RequestHandler } from '@sveltejs/kit'; +import { Recipe } from '../../../../../models/Recipe'; +import { dbConnect, dbDisconnect } from '../../../../../utils/db'; +import type {BriefRecipeType} from '../../../../../types/types'; + +export const GET: RequestHandler = async ({params}) => { + await dbConnect(); + let recipes = (await Recipe.find({tags: params.tag}, 'name short_name images tags category icon description season').lean()) as BriefRecipeType[]; + await dbDisconnect(); + + recipes = JSON.parse(JSON.stringify(recipes)); + return json(recipes); +}; diff --git a/src/routes/api/seed/+server.ts b/src/routes/api/seed/+server.ts new file mode 100644 index 0000000..cfc61e0 --- /dev/null +++ b/src/routes/api/seed/+server.ts @@ -0,0 +1,147 @@ +import { json } from '@sveltejs/kit'; +import { Recipe } from '../../../models/Recipe'; +import { dbConnect, dbDisconnect } from '../../../utils/db'; + +const test_json = [ + { short_name: "rhabarberkonfi", + name: "Rharbarberkonfi", + category: "Aufstrich", + icon: "☀️", + datecreated: 20230610, + datemodified: 20230611, + images: + [ { + mediapath: "rharbarberkonfi.webp", + alt: "Ein Brot mit Marmelade darauf.", + caption: "" + } + ], + description: "Saure Marmelade", + tags:["marmelade", "schweiz", "sauer", "rhabarber", "zucker", "aufstrich", "marmelade" , "ein weteres langes tag", "und noch eins", "und ein weiteres", "und nochmal"], + season: [4,5,6], + baking: { + temperature: "160", + length: "4 Stunden", + mode: "Ober-/Unterhitze" + }, + preparation: "20 Minuten", + fermentation: { + bulk: "2.5 Stunden", + final: "2 Stunden" + }, + portions: "4 Pizzen", + total_time: "1 Tag", + ingredients: [ { + name: "Teig", + list: [ + {name: "Mehl", + unit: "g", + amount: 500 + } , + { + name: "Salz", + unit: "g", + amount: 6 + } + ]}, + { + name: "Füllung", + list: [ + { + name: "Aprikose", + unit: "Stück", + amount: 10 + }, + { + name: "Zuckerwürfel", + unit: "Stück", + amount: 10 + } + ] } + ], + instructions: [ + {name: "", + steps: [ + "Den Rhabarber schälen und in ca. 1 cm große Stücke schneiden", + "Have fun" + ] + } + ] + }, + { short_name: "osterfladen", + name: "Osterfladen", + category: "Aufstrich", + icon: "🐇", + datecreated: 20230610, + datemodified: 20230611, + images: + [ { + mediapath: "osterfladen.webp", + alt: "Ein Brot mit Marmelade darauf.", + caption: "" + } + ], + description: "Saure Marmelade", + tags:["marmelade", "schweiz", "sauer", "rhabarber", "zucker", "aufstrich", "marmelade"], + season: [2,3,4], + baking: { + temperature: "160", + length: "4 Stunden", + mode: "Ober-/Unterhitze" + }, + preparation: "20 Minuten", + fermentation: { + bulk: "2.5 Stunden", + final: "2 Stunden" + }, + portions: "4 Pizzen", + total_time: "1 Tag", + ingredients: [ { + name: "Teig", + list: [ + {name: "Mehl", + unit: "g", + amount: 500 + } , + { + name: "Salz", + unit: "g", + amount: 6 + } + ]}, + { + name: "Füllung", + list: [ + { + name: "Aprikose", + unit: "Stück", + amount: 10 + }, + { + name: "Zuckerwürfel", + unit: "Stück", + amount: 10 + } + ] } + ], + instructions: [ + {name: "", + steps: [ + "Den Rhabarber schälen und in ca. 1 cm große Stücke schneiden", + "Have fun" + ] + } + ] + }, +]; + +// seed data +export const GET = async () => { + await dbConnect(); + await Recipe.deleteMany(); + await Recipe.insertMany(test_json); + await dbDisconnect(); + return json({ + message: 'seeded', + }); +} diff --git a/src/routes/rezepte/+page.server.ts b/src/routes/rezepte/+page.server.ts new file mode 100644 index 0000000..d71a14b --- /dev/null +++ b/src/routes/rezepte/+page.server.ts @@ -0,0 +1,12 @@ +import type { PageLoad } from "./$types"; + +export async function load({ fetch }) { + const res_season = await fetch(`/api/items/in_season`); + const res_all_brief = await fetch(`/api/items/all_brief`); + const item_season = await res_season.json(); + const item_all_brief = await res_all_brief.json(); + return { + season: item_season, + all_brief: item_all_brief, + }; +}; diff --git a/src/routes/rezepte/+page.svelte b/src/routes/rezepte/+page.svelte new file mode 100644 index 0000000..01de614 --- /dev/null +++ b/src/routes/rezepte/+page.svelte @@ -0,0 +1,36 @@ + + +

Rezepte

+

In Saison

+
+
+{#each data.season as recipe} + +{/each} +
+
+

Alle Rezepte

+
+{#each data.all_brief as recipe} + +{/each} +
diff --git a/src/routes/rezepte/.jukit/.jukit_info.json b/src/routes/rezepte/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/src/routes/rezepte/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/src/routes/rezepte/Card.svelte b/src/routes/rezepte/Card.svelte new file mode 100644 index 0000000..db48137 --- /dev/null +++ b/src/routes/rezepte/Card.svelte @@ -0,0 +1,29 @@ + + + + +
+ {#if recipe.season.includes(current_month)} +
{recipe.icon}
+ {/if} +
{recipe.name}
+
+ {#each recipe.tags as tag} + {tag} + {/each} +
+
+ diff --git a/src/routes/rezepte/[name]/+page.server.ts b/src/routes/rezepte/[name]/+page.server.ts new file mode 100644 index 0000000..1b325b2 --- /dev/null +++ b/src/routes/rezepte/[name]/+page.server.ts @@ -0,0 +1,11 @@ +// import { error } from '@sveltejs/kit'; +import type { PageLoad } from "./$types"; +//import { Recipe } from '../../../models/Recipe'; +//import { dbConnect, dbDisconnect } from '../../../utils/db'; + +export async function load({ fetch, params }) { + const res = await fetch(`/api/items/${params.name}`); + const item = await res.json(); + + return item; +}; diff --git a/src/routes/rezepte/[name]/+page.svelte b/src/routes/rezepte/[name]/+page.svelte new file mode 100644 index 0000000..3b32035 --- /dev/null +++ b/src/routes/rezepte/[name]/+page.svelte @@ -0,0 +1,46 @@ + + +

{data.name}

+ +1} class=double> +{#each data.images as img} +
+ {#if img.caption} + {img.caption} + {/if} +
+{/each} +
+ +{#if data.ingredients} +

Zutaten

+{#each data.ingredients as list} +{#if list.name} +

{list.name}

+{/if} + +{/each} +{/if} + + +{#if data.instructions} +

Zubereitung

+{#each data.instructions as list} +{#if list.name} +

{list.name}

+{/if} +
    + {#each list.steps as step} +
  1. {step}
  2. + {/each} +
+{/each} +{/if} diff --git a/src/routes/rezepte/[name]/.jukit/.jukit_info.json b/src/routes/rezepte/[name]/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/src/routes/rezepte/[name]/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/src/routes/rezepte/[name]/MultiImgWrapper.svelte b/src/routes/rezepte/[name]/MultiImgWrapper.svelte new file mode 100644 index 0000000..5f22311 --- /dev/null +++ b/src/routes/rezepte/[name]/MultiImgWrapper.svelte @@ -0,0 +1,10 @@ + +{#if wrap} +
+ +
+{:else} + +{/if} diff --git a/src/routes/rezepte/card.css b/src/routes/rezepte/card.css new file mode 100644 index 0000000..a4159b1 --- /dev/null +++ b/src/routes/rezepte/card.css @@ -0,0 +1,110 @@ +.card{ + text-decoration: none; + position: relative; + box-sizing: border-box; + font-family: sans-serif; + cursor: pointer; + width: 300px; + aspect-ratio: 4/7; + border-radius: 20px; + background-size: contain; + display: flex; + flex-direction: column; + justify-content: end; + transition: 200ms; +} +.card:hover, +.card:focus-visible{ + transform: scale(1.02,1.02) +} + +.card img{ + height: 50%; + object-fit: cover; + border-top-left-radius: inherit; + border-top-right-radius: inherit; + background-color: #5E81AC; +} +.card .title { + box-sizing: border-box; + padding-top: 0.5em; + height: 50%; + width: 100% ; + padding-inline: 1em; + border-bottom-left-radius: inherit; + border-bottom-right-radius: inherit; + background-color: #5E81AC; + display: flex; + flex-direction: column; + justify-content: space-between; + transition: 100ms; +} +.card:hover .title{ + background-color:#BF616A; +} +.card .name{ + font-size: 2em; + color: white; + margin-bottom: 0.5em; +} + +.card .tags{ + display: flex; + flex-wrap: wrap; + overflow: hidden; + column-gap: 0.25em; + margin-bottom:0.5em; + flex-grow: 0; +} +.card .tag{ + cursor: pointer; + text-decoration: unset; + background-color: #D8DEE9; + color: #2E3440; + border-radius: 100px; + padding-inline: 1em; + line-height: 1.5em; + margin-bottom: 0.5em; + transition: 100ms; +} +.card .tag:hover{ + transform: scale(1.04, 1.04); + background-color: #D08770; +} + +.card .title .icon{ + position: absolute; + font-size: 1.5rem; + top:-0.5em; + right:-0.5em; + padding: 0.25em; + background-color: white; + border-radius:1000px; +} +.card:hover .title .icon{ + animation: shake 0.6s +} + + @keyframes shake{ + 0%{ + transform: rotate(0) + scale(1,1); + } + 25%{ + transform: rotate(30deg) + scale(1.2,1.2) + ; + } + 50%{ + transform: rotate(-30deg) + scale(1.2,1.2); + } + 74%{ + transform: rotate(30deg) + scale(1.2, 1.2); + } + 100%{ + transform: rotate(0) + scale(1,1); + } + } diff --git a/src/routes/rezepte/tag/+page.server.ts b/src/routes/rezepte/tag/+page.server.ts new file mode 100644 index 0000000..0f4d406 --- /dev/null +++ b/src/routes/rezepte/tag/+page.server.ts @@ -0,0 +1,9 @@ +import type { PageLoad } from "./$types"; + +export async function load({ fetch }) { + const res_tag = await fetch(`/api/tags`); + const items_tag = await res_tag.json(); + return { + tags: item.tags + } +}; diff --git a/src/routes/rezepte/tag/+page.svelte b/src/routes/rezepte/tag/+page.svelte new file mode 100644 index 0000000..b793e42 --- /dev/null +++ b/src/routes/rezepte/tag/+page.svelte @@ -0,0 +1,30 @@ + + +

Rezepte

+

In Tag {data.tag}

+
+
+{#each data.recipes as recipe} + +{/each} +
+
diff --git a/src/routes/rezepte/tag/.jukit/.jukit_info.json b/src/routes/rezepte/tag/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/src/routes/rezepte/tag/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/src/routes/rezepte/tag/[tag]/+page.server.ts b/src/routes/rezepte/tag/[tag]/+page.server.ts new file mode 100644 index 0000000..ac99b03 --- /dev/null +++ b/src/routes/rezepte/tag/[tag]/+page.server.ts @@ -0,0 +1,10 @@ +import type { PageLoad } from "./$types"; + +export async function load({ fetch, params }) { + const res_tag = await fetch(`/api/items/tag/${params.tag}`); + const items_tag = await res_tag.json(); + return { + tag: params.tag, + recipes: items_tag + } +}; diff --git a/src/routes/rezepte/tag/[tag]/+page.svelte b/src/routes/rezepte/tag/[tag]/+page.svelte new file mode 100644 index 0000000..466ca3b --- /dev/null +++ b/src/routes/rezepte/tag/[tag]/+page.svelte @@ -0,0 +1,30 @@ + + +

Rezepte

+

In Tag {data.tag}

+
+
+{#each data.recipes as recipe} + +{/each} +
+
diff --git a/src/routes/rezepte/tag/[tag]/.jukit/.jukit_info.json b/src/routes/rezepte/tag/[tag]/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/src/routes/rezepte/tag/[tag]/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/src/types/types.ts b/src/types/types.ts new file mode 100644 index 0000000..719fa5e --- /dev/null +++ b/src/types/types.ts @@ -0,0 +1,59 @@ +export type RecipeModelType = { + _id: string; + short_name: string; + name: string; + category: string; + icon: string; + dateCreated: Date; + dateModified: Date; + images?: [{ + mediapath: string; + alt: string; + caption?: string + }]; + description: string; + tags: [string]; + season: [number]; + baking?: { + temperature: string; + length: string; + mode: string; + } + preparation?: string; + fermentation?:{ + bulk: string; + final: string + } + portions?: string; + total_time?: string; + ingredients?: [{ + name?: string; + list: [{ + name: string; + unit: string; + amount: number; + }] + }] + instructions?: [{ + name?: string; + steps: [string] + }] +}; + +export type BriefRecipeType = { + _id: string; + short_name: string; + name: string; + category: string; + icon: string; + dateCreated: Date; + dateModified: Date; + images?: [{ + mediapath: string; + alt: string; + caption?: string; + }] + description: string; + tags: [string]; + season: [number]; +} diff --git a/src/utils/db.ts b/src/utils/db.ts new file mode 100644 index 0000000..32e4191 --- /dev/null +++ b/src/utils/db.ts @@ -0,0 +1,37 @@ +import mongoose from 'mongoose'; +import { MONGO_URL } from '$env/static/private'; +/* + 0 - disconnected + 1 - connected + 2 - connecting + 3 - disconnecting + 4 - uninitialized +*/ +const mongoConnection = { + isConnected: 0, +}; + +export const dbConnect = async () => { + if (mongoConnection.isConnected === 1) { + return; + } + + if (mongoose.connections.length > 0) { + mongoConnection.isConnected = mongoose.connections[0].readyState; + if (mongoConnection.isConnected === 1) { + return; + } + + await mongoose.disconnect(); + } + await mongoose.connect(MONGO_URL ?? ''); + mongoConnection.isConnected = 1; +}; + +export const dbDisconnect = async () => { + if (process.env.NODE_ENV === 'development') return; + if (mongoConnection.isConnected === 0) return; + + await mongoose.disconnect(); + mongoConnection.isConnected = 0; +}; diff --git a/src/utils/seed-data.ts b/src/utils/seed-data.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/utils/seed-data.ts @@ -0,0 +1 @@ +export {}; diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000..825b9e6 Binary files /dev/null and b/static/favicon.png differ diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 0000000..4eb66e5 --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,19 @@ +import adapter from '@sveltejs/adapter-auto'; +import { vitePreprocess } from '@sveltejs/kit/vite'; +import { importAssets } from 'svelte-preprocess-import-assets' + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + // Consult https://kit.svelte.dev/docs/integrations#preprocessors + // for more information about preprocessors + preprocess: [vitePreprocess(), importAssets()], + + kit: { + // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. + // If your environment is not supported or you settled on a specific environment, switch out the adapter. + // See https://kit.svelte.dev/docs/adapters for more information about adapters. + adapter: adapter() + } +}; + +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..6ae0c8c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true + } + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..bbf8c7d --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,6 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + plugins: [sveltekit()] +});