@cravery/core 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/collections.d.ts +8 -0
- package/dist/config/collections.d.ts.map +1 -0
- package/dist/config/collections.js +11 -0
- package/dist/config/collections.js.map +1 -0
- package/dist/config/common.d.ts +2 -0
- package/dist/config/common.d.ts.map +1 -0
- package/dist/config/common.js +5 -0
- package/dist/config/common.js.map +1 -0
- package/dist/config/credits.d.ts +2 -0
- package/dist/config/credits.d.ts.map +1 -0
- package/dist/config/credits.js +5 -0
- package/dist/config/credits.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +19 -0
- package/dist/config/index.js.map +1 -0
- package/dist/enums/allergen.d.ts +19 -0
- package/dist/enums/allergen.d.ts.map +1 -0
- package/dist/enums/allergen.js +21 -0
- package/dist/enums/allergen.js.map +1 -0
- package/dist/enums/cuisine.d.ts +39 -0
- package/dist/enums/cuisine.d.ts.map +1 -0
- package/dist/enums/cuisine.js +41 -0
- package/dist/enums/cuisine.js.map +1 -0
- package/dist/enums/dietary_tag.d.ts +21 -0
- package/dist/enums/dietary_tag.d.ts.map +1 -0
- package/dist/enums/dietary_tag.js +23 -0
- package/dist/enums/dietary_tag.js.map +1 -0
- package/dist/enums/difficulty.d.ts +10 -0
- package/dist/enums/difficulty.d.ts.map +1 -0
- package/dist/enums/difficulty.js +12 -0
- package/dist/enums/difficulty.js.map +1 -0
- package/dist/enums/image_type.d.ts +8 -0
- package/dist/enums/image_type.d.ts.map +1 -0
- package/dist/enums/image_type.js +7 -0
- package/dist/enums/image_type.js.map +1 -0
- package/dist/enums/index.d.ts +22 -0
- package/dist/enums/index.d.ts.map +1 -0
- package/dist/enums/index.js +38 -0
- package/dist/enums/index.js.map +1 -0
- package/dist/enums/locale.d.ts +11 -0
- package/dist/enums/locale.d.ts.map +1 -0
- package/dist/enums/locale.js +7 -0
- package/dist/enums/locale.js.map +1 -0
- package/dist/enums/meal_type.d.ts +14 -0
- package/dist/enums/meal_type.d.ts.map +1 -0
- package/dist/enums/meal_type.js +16 -0
- package/dist/enums/meal_type.js.map +1 -0
- package/dist/enums/moderation_status.d.ts +9 -0
- package/dist/enums/moderation_status.d.ts.map +1 -0
- package/dist/enums/moderation_status.js +11 -0
- package/dist/enums/moderation_status.js.map +1 -0
- package/dist/enums/priority.d.ts +9 -0
- package/dist/enums/priority.d.ts.map +1 -0
- package/dist/enums/priority.js +7 -0
- package/dist/enums/priority.js.map +1 -0
- package/dist/enums/profile_status.d.ts +10 -0
- package/dist/enums/profile_status.d.ts.map +1 -0
- package/dist/enums/profile_status.js +12 -0
- package/dist/enums/profile_status.js.map +1 -0
- package/dist/enums/recipe_source.d.ts +10 -0
- package/dist/enums/recipe_source.d.ts.map +1 -0
- package/dist/enums/recipe_source.js +7 -0
- package/dist/enums/recipe_source.js.map +1 -0
- package/dist/enums/recipe_status.d.ts +10 -0
- package/dist/enums/recipe_status.d.ts.map +1 -0
- package/dist/enums/recipe_status.js +12 -0
- package/dist/enums/recipe_status.js.map +1 -0
- package/dist/enums/role.d.ts +11 -0
- package/dist/enums/role.d.ts.map +1 -0
- package/dist/enums/role.js +13 -0
- package/dist/enums/role.js.map +1 -0
- package/dist/enums/severity.d.ts +9 -0
- package/dist/enums/severity.d.ts.map +1 -0
- package/dist/enums/severity.js +7 -0
- package/dist/enums/severity.js.map +1 -0
- package/dist/enums/spiciness.d.ts +10 -0
- package/dist/enums/spiciness.d.ts.map +1 -0
- package/dist/enums/spiciness.js +7 -0
- package/dist/enums/spiciness.js.map +1 -0
- package/dist/enums/status.d.ts +11 -0
- package/dist/enums/status.d.ts.map +1 -0
- package/dist/enums/status.js +13 -0
- package/dist/enums/status.js.map +1 -0
- package/dist/enums/subscription_tier.d.ts +8 -0
- package/dist/enums/subscription_tier.d.ts.map +1 -0
- package/dist/enums/subscription_tier.js +6 -0
- package/dist/enums/subscription_tier.js.map +1 -0
- package/dist/enums/suggestion_category.d.ts +11 -0
- package/dist/enums/suggestion_category.d.ts.map +1 -0
- package/dist/enums/suggestion_category.js +13 -0
- package/dist/enums/suggestion_category.js.map +1 -0
- package/dist/enums/temperature_unit.d.ts +8 -0
- package/dist/enums/temperature_unit.d.ts.map +1 -0
- package/dist/enums/temperature_unit.js +7 -0
- package/dist/enums/temperature_unit.js.map +1 -0
- package/dist/enums/unit.d.ts +43 -0
- package/dist/enums/unit.d.ts.map +1 -0
- package/dist/enums/unit.js +53 -0
- package/dist/enums/unit.js.map +1 -0
- package/dist/enums/url_type.d.ts +13 -0
- package/dist/enums/url_type.d.ts.map +1 -0
- package/dist/enums/url_type.js +15 -0
- package/dist/enums/url_type.js.map +1 -0
- package/dist/enums/user_status.d.ts +10 -0
- package/dist/enums/user_status.d.ts.map +1 -0
- package/dist/enums/user_status.js +12 -0
- package/dist/enums/user_status.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +3 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/types/ai/config.d.ts +20 -0
- package/dist/types/ai/config.d.ts.map +1 -0
- package/dist/types/ai/config.js +3 -0
- package/dist/types/ai/config.js.map +1 -0
- package/dist/types/ai/filters.d.ts +82 -0
- package/dist/types/ai/filters.d.ts.map +1 -0
- package/dist/types/ai/filters.js +16 -0
- package/dist/types/ai/filters.js.map +1 -0
- package/dist/types/ai/index.d.ts +5 -0
- package/dist/types/ai/index.d.ts.map +1 -0
- package/dist/types/ai/index.js +21 -0
- package/dist/types/ai/index.js.map +1 -0
- package/dist/types/ai/recipe.d.ts +179 -0
- package/dist/types/ai/recipe.d.ts.map +1 -0
- package/dist/types/ai/recipe.js +28 -0
- package/dist/types/ai/recipe.js.map +1 -0
- package/dist/types/ai/translation.d.ts +26 -0
- package/dist/types/ai/translation.d.ts.map +1 -0
- package/dist/types/ai/translation.js +16 -0
- package/dist/types/ai/translation.js.map +1 -0
- package/dist/types/equipment.d.ts +20 -0
- package/dist/types/equipment.d.ts.map +1 -0
- package/dist/types/equipment.js +16 -0
- package/dist/types/equipment.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +28 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/ingredient.d.ts +209 -0
- package/dist/types/ingredient.d.ts.map +1 -0
- package/dist/types/ingredient.js +33 -0
- package/dist/types/ingredient.js.map +1 -0
- package/dist/types/instruction.d.ts +32 -0
- package/dist/types/instruction.d.ts.map +1 -0
- package/dist/types/instruction.js +16 -0
- package/dist/types/instruction.js.map +1 -0
- package/dist/types/moderation.d.ts +87 -0
- package/dist/types/moderation.d.ts.map +1 -0
- package/dist/types/moderation.js +38 -0
- package/dist/types/moderation.js.map +1 -0
- package/dist/types/nutrition.d.ts +18 -0
- package/dist/types/nutrition.d.ts.map +1 -0
- package/dist/types/nutrition.js +20 -0
- package/dist/types/nutrition.js.map +1 -0
- package/dist/types/profile.d.ts +30 -0
- package/dist/types/profile.d.ts.map +1 -0
- package/dist/types/profile.js +26 -0
- package/dist/types/profile.js.map +1 -0
- package/dist/types/recipe.d.ts +448 -0
- package/dist/types/recipe.d.ts.map +1 -0
- package/dist/types/recipe.js +82 -0
- package/dist/types/recipe.js.map +1 -0
- package/dist/types/subscription.d.ts +16 -0
- package/dist/types/subscription.d.ts.map +1 -0
- package/dist/types/subscription.js +14 -0
- package/dist/types/subscription.js.map +1 -0
- package/dist/types/temperature.d.ts +10 -0
- package/dist/types/temperature.d.ts.map +1 -0
- package/dist/types/temperature.js +10 -0
- package/dist/types/temperature.js.map +1 -0
- package/dist/types/user.d.ts +26 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/user.js +17 -0
- package/dist/types/user.js.map +1 -0
- package/package.json +3 -1
- package/src/config/collections.ts +7 -0
- package/src/config/common.ts +1 -0
- package/src/config/index.ts +2 -0
- package/src/enums/allergen.ts +19 -0
- package/src/enums/cuisine.ts +39 -0
- package/src/enums/dietary_tag.ts +21 -0
- package/src/enums/difficulty.ts +10 -0
- package/src/enums/image_type.ts +5 -0
- package/src/enums/index.ts +21 -0
- package/src/enums/locale.ts +5 -0
- package/src/enums/meal_type.ts +14 -0
- package/src/enums/moderation_status.ts +9 -0
- package/src/enums/priority.ts +5 -0
- package/src/enums/profile_status.ts +10 -0
- package/src/enums/recipe_source.ts +5 -0
- package/src/enums/recipe_status.ts +10 -0
- package/src/enums/role.ts +11 -0
- package/src/enums/severity.ts +5 -0
- package/src/enums/spiciness.ts +5 -0
- package/src/enums/status.ts +11 -0
- package/src/enums/subscription_tier.ts +4 -0
- package/src/enums/suggestion_category.ts +11 -0
- package/src/enums/temperature_unit.ts +5 -0
- package/src/enums/unit.ts +51 -0
- package/src/enums/url_type.ts +13 -0
- package/src/enums/user_status.ts +10 -0
- package/src/index.ts +4 -0
- package/src/lib/index.ts +0 -0
- package/src/types/ai/config.ts +26 -0
- package/src/types/ai/filters.ts +20 -0
- package/src/types/ai/index.ts +4 -0
- package/src/types/ai/recipe.ts +33 -0
- package/src/types/ai/translation.ts +14 -0
- package/src/types/equipment.ts +21 -0
- package/src/types/index.ts +11 -0
- package/src/types/ingredient.ts +46 -0
- package/src/types/instruction.ts +21 -0
- package/src/types/moderation.ts +48 -0
- package/src/types/nutrition.ts +18 -0
- package/src/types/profile.ts +27 -0
- package/src/types/recipe.ts +109 -0
- package/src/types/subscription.ts +13 -0
- package/src/types/temperature.ts +8 -0
- package/src/types/user.ts +16 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { Timestamp } from "firebase-admin/firestore";
|
|
3
|
+
import { ProfileStatusSchema } from "../enums";
|
|
4
|
+
|
|
5
|
+
export const ProfileSchema = z.object({
|
|
6
|
+
bio: z.string().max(280).optional(),
|
|
7
|
+
createdAt: z.custom<Timestamp>(),
|
|
8
|
+
handle: z.string().min(3).max(20),
|
|
9
|
+
id: z.string(),
|
|
10
|
+
imageUrl: z.url().optional(),
|
|
11
|
+
name: z.string().min(1).max(50),
|
|
12
|
+
public: z.boolean(),
|
|
13
|
+
status: ProfileStatusSchema,
|
|
14
|
+
updatedAt: z.custom<Timestamp>(),
|
|
15
|
+
verified: z.boolean(),
|
|
16
|
+
});
|
|
17
|
+
export type Profile = z.infer<typeof ProfileSchema>;
|
|
18
|
+
|
|
19
|
+
export const ProfileStatsSchema = z.object({
|
|
20
|
+
followers: z.number().int().nonnegative(),
|
|
21
|
+
following: z.number().int().nonnegative(),
|
|
22
|
+
likes: z.number().int().nonnegative(),
|
|
23
|
+
recipes: z.number().int().nonnegative(),
|
|
24
|
+
saves: z.number().int().nonnegative(),
|
|
25
|
+
updatedAt: z.number().int(),
|
|
26
|
+
});
|
|
27
|
+
export type ProfileStats = z.infer<typeof ProfileStatsSchema>;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { Timestamp } from "firebase-admin/firestore";
|
|
3
|
+
import {
|
|
4
|
+
AllergenSchema,
|
|
5
|
+
CuisineSchema,
|
|
6
|
+
DietaryTagSchema,
|
|
7
|
+
DifficultySchema,
|
|
8
|
+
LocaleSchema,
|
|
9
|
+
MealTypeSchema,
|
|
10
|
+
RecipeSourceSchema,
|
|
11
|
+
RecipeStatusSchema,
|
|
12
|
+
SpicinessSchema,
|
|
13
|
+
} from "../enums";
|
|
14
|
+
import {
|
|
15
|
+
EquipmentContentSchema,
|
|
16
|
+
EquipmentMetaSchema,
|
|
17
|
+
EquipmentSchema,
|
|
18
|
+
} from "./equipment";
|
|
19
|
+
import {
|
|
20
|
+
IngredientSectionContentSchema,
|
|
21
|
+
IngredientSectionMetaSchema,
|
|
22
|
+
IngredientSectionSchema,
|
|
23
|
+
} from "./ingredient";
|
|
24
|
+
import {
|
|
25
|
+
InstructionContentSchema,
|
|
26
|
+
InstructionMetaSchema,
|
|
27
|
+
InstructionSchema,
|
|
28
|
+
} from "./instruction";
|
|
29
|
+
import { NutritionSchema } from "./nutrition";
|
|
30
|
+
|
|
31
|
+
export const RecipeMetaSchema = z.object({
|
|
32
|
+
allergens: z.array(AllergenSchema),
|
|
33
|
+
confidence: z.number().min(0).max(1),
|
|
34
|
+
createdAt: z.custom<Timestamp>(),
|
|
35
|
+
createdBy: z.string(),
|
|
36
|
+
cuisine: CuisineSchema,
|
|
37
|
+
deletedAt: z.custom<Timestamp>().optional(),
|
|
38
|
+
dietaryTags: z.array(DietaryTagSchema),
|
|
39
|
+
difficulty: DifficultySchema,
|
|
40
|
+
equipment: z.array(EquipmentMetaSchema).optional(),
|
|
41
|
+
id: z.string(),
|
|
42
|
+
imageUrl: z.string().optional(),
|
|
43
|
+
ingredientSections: z.array(IngredientSectionMetaSchema).min(1),
|
|
44
|
+
instructions: z.array(InstructionMetaSchema).min(1),
|
|
45
|
+
mealTypes: z.array(MealTypeSchema).min(1),
|
|
46
|
+
nutrition: NutritionSchema.optional(),
|
|
47
|
+
originalLocale: LocaleSchema,
|
|
48
|
+
servings: z.number().int().min(1).max(100),
|
|
49
|
+
source: RecipeSourceSchema,
|
|
50
|
+
sourceUrl: z.string().optional(),
|
|
51
|
+
spiciness: SpicinessSchema,
|
|
52
|
+
status: RecipeStatusSchema,
|
|
53
|
+
time: z.number().int().min(1).max(1440),
|
|
54
|
+
updatedAt: z.custom<Timestamp>(),
|
|
55
|
+
});
|
|
56
|
+
export type RecipeMeta = z.infer<typeof RecipeMetaSchema>;
|
|
57
|
+
|
|
58
|
+
export const RecipeContentSchema = z.object({
|
|
59
|
+
description: z.string().min(10).max(2000),
|
|
60
|
+
equipment: z.array(EquipmentContentSchema).optional(),
|
|
61
|
+
ingredientSections: z.array(IngredientSectionContentSchema).min(1),
|
|
62
|
+
instructions: z.array(InstructionContentSchema).min(1),
|
|
63
|
+
locale: LocaleSchema,
|
|
64
|
+
tips: z.array(z.string().max(500)).optional(),
|
|
65
|
+
title: z.string().min(3).max(200),
|
|
66
|
+
});
|
|
67
|
+
export type RecipeContent = z.infer<typeof RecipeContentSchema>;
|
|
68
|
+
|
|
69
|
+
export const RecipeSchema = z.object({
|
|
70
|
+
allergens: z.array(AllergenSchema),
|
|
71
|
+
confidence: z.number().min(0).max(1),
|
|
72
|
+
createdAt: z.custom<Timestamp>(),
|
|
73
|
+
createdBy: z.string(),
|
|
74
|
+
cuisine: CuisineSchema,
|
|
75
|
+
deletedAt: z.custom<Timestamp>().optional(),
|
|
76
|
+
description: z.string().min(10).max(2000),
|
|
77
|
+
dietaryTags: z.array(DietaryTagSchema),
|
|
78
|
+
difficulty: DifficultySchema,
|
|
79
|
+
equipment: z.array(EquipmentSchema).optional(),
|
|
80
|
+
id: z.string(),
|
|
81
|
+
imageUrl: z.string().optional(),
|
|
82
|
+
ingredientSections: z.array(IngredientSectionSchema).min(1),
|
|
83
|
+
instructions: z.array(InstructionSchema).min(1),
|
|
84
|
+
locale: LocaleSchema,
|
|
85
|
+
mealTypes: z.array(MealTypeSchema).min(1),
|
|
86
|
+
nutrition: NutritionSchema.optional(),
|
|
87
|
+
originalLocale: LocaleSchema,
|
|
88
|
+
servings: z.number().int().min(1).max(100),
|
|
89
|
+
source: RecipeSourceSchema,
|
|
90
|
+
sourceUrl: z.string().optional(),
|
|
91
|
+
spiciness: SpicinessSchema,
|
|
92
|
+
status: RecipeStatusSchema,
|
|
93
|
+
time: z.number().int().min(1).max(1440),
|
|
94
|
+
tips: z.array(z.string().max(500)).optional(),
|
|
95
|
+
title: z.string().min(3).max(200),
|
|
96
|
+
updatedAt: z.custom<Timestamp>(),
|
|
97
|
+
});
|
|
98
|
+
export type Recipe = z.infer<typeof RecipeSchema>;
|
|
99
|
+
|
|
100
|
+
export const RecipeStatsSchema = z.object({
|
|
101
|
+
comments: z.number().int().nonnegative(),
|
|
102
|
+
likes: z.number().int().nonnegative(),
|
|
103
|
+
rating: z.number().min(0).max(5),
|
|
104
|
+
ratingCount: z.number().int().nonnegative(),
|
|
105
|
+
saves: z.number().int().nonnegative(),
|
|
106
|
+
updatedAt: z.number().int(),
|
|
107
|
+
views: z.number().int().nonnegative(),
|
|
108
|
+
});
|
|
109
|
+
export type RecipeStats = z.infer<typeof RecipeStatsSchema>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { Timestamp } from "firebase-admin/firestore";
|
|
3
|
+
import { SubscriptionTierSchema } from "../enums";
|
|
4
|
+
|
|
5
|
+
export const SubscriptionSchema = z.object({
|
|
6
|
+
expiresAt: z.custom<Timestamp>(),
|
|
7
|
+
familyMembers: z.array(z.string()).max(3).optional(),
|
|
8
|
+
id: z.string(),
|
|
9
|
+
revenuecatId: z.string(),
|
|
10
|
+
tier: SubscriptionTierSchema,
|
|
11
|
+
updatedAt: z.custom<Timestamp>(),
|
|
12
|
+
});
|
|
13
|
+
export type Subscription = z.infer<typeof SubscriptionSchema>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { Timestamp } from "firebase-admin/firestore";
|
|
3
|
+
import { RoleSchema, UserStatusSchema } from "../enums";
|
|
4
|
+
|
|
5
|
+
export const UserSchema = z.object({
|
|
6
|
+
createdAt: z.custom<Timestamp>(),
|
|
7
|
+
deletedAt: z.custom<Timestamp>().optional(),
|
|
8
|
+
email: z.email(),
|
|
9
|
+
id: z.string(),
|
|
10
|
+
name: z.string().min(1).max(50),
|
|
11
|
+
role: RoleSchema,
|
|
12
|
+
status: UserStatusSchema,
|
|
13
|
+
subscriptionId: z.string().optional(),
|
|
14
|
+
updatedAt: z.custom<Timestamp>(),
|
|
15
|
+
});
|
|
16
|
+
export type User = z.infer<typeof UserSchema>;
|