@cravery/core 0.0.29 → 0.0.31

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 (219) hide show
  1. package/dist/config/limits.js +16 -16
  2. package/dist/config/limits.js.map +1 -1
  3. package/dist/config/subscription.d.ts +3 -1
  4. package/dist/config/subscription.d.ts.map +1 -1
  5. package/dist/config/subscription.js +14 -2
  6. package/dist/config/subscription.js.map +1 -1
  7. package/dist/types/iam/subscription.d.ts +5 -0
  8. package/dist/types/iam/subscription.d.ts.map +1 -1
  9. package/package.json +45 -45
  10. package/src/config/ai.ts +39 -39
  11. package/src/config/limits.ts +16 -16
  12. package/src/config/subscription.ts +16 -1
  13. package/src/types/ai/config.ts +28 -28
  14. package/src/types/iam/subscription.ts +6 -0
  15. package/src/types/recipe/recipe.ts +92 -92
  16. package/dist/lib/ai/cost.d.ts +0 -22
  17. package/dist/lib/ai/cost.d.ts.map +0 -1
  18. package/dist/lib/ai/cost.js +0 -55
  19. package/dist/lib/ai/cost.js.map +0 -1
  20. package/dist/lib/ai/embedding.d.ts +0 -5
  21. package/dist/lib/ai/embedding.d.ts.map +0 -1
  22. package/dist/lib/ai/embedding.js +0 -43
  23. package/dist/lib/ai/embedding.js.map +0 -1
  24. package/dist/lib/ai/errors.d.ts +0 -14
  25. package/dist/lib/ai/errors.d.ts.map +0 -1
  26. package/dist/lib/ai/errors.js +0 -40
  27. package/dist/lib/ai/errors.js.map +0 -1
  28. package/dist/lib/ai/flow.d.ts +0 -33
  29. package/dist/lib/ai/flow.d.ts.map +0 -1
  30. package/dist/lib/ai/flow.js +0 -97
  31. package/dist/lib/ai/flow.js.map +0 -1
  32. package/dist/lib/ai/genkit.d.ts +0 -5
  33. package/dist/lib/ai/genkit.d.ts.map +0 -1
  34. package/dist/lib/ai/genkit.js +0 -33
  35. package/dist/lib/ai/genkit.js.map +0 -1
  36. package/dist/lib/ai/image.d.ts +0 -7
  37. package/dist/lib/ai/image.d.ts.map +0 -1
  38. package/dist/lib/ai/image.js +0 -23
  39. package/dist/lib/ai/image.js.map +0 -1
  40. package/dist/lib/ai/index.d.ts +0 -7
  41. package/dist/lib/ai/index.d.ts.map +0 -1
  42. package/dist/lib/ai/index.js +0 -23
  43. package/dist/lib/ai/index.js.map +0 -1
  44. package/dist/lib/api.d.ts +0 -20
  45. package/dist/lib/api.d.ts.map +0 -1
  46. package/dist/lib/api.js +0 -79
  47. package/dist/lib/api.js.map +0 -1
  48. package/dist/lib/firebase.d.ts +0 -3
  49. package/dist/lib/firebase.d.ts.map +0 -1
  50. package/dist/lib/firebase.js +0 -8
  51. package/dist/lib/firebase.js.map +0 -1
  52. package/dist/lib/iam.d.ts +0 -6
  53. package/dist/lib/iam.d.ts.map +0 -1
  54. package/dist/lib/iam.js +0 -72
  55. package/dist/lib/iam.js.map +0 -1
  56. package/dist/lib/index.d.ts +0 -8
  57. package/dist/lib/index.d.ts.map +0 -1
  58. package/dist/lib/index.js +0 -24
  59. package/dist/lib/index.js.map +0 -1
  60. package/dist/lib/storage.d.ts +0 -6
  61. package/dist/lib/storage.d.ts.map +0 -1
  62. package/dist/lib/storage.js +0 -50
  63. package/dist/lib/storage.js.map +0 -1
  64. package/dist/lib/usage/index.d.ts +0 -2
  65. package/dist/lib/usage/index.d.ts.map +0 -1
  66. package/dist/lib/usage/index.js +0 -18
  67. package/dist/lib/usage/index.js.map +0 -1
  68. package/dist/lib/usage/usage.service.d.ts +0 -27
  69. package/dist/lib/usage/usage.service.d.ts.map +0 -1
  70. package/dist/lib/usage/usage.service.js +0 -131
  71. package/dist/lib/usage/usage.service.js.map +0 -1
  72. package/dist/lib/utils/index.d.ts +0 -3
  73. package/dist/lib/utils/index.d.ts.map +0 -1
  74. package/dist/lib/utils/index.js +0 -19
  75. package/dist/lib/utils/index.js.map +0 -1
  76. package/dist/lib/utils/sanitize.d.ts +0 -20
  77. package/dist/lib/utils/sanitize.d.ts.map +0 -1
  78. package/dist/lib/utils/sanitize.js +0 -40
  79. package/dist/lib/utils/sanitize.js.map +0 -1
  80. package/dist/lib/utils/slug.d.ts +0 -13
  81. package/dist/lib/utils/slug.d.ts.map +0 -1
  82. package/dist/lib/utils/slug.js +0 -33
  83. package/dist/lib/utils/slug.js.map +0 -1
  84. package/dist/types/core/enums/image_type.d.ts +0 -5
  85. package/dist/types/core/enums/image_type.d.ts.map +0 -1
  86. package/dist/types/core/enums/image_type.js +0 -7
  87. package/dist/types/core/enums/image_type.js.map +0 -1
  88. package/dist/types/core/enums/index.d.ts +0 -6
  89. package/dist/types/core/enums/index.d.ts.map +0 -1
  90. package/dist/types/core/enums/index.js +0 -22
  91. package/dist/types/core/enums/index.js.map +0 -1
  92. package/dist/types/core/enums/locale.d.ts +0 -5
  93. package/dist/types/core/enums/locale.d.ts.map +0 -1
  94. package/dist/types/core/enums/locale.js +0 -7
  95. package/dist/types/core/enums/locale.js.map +0 -1
  96. package/dist/types/core/enums/measurement_system.d.ts +0 -5
  97. package/dist/types/core/enums/measurement_system.d.ts.map +0 -1
  98. package/dist/types/core/enums/measurement_system.js +0 -7
  99. package/dist/types/core/enums/measurement_system.js.map +0 -1
  100. package/dist/types/core/enums/theme.d.ts +0 -5
  101. package/dist/types/core/enums/theme.d.ts.map +0 -1
  102. package/dist/types/core/enums/theme.js +0 -7
  103. package/dist/types/core/enums/theme.js.map +0 -1
  104. package/dist/types/core/enums/url_type.d.ts +0 -5
  105. package/dist/types/core/enums/url_type.d.ts.map +0 -1
  106. package/dist/types/core/enums/url_type.js +0 -15
  107. package/dist/types/core/enums/url_type.js.map +0 -1
  108. package/dist/types/iam/enums/index.d.ts +0 -7
  109. package/dist/types/iam/enums/index.d.ts.map +0 -1
  110. package/dist/types/iam/enums/index.js +0 -23
  111. package/dist/types/iam/enums/index.js.map +0 -1
  112. package/dist/types/iam/enums/profile_status.d.ts +0 -5
  113. package/dist/types/iam/enums/profile_status.d.ts.map +0 -1
  114. package/dist/types/iam/enums/profile_status.js +0 -12
  115. package/dist/types/iam/enums/profile_status.js.map +0 -1
  116. package/dist/types/iam/enums/subscription_role.d.ts +0 -5
  117. package/dist/types/iam/enums/subscription_role.d.ts.map +0 -1
  118. package/dist/types/iam/enums/subscription_role.js +0 -7
  119. package/dist/types/iam/enums/subscription_role.js.map +0 -1
  120. package/dist/types/iam/enums/subscription_status.d.ts +0 -5
  121. package/dist/types/iam/enums/subscription_status.d.ts.map +0 -1
  122. package/dist/types/iam/enums/subscription_status.js +0 -12
  123. package/dist/types/iam/enums/subscription_status.js.map +0 -1
  124. package/dist/types/iam/enums/subscription_tier.d.ts +0 -4
  125. package/dist/types/iam/enums/subscription_tier.d.ts.map +0 -1
  126. package/dist/types/iam/enums/subscription_tier.js +0 -6
  127. package/dist/types/iam/enums/subscription_tier.js.map +0 -1
  128. package/dist/types/iam/enums/user_role.d.ts +0 -5
  129. package/dist/types/iam/enums/user_role.d.ts.map +0 -1
  130. package/dist/types/iam/enums/user_role.js +0 -13
  131. package/dist/types/iam/enums/user_role.js.map +0 -1
  132. package/dist/types/iam/enums/user_status.d.ts +0 -5
  133. package/dist/types/iam/enums/user_status.d.ts.map +0 -1
  134. package/dist/types/iam/enums/user_status.js +0 -12
  135. package/dist/types/iam/enums/user_status.js.map +0 -1
  136. package/dist/types/moderation/enums/index.d.ts +0 -5
  137. package/dist/types/moderation/enums/index.d.ts.map +0 -1
  138. package/dist/types/moderation/enums/index.js +0 -21
  139. package/dist/types/moderation/enums/index.js.map +0 -1
  140. package/dist/types/moderation/enums/moderation_status.d.ts +0 -5
  141. package/dist/types/moderation/enums/moderation_status.d.ts.map +0 -1
  142. package/dist/types/moderation/enums/moderation_status.js +0 -11
  143. package/dist/types/moderation/enums/moderation_status.js.map +0 -1
  144. package/dist/types/moderation/enums/priority.d.ts +0 -5
  145. package/dist/types/moderation/enums/priority.d.ts.map +0 -1
  146. package/dist/types/moderation/enums/priority.js +0 -7
  147. package/dist/types/moderation/enums/priority.js.map +0 -1
  148. package/dist/types/moderation/enums/severity.d.ts +0 -5
  149. package/dist/types/moderation/enums/severity.d.ts.map +0 -1
  150. package/dist/types/moderation/enums/severity.js +0 -7
  151. package/dist/types/moderation/enums/severity.js.map +0 -1
  152. package/dist/types/moderation/enums/suggestion_category.d.ts +0 -5
  153. package/dist/types/moderation/enums/suggestion_category.d.ts.map +0 -1
  154. package/dist/types/moderation/enums/suggestion_category.js +0 -13
  155. package/dist/types/moderation/enums/suggestion_category.js.map +0 -1
  156. package/dist/types/recipe/enums/allergen.d.ts +0 -5
  157. package/dist/types/recipe/enums/allergen.d.ts.map +0 -1
  158. package/dist/types/recipe/enums/allergen.js +0 -21
  159. package/dist/types/recipe/enums/allergen.js.map +0 -1
  160. package/dist/types/recipe/enums/cuisine.d.ts +0 -5
  161. package/dist/types/recipe/enums/cuisine.d.ts.map +0 -1
  162. package/dist/types/recipe/enums/cuisine.js +0 -41
  163. package/dist/types/recipe/enums/cuisine.js.map +0 -1
  164. package/dist/types/recipe/enums/dietary_tag.d.ts +0 -5
  165. package/dist/types/recipe/enums/dietary_tag.d.ts.map +0 -1
  166. package/dist/types/recipe/enums/dietary_tag.js +0 -23
  167. package/dist/types/recipe/enums/dietary_tag.js.map +0 -1
  168. package/dist/types/recipe/enums/difficulty.d.ts +0 -5
  169. package/dist/types/recipe/enums/difficulty.d.ts.map +0 -1
  170. package/dist/types/recipe/enums/difficulty.js +0 -12
  171. package/dist/types/recipe/enums/difficulty.js.map +0 -1
  172. package/dist/types/recipe/enums/index.d.ts +0 -11
  173. package/dist/types/recipe/enums/index.d.ts.map +0 -1
  174. package/dist/types/recipe/enums/index.js +0 -27
  175. package/dist/types/recipe/enums/index.js.map +0 -1
  176. package/dist/types/recipe/enums/meal_type.d.ts +0 -5
  177. package/dist/types/recipe/enums/meal_type.d.ts.map +0 -1
  178. package/dist/types/recipe/enums/meal_type.js +0 -16
  179. package/dist/types/recipe/enums/meal_type.js.map +0 -1
  180. package/dist/types/recipe/enums/recipe_source.d.ts +0 -5
  181. package/dist/types/recipe/enums/recipe_source.d.ts.map +0 -1
  182. package/dist/types/recipe/enums/recipe_source.js +0 -7
  183. package/dist/types/recipe/enums/recipe_source.js.map +0 -1
  184. package/dist/types/recipe/enums/recipe_status.d.ts +0 -5
  185. package/dist/types/recipe/enums/recipe_status.d.ts.map +0 -1
  186. package/dist/types/recipe/enums/recipe_status.js +0 -14
  187. package/dist/types/recipe/enums/recipe_status.js.map +0 -1
  188. package/dist/types/recipe/enums/spiciness.d.ts +0 -5
  189. package/dist/types/recipe/enums/spiciness.d.ts.map +0 -1
  190. package/dist/types/recipe/enums/spiciness.js +0 -7
  191. package/dist/types/recipe/enums/spiciness.js.map +0 -1
  192. package/dist/types/recipe/enums/temperature_unit.d.ts +0 -5
  193. package/dist/types/recipe/enums/temperature_unit.d.ts.map +0 -1
  194. package/dist/types/recipe/enums/temperature_unit.js +0 -7
  195. package/dist/types/recipe/enums/temperature_unit.js.map +0 -1
  196. package/dist/types/recipe/enums/unit.d.ts +0 -5
  197. package/dist/types/recipe/enums/unit.d.ts.map +0 -1
  198. package/dist/types/recipe/enums/unit.js +0 -53
  199. package/dist/types/recipe/enums/unit.js.map +0 -1
  200. package/dist/types/report/enums/index.d.ts +0 -5
  201. package/dist/types/report/enums/index.d.ts.map +0 -1
  202. package/dist/types/report/enums/index.js +0 -21
  203. package/dist/types/report/enums/index.js.map +0 -1
  204. package/dist/types/report/enums/report_priority.d.ts +0 -5
  205. package/dist/types/report/enums/report_priority.d.ts.map +0 -1
  206. package/dist/types/report/enums/report_priority.js +0 -12
  207. package/dist/types/report/enums/report_priority.js.map +0 -1
  208. package/dist/types/report/enums/report_status.d.ts +0 -5
  209. package/dist/types/report/enums/report_status.d.ts.map +0 -1
  210. package/dist/types/report/enums/report_status.js +0 -12
  211. package/dist/types/report/enums/report_status.js.map +0 -1
  212. package/dist/types/report/enums/report_target_type.d.ts +0 -5
  213. package/dist/types/report/enums/report_target_type.d.ts.map +0 -1
  214. package/dist/types/report/enums/report_target_type.js +0 -12
  215. package/dist/types/report/enums/report_target_type.js.map +0 -1
  216. package/dist/types/report/enums/report_type.d.ts +0 -5
  217. package/dist/types/report/enums/report_type.d.ts.map +0 -1
  218. package/dist/types/report/enums/report_type.js +0 -14
  219. package/dist/types/report/enums/report_type.js.map +0 -1
@@ -4,38 +4,38 @@ exports.LIMITS = void 0;
4
4
  exports.LIMITS = {
5
5
  free: {
6
6
  daily: {
7
- create: 1,
8
- extract: 2,
9
- scan: 1,
7
+ create: 0,
8
+ extract: 1,
9
+ scan: 0,
10
10
  },
11
11
  monthly: {
12
- create: 2,
13
- extract: 5,
14
- scan: 2,
12
+ create: 0,
13
+ extract: 1,
14
+ scan: 0,
15
15
  },
16
16
  },
17
17
  pro: {
18
18
  daily: {
19
- create: 10,
20
- extract: 25,
21
- scan: 15,
19
+ create: 8,
20
+ extract: 20,
21
+ scan: 10,
22
22
  },
23
23
  monthly: {
24
24
  create: 100,
25
- extract: 200,
26
- scan: 150,
25
+ extract: 150,
26
+ scan: 100,
27
27
  },
28
28
  },
29
29
  family: {
30
30
  daily: {
31
- create: 25,
32
- extract: 75,
33
- scan: 50,
31
+ create: 20,
32
+ extract: 60,
33
+ scan: 25,
34
34
  },
35
35
  monthly: {
36
36
  create: 250,
37
- extract: 500,
38
- scan: 200,
37
+ extract: 400,
38
+ scan: 250,
39
39
  },
40
40
  },
41
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"limits.js","sourceRoot":"","sources":["../../src/config/limits.ts"],"names":[],"mappings":";;;AASa,QAAA,MAAM,GAAyC;IAC1D,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,CAAC;SACR;QACD,OAAO,EAAE;YACP,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,CAAC;SACR;KACF;IACD,GAAG,EAAE;QACH,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;SACT;QACD,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,GAAG;SACV;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;SACT;QACD,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,GAAG;SACV;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"limits.js","sourceRoot":"","sources":["../../src/config/limits.ts"],"names":[],"mappings":";;;AASa,QAAA,MAAM,GAAyC;IAC1D,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,CAAC;SACR;QACD,OAAO,EAAE;YACP,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,CAAC;SACR;KACF;IACD,GAAG,EAAE;QACH,KAAK,EAAE;YACL,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;SACT;QACD,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,GAAG;SACV;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;SACT;QACD,OAAO,EAAE;YACP,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,GAAG;SACV;KACF;CACF,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const MAX_MEMBERS_FAMILY_PLAN = 3;
1
+ import { Price, SubscriptionTier } from "../types";
2
+ export declare const MAX_MEMBERS_FAMILY_PLAN = 4;
3
+ export declare const PRICING: Record<Exclude<SubscriptionTier, "free">, Price>;
2
4
  //# sourceMappingURL=subscription.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/config/subscription.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,IAAI,CAAC"}
1
+ {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/config/subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,KAAK,CAWpE,CAAC"}
@@ -1,5 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAX_MEMBERS_FAMILY_PLAN = void 0;
4
- exports.MAX_MEMBERS_FAMILY_PLAN = 3;
3
+ exports.PRICING = exports.MAX_MEMBERS_FAMILY_PLAN = void 0;
4
+ exports.MAX_MEMBERS_FAMILY_PLAN = 4;
5
+ exports.PRICING = {
6
+ pro: {
7
+ currency: "USD",
8
+ monthly: 12.99,
9
+ yearly: 99.99,
10
+ },
11
+ family: {
12
+ currency: "USD",
13
+ monthly: 22.99,
14
+ yearly: 179.99,
15
+ },
16
+ };
5
17
  //# sourceMappingURL=subscription.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/config/subscription.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/config/subscription.ts"],"names":[],"mappings":";;;AAEa,QAAA,uBAAuB,GAAG,CAAC,CAAC;AAE5B,QAAA,OAAO,GAAqD;IACvE,GAAG,EAAE;QACH,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;KACd;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,MAAM;KACf;CACF,CAAC"}
@@ -15,4 +15,9 @@ export interface Subscription extends Entity {
15
15
  providerId: string;
16
16
  tier: SubscriptionTier;
17
17
  }
18
+ export interface Price {
19
+ currency: string;
20
+ monthly: number;
21
+ yearly: number;
22
+ }
18
23
  //# sourceMappingURL=subscription.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../../src/types/iam/subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,gBAAgB,CAAC;CACxB"}
1
+ {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../../src/types/iam/subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB"}
package/package.json CHANGED
@@ -1,45 +1,45 @@
1
- {
2
- "name": "@cravery/core",
3
- "version": "0.0.29",
4
- "description": "Clean architecture foundation for Cravery",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "exports": {
8
- ".": {
9
- "types": "./dist/index.d.ts",
10
- "default": "./dist/index.js"
11
- },
12
- "./types": {
13
- "types": "./dist/types/index.d.ts",
14
- "default": "./dist/types/index.js"
15
- },
16
- "./config": {
17
- "types": "./dist/config/index.d.ts",
18
- "default": "./dist/config/index.js"
19
- }
20
- },
21
- "typesVersions": {
22
- "*": {
23
- "types": [
24
- "dist/types/index.d.ts"
25
- ],
26
- "config": [
27
- "dist/config/index.d.ts"
28
- ]
29
- }
30
- },
31
- "scripts": {
32
- "build": "tsc",
33
- "build:watch": "tsc --watch",
34
- "clean": "rimraf dist && npm run build"
35
- },
36
- "keywords": [],
37
- "devDependencies": {
38
- "rimraf": "^6.1.2",
39
- "typescript": "^5.9.3"
40
- },
41
- "files": [
42
- "dist/**/*",
43
- "src/**/*"
44
- ]
45
- }
1
+ {
2
+ "name": "@cravery/core",
3
+ "version": "0.0.31",
4
+ "description": "Clean architecture foundation for Cravery",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./types": {
13
+ "types": "./dist/types/index.d.ts",
14
+ "default": "./dist/types/index.js"
15
+ },
16
+ "./config": {
17
+ "types": "./dist/config/index.d.ts",
18
+ "default": "./dist/config/index.js"
19
+ }
20
+ },
21
+ "typesVersions": {
22
+ "*": {
23
+ "types": [
24
+ "dist/types/index.d.ts"
25
+ ],
26
+ "config": [
27
+ "dist/config/index.d.ts"
28
+ ]
29
+ }
30
+ },
31
+ "scripts": {
32
+ "build": "tsc",
33
+ "build:watch": "tsc --watch",
34
+ "clean": "rimraf dist && npm run build"
35
+ },
36
+ "keywords": [],
37
+ "devDependencies": {
38
+ "rimraf": "^6.1.2",
39
+ "typescript": "^5.9.3"
40
+ },
41
+ "files": [
42
+ "dist/**/*",
43
+ "src/**/*"
44
+ ]
45
+ }
package/src/config/ai.ts CHANGED
@@ -1,39 +1,39 @@
1
- import { AIConfig } from "../types";
2
-
3
- export const AI_MODELS: AIConfig = {
4
- Gemini25Flash: {
5
- id: "vertexai/gemini-2.5-flash",
6
- alias: "gemini25flash",
7
- name: "Gemini 2.5 Flash",
8
- type: "multimodal",
9
- cost: { input: 0.3, output: 2.5 },
10
- },
11
- Gemini25Pro: {
12
- id: "vertexai/gemini-2.5-pro",
13
- alias: "gemini25pro",
14
- name: "Gemini 2.5 Pro",
15
- type: "multimodal",
16
- cost: { input: 1.25, output: 10.0 },
17
- },
18
- Gemini3Flash: {
19
- id: "vertexai/gemini-3.0-flash",
20
- alias: "gemini3flash",
21
- name: "Gemini 3 Flash",
22
- type: "multimodal",
23
- cost: { input: 0.5, output: 3.0 },
24
- },
25
- Imagen4Fast: {
26
- id: "vertexai/imagen-4.0-fast-generate-001",
27
- alias: "imagen4fast",
28
- name: "Imagen 4 Fast",
29
- type: "image",
30
- cost: { input: 0, output: 0.02 },
31
- },
32
- GeminiEmbedding001: {
33
- id: "vertexai/gemini-embedding-001",
34
- alias: "geminiembedding001",
35
- name: "Gemini Embedding 001",
36
- type: "embedding",
37
- cost: { input: 0.00015, output: 0 },
38
- },
39
- };
1
+ import { AIConfig } from "../types";
2
+
3
+ export const AI_MODELS: AIConfig = {
4
+ Gemini25Flash: {
5
+ id: "vertexai/gemini-2.5-flash",
6
+ alias: "gemini25flash",
7
+ name: "Gemini 2.5 Flash",
8
+ type: "multimodal",
9
+ cost: { input: 0.3, output: 2.5 },
10
+ },
11
+ Gemini25Pro: {
12
+ id: "vertexai/gemini-2.5-pro",
13
+ alias: "gemini25pro",
14
+ name: "Gemini 2.5 Pro",
15
+ type: "multimodal",
16
+ cost: { input: 1.25, output: 10.0 },
17
+ },
18
+ Gemini3Flash: {
19
+ id: "vertexai/gemini-3.0-flash",
20
+ alias: "gemini3flash",
21
+ name: "Gemini 3 Flash",
22
+ type: "multimodal",
23
+ cost: { input: 0.5, output: 3.0 },
24
+ },
25
+ Imagen4Fast: {
26
+ id: "vertexai/imagen-4.0-fast-generate-001",
27
+ alias: "imagen4fast",
28
+ name: "Imagen 4 Fast",
29
+ type: "image",
30
+ cost: { input: 0, output: 0.02 },
31
+ },
32
+ GeminiEmbedding001: {
33
+ id: "vertexai/gemini-embedding-001",
34
+ alias: "geminiembedding001",
35
+ name: "Gemini Embedding 001",
36
+ type: "embedding",
37
+ cost: { input: 0.00015, output: 0 },
38
+ },
39
+ };
@@ -10,38 +10,38 @@ export interface TierLimits {
10
10
  export const LIMITS: Record<SubscriptionTier, TierLimits> = {
11
11
  free: {
12
12
  daily: {
13
- create: 1,
14
- extract: 2,
15
- scan: 1,
13
+ create: 0,
14
+ extract: 1,
15
+ scan: 0,
16
16
  },
17
17
  monthly: {
18
- create: 2,
19
- extract: 5,
20
- scan: 2,
18
+ create: 0,
19
+ extract: 1,
20
+ scan: 0,
21
21
  },
22
22
  },
23
23
  pro: {
24
24
  daily: {
25
- create: 10,
26
- extract: 25,
27
- scan: 15,
25
+ create: 8,
26
+ extract: 20,
27
+ scan: 10,
28
28
  },
29
29
  monthly: {
30
30
  create: 100,
31
- extract: 200,
32
- scan: 150,
31
+ extract: 150,
32
+ scan: 100,
33
33
  },
34
34
  },
35
35
  family: {
36
36
  daily: {
37
- create: 25,
38
- extract: 75,
39
- scan: 50,
37
+ create: 20,
38
+ extract: 60,
39
+ scan: 25,
40
40
  },
41
41
  monthly: {
42
42
  create: 250,
43
- extract: 500,
44
- scan: 200,
43
+ extract: 400,
44
+ scan: 250,
45
45
  },
46
46
  },
47
47
  };
@@ -1 +1,16 @@
1
- export const MAX_MEMBERS_FAMILY_PLAN = 3;
1
+ import { Price, SubscriptionTier } from "../types";
2
+
3
+ export const MAX_MEMBERS_FAMILY_PLAN = 4;
4
+
5
+ export const PRICING: Record<Exclude<SubscriptionTier, "free">, Price> = {
6
+ pro: {
7
+ currency: "USD",
8
+ monthly: 12.99,
9
+ yearly: 99.99,
10
+ },
11
+ family: {
12
+ currency: "USD",
13
+ monthly: 22.99,
14
+ yearly: 179.99,
15
+ },
16
+ };
@@ -1,28 +1,28 @@
1
- /**
2
- * AI model configuration, costs are in USD:
3
- * - multimodal: cost per 1,000,000 input/output tokens
4
- * - image: cost per image (stored in cost.output)
5
- * - embedding: cost per 1,000 input tokens
6
- */
7
- export type AIModel =
8
- | "Gemini25Flash"
9
- | "Gemini25Pro"
10
- | "Gemini3Flash"
11
- | "Imagen4Fast"
12
- | "GeminiEmbedding001";
13
- export type AIModelType = "multimodal" | "image" | "embedding";
14
-
15
- export interface AIModelCost {
16
- input: number;
17
- output: number;
18
- }
19
-
20
- export interface AIModelConfig {
21
- id: string;
22
- alias: string;
23
- cost: AIModelCost;
24
- name: string;
25
- type: AIModelType;
26
- }
27
-
28
- export type AIConfig = Record<AIModel, AIModelConfig>;
1
+ /**
2
+ * AI model configuration, costs are in USD:
3
+ * - multimodal: cost per 1,000,000 input/output tokens
4
+ * - image: cost per image (stored in cost.output)
5
+ * - embedding: cost per 1,000 input tokens
6
+ */
7
+ export type AIModel =
8
+ | "Gemini25Flash"
9
+ | "Gemini25Pro"
10
+ | "Gemini3Flash"
11
+ | "Imagen4Fast"
12
+ | "GeminiEmbedding001";
13
+ export type AIModelType = "multimodal" | "image" | "embedding";
14
+
15
+ export interface AIModelCost {
16
+ input: number;
17
+ output: number;
18
+ }
19
+
20
+ export interface AIModelConfig {
21
+ id: string;
22
+ alias: string;
23
+ cost: AIModelCost;
24
+ name: string;
25
+ type: AIModelType;
26
+ }
27
+
28
+ export type AIConfig = Record<AIModel, AIModelConfig>;
@@ -17,3 +17,9 @@ export interface Subscription extends Entity {
17
17
  providerId: string;
18
18
  tier: SubscriptionTier;
19
19
  }
20
+
21
+ export interface Price {
22
+ currency: string;
23
+ monthly: number;
24
+ yearly: number;
25
+ }
@@ -1,92 +1,92 @@
1
- import { Entity, Timestamp } from "../core";
2
- import { Locale } from "../core/locale";
3
- import { Allergen } from "./allergen";
4
- import { Cuisine } from "./cuisine";
5
- import { DietaryTag } from "./dietary_tag";
6
- import { Difficulty } from "./difficulty";
7
- import { Equipment, EquipmentContent, EquipmentMeta } from "./equipment";
8
- import {
9
- IngredientSection,
10
- IngredientSectionContent,
11
- IngredientSectionMeta,
12
- } from "./ingredient";
13
- import {
14
- Instruction,
15
- InstructionContent,
16
- InstructionMeta,
17
- } from "./instruction";
18
- import { MealType } from "./meal_type";
19
- import { Nutrition } from "./nutrition";
20
- import { RecipeSource } from "./recipe_source";
21
- import { RecipeStatus } from "./recipe_status";
22
- import { Spiciness } from "./spiciness";
23
-
24
- export interface RecipeMeta extends Entity {
25
- allergens: Allergen[];
26
- confidence: number;
27
- createdBy: string;
28
- cuisine: Cuisine;
29
- deletedAt?: Timestamp;
30
- dietaryTags: DietaryTag[];
31
- difficulty: Difficulty;
32
- equipment?: EquipmentMeta[];
33
- imageUrl?: string;
34
- ingredientSections: IngredientSectionMeta[];
35
- instructions: InstructionMeta[];
36
- mealTypes: MealType[];
37
- nutrition?: Nutrition;
38
- originalLocale: Locale;
39
- servings: number;
40
- source: RecipeSource;
41
- sourceUrl?: string;
42
- spiciness: Spiciness;
43
- status: RecipeStatus;
44
- time: number;
45
- }
46
-
47
- export interface RecipeContent {
48
- description: string;
49
- equipment?: EquipmentContent[];
50
- ingredientSections: IngredientSectionContent[];
51
- instructions: InstructionContent[];
52
- locale: Locale;
53
- tips?: string[];
54
- title: string;
55
- }
56
-
57
- export interface Recipe extends Entity {
58
- allergens: Allergen[];
59
- confidence: number;
60
- createdBy: string;
61
- cuisine: Cuisine;
62
- deletedAt?: Timestamp;
63
- description: string;
64
- dietaryTags: DietaryTag[];
65
- difficulty: Difficulty;
66
- equipment?: Equipment[];
67
- imageUrl?: string;
68
- ingredientSections: IngredientSection[];
69
- instructions: Instruction[];
70
- locale: Locale;
71
- mealTypes: MealType[];
72
- nutrition?: Nutrition;
73
- originalLocale: Locale;
74
- servings: number;
75
- source: RecipeSource;
76
- sourceUrl?: string;
77
- spiciness: Spiciness;
78
- status: RecipeStatus;
79
- time: number;
80
- tips?: string[];
81
- title: string;
82
- }
83
-
84
- export interface RecipeStats {
85
- comments: number;
86
- likes: number;
87
- rating: number;
88
- ratingCount: number;
89
- saves: number;
90
- updatedAt: number;
91
- views: number;
92
- }
1
+ import { Entity, Timestamp } from "../core";
2
+ import { Locale } from "../core/locale";
3
+ import { Allergen } from "./allergen";
4
+ import { Cuisine } from "./cuisine";
5
+ import { DietaryTag } from "./dietary_tag";
6
+ import { Difficulty } from "./difficulty";
7
+ import { Equipment, EquipmentContent, EquipmentMeta } from "./equipment";
8
+ import {
9
+ IngredientSection,
10
+ IngredientSectionContent,
11
+ IngredientSectionMeta,
12
+ } from "./ingredient";
13
+ import {
14
+ Instruction,
15
+ InstructionContent,
16
+ InstructionMeta,
17
+ } from "./instruction";
18
+ import { MealType } from "./meal_type";
19
+ import { Nutrition } from "./nutrition";
20
+ import { RecipeSource } from "./recipe_source";
21
+ import { RecipeStatus } from "./recipe_status";
22
+ import { Spiciness } from "./spiciness";
23
+
24
+ export interface RecipeMeta extends Entity {
25
+ allergens: Allergen[];
26
+ confidence: number;
27
+ createdBy: string;
28
+ cuisine: Cuisine;
29
+ deletedAt?: Timestamp;
30
+ dietaryTags: DietaryTag[];
31
+ difficulty: Difficulty;
32
+ equipment?: EquipmentMeta[];
33
+ imageUrl?: string;
34
+ ingredientSections: IngredientSectionMeta[];
35
+ instructions: InstructionMeta[];
36
+ mealTypes: MealType[];
37
+ nutrition?: Nutrition;
38
+ originalLocale: Locale;
39
+ servings: number;
40
+ source: RecipeSource;
41
+ sourceUrl?: string;
42
+ spiciness: Spiciness;
43
+ status: RecipeStatus;
44
+ time: number;
45
+ }
46
+
47
+ export interface RecipeContent {
48
+ description: string;
49
+ equipment?: EquipmentContent[];
50
+ ingredientSections: IngredientSectionContent[];
51
+ instructions: InstructionContent[];
52
+ locale: Locale;
53
+ tips?: string[];
54
+ title: string;
55
+ }
56
+
57
+ export interface Recipe extends Entity {
58
+ allergens: Allergen[];
59
+ confidence: number;
60
+ createdBy: string;
61
+ cuisine: Cuisine;
62
+ deletedAt?: Timestamp;
63
+ description: string;
64
+ dietaryTags: DietaryTag[];
65
+ difficulty: Difficulty;
66
+ equipment?: Equipment[];
67
+ imageUrl?: string;
68
+ ingredientSections: IngredientSection[];
69
+ instructions: Instruction[];
70
+ locale: Locale;
71
+ mealTypes: MealType[];
72
+ nutrition?: Nutrition;
73
+ originalLocale: Locale;
74
+ servings: number;
75
+ source: RecipeSource;
76
+ sourceUrl?: string;
77
+ spiciness: Spiciness;
78
+ status: RecipeStatus;
79
+ time: number;
80
+ tips?: string[];
81
+ title: string;
82
+ }
83
+
84
+ export interface RecipeStats {
85
+ comments: number;
86
+ likes: number;
87
+ rating: number;
88
+ ratingCount: number;
89
+ saves: number;
90
+ updatedAt: number;
91
+ views: number;
92
+ }
@@ -1,22 +0,0 @@
1
- import { AIModelConfig } from "../../types";
2
- interface BaseUsage {
3
- flowName: string;
4
- model: AIModelConfig;
5
- }
6
- interface MultimodalUsage extends BaseUsage {
7
- type: "multimodal";
8
- inputTokens: number;
9
- outputTokens: number;
10
- }
11
- interface ImageUsage extends BaseUsage {
12
- type: "image";
13
- imageCount: number;
14
- }
15
- interface EmbeddingUsage extends BaseUsage {
16
- type: "embedding";
17
- tokenCount: number;
18
- }
19
- export type AIUsage = MultimodalUsage | ImageUsage | EmbeddingUsage;
20
- export declare const logAIUsage: (usage: AIUsage) => number;
21
- export {};
22
- //# sourceMappingURL=cost.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/cost.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,UAAU,eAAgB,SAAQ,SAAS;IACzC,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,UAAW,SAAQ,SAAS;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,cAAe,SAAQ,SAAS;IACxC,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,OAAO,GAAG,eAAe,GAAG,UAAU,GAAG,cAAc,CAAC;AAEpE,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,MAuD3C,CAAC"}