open-nutrition-engine 0.0.0-stage → 1.0.1
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 +60 -2
- package/dist/calculations/index.d.ts +10 -0
- package/dist/calculations/index.d.ts.map +1 -0
- package/dist/calculations/index.js +52 -0
- package/dist/calculations/index.js.map +1 -0
- package/dist/data/curries.d.ts +8 -0
- package/dist/data/curries.d.ts.map +1 -0
- package/dist/data/curries.js +542 -0
- package/dist/data/curries.js.map +1 -0
- package/dist/data/dairy.d.ts +8 -0
- package/dist/data/dairy.d.ts.map +1 -0
- package/dist/data/dairy.js +330 -0
- package/dist/data/dairy.js.map +1 -0
- package/dist/data/dal.d.ts +8 -0
- package/dist/data/dal.d.ts.map +1 -0
- package/dist/data/dal.js +223 -0
- package/dist/data/dal.js.map +1 -0
- package/dist/data/drinksDesserts.d.ts +7 -0
- package/dist/data/drinksDesserts.d.ts.map +1 -0
- package/dist/data/drinksDesserts.js +319 -0
- package/dist/data/drinksDesserts.js.map +1 -0
- package/dist/data/extended_staples.json +59178 -0
- package/dist/data/fruits.d.ts +7 -0
- package/dist/data/fruits.d.ts.map +1 -0
- package/dist/data/fruits.js +251 -0
- package/dist/data/fruits.js.map +1 -0
- package/dist/data/grains.d.ts +8 -0
- package/dist/data/grains.d.ts.map +1 -0
- package/dist/data/grains.js +990 -0
- package/dist/data/grains.js.map +1 -0
- package/dist/data/index.d.ts +20 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +76 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/nonveg.d.ts +7 -0
- package/dist/data/nonveg.d.ts.map +1 -0
- package/dist/data/nonveg.js +452 -0
- package/dist/data/nonveg.js.map +1 -0
- package/dist/data/snacks.d.ts +7 -0
- package/dist/data/snacks.d.ts.map +1 -0
- package/dist/data/snacks.js +442 -0
- package/dist/data/snacks.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +77 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +30 -4
- package/src/calculations/index.ts +65 -0
- package/src/data/curries.ts +542 -0
- package/src/data/dairy.ts +328 -0
- package/src/data/dal.ts +221 -0
- package/src/data/drinksDesserts.ts +318 -0
- package/src/data/extended_staples.json +59178 -0
- package/src/data/fruits.ts +249 -0
- package/src/data/grains.ts +992 -0
- package/src/data/index.ts +85 -0
- package/src/data/master/verified_fitness_staples.json +262507 -0
- package/src/data/nonveg.ts +450 -0
- package/src/data/snacks.ts +440 -0
- package/src/index.ts +3 -0
- package/src/types/index.ts +93 -0
package/README.md
CHANGED
|
@@ -1,3 +1,61 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Open Indian Nutrition Engine
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A free and open source Indian food nutrition database and macro calculation engine developed for strength athletes, coaches, and developers.
|
|
4
|
+
|
|
5
|
+
Official interactive food tracker and web application:
|
|
6
|
+
https://thebarbellcrew.com/food-tracker
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
* Over 2500 verified Indian food items including curries, dals, grains, dairy, snacks, and non veg staples.
|
|
11
|
+
* Preconfigured serving sizes with gram conversions (bowls, pieces, katoris, spoons).
|
|
12
|
+
* Dual language support with English names, Hindi names, and colloquial aliases.
|
|
13
|
+
* Complete macro calculations (calories, protein, carbohydrates, fats, and fiber).
|
|
14
|
+
* Search utility with smart matching and relevance ranking.
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install open-nutrition-engine
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { searchFoods, createFoodEntry, computeFoodTotals } from 'open-nutrition-engine';
|
|
26
|
+
|
|
27
|
+
// 1. Search for a food
|
|
28
|
+
const results = searchFoods({
|
|
29
|
+
query: 'Paneer',
|
|
30
|
+
category: 'all',
|
|
31
|
+
diet: 'veg'
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const paneer = results[0];
|
|
35
|
+
console.log(paneer.name, paneer.calories, paneer.protein);
|
|
36
|
+
|
|
37
|
+
// 2. Calculate macros for a serving
|
|
38
|
+
const entry = createFoodEntry(
|
|
39
|
+
paneer,
|
|
40
|
+
paneer.servings[0],
|
|
41
|
+
2,
|
|
42
|
+
'lunch'
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
console.log(entry.calories, entry.protein);
|
|
46
|
+
|
|
47
|
+
// 3. Compute meal totals
|
|
48
|
+
const totals = computeFoodTotals([entry]);
|
|
49
|
+
console.log(totals);
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Attribution and Project Links
|
|
53
|
+
|
|
54
|
+
Maintained by Surya Challa and TheBarbellCrew team.
|
|
55
|
+
Website: https://thebarbellcrew.com
|
|
56
|
+
Interactive Tools: https://thebarbellcrew.com/food-tracker
|
|
57
|
+
Exercise Guides: https://thebarbellcrew.com/exercise-101
|
|
58
|
+
|
|
59
|
+
## License
|
|
60
|
+
|
|
61
|
+
MIT License. Free to use in personal, open source, and commercial software.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FoodItem, FoodLogEntry, FoodServing, FoodTotals, MealType } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Build a food log entry from a food, one of its preset servings, a quantity,
|
|
4
|
+
* and a meal. Nutrition is scaled linearly from the per-100 g figures and
|
|
5
|
+
* multiplied by the chosen quantity of servings.
|
|
6
|
+
*/
|
|
7
|
+
export declare const createFoodEntry: (food: FoodItem, serving: FoodServing, quantity: number, meal?: MealType) => FoodLogEntry;
|
|
8
|
+
/** Aggregate all logged entries into daily calorie + macro totals. */
|
|
9
|
+
export declare const computeFoodTotals: (entries: FoodLogEntry[]) => FoodTotals;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/calculations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,EACT,MAAM,UAAU,CAAC;AAOlB;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,QAAQ,EACd,SAAS,WAAW,EACpB,UAAU,MAAM,EAChB,OAAM,QAAkB,KACvB,YAiBF,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,GAAI,SAAS,YAAY,EAAE,KAAG,UAqB3D,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeFoodTotals = exports.createFoodEntry = void 0;
|
|
4
|
+
const round = (num, precision = 1) => {
|
|
5
|
+
const factor = Math.pow(10, precision);
|
|
6
|
+
return Math.round(num * factor) / factor;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Build a food log entry from a food, one of its preset servings, a quantity,
|
|
10
|
+
* and a meal. Nutrition is scaled linearly from the per-100 g figures and
|
|
11
|
+
* multiplied by the chosen quantity of servings.
|
|
12
|
+
*/
|
|
13
|
+
const createFoodEntry = (food, serving, quantity, meal = 'lunch') => {
|
|
14
|
+
const factor = (serving.amount * quantity) / 100;
|
|
15
|
+
return {
|
|
16
|
+
id: crypto.randomUUID(),
|
|
17
|
+
foodId: food.id,
|
|
18
|
+
foodName: food.name,
|
|
19
|
+
servingLabel: quantity > 1 ? `${quantity} × ${serving.label}` : serving.label,
|
|
20
|
+
quantity,
|
|
21
|
+
amount: serving.amount * quantity,
|
|
22
|
+
meal,
|
|
23
|
+
calories: round(food.calories * factor),
|
|
24
|
+
protein: round(food.protein * factor),
|
|
25
|
+
carbs: round(food.carbs * factor),
|
|
26
|
+
fat: round(food.fat * factor),
|
|
27
|
+
fiber: food.fiber !== undefined ? round(food.fiber * factor) : undefined,
|
|
28
|
+
sugar: food.sugar !== undefined ? round(food.sugar * factor) : undefined,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
exports.createFoodEntry = createFoodEntry;
|
|
32
|
+
/** Aggregate all logged entries into daily calorie + macro totals. */
|
|
33
|
+
const computeFoodTotals = (entries) => {
|
|
34
|
+
const totals = entries.reduce((acc, entry) => ({
|
|
35
|
+
calories: acc.calories + entry.calories,
|
|
36
|
+
protein: acc.protein + entry.protein,
|
|
37
|
+
carbs: acc.carbs + entry.carbs,
|
|
38
|
+
fat: acc.fat + entry.fat,
|
|
39
|
+
fiber: (acc.fiber || 0) + (entry.fiber || 0),
|
|
40
|
+
sugar: (acc.sugar || 0) + (entry.sugar || 0),
|
|
41
|
+
}), { calories: 0, protein: 0, carbs: 0, fat: 0, fiber: 0, sugar: 0 });
|
|
42
|
+
return {
|
|
43
|
+
calories: Math.round(totals.calories),
|
|
44
|
+
protein: round(totals.protein),
|
|
45
|
+
carbs: round(totals.carbs),
|
|
46
|
+
fat: round(totals.fat),
|
|
47
|
+
fiber: round(totals.fiber),
|
|
48
|
+
sugar: round(totals.sugar),
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
exports.computeFoodTotals = computeFoodTotals;
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/calculations/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FoodItem } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Indian vegetable curries, individual vegetables, and chutneys.
|
|
4
|
+
* Curries and vegetables are per 100 g cooked; chutneys per 100 g.
|
|
5
|
+
* Serving options use household katoris, bowls and tablespoons.
|
|
6
|
+
*/
|
|
7
|
+
export declare const CURRIES: FoodItem[];
|
|
8
|
+
//# sourceMappingURL=curries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curries.d.ts","sourceRoot":"","sources":["../../src/data/curries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,QAAQ,EAshB7B,CAAC"}
|
|
@@ -0,0 +1,542 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CURRIES = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Indian vegetable curries, individual vegetables, and chutneys.
|
|
6
|
+
* Curries and vegetables are per 100 g cooked; chutneys per 100 g.
|
|
7
|
+
* Serving options use household katoris, bowls and tablespoons.
|
|
8
|
+
*/
|
|
9
|
+
exports.CURRIES = [
|
|
10
|
+
// ───────────────────────────── Curries ─────────────────────────────
|
|
11
|
+
{
|
|
12
|
+
id: 'vegetable-kurma',
|
|
13
|
+
name: 'Vegetable Kurma',
|
|
14
|
+
hindiName: 'Kurma',
|
|
15
|
+
category: 'curry',
|
|
16
|
+
diet: 'veg',
|
|
17
|
+
calories: 120,
|
|
18
|
+
protein: 4,
|
|
19
|
+
carbs: 12,
|
|
20
|
+
fat: 7,
|
|
21
|
+
servings: [
|
|
22
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
23
|
+
{ id: 'plate', label: '1 plate (150 g)', amount: 150 },
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: 'mixed-veg',
|
|
28
|
+
name: 'Mixed Vegetable Curry',
|
|
29
|
+
hindiName: 'Kootu',
|
|
30
|
+
category: 'curry',
|
|
31
|
+
diet: 'veg',
|
|
32
|
+
calories: 110,
|
|
33
|
+
protein: 2.5,
|
|
34
|
+
carbs: 13,
|
|
35
|
+
fat: 5,
|
|
36
|
+
servings: [
|
|
37
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
38
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: 'poriyal',
|
|
43
|
+
name: 'Vegetable Poriyal (stir-fry)',
|
|
44
|
+
hindiName: 'Poriyal',
|
|
45
|
+
category: 'curry',
|
|
46
|
+
diet: 'veg',
|
|
47
|
+
calories: 85,
|
|
48
|
+
protein: 2.5,
|
|
49
|
+
carbs: 10,
|
|
50
|
+
fat: 4,
|
|
51
|
+
servings: [
|
|
52
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
53
|
+
{ id: 'plate', label: '1 plate (120 g)', amount: 120 },
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: 'avial',
|
|
58
|
+
name: 'Avial',
|
|
59
|
+
hindiName: 'Avial',
|
|
60
|
+
category: 'curry',
|
|
61
|
+
diet: 'veg',
|
|
62
|
+
calories: 110,
|
|
63
|
+
protein: 2.5,
|
|
64
|
+
carbs: 10,
|
|
65
|
+
fat: 7,
|
|
66
|
+
servings: [
|
|
67
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
68
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: 'thoran',
|
|
73
|
+
name: 'Vegetable Thoran',
|
|
74
|
+
hindiName: 'Thoran',
|
|
75
|
+
category: 'curry',
|
|
76
|
+
diet: 'veg',
|
|
77
|
+
calories: 90,
|
|
78
|
+
protein: 2.5,
|
|
79
|
+
carbs: 10,
|
|
80
|
+
fat: 5,
|
|
81
|
+
servings: [
|
|
82
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
83
|
+
{ id: 'plate', label: '1 plate (120 g)', amount: 120 },
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
// ─────────────────────────── Vegetables ───────────────────────────
|
|
87
|
+
{
|
|
88
|
+
id: 'potato',
|
|
89
|
+
name: 'Potato (boiled)',
|
|
90
|
+
hindiName: 'Aloo / Urulaikizhangu',
|
|
91
|
+
category: 'curry',
|
|
92
|
+
diet: 'veg',
|
|
93
|
+
calories: 87,
|
|
94
|
+
protein: 1.9,
|
|
95
|
+
carbs: 20,
|
|
96
|
+
fat: 0.1,
|
|
97
|
+
servings: [
|
|
98
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
99
|
+
{ id: '1pc', label: '1 medium (120 g)', amount: 120 },
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: 'sweet-potato',
|
|
104
|
+
name: 'Sweet Potato (boiled)',
|
|
105
|
+
hindiName: 'Sakkara Valli',
|
|
106
|
+
category: 'curry',
|
|
107
|
+
diet: 'veg',
|
|
108
|
+
calories: 76,
|
|
109
|
+
protein: 1.4,
|
|
110
|
+
carbs: 17.7,
|
|
111
|
+
fat: 0.1,
|
|
112
|
+
servings: [
|
|
113
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
114
|
+
{ id: '1pc', label: '1 medium (130 g)', amount: 130 },
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
id: 'carrot',
|
|
119
|
+
name: 'Carrot',
|
|
120
|
+
hindiName: 'Gajar',
|
|
121
|
+
category: 'curry',
|
|
122
|
+
diet: 'veg',
|
|
123
|
+
calories: 41,
|
|
124
|
+
protein: 0.9,
|
|
125
|
+
carbs: 10,
|
|
126
|
+
fat: 0.2,
|
|
127
|
+
servings: [
|
|
128
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
129
|
+
{ id: '1pc', label: '1 medium (60 g)', amount: 60 },
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
id: 'green-beans',
|
|
134
|
+
name: 'Green Beans (cooked)',
|
|
135
|
+
hindiName: 'Beans',
|
|
136
|
+
category: 'curry',
|
|
137
|
+
diet: 'veg',
|
|
138
|
+
calories: 35,
|
|
139
|
+
protein: 1.8,
|
|
140
|
+
carbs: 8,
|
|
141
|
+
fat: 0.2,
|
|
142
|
+
servings: [
|
|
143
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
144
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
id: 'cauliflower',
|
|
149
|
+
name: 'Cauliflower (cooked)',
|
|
150
|
+
hindiName: 'Gobi',
|
|
151
|
+
category: 'curry',
|
|
152
|
+
diet: 'veg',
|
|
153
|
+
calories: 23,
|
|
154
|
+
protein: 1.8,
|
|
155
|
+
carbs: 4,
|
|
156
|
+
fat: 0.5,
|
|
157
|
+
servings: [
|
|
158
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
159
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
160
|
+
],
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
id: 'cabbage',
|
|
164
|
+
name: 'Cabbage (cooked)',
|
|
165
|
+
hindiName: 'Muttaikose',
|
|
166
|
+
category: 'curry',
|
|
167
|
+
diet: 'veg',
|
|
168
|
+
calories: 25,
|
|
169
|
+
protein: 1.3,
|
|
170
|
+
carbs: 6,
|
|
171
|
+
fat: 0.1,
|
|
172
|
+
servings: [
|
|
173
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
174
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
175
|
+
],
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
id: 'spinach',
|
|
179
|
+
name: 'Spinach (cooked)',
|
|
180
|
+
hindiName: 'Palak / Keerai',
|
|
181
|
+
category: 'curry',
|
|
182
|
+
diet: 'veg',
|
|
183
|
+
calories: 23,
|
|
184
|
+
protein: 3,
|
|
185
|
+
carbs: 3.7,
|
|
186
|
+
fat: 0.3,
|
|
187
|
+
servings: [
|
|
188
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
189
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
190
|
+
],
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
id: 'okra',
|
|
194
|
+
name: 'Okra / Lady Finger (cooked)',
|
|
195
|
+
hindiName: 'Bhindi / Vendakkai',
|
|
196
|
+
category: 'curry',
|
|
197
|
+
diet: 'veg',
|
|
198
|
+
calories: 22,
|
|
199
|
+
protein: 2,
|
|
200
|
+
carbs: 4.5,
|
|
201
|
+
fat: 0.2,
|
|
202
|
+
servings: [
|
|
203
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
204
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
205
|
+
],
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
id: 'brinjal',
|
|
209
|
+
name: 'Brinjal / Eggplant (cooked)',
|
|
210
|
+
hindiName: 'Baingan / Kathirikkai',
|
|
211
|
+
category: 'curry',
|
|
212
|
+
diet: 'veg',
|
|
213
|
+
calories: 25,
|
|
214
|
+
protein: 1,
|
|
215
|
+
carbs: 6,
|
|
216
|
+
fat: 0.2,
|
|
217
|
+
servings: [
|
|
218
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
219
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
220
|
+
],
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
id: 'tomato',
|
|
224
|
+
name: 'Tomato',
|
|
225
|
+
hindiName: 'Tamatar / Thakkali',
|
|
226
|
+
category: 'curry',
|
|
227
|
+
diet: 'veg',
|
|
228
|
+
calories: 18,
|
|
229
|
+
protein: 0.9,
|
|
230
|
+
carbs: 3.9,
|
|
231
|
+
fat: 0.2,
|
|
232
|
+
servings: [
|
|
233
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
234
|
+
{ id: '1pc', label: '1 medium (100 g)', amount: 100 },
|
|
235
|
+
],
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
id: 'onion',
|
|
239
|
+
name: 'Onion',
|
|
240
|
+
hindiName: 'Pyaz / Vengayam',
|
|
241
|
+
category: 'curry',
|
|
242
|
+
diet: 'veg',
|
|
243
|
+
calories: 40,
|
|
244
|
+
protein: 1.1,
|
|
245
|
+
carbs: 9,
|
|
246
|
+
fat: 0.1,
|
|
247
|
+
servings: [
|
|
248
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
249
|
+
{ id: '1pc', label: '1 medium (110 g)', amount: 110 },
|
|
250
|
+
],
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
id: 'cucumber',
|
|
254
|
+
name: 'Cucumber',
|
|
255
|
+
hindiName: 'Kheera / Vellarikkai',
|
|
256
|
+
category: 'curry',
|
|
257
|
+
diet: 'veg',
|
|
258
|
+
calories: 15,
|
|
259
|
+
protein: 0.7,
|
|
260
|
+
carbs: 3.6,
|
|
261
|
+
fat: 0.1,
|
|
262
|
+
servings: [
|
|
263
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
264
|
+
{ id: '1pc', label: '1 medium (130 g)', amount: 130 },
|
|
265
|
+
],
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
id: 'bottle-gourd',
|
|
269
|
+
name: 'Bottle Gourd (cooked)',
|
|
270
|
+
hindiName: 'Lauki / Surai',
|
|
271
|
+
category: 'curry',
|
|
272
|
+
diet: 'veg',
|
|
273
|
+
calories: 12,
|
|
274
|
+
protein: 0.6,
|
|
275
|
+
carbs: 3,
|
|
276
|
+
fat: 0.1,
|
|
277
|
+
servings: [
|
|
278
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
279
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
280
|
+
],
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
id: 'ridge-gourd',
|
|
284
|
+
name: 'Ridge Gourd (cooked)',
|
|
285
|
+
hindiName: 'Turai / Peerkangai',
|
|
286
|
+
category: 'curry',
|
|
287
|
+
diet: 'veg',
|
|
288
|
+
calories: 14,
|
|
289
|
+
protein: 0.5,
|
|
290
|
+
carbs: 3,
|
|
291
|
+
fat: 0.1,
|
|
292
|
+
servings: [
|
|
293
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
294
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
295
|
+
],
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
id: 'green-peas',
|
|
299
|
+
name: 'Green Peas (cooked)',
|
|
300
|
+
hindiName: 'Matar / Pattani',
|
|
301
|
+
category: 'curry',
|
|
302
|
+
diet: 'veg',
|
|
303
|
+
calories: 84,
|
|
304
|
+
protein: 5.4,
|
|
305
|
+
carbs: 15.6,
|
|
306
|
+
fat: 0.2,
|
|
307
|
+
servings: [
|
|
308
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
309
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
310
|
+
],
|
|
311
|
+
},
|
|
312
|
+
// ───────────────────────────── Chutneys ─────────────────────────────
|
|
313
|
+
{
|
|
314
|
+
id: 'coconut-chutney',
|
|
315
|
+
name: 'Coconut Chutney',
|
|
316
|
+
hindiName: 'Thengai Chutney',
|
|
317
|
+
category: 'curry',
|
|
318
|
+
diet: 'veg',
|
|
319
|
+
calories: 150,
|
|
320
|
+
protein: 3,
|
|
321
|
+
carbs: 10,
|
|
322
|
+
fat: 12,
|
|
323
|
+
servings: [
|
|
324
|
+
{ id: '1tbsp', label: '1 tbsp (15 g)', amount: 15 },
|
|
325
|
+
{ id: '2tbsp', label: '2 tbsp (30 g)', amount: 30 },
|
|
326
|
+
{ id: 'quarter', label: '1/4 cup (50 g)', amount: 50 },
|
|
327
|
+
],
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
id: 'peanut-chutney',
|
|
331
|
+
name: 'Peanut Chutney',
|
|
332
|
+
hindiName: 'Kadalai Chutney',
|
|
333
|
+
category: 'curry',
|
|
334
|
+
diet: 'veg',
|
|
335
|
+
calories: 350,
|
|
336
|
+
protein: 15,
|
|
337
|
+
carbs: 18,
|
|
338
|
+
fat: 26,
|
|
339
|
+
servings: [
|
|
340
|
+
{ id: '1tbsp', label: '1 tbsp (15 g)', amount: 15 },
|
|
341
|
+
{ id: '2tbsp', label: '2 tbsp (30 g)', amount: 30 },
|
|
342
|
+
{ id: 'quarter', label: '1/4 cup (50 g)', amount: 50 },
|
|
343
|
+
],
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
id: 'tomato-chutney',
|
|
347
|
+
name: 'Tomato Chutney',
|
|
348
|
+
hindiName: 'Thakkali Chutney',
|
|
349
|
+
category: 'curry',
|
|
350
|
+
diet: 'veg',
|
|
351
|
+
calories: 100,
|
|
352
|
+
protein: 2,
|
|
353
|
+
carbs: 12,
|
|
354
|
+
fat: 5,
|
|
355
|
+
servings: [
|
|
356
|
+
{ id: '1tbsp', label: '1 tbsp (15 g)', amount: 15 },
|
|
357
|
+
{ id: '2tbsp', label: '2 tbsp (30 g)', amount: 30 },
|
|
358
|
+
{ id: 'quarter', label: '1/4 cup (50 g)', amount: 50 },
|
|
359
|
+
],
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
id: 'mint-chutney',
|
|
363
|
+
name: 'Mint Chutney',
|
|
364
|
+
hindiName: 'Pudina Chutney',
|
|
365
|
+
category: 'curry',
|
|
366
|
+
diet: 'veg',
|
|
367
|
+
calories: 80,
|
|
368
|
+
protein: 2,
|
|
369
|
+
carbs: 10,
|
|
370
|
+
fat: 4,
|
|
371
|
+
servings: [
|
|
372
|
+
{ id: '1tbsp', label: '1 tbsp (15 g)', amount: 15 },
|
|
373
|
+
{ id: '2tbsp', label: '2 tbsp (30 g)', amount: 30 },
|
|
374
|
+
{ id: 'quarter', label: '1/4 cup (50 g)', amount: 50 },
|
|
375
|
+
],
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
id: 'ginger-chutney',
|
|
379
|
+
name: 'Ginger Chutney',
|
|
380
|
+
hindiName: 'Inji Chutney',
|
|
381
|
+
category: 'curry',
|
|
382
|
+
diet: 'veg',
|
|
383
|
+
calories: 120,
|
|
384
|
+
protein: 2,
|
|
385
|
+
carbs: 18,
|
|
386
|
+
fat: 5,
|
|
387
|
+
servings: [
|
|
388
|
+
{ id: '1tbsp', label: '1 tbsp (15 g)', amount: 15 },
|
|
389
|
+
{ id: '2tbsp', label: '2 tbsp (30 g)', amount: 30 },
|
|
390
|
+
{ id: 'quarter', label: '1/4 cup (50 g)', amount: 50 },
|
|
391
|
+
],
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
id: 'palak-paneer',
|
|
395
|
+
name: 'Palak Paneer / Keerai Paneer',
|
|
396
|
+
hindiName: 'Palak Paneer',
|
|
397
|
+
category: 'curry',
|
|
398
|
+
diet: 'veg',
|
|
399
|
+
calories: 150,
|
|
400
|
+
protein: 7.5,
|
|
401
|
+
carbs: 5,
|
|
402
|
+
fat: 11,
|
|
403
|
+
fiber: 2.5,
|
|
404
|
+
servings: [
|
|
405
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
406
|
+
{ id: 'plate', label: '1 plate (200 g)', amount: 200 },
|
|
407
|
+
],
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
id: 'paneer-bhurji',
|
|
411
|
+
name: 'Paneer Bhurji',
|
|
412
|
+
hindiName: 'Paneer Bhurji',
|
|
413
|
+
category: 'curry',
|
|
414
|
+
diet: 'veg',
|
|
415
|
+
calories: 185,
|
|
416
|
+
protein: 12,
|
|
417
|
+
carbs: 5,
|
|
418
|
+
fat: 13,
|
|
419
|
+
fiber: 1.5,
|
|
420
|
+
servings: [
|
|
421
|
+
{ id: 'small', label: '1 plate (100 g)', amount: 100 },
|
|
422
|
+
{ id: 'medium', label: '1 plate (150 g)', amount: 150 },
|
|
423
|
+
],
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
id: 'soya-masala-curry',
|
|
427
|
+
name: 'Soya Chunks Masala Curry',
|
|
428
|
+
hindiName: 'Soya Curry',
|
|
429
|
+
category: 'curry',
|
|
430
|
+
diet: 'veg',
|
|
431
|
+
calories: 135,
|
|
432
|
+
protein: 14,
|
|
433
|
+
carbs: 10,
|
|
434
|
+
fat: 4,
|
|
435
|
+
fiber: 3.8,
|
|
436
|
+
servings: [
|
|
437
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
438
|
+
{ id: 'plate', label: '1 plate (200 g)', amount: 200 },
|
|
439
|
+
],
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
id: 'chettinad-mushroom',
|
|
443
|
+
name: 'Chettinad Mushroom Masala',
|
|
444
|
+
hindiName: 'Kalan Masala',
|
|
445
|
+
category: 'curry',
|
|
446
|
+
diet: 'veg',
|
|
447
|
+
calories: 85,
|
|
448
|
+
protein: 3.5,
|
|
449
|
+
carbs: 7.5,
|
|
450
|
+
fat: 4.5,
|
|
451
|
+
fiber: 2.2,
|
|
452
|
+
servings: [
|
|
453
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
454
|
+
{ id: 'plate', label: '1 plate (200 g)', amount: 200 },
|
|
455
|
+
],
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
id: 'cabbage-poriyal-dal',
|
|
459
|
+
name: 'Cabbage Poriyal with Moong Dal',
|
|
460
|
+
hindiName: 'Muttaikose Poriyal',
|
|
461
|
+
category: 'curry',
|
|
462
|
+
diet: 'veg',
|
|
463
|
+
calories: 75,
|
|
464
|
+
protein: 3.2,
|
|
465
|
+
carbs: 8,
|
|
466
|
+
fat: 3,
|
|
467
|
+
fiber: 3,
|
|
468
|
+
servings: [
|
|
469
|
+
{ id: 'katori', label: '1 katori (100 g)', amount: 100 },
|
|
470
|
+
{ id: 'plate', label: '1 plate (150 g)', amount: 150 },
|
|
471
|
+
],
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
id: 'paneer-butter-masala',
|
|
475
|
+
name: 'Paneer Butter Masala',
|
|
476
|
+
hindiName: 'Paneer Makhani',
|
|
477
|
+
aliases: ['paneer butter masala', 'paneer makhani', 'butter paneer'],
|
|
478
|
+
category: 'curry',
|
|
479
|
+
diet: 'veg',
|
|
480
|
+
calories: 195,
|
|
481
|
+
protein: 8.5,
|
|
482
|
+
carbs: 7.5,
|
|
483
|
+
fat: 15,
|
|
484
|
+
fiber: 1.5,
|
|
485
|
+
servings: [
|
|
486
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
487
|
+
{ id: 'plate', label: '1 full plate (250 g)', amount: 250 },
|
|
488
|
+
],
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
id: 'dal-makhani',
|
|
492
|
+
name: 'Dal Makhani',
|
|
493
|
+
hindiName: 'Maa Ki Dal',
|
|
494
|
+
aliases: ['dal makhani', 'makhani dal', 'maa ki dal', 'black dal'],
|
|
495
|
+
category: 'curry',
|
|
496
|
+
diet: 'veg',
|
|
497
|
+
calories: 140,
|
|
498
|
+
protein: 5.8,
|
|
499
|
+
carbs: 16.5,
|
|
500
|
+
fat: 6.2,
|
|
501
|
+
fiber: 4.5,
|
|
502
|
+
servings: [
|
|
503
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
504
|
+
{ id: 'plate', label: '1 plate (200 g)', amount: 200 },
|
|
505
|
+
],
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
id: 'chole-masala',
|
|
509
|
+
name: 'Chole Masala (Chickpea Curry)',
|
|
510
|
+
hindiName: 'Punjabi Chole',
|
|
511
|
+
aliases: ['chole', 'chole masala', 'punjabi chole', 'chickpea curry', 'chana masala'],
|
|
512
|
+
category: 'curry',
|
|
513
|
+
diet: 'veg',
|
|
514
|
+
calories: 130,
|
|
515
|
+
protein: 6.2,
|
|
516
|
+
carbs: 19,
|
|
517
|
+
fat: 3.5,
|
|
518
|
+
fiber: 5.2,
|
|
519
|
+
servings: [
|
|
520
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
521
|
+
{ id: 'plate', label: '1 plate (200 g)', amount: 200 },
|
|
522
|
+
],
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
id: 'kadai-paneer',
|
|
526
|
+
name: 'Kadai Paneer',
|
|
527
|
+
hindiName: 'Kadhai Paneer',
|
|
528
|
+
aliases: ['kadai paneer', 'kadhai paneer', 'paneer capsicum'],
|
|
529
|
+
category: 'curry',
|
|
530
|
+
diet: 'veg',
|
|
531
|
+
calories: 175,
|
|
532
|
+
protein: 9,
|
|
533
|
+
carbs: 6,
|
|
534
|
+
fat: 13,
|
|
535
|
+
fiber: 2,
|
|
536
|
+
servings: [
|
|
537
|
+
{ id: 'bowl', label: '1 bowl (150 g)', amount: 150 },
|
|
538
|
+
{ id: 'plate', label: '1 plate (200 g)', amount: 200 },
|
|
539
|
+
],
|
|
540
|
+
},
|
|
541
|
+
];
|
|
542
|
+
//# sourceMappingURL=curries.js.map
|