@apiverve/recipe 1.1.13 → 1.2.0
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/README.md +4 -5
- package/index.d.ts +19 -7
- package/index.js +3 -9
- package/package.json +5 -6
package/README.md
CHANGED
|
@@ -123,20 +123,19 @@ async function makeRequest() {
|
|
|
123
123
|
"error": null,
|
|
124
124
|
"data": {
|
|
125
125
|
"name": "Chicken Fajitas",
|
|
126
|
-
"description": "A flavorful and easy-to-make dish with marinated chicken, bell peppers, and onions, served with warm tortillas
|
|
126
|
+
"description": "A flavorful and easy-to-make dish with marinated chicken, bell peppers, and onions, served with warm tortillas.",
|
|
127
127
|
"ingredients": [
|
|
128
|
-
"1.5 pounds boneless, skinless chicken breasts, sliced
|
|
128
|
+
"1.5 pounds boneless, skinless chicken breasts, sliced",
|
|
129
129
|
"1 red bell pepper, sliced",
|
|
130
130
|
"1 green bell pepper, sliced",
|
|
131
|
-
"1 yellow bell pepper, sliced",
|
|
132
131
|
"1 large onion, sliced",
|
|
133
132
|
"2 tablespoons olive oil",
|
|
134
133
|
"1 packet (1 ounce) fajita seasoning",
|
|
135
134
|
"1/2 cup water",
|
|
136
135
|
"12 flour tortillas",
|
|
137
|
-
"Optional toppings: sour cream, guacamole, salsa, shredded cheese
|
|
136
|
+
"Optional toppings: sour cream, guacamole, salsa, shredded cheese"
|
|
138
137
|
],
|
|
139
|
-
"instructions": "1. In a bowl, combine
|
|
138
|
+
"instructions": "1. In a bowl, combine chicken with fajita seasoning and water. Marinate for at least 15 minutes.\n2. Heat olive oil in a large skillet or cast-iron pan over medium-high heat.\n3. Add the chicken and cook until browned and cooked through, about 5-7 minutes.\n4. Add bell peppers and onions to the skillet. Cook until softened, about 5-7 minutes.\n5. Warm tortillas according to package instructions.\n6. Serve chicken and vegetables in warm tortillas with desired toppings.",
|
|
140
139
|
"prep_time": "15 minutes",
|
|
141
140
|
"cook_time": "20 minutes",
|
|
142
141
|
"servings": 4
|
package/index.d.ts
CHANGED
|
@@ -4,22 +4,34 @@ declare module '@apiverve/recipe' {
|
|
|
4
4
|
secure?: boolean;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Describes fields the current plan does not unlock. Locked fields arrive as null
|
|
9
|
+
* in `data`; `locked_fields` names them, using dot paths for nested fields.
|
|
10
|
+
* Absent when the plan unlocks everything.
|
|
11
|
+
*/
|
|
12
|
+
export interface PremiumInfo {
|
|
13
|
+
message: string;
|
|
14
|
+
upgrade_url: string;
|
|
15
|
+
locked_fields: string[];
|
|
16
|
+
}
|
|
17
|
+
|
|
7
18
|
export interface recipeResponse {
|
|
8
19
|
status: string;
|
|
9
20
|
error: string | null;
|
|
10
21
|
data: RecipeGeneratorData;
|
|
11
22
|
code?: number;
|
|
23
|
+
premium?: PremiumInfo;
|
|
12
24
|
}
|
|
13
25
|
|
|
14
26
|
|
|
15
27
|
interface RecipeGeneratorData {
|
|
16
|
-
name: string;
|
|
17
|
-
description: string;
|
|
18
|
-
ingredients: string[];
|
|
19
|
-
instructions: string;
|
|
20
|
-
prepTime: string;
|
|
21
|
-
cookTime: string;
|
|
22
|
-
servings: number;
|
|
28
|
+
name: null | string;
|
|
29
|
+
description: null | string;
|
|
30
|
+
ingredients: (null | string)[];
|
|
31
|
+
instructions: null | string;
|
|
32
|
+
prepTime: null | string;
|
|
33
|
+
cookTime: null | string;
|
|
34
|
+
servings: number | null;
|
|
23
35
|
}
|
|
24
36
|
|
|
25
37
|
export default class recipeWrapper {
|
package/index.js
CHANGED
|
@@ -13,16 +13,10 @@ class recipeWrapper {
|
|
|
13
13
|
throw new Error('API key must be provided as a non-empty string. Get your API key at: https://apiverve.com');
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// Validate API key format (GUID or alphanumeric
|
|
17
|
-
const apiKeyPattern = /^[a-zA-Z0-
|
|
16
|
+
// Validate API key format (GUID, prefixed keys like apv_xxx, or alphanumeric)
|
|
17
|
+
const apiKeyPattern = /^[a-zA-Z0-9_-]+$/;
|
|
18
18
|
if (!apiKeyPattern.test(api_key)) {
|
|
19
|
-
throw new Error('Invalid API key format. API key must be alphanumeric and may contain hyphens. Get your API key at: https://apiverve.com');
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// Check minimum length (GUIDs are typically 36 chars with hyphens, or 32 without)
|
|
23
|
-
const trimmedKey = api_key.replace(/-/g, '');
|
|
24
|
-
if (trimmedKey.length < 32) {
|
|
25
|
-
throw new Error('Invalid API key. API key appears to be too short. Get your API key at: https://apiverve.com');
|
|
19
|
+
throw new Error('Invalid API key format. API key must be alphanumeric and may contain hyphens and underscores. Get your API key at: https://apiverve.com');
|
|
26
20
|
}
|
|
27
21
|
|
|
28
22
|
if (typeof secure !== 'boolean') {
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apiverve/recipe",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Recipe Generator is an AI-powered tool for generating detailed recipes. It returns complete recipes with ingredients, instructions, prep time, cook time, and servings.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"engines": {
|
|
9
|
-
"node": ">=
|
|
9
|
+
"node": ">=18.0.0"
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
12
|
"index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"directory": "npm"
|
|
24
24
|
},
|
|
25
25
|
"keywords": [
|
|
26
|
-
""
|
|
26
|
+
"recipes", "recipe generator", "recipe api", "cooking", "food"
|
|
27
27
|
],
|
|
28
28
|
"author": {
|
|
29
29
|
"name": "APIVerve",
|
|
@@ -41,8 +41,7 @@
|
|
|
41
41
|
"dotenv": "^16.4.7"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"axios": "1.13.2"
|
|
44
|
+
"axios": "1.13.2",
|
|
45
|
+
"form-data": "^4.0.1"
|
|
47
46
|
}
|
|
48
47
|
}
|