@cravery/core 0.0.25 → 0.0.27
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/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/types/ai/recipe.d.ts +1 -244
- package/dist/types/ai/recipe.d.ts.map +1 -1
- package/dist/types/ai/recipe.js +0 -28
- package/dist/types/ai/recipe.js.map +1 -1
- package/dist/types/ai/translation.d.ts +1 -107
- package/dist/types/ai/translation.d.ts.map +1 -1
- package/dist/types/ai/translation.js +0 -11
- package/dist/types/ai/translation.js.map +1 -1
- package/dist/types/core/api.d.ts +4 -4
- package/dist/types/core/api.d.ts.map +1 -1
- package/dist/types/core/asset.d.ts +2 -22
- package/dist/types/core/asset.d.ts.map +1 -1
- package/dist/types/core/asset.js +0 -9
- package/dist/types/core/asset.js.map +1 -1
- package/dist/types/core/entity.d.ts +7 -0
- package/dist/types/core/entity.d.ts.map +1 -0
- package/dist/types/core/entity.js +3 -0
- package/dist/types/core/entity.js.map +1 -0
- package/dist/types/core/index.d.ts +5 -1
- package/dist/types/core/index.d.ts.map +1 -1
- package/dist/types/core/index.js +5 -1
- package/dist/types/core/index.js.map +1 -1
- package/dist/types/core/locale.d.ts +3 -0
- package/dist/types/core/locale.d.ts.map +1 -0
- package/dist/types/core/locale.js +5 -0
- package/dist/types/core/locale.js.map +1 -0
- package/dist/types/core/measurement_system.d.ts +3 -0
- package/dist/types/core/measurement_system.d.ts.map +1 -0
- package/dist/types/core/measurement_system.js +5 -0
- package/dist/types/core/measurement_system.js.map +1 -0
- package/dist/types/core/settings.d.ts +5 -88
- package/dist/types/core/settings.d.ts.map +1 -1
- package/dist/types/core/settings.js +0 -25
- package/dist/types/core/settings.js.map +1 -1
- package/dist/types/core/theme.d.ts +3 -0
- package/dist/types/core/theme.d.ts.map +1 -0
- package/dist/types/core/theme.js +5 -0
- package/dist/types/core/theme.js.map +1 -0
- package/dist/types/core/timestamp.d.ts +5 -0
- package/dist/types/core/timestamp.d.ts.map +1 -0
- package/dist/types/core/timestamp.js +3 -0
- package/dist/types/core/timestamp.js.map +1 -0
- package/dist/types/iam/index.d.ts +6 -1
- package/dist/types/iam/index.d.ts.map +1 -1
- package/dist/types/iam/index.js +6 -1
- package/dist/types/iam/index.js.map +1 -1
- package/dist/types/iam/profile.d.ts +2 -56
- package/dist/types/iam/profile.d.ts.map +1 -1
- package/dist/types/iam/profile.js +0 -22
- package/dist/types/iam/profile.js.map +1 -1
- package/dist/types/iam/profile_status.d.ts +3 -0
- package/dist/types/iam/profile_status.d.ts.map +1 -0
- package/dist/types/iam/profile_status.js +10 -0
- package/dist/types/iam/profile_status.js.map +1 -0
- package/dist/types/iam/subscription.d.ts +4 -80
- package/dist/types/iam/subscription.d.ts.map +1 -1
- package/dist/types/iam/subscription.js +0 -19
- package/dist/types/iam/subscription.js.map +1 -1
- package/dist/types/iam/subscription_role.d.ts +3 -0
- package/dist/types/iam/subscription_role.d.ts.map +1 -0
- package/dist/types/iam/subscription_role.js +5 -0
- package/dist/types/iam/subscription_role.js.map +1 -0
- package/dist/types/iam/subscription_status.d.ts +3 -0
- package/dist/types/iam/subscription_status.d.ts.map +1 -0
- package/dist/types/iam/subscription_status.js +10 -0
- package/dist/types/iam/subscription_status.js.map +1 -0
- package/dist/types/iam/subscription_tier.d.ts +3 -0
- package/dist/types/iam/subscription_tier.d.ts.map +1 -0
- package/dist/types/iam/subscription_tier.js +5 -0
- package/dist/types/iam/subscription_tier.js.map +1 -0
- package/dist/types/iam/user.d.ts +3 -42
- package/dist/types/iam/user.d.ts.map +1 -1
- package/dist/types/iam/user.js +0 -16
- package/dist/types/iam/user.js.map +1 -1
- package/dist/types/iam/user_role.d.ts +5 -0
- package/dist/types/iam/user_role.d.ts.map +1 -0
- package/dist/types/iam/user_role.js +16 -0
- package/dist/types/iam/user_role.js.map +1 -0
- package/dist/types/iam/user_status.d.ts +3 -0
- package/dist/types/iam/user_status.d.ts.map +1 -0
- package/dist/types/iam/user_status.js +10 -0
- package/dist/types/iam/user_status.js.map +1 -0
- package/dist/types/moderation/index.d.ts +4 -1
- package/dist/types/moderation/index.d.ts.map +1 -1
- package/dist/types/moderation/index.js +4 -1
- package/dist/types/moderation/index.js.map +1 -1
- package/dist/types/moderation/moderation.d.ts +5 -137
- package/dist/types/moderation/moderation.d.ts.map +1 -1
- package/dist/types/moderation/moderation.js +0 -37
- package/dist/types/moderation/moderation.js.map +1 -1
- package/dist/types/moderation/moderation_status.d.ts +3 -0
- package/dist/types/moderation/moderation_status.d.ts.map +1 -0
- package/dist/types/moderation/moderation_status.js +9 -0
- package/dist/types/moderation/moderation_status.js.map +1 -0
- package/dist/types/moderation/priority.d.ts +3 -0
- package/dist/types/moderation/priority.d.ts.map +1 -0
- package/dist/types/moderation/priority.js +5 -0
- package/dist/types/moderation/priority.js.map +1 -0
- package/dist/types/moderation/severity.d.ts +3 -0
- package/dist/types/moderation/severity.d.ts.map +1 -0
- package/dist/types/moderation/severity.js +5 -0
- package/dist/types/moderation/severity.js.map +1 -0
- package/dist/types/moderation/suggestion_category.d.ts +3 -0
- package/dist/types/moderation/suggestion_category.d.ts.map +1 -0
- package/dist/types/moderation/suggestion_category.js +11 -0
- package/dist/types/moderation/suggestion_category.js.map +1 -0
- package/dist/types/recipe/allergen.d.ts +3 -0
- package/dist/types/recipe/allergen.d.ts.map +1 -0
- package/dist/types/recipe/allergen.js +19 -0
- package/dist/types/recipe/allergen.js.map +1 -0
- package/dist/types/recipe/cuisine.d.ts +3 -0
- package/dist/types/recipe/cuisine.d.ts.map +1 -0
- package/dist/types/recipe/cuisine.js +39 -0
- package/dist/types/recipe/cuisine.js.map +1 -0
- package/dist/types/recipe/dietary_tag.d.ts +3 -0
- package/dist/types/recipe/dietary_tag.d.ts.map +1 -0
- package/dist/types/recipe/dietary_tag.js +21 -0
- package/dist/types/recipe/dietary_tag.js.map +1 -0
- package/dist/types/recipe/difficulty.d.ts +3 -0
- package/dist/types/recipe/difficulty.d.ts.map +1 -0
- package/dist/types/recipe/difficulty.js +10 -0
- package/dist/types/recipe/difficulty.js.map +1 -0
- package/dist/types/recipe/equipment.d.ts +0 -40
- package/dist/types/recipe/equipment.d.ts.map +1 -1
- package/dist/types/recipe/equipment.js +0 -12
- package/dist/types/recipe/equipment.js.map +1 -1
- package/dist/types/recipe/filters.d.ts +5 -30
- package/dist/types/recipe/filters.d.ts.map +1 -1
- package/dist/types/recipe/filters.js +0 -13
- package/dist/types/recipe/filters.js.map +1 -1
- package/dist/types/recipe/index.d.ts +10 -1
- package/dist/types/recipe/index.d.ts.map +1 -1
- package/dist/types/recipe/index.js +10 -1
- package/dist/types/recipe/index.js.map +1 -1
- package/dist/types/recipe/ingredient.d.ts +1 -169
- package/dist/types/recipe/ingredient.d.ts.map +1 -1
- package/dist/types/recipe/ingredient.js +0 -29
- package/dist/types/recipe/ingredient.js.map +1 -1
- package/dist/types/recipe/instruction.d.ts +2 -72
- package/dist/types/recipe/instruction.d.ts.map +1 -1
- package/dist/types/recipe/instruction.js +0 -13
- package/dist/types/recipe/instruction.js.map +1 -1
- package/dist/types/recipe/meal_type.d.ts +3 -0
- package/dist/types/recipe/meal_type.d.ts.map +1 -0
- package/dist/types/recipe/meal_type.js +14 -0
- package/dist/types/recipe/meal_type.js.map +1 -0
- package/dist/types/recipe/nutrition.d.ts +0 -36
- package/dist/types/recipe/nutrition.d.ts.map +1 -1
- package/dist/types/recipe/nutrition.js +0 -13
- package/dist/types/recipe/nutrition.js.map +1 -1
- package/dist/types/recipe/recipe.d.ts +14 -525
- package/dist/types/recipe/recipe.d.ts.map +1 -1
- package/dist/types/recipe/recipe.js +0 -80
- package/dist/types/recipe/recipe.js.map +1 -1
- package/dist/types/recipe/recipe_source.d.ts +3 -0
- package/dist/types/recipe/recipe_source.d.ts.map +1 -0
- package/dist/types/recipe/recipe_source.js +5 -0
- package/dist/types/recipe/recipe_source.js.map +1 -0
- package/dist/types/recipe/recipe_status.d.ts +3 -0
- package/dist/types/recipe/recipe_status.d.ts.map +1 -0
- package/dist/types/recipe/recipe_status.js +12 -0
- package/dist/types/recipe/recipe_status.js.map +1 -0
- package/dist/types/recipe/spiciness.d.ts +3 -0
- package/dist/types/recipe/spiciness.d.ts.map +1 -0
- package/dist/types/recipe/spiciness.js +5 -0
- package/dist/types/recipe/spiciness.js.map +1 -0
- package/dist/types/recipe/temperature.d.ts +1 -12
- package/dist/types/recipe/temperature.d.ts.map +1 -1
- package/dist/types/recipe/temperature.js +0 -7
- package/dist/types/recipe/temperature.js.map +1 -1
- package/dist/types/recipe/temperature_unit.d.ts +3 -0
- package/dist/types/recipe/temperature_unit.d.ts.map +1 -0
- package/dist/types/recipe/temperature_unit.js +5 -0
- package/dist/types/recipe/temperature_unit.js.map +1 -0
- package/dist/types/recipe/unit.d.ts +3 -0
- package/dist/types/recipe/unit.d.ts.map +1 -0
- package/dist/types/recipe/unit.js +51 -0
- package/dist/types/recipe/unit.js.map +1 -0
- package/dist/types/report/index.d.ts +4 -1
- package/dist/types/report/index.d.ts.map +1 -1
- package/dist/types/report/index.js +4 -1
- package/dist/types/report/index.js.map +1 -1
- package/dist/types/report/report.d.ts +5 -94
- package/dist/types/report/report.d.ts.map +1 -1
- package/dist/types/report/report.js +0 -29
- package/dist/types/report/report.js.map +1 -1
- package/dist/types/report/report_priority.d.ts +3 -0
- package/dist/types/report/report_priority.d.ts.map +1 -0
- package/dist/types/report/report_priority.js +10 -0
- package/dist/types/report/report_priority.js.map +1 -0
- package/dist/types/report/report_status.d.ts +3 -0
- package/dist/types/report/report_status.d.ts.map +1 -0
- package/dist/types/report/report_status.js +10 -0
- package/dist/types/report/report_status.js.map +1 -0
- package/dist/types/report/report_target_type.d.ts +3 -0
- package/dist/types/report/report_target_type.d.ts.map +1 -0
- package/dist/types/report/report_target_type.js +10 -0
- package/dist/types/report/report_target_type.js.map +1 -0
- package/dist/types/report/report_type.d.ts +3 -0
- package/dist/types/report/report_type.d.ts.map +1 -0
- package/dist/types/report/report_type.js +12 -0
- package/dist/types/report/report_type.js.map +1 -0
- package/package.json +3 -14
- package/src/index.ts +0 -1
- package/src/types/ai/recipe.ts +10 -47
- package/src/types/ai/translation.ts +3 -16
- package/src/types/core/api.ts +4 -4
- package/src/types/core/asset.ts +2 -14
- package/src/types/core/entity.ts +7 -0
- package/src/types/core/index.ts +5 -1
- package/src/types/core/{enums/locale.ts → locale.ts} +0 -3
- package/src/types/core/{enums/measurement_system.ts → measurement_system.ts} +0 -3
- package/src/types/core/settings.ts +9 -43
- package/src/types/core/{enums/theme.ts → theme.ts} +0 -3
- package/src/types/core/timestamp.ts +4 -0
- package/src/types/iam/index.ts +6 -1
- package/src/types/iam/profile.ts +2 -24
- package/src/types/iam/{enums/profile_status.ts → profile_status.ts} +0 -3
- package/src/types/iam/subscription.ts +4 -28
- package/src/types/iam/{enums/subscription_role.ts → subscription_role.ts} +0 -3
- package/src/types/iam/{enums/subscription_status.ts → subscription_status.ts} +0 -3
- package/src/types/iam/subscription_tier.ts +2 -0
- package/src/types/iam/user.ts +3 -22
- package/src/types/iam/user_role.ts +15 -0
- package/src/types/iam/{enums/user_status.ts → user_status.ts} +0 -3
- package/src/types/moderation/index.ts +4 -1
- package/src/types/moderation/moderation.ts +5 -50
- package/src/types/moderation/{enums/moderation_status.ts → moderation_status.ts} +0 -3
- package/src/types/moderation/{enums/priority.ts → priority.ts} +0 -3
- package/src/types/moderation/{enums/severity.ts → severity.ts} +0 -3
- package/src/types/moderation/suggestion_category.ts +8 -0
- package/src/types/recipe/{enums/allergen.ts → allergen.ts} +0 -3
- package/src/types/recipe/{enums/cuisine.ts → cuisine.ts} +0 -3
- package/src/types/recipe/{enums/dietary_tag.ts → dietary_tag.ts} +0 -3
- package/src/types/recipe/{enums/difficulty.ts → difficulty.ts} +0 -3
- package/src/types/recipe/equipment.ts +0 -18
- package/src/types/recipe/filters.ts +5 -24
- package/src/types/recipe/index.ts +10 -1
- package/src/types/recipe/ingredient.ts +1 -37
- package/src/types/recipe/instruction.ts +2 -19
- package/src/types/recipe/{enums/meal_type.ts → meal_type.ts} +0 -3
- package/src/types/recipe/nutrition.ts +0 -18
- package/src/types/recipe/recipe.ts +18 -118
- package/src/types/recipe/{enums/recipe_source.ts → recipe_source.ts} +0 -3
- package/src/types/recipe/{enums/recipe_status.ts → recipe_status.ts} +0 -3
- package/src/types/recipe/{enums/spiciness.ts → spiciness.ts} +0 -3
- package/src/types/recipe/temperature.ts +1 -7
- package/src/types/recipe/{enums/temperature_unit.ts → temperature_unit.ts} +0 -3
- package/src/types/recipe/{enums/unit.ts → unit.ts} +0 -3
- package/src/types/report/index.ts +4 -1
- package/src/types/report/report.ts +5 -40
- package/src/types/report/{enums/report_priority.ts → report_priority.ts} +0 -3
- package/src/types/report/{enums/report_status.ts → report_status.ts} +0 -3
- package/src/types/report/{enums/report_target_type.ts → report_target_type.ts} +0 -3
- package/src/types/report/{enums/report_type.ts → report_type.ts} +0 -3
- package/src/lib/ai/cost.ts +0 -82
- package/src/lib/ai/embedding.ts +0 -49
- package/src/lib/ai/errors.ts +0 -43
- package/src/lib/ai/flow.ts +0 -134
- package/src/lib/ai/genkit.ts +0 -39
- package/src/lib/ai/image.ts +0 -27
- package/src/lib/ai/index.ts +0 -6
- package/src/lib/api.ts +0 -103
- package/src/lib/firebase.ts +0 -5
- package/src/lib/iam.ts +0 -37
- package/src/lib/index.ts +0 -7
- package/src/lib/storage.ts +0 -60
- package/src/lib/usage/index.ts +0 -1
- package/src/lib/usage/usage.service.ts +0 -192
- package/src/lib/utils/index.ts +0 -2
- package/src/lib/utils/sanitize.ts +0 -38
- package/src/lib/utils/slug.ts +0 -33
- package/src/types/core/enums/image_type.ts +0 -5
- package/src/types/core/enums/index.ts +0 -5
- package/src/types/core/enums/url_type.ts +0 -13
- package/src/types/iam/enums/index.ts +0 -6
- package/src/types/iam/enums/subscription_tier.ts +0 -4
- package/src/types/iam/enums/user_role.ts +0 -11
- package/src/types/moderation/enums/index.ts +0 -4
- package/src/types/moderation/enums/suggestion_category.ts +0 -11
- package/src/types/recipe/enums/index.ts +0 -10
- package/src/types/report/enums/index.ts +0 -4
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { z } from "genkit";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Removes HTML tags and script content from a string.
|
|
5
|
-
* Use for text fields that should not contain HTML (descriptions, bios, etc.)
|
|
6
|
-
*/
|
|
7
|
-
export function sanitizeText(text: string): string {
|
|
8
|
-
return text
|
|
9
|
-
.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, "")
|
|
10
|
-
.replace(/<[^>]*>/g, "")
|
|
11
|
-
.trim();
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Creates a Zod string schema that sanitizes HTML on transformation.
|
|
16
|
-
* Use in schemas where text input needs to be cleaned.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* const BioSchema = sanitizedString(z.string().max(280));
|
|
20
|
-
*/
|
|
21
|
-
export function sanitizedString<T extends z.ZodString>(schema: T) {
|
|
22
|
-
return schema.transform(sanitizeText);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Escapes HTML special characters to prevent XSS.
|
|
27
|
-
* Use when HTML needs to be displayed as text.
|
|
28
|
-
*/
|
|
29
|
-
export function escapeHtml(text: string): string {
|
|
30
|
-
const htmlEscapes: Record<string, string> = {
|
|
31
|
-
"&": "&",
|
|
32
|
-
"<": "<",
|
|
33
|
-
">": ">",
|
|
34
|
-
'"': """,
|
|
35
|
-
"'": "'",
|
|
36
|
-
};
|
|
37
|
-
return text.replace(/[&<>"']/g, (char) => htmlEscapes[char]);
|
|
38
|
-
}
|
package/src/lib/utils/slug.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts an English name to a URL-safe snake_case slug.
|
|
3
|
-
*
|
|
4
|
-
* @param englishName - The English name to convert
|
|
5
|
-
* @returns A slug matching the format: ^[a-z][a-z0-9_]*[a-z0-9]$
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* toSlug("Olive Oil") // "olive_oil"
|
|
9
|
-
* toSlug("Café au lait") // "cafe_au_lait"
|
|
10
|
-
* toSlug("100% Whole Wheat") // "whole_wheat" (numbers at start stripped)
|
|
11
|
-
*/
|
|
12
|
-
export function toSlug(englishName: string): string {
|
|
13
|
-
let slug = englishName
|
|
14
|
-
.toLowerCase()
|
|
15
|
-
.normalize("NFD")
|
|
16
|
-
.replace(/[\u0300-\u036f]/g, "") // Remove diacritics
|
|
17
|
-
.replace(/[^a-z0-9]+/g, "_") // Replace non-alphanumeric with _
|
|
18
|
-
.replace(/^_+|_+$/g, "") // Trim underscores
|
|
19
|
-
.replace(/_{2,}/g, "_"); // Collapse multiple underscores
|
|
20
|
-
|
|
21
|
-
// Ensure starts with letter (strip leading numbers/underscores)
|
|
22
|
-
slug = slug.replace(/^[0-9_]+/, "");
|
|
23
|
-
|
|
24
|
-
// Ensure ends with letter or number (strip trailing underscores)
|
|
25
|
-
slug = slug.replace(/_+$/, "");
|
|
26
|
-
|
|
27
|
-
// Handle edge case: if slug is too short or empty
|
|
28
|
-
if (slug.length < 2) {
|
|
29
|
-
throw new Error(`Cannot generate valid slug from: "${englishName}"`);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return slug;
|
|
33
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { z } from "genkit";
|
|
2
|
-
|
|
3
|
-
export const URL_TYPE_VALUES = [
|
|
4
|
-
"facebook",
|
|
5
|
-
"instagram",
|
|
6
|
-
"pdf",
|
|
7
|
-
"pinterest",
|
|
8
|
-
"tiktok",
|
|
9
|
-
"website",
|
|
10
|
-
"youtube",
|
|
11
|
-
] as const;
|
|
12
|
-
export const UrlTypeSchema = z.enum(URL_TYPE_VALUES);
|
|
13
|
-
export type UrlType = z.infer<typeof UrlTypeSchema>;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { z } from "genkit";
|
|
2
|
-
|
|
3
|
-
export const USER_ROLE_VALUES = [
|
|
4
|
-
"admin",
|
|
5
|
-
"moderator",
|
|
6
|
-
"translator",
|
|
7
|
-
"user",
|
|
8
|
-
"guest",
|
|
9
|
-
] as const;
|
|
10
|
-
export const UserRoleSchema = z.enum(USER_ROLE_VALUES);
|
|
11
|
-
export type UserRole = (typeof USER_ROLE_VALUES)[number];
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { z } from "genkit";
|
|
2
|
-
|
|
3
|
-
export const SUGGESTION_CATEGORY_VALUES = [
|
|
4
|
-
"missing_info",
|
|
5
|
-
"unclear_instruction",
|
|
6
|
-
"image_quality",
|
|
7
|
-
"nutrition",
|
|
8
|
-
"safety",
|
|
9
|
-
] as const;
|
|
10
|
-
export const SuggestionCategorySchema = z.enum(SUGGESTION_CATEGORY_VALUES);
|
|
11
|
-
export type SuggestionCategory = z.infer<typeof SuggestionCategorySchema>;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from "./allergen";
|
|
2
|
-
export * from "./cuisine";
|
|
3
|
-
export * from "./dietary_tag";
|
|
4
|
-
export * from "./difficulty";
|
|
5
|
-
export * from "./meal_type";
|
|
6
|
-
export * from "./recipe_source";
|
|
7
|
-
export * from "./recipe_status";
|
|
8
|
-
export * from "./spiciness";
|
|
9
|
-
export * from "./temperature_unit";
|
|
10
|
-
export * from "./unit";
|