@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.
Files changed (225) hide show
  1. package/dist/config/collections.d.ts +8 -0
  2. package/dist/config/collections.d.ts.map +1 -0
  3. package/dist/config/collections.js +11 -0
  4. package/dist/config/collections.js.map +1 -0
  5. package/dist/config/common.d.ts +2 -0
  6. package/dist/config/common.d.ts.map +1 -0
  7. package/dist/config/common.js +5 -0
  8. package/dist/config/common.js.map +1 -0
  9. package/dist/config/credits.d.ts +2 -0
  10. package/dist/config/credits.d.ts.map +1 -0
  11. package/dist/config/credits.js +5 -0
  12. package/dist/config/credits.js.map +1 -0
  13. package/dist/config/index.d.ts +3 -0
  14. package/dist/config/index.d.ts.map +1 -0
  15. package/dist/config/index.js +19 -0
  16. package/dist/config/index.js.map +1 -0
  17. package/dist/enums/allergen.d.ts +19 -0
  18. package/dist/enums/allergen.d.ts.map +1 -0
  19. package/dist/enums/allergen.js +21 -0
  20. package/dist/enums/allergen.js.map +1 -0
  21. package/dist/enums/cuisine.d.ts +39 -0
  22. package/dist/enums/cuisine.d.ts.map +1 -0
  23. package/dist/enums/cuisine.js +41 -0
  24. package/dist/enums/cuisine.js.map +1 -0
  25. package/dist/enums/dietary_tag.d.ts +21 -0
  26. package/dist/enums/dietary_tag.d.ts.map +1 -0
  27. package/dist/enums/dietary_tag.js +23 -0
  28. package/dist/enums/dietary_tag.js.map +1 -0
  29. package/dist/enums/difficulty.d.ts +10 -0
  30. package/dist/enums/difficulty.d.ts.map +1 -0
  31. package/dist/enums/difficulty.js +12 -0
  32. package/dist/enums/difficulty.js.map +1 -0
  33. package/dist/enums/image_type.d.ts +8 -0
  34. package/dist/enums/image_type.d.ts.map +1 -0
  35. package/dist/enums/image_type.js +7 -0
  36. package/dist/enums/image_type.js.map +1 -0
  37. package/dist/enums/index.d.ts +22 -0
  38. package/dist/enums/index.d.ts.map +1 -0
  39. package/dist/enums/index.js +38 -0
  40. package/dist/enums/index.js.map +1 -0
  41. package/dist/enums/locale.d.ts +11 -0
  42. package/dist/enums/locale.d.ts.map +1 -0
  43. package/dist/enums/locale.js +7 -0
  44. package/dist/enums/locale.js.map +1 -0
  45. package/dist/enums/meal_type.d.ts +14 -0
  46. package/dist/enums/meal_type.d.ts.map +1 -0
  47. package/dist/enums/meal_type.js +16 -0
  48. package/dist/enums/meal_type.js.map +1 -0
  49. package/dist/enums/moderation_status.d.ts +9 -0
  50. package/dist/enums/moderation_status.d.ts.map +1 -0
  51. package/dist/enums/moderation_status.js +11 -0
  52. package/dist/enums/moderation_status.js.map +1 -0
  53. package/dist/enums/priority.d.ts +9 -0
  54. package/dist/enums/priority.d.ts.map +1 -0
  55. package/dist/enums/priority.js +7 -0
  56. package/dist/enums/priority.js.map +1 -0
  57. package/dist/enums/profile_status.d.ts +10 -0
  58. package/dist/enums/profile_status.d.ts.map +1 -0
  59. package/dist/enums/profile_status.js +12 -0
  60. package/dist/enums/profile_status.js.map +1 -0
  61. package/dist/enums/recipe_source.d.ts +10 -0
  62. package/dist/enums/recipe_source.d.ts.map +1 -0
  63. package/dist/enums/recipe_source.js +7 -0
  64. package/dist/enums/recipe_source.js.map +1 -0
  65. package/dist/enums/recipe_status.d.ts +10 -0
  66. package/dist/enums/recipe_status.d.ts.map +1 -0
  67. package/dist/enums/recipe_status.js +12 -0
  68. package/dist/enums/recipe_status.js.map +1 -0
  69. package/dist/enums/role.d.ts +11 -0
  70. package/dist/enums/role.d.ts.map +1 -0
  71. package/dist/enums/role.js +13 -0
  72. package/dist/enums/role.js.map +1 -0
  73. package/dist/enums/severity.d.ts +9 -0
  74. package/dist/enums/severity.d.ts.map +1 -0
  75. package/dist/enums/severity.js +7 -0
  76. package/dist/enums/severity.js.map +1 -0
  77. package/dist/enums/spiciness.d.ts +10 -0
  78. package/dist/enums/spiciness.d.ts.map +1 -0
  79. package/dist/enums/spiciness.js +7 -0
  80. package/dist/enums/spiciness.js.map +1 -0
  81. package/dist/enums/status.d.ts +11 -0
  82. package/dist/enums/status.d.ts.map +1 -0
  83. package/dist/enums/status.js +13 -0
  84. package/dist/enums/status.js.map +1 -0
  85. package/dist/enums/subscription_tier.d.ts +8 -0
  86. package/dist/enums/subscription_tier.d.ts.map +1 -0
  87. package/dist/enums/subscription_tier.js +6 -0
  88. package/dist/enums/subscription_tier.js.map +1 -0
  89. package/dist/enums/suggestion_category.d.ts +11 -0
  90. package/dist/enums/suggestion_category.d.ts.map +1 -0
  91. package/dist/enums/suggestion_category.js +13 -0
  92. package/dist/enums/suggestion_category.js.map +1 -0
  93. package/dist/enums/temperature_unit.d.ts +8 -0
  94. package/dist/enums/temperature_unit.d.ts.map +1 -0
  95. package/dist/enums/temperature_unit.js +7 -0
  96. package/dist/enums/temperature_unit.js.map +1 -0
  97. package/dist/enums/unit.d.ts +43 -0
  98. package/dist/enums/unit.d.ts.map +1 -0
  99. package/dist/enums/unit.js +53 -0
  100. package/dist/enums/unit.js.map +1 -0
  101. package/dist/enums/url_type.d.ts +13 -0
  102. package/dist/enums/url_type.d.ts.map +1 -0
  103. package/dist/enums/url_type.js +15 -0
  104. package/dist/enums/url_type.js.map +1 -0
  105. package/dist/enums/user_status.d.ts +10 -0
  106. package/dist/enums/user_status.d.ts.map +1 -0
  107. package/dist/enums/user_status.js +12 -0
  108. package/dist/enums/user_status.js.map +1 -0
  109. package/dist/index.d.ts +4 -1
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +18 -0
  112. package/dist/index.js.map +1 -1
  113. package/dist/lib/index.d.ts +2 -0
  114. package/dist/lib/index.d.ts.map +1 -0
  115. package/dist/lib/index.js +3 -0
  116. package/dist/lib/index.js.map +1 -0
  117. package/dist/types/ai/config.d.ts +20 -0
  118. package/dist/types/ai/config.d.ts.map +1 -0
  119. package/dist/types/ai/config.js +3 -0
  120. package/dist/types/ai/config.js.map +1 -0
  121. package/dist/types/ai/filters.d.ts +82 -0
  122. package/dist/types/ai/filters.d.ts.map +1 -0
  123. package/dist/types/ai/filters.js +16 -0
  124. package/dist/types/ai/filters.js.map +1 -0
  125. package/dist/types/ai/index.d.ts +5 -0
  126. package/dist/types/ai/index.d.ts.map +1 -0
  127. package/dist/types/ai/index.js +21 -0
  128. package/dist/types/ai/index.js.map +1 -0
  129. package/dist/types/ai/recipe.d.ts +179 -0
  130. package/dist/types/ai/recipe.d.ts.map +1 -0
  131. package/dist/types/ai/recipe.js +28 -0
  132. package/dist/types/ai/recipe.js.map +1 -0
  133. package/dist/types/ai/translation.d.ts +26 -0
  134. package/dist/types/ai/translation.d.ts.map +1 -0
  135. package/dist/types/ai/translation.js +16 -0
  136. package/dist/types/ai/translation.js.map +1 -0
  137. package/dist/types/equipment.d.ts +20 -0
  138. package/dist/types/equipment.d.ts.map +1 -0
  139. package/dist/types/equipment.js +16 -0
  140. package/dist/types/equipment.js.map +1 -0
  141. package/dist/types/index.d.ts +12 -0
  142. package/dist/types/index.d.ts.map +1 -0
  143. package/dist/types/index.js +28 -0
  144. package/dist/types/index.js.map +1 -0
  145. package/dist/types/ingredient.d.ts +209 -0
  146. package/dist/types/ingredient.d.ts.map +1 -0
  147. package/dist/types/ingredient.js +33 -0
  148. package/dist/types/ingredient.js.map +1 -0
  149. package/dist/types/instruction.d.ts +32 -0
  150. package/dist/types/instruction.d.ts.map +1 -0
  151. package/dist/types/instruction.js +16 -0
  152. package/dist/types/instruction.js.map +1 -0
  153. package/dist/types/moderation.d.ts +87 -0
  154. package/dist/types/moderation.d.ts.map +1 -0
  155. package/dist/types/moderation.js +38 -0
  156. package/dist/types/moderation.js.map +1 -0
  157. package/dist/types/nutrition.d.ts +18 -0
  158. package/dist/types/nutrition.d.ts.map +1 -0
  159. package/dist/types/nutrition.js +20 -0
  160. package/dist/types/nutrition.js.map +1 -0
  161. package/dist/types/profile.d.ts +30 -0
  162. package/dist/types/profile.d.ts.map +1 -0
  163. package/dist/types/profile.js +26 -0
  164. package/dist/types/profile.js.map +1 -0
  165. package/dist/types/recipe.d.ts +448 -0
  166. package/dist/types/recipe.d.ts.map +1 -0
  167. package/dist/types/recipe.js +82 -0
  168. package/dist/types/recipe.js.map +1 -0
  169. package/dist/types/subscription.d.ts +16 -0
  170. package/dist/types/subscription.d.ts.map +1 -0
  171. package/dist/types/subscription.js +14 -0
  172. package/dist/types/subscription.js.map +1 -0
  173. package/dist/types/temperature.d.ts +10 -0
  174. package/dist/types/temperature.d.ts.map +1 -0
  175. package/dist/types/temperature.js +10 -0
  176. package/dist/types/temperature.js.map +1 -0
  177. package/dist/types/user.d.ts +26 -0
  178. package/dist/types/user.d.ts.map +1 -0
  179. package/dist/types/user.js +17 -0
  180. package/dist/types/user.js.map +1 -0
  181. package/package.json +3 -1
  182. package/src/config/collections.ts +7 -0
  183. package/src/config/common.ts +1 -0
  184. package/src/config/index.ts +2 -0
  185. package/src/enums/allergen.ts +19 -0
  186. package/src/enums/cuisine.ts +39 -0
  187. package/src/enums/dietary_tag.ts +21 -0
  188. package/src/enums/difficulty.ts +10 -0
  189. package/src/enums/image_type.ts +5 -0
  190. package/src/enums/index.ts +21 -0
  191. package/src/enums/locale.ts +5 -0
  192. package/src/enums/meal_type.ts +14 -0
  193. package/src/enums/moderation_status.ts +9 -0
  194. package/src/enums/priority.ts +5 -0
  195. package/src/enums/profile_status.ts +10 -0
  196. package/src/enums/recipe_source.ts +5 -0
  197. package/src/enums/recipe_status.ts +10 -0
  198. package/src/enums/role.ts +11 -0
  199. package/src/enums/severity.ts +5 -0
  200. package/src/enums/spiciness.ts +5 -0
  201. package/src/enums/status.ts +11 -0
  202. package/src/enums/subscription_tier.ts +4 -0
  203. package/src/enums/suggestion_category.ts +11 -0
  204. package/src/enums/temperature_unit.ts +5 -0
  205. package/src/enums/unit.ts +51 -0
  206. package/src/enums/url_type.ts +13 -0
  207. package/src/enums/user_status.ts +10 -0
  208. package/src/index.ts +4 -0
  209. package/src/lib/index.ts +0 -0
  210. package/src/types/ai/config.ts +26 -0
  211. package/src/types/ai/filters.ts +20 -0
  212. package/src/types/ai/index.ts +4 -0
  213. package/src/types/ai/recipe.ts +33 -0
  214. package/src/types/ai/translation.ts +14 -0
  215. package/src/types/equipment.ts +21 -0
  216. package/src/types/index.ts +11 -0
  217. package/src/types/ingredient.ts +46 -0
  218. package/src/types/instruction.ts +21 -0
  219. package/src/types/moderation.ts +48 -0
  220. package/src/types/nutrition.ts +18 -0
  221. package/src/types/profile.ts +27 -0
  222. package/src/types/recipe.ts +109 -0
  223. package/src/types/subscription.ts +13 -0
  224. package/src/types/temperature.ts +8 -0
  225. 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,8 @@
1
+ import { z } from "zod";
2
+ import { TemperatureUnitSchema } from "../enums";
3
+
4
+ export const TemperatureSchema = z.object({
5
+ unit: TemperatureUnitSchema,
6
+ value: z.number().min(-50).max(500),
7
+ });
8
+ export type Temperature = z.infer<typeof TemperatureSchema>;
@@ -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>;