wellness-nourish 0.2.2 → 0.2.10
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/CHANGELOG.md +528 -0
- package/dist/cli/commands.js +5 -1
- package/dist/cli/commands.js.map +1 -1
- package/dist/constants.d.ts +3 -3
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/data/carbon-footprint.d.ts +44 -0
- package/dist/data/carbon-footprint.js +169 -0
- package/dist/data/carbon-footprint.js.map +1 -0
- package/dist/data/taco-foods.d.ts +44 -0
- package/dist/data/taco-foods.js +564 -0
- package/dist/data/taco-foods.js.map +1 -0
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/dist/providers/open-food-facts.js +83 -24
- package/dist/providers/open-food-facts.js.map +1 -1
- package/dist/providers/taco.d.ts +23 -0
- package/dist/providers/taco.js +108 -0
- package/dist/providers/taco.js.map +1 -0
- package/dist/providers/usda.js +29 -11
- package/dist/providers/usda.js.map +1 -1
- package/dist/schemas/common.d.ts +103 -0
- package/dist/schemas/common.js +113 -4
- package/dist/schemas/common.js.map +1 -1
- package/dist/services/agent-manifest.js +6 -0
- package/dist/services/agent-manifest.js.map +1 -1
- package/dist/services/carbon-enrichment.d.ts +60 -0
- package/dist/services/carbon-enrichment.js +194 -0
- package/dist/services/carbon-enrichment.js.map +1 -0
- package/dist/services/coach.js +49 -8
- package/dist/services/coach.js.map +1 -1
- package/dist/services/config.js +1 -0
- package/dist/services/config.js.map +1 -1
- package/dist/services/connection-status.d.ts +7 -0
- package/dist/services/connection-status.js +13 -0
- package/dist/services/connection-status.js.map +1 -1
- package/dist/services/food-image-analysis.d.ts +1 -1
- package/dist/services/food-image-analysis.js +109 -47
- package/dist/services/food-image-analysis.js.map +1 -1
- package/dist/services/goals-store.js +22 -23
- package/dist/services/goals-store.js.map +1 -1
- package/dist/services/http.d.ts +36 -0
- package/dist/services/http.js +133 -0
- package/dist/services/http.js.map +1 -0
- package/dist/services/hydration-store.d.ts +5 -0
- package/dist/services/hydration-store.js +34 -2
- package/dist/services/hydration-store.js.map +1 -1
- package/dist/services/image-decoder.js +88 -3
- package/dist/services/image-decoder.js.map +1 -1
- package/dist/services/intake-store.js +6 -2
- package/dist/services/intake-store.js.map +1 -1
- package/dist/services/local-date.d.ts +16 -0
- package/dist/services/local-date.js +105 -0
- package/dist/services/local-date.js.map +1 -0
- package/dist/services/locked-store.d.ts +17 -0
- package/dist/services/locked-store.js +51 -0
- package/dist/services/locked-store.js.map +1 -0
- package/dist/services/meal-estimator.js +44 -8
- package/dist/services/meal-estimator.js.map +1 -1
- package/dist/services/personal-memory.js +62 -55
- package/dist/services/personal-memory.js.map +1 -1
- package/dist/services/summary.js +4 -1
- package/dist/services/summary.js.map +1 -1
- package/dist/services/usage-guide.js +2 -0
- package/dist/services/usage-guide.js.map +1 -1
- package/dist/tools/nourish-tools.js +546 -34
- package/dist/tools/nourish-tools.js.map +1 -1
- package/dist/types.d.ts +18 -1
- package/package.json +7 -2
- package/server.json +2 -2
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated carbon-footprint dataset for common foods.
|
|
3
|
+
*
|
|
4
|
+
* v1 ships ~60 hand-curated entries pulled from two public sources:
|
|
5
|
+
*
|
|
6
|
+
* 1. **Agribalyse 3.1** (ADEME, France) — Etalab Open License (MIT-compatible
|
|
7
|
+
* attribution-only). Lifecycle assessment values for French production.
|
|
8
|
+
* https://doc.agribalyse.fr/documentation-en/agribalyse-data/data-access
|
|
9
|
+
*
|
|
10
|
+
* 2. **Our World in Data — "Environmental impacts of food production"** —
|
|
11
|
+
* CC-BY-4.0. Global means computed from Poore & Nemecek 2018 (Science),
|
|
12
|
+
* aggregating ~38,700 farms across ~120 countries. Best available global
|
|
13
|
+
* averages where Agribalyse doesn't have a French-specific row.
|
|
14
|
+
* https://ourworldindata.org/environmental-impacts-of-food
|
|
15
|
+
*
|
|
16
|
+
* Each entry cites its source via `source` and labels `confidence` based on
|
|
17
|
+
* the methodology:
|
|
18
|
+
* - "high" — Agribalyse LCA (lifecycle assessment, French production)
|
|
19
|
+
* - "medium" — OWID/Poore-Nemecek global mean (multi-country aggregate)
|
|
20
|
+
* - "low" — single-study estimate (rare; flagged when used)
|
|
21
|
+
*
|
|
22
|
+
* Future PRs will replace this curated table with a build script that
|
|
23
|
+
* ingests the full Agribalyse 3.1 synthesis CSV (~2,516 products) plus the
|
|
24
|
+
* SU-EATABLE LIFE database for global commodity coverage. The hand-curated
|
|
25
|
+
* v1 covers the foods most commonly logged via Nourish (matches `taco-foods`
|
|
26
|
+
* + USDA staples) so most agent calls already have carbon data.
|
|
27
|
+
*/
|
|
28
|
+
export interface CarbonEntry {
|
|
29
|
+
/** Canonical English food name. */
|
|
30
|
+
name_en: string;
|
|
31
|
+
/** Canonical pt-BR food name (when applicable). */
|
|
32
|
+
name_pt?: string;
|
|
33
|
+
/** Aliases for case-insensitive, diacritic-insensitive name matching. */
|
|
34
|
+
aliases: string[];
|
|
35
|
+
/** kg CO2-equivalent per kg of edible food. */
|
|
36
|
+
kg_co2e_per_kg: number;
|
|
37
|
+
/** Source dataset + identifier. */
|
|
38
|
+
source: "agribalyse" | "owid_poore_nemecek_2018" | "single_study";
|
|
39
|
+
source_id: string;
|
|
40
|
+
confidence: "low" | "medium" | "high";
|
|
41
|
+
/** Optional note: "greenhouse vs open field", "farmed vs wild", etc. */
|
|
42
|
+
note?: string;
|
|
43
|
+
}
|
|
44
|
+
export declare const CARBON_FOOTPRINT: readonly CarbonEntry[];
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated carbon-footprint dataset for common foods.
|
|
3
|
+
*
|
|
4
|
+
* v1 ships ~60 hand-curated entries pulled from two public sources:
|
|
5
|
+
*
|
|
6
|
+
* 1. **Agribalyse 3.1** (ADEME, France) — Etalab Open License (MIT-compatible
|
|
7
|
+
* attribution-only). Lifecycle assessment values for French production.
|
|
8
|
+
* https://doc.agribalyse.fr/documentation-en/agribalyse-data/data-access
|
|
9
|
+
*
|
|
10
|
+
* 2. **Our World in Data — "Environmental impacts of food production"** —
|
|
11
|
+
* CC-BY-4.0. Global means computed from Poore & Nemecek 2018 (Science),
|
|
12
|
+
* aggregating ~38,700 farms across ~120 countries. Best available global
|
|
13
|
+
* averages where Agribalyse doesn't have a French-specific row.
|
|
14
|
+
* https://ourworldindata.org/environmental-impacts-of-food
|
|
15
|
+
*
|
|
16
|
+
* Each entry cites its source via `source` and labels `confidence` based on
|
|
17
|
+
* the methodology:
|
|
18
|
+
* - "high" — Agribalyse LCA (lifecycle assessment, French production)
|
|
19
|
+
* - "medium" — OWID/Poore-Nemecek global mean (multi-country aggregate)
|
|
20
|
+
* - "low" — single-study estimate (rare; flagged when used)
|
|
21
|
+
*
|
|
22
|
+
* Future PRs will replace this curated table with a build script that
|
|
23
|
+
* ingests the full Agribalyse 3.1 synthesis CSV (~2,516 products) plus the
|
|
24
|
+
* SU-EATABLE LIFE database for global commodity coverage. The hand-curated
|
|
25
|
+
* v1 covers the foods most commonly logged via Nourish (matches `taco-foods`
|
|
26
|
+
* + USDA staples) so most agent calls already have carbon data.
|
|
27
|
+
*/
|
|
28
|
+
export const CARBON_FOOTPRINT = [
|
|
29
|
+
// ---- Red meat (highest impact) ----
|
|
30
|
+
{ name_en: "beef", name_pt: "carne bovina", aliases: ["beef", "carne bovina", "carne de boi", "ground beef", "carne moída", "patinho", "alcatra"], kg_co2e_per_kg: 60, source: "owid_poore_nemecek_2018", source_id: "beef-beef-herd", confidence: "medium", note: "Beef from beef-specific cattle herds. Dairy-herd beef is ~21 kg." },
|
|
31
|
+
{ name_en: "picanha", name_pt: "picanha", aliases: ["picanha"], kg_co2e_per_kg: 60, source: "owid_poore_nemecek_2018", source_id: "beef-cut-aggregate", confidence: "medium", note: "Picanha is a cut of beef-herd cattle; same emissions class as 'beef'." },
|
|
32
|
+
{ name_en: "lamb", name_pt: "carne de cordeiro", aliases: ["lamb", "mutton", "cordeiro", "carneiro"], kg_co2e_per_kg: 24, source: "owid_poore_nemecek_2018", source_id: "lamb-mutton", confidence: "medium" },
|
|
33
|
+
// ---- Other animal products ----
|
|
34
|
+
{ name_en: "cheese", name_pt: "queijo", aliases: ["cheese", "queijo prato", "queijo amarelo", "hard cheese"], kg_co2e_per_kg: 21, source: "owid_poore_nemecek_2018", source_id: "cheese", confidence: "medium" },
|
|
35
|
+
{ name_en: "cheese (fresh)", name_pt: "queijo minas", aliases: ["queijo minas", "queijo branco", "fresh cheese", "queijo frescal", "ricotta", "ricota"], kg_co2e_per_kg: 8, source: "agribalyse", source_id: "21560", confidence: "high", note: "Fresh / unaged cheese: lower emissions than aged hard cheese." },
|
|
36
|
+
{ name_en: "pork", name_pt: "carne suína", aliases: ["pork", "carne suína", "carne suina", "lombo de porco", "lombo suíno", "porco"], kg_co2e_per_kg: 7, source: "owid_poore_nemecek_2018", source_id: "pig-meat", confidence: "medium" },
|
|
37
|
+
{ name_en: "chicken", name_pt: "frango", aliases: ["chicken", "frango", "peito de frango", "chicken breast", "chicken thigh", "coxa de frango", "poultry"], kg_co2e_per_kg: 6, source: "owid_poore_nemecek_2018", source_id: "poultry-meat", confidence: "medium" },
|
|
38
|
+
{ name_en: "eggs", name_pt: "ovos", aliases: ["egg", "eggs", "ovo", "ovos", "ovo de galinha", "ovo cozido", "ovos cozidos", "boiled egg"], kg_co2e_per_kg: 4.5, source: "owid_poore_nemecek_2018", source_id: "eggs", confidence: "medium" },
|
|
39
|
+
{ name_en: "shrimps (farmed)", name_pt: "camarão de cativeiro", aliases: ["shrimp", "shrimps", "camarão", "camarao", "prawn"], kg_co2e_per_kg: 12, source: "owid_poore_nemecek_2018", source_id: "shrimps-farmed", confidence: "medium" },
|
|
40
|
+
{ name_en: "fish (farmed)", name_pt: "peixe de cativeiro", aliases: ["fish", "peixe", "salmon", "salmão", "tilapia", "tilápia", "fish fillet", "filé de peixe"], kg_co2e_per_kg: 5, source: "owid_poore_nemecek_2018", source_id: "fish-farmed", confidence: "medium", note: "Farmed fish (salmon, tilapia, etc.). Wild capture is ~3 kg." },
|
|
41
|
+
{ name_en: "tuna (canned)", name_pt: "atum em conserva", aliases: ["tuna", "atum", "canned tuna", "atum em lata", "atum em água"], kg_co2e_per_kg: 6.1, source: "agribalyse", source_id: "26035", confidence: "high" },
|
|
42
|
+
{ name_en: "sardines", name_pt: "sardinhas", aliases: ["sardine", "sardines", "sardinha", "canned sardines"], kg_co2e_per_kg: 3.0, source: "owid_poore_nemecek_2018", source_id: "fish-wild-pelagic", confidence: "medium" },
|
|
43
|
+
// ---- Dairy ----
|
|
44
|
+
{ name_en: "milk (whole)", name_pt: "leite integral", aliases: ["milk", "leite", "whole milk", "leite integral", "leite de vaca"], kg_co2e_per_kg: 3.0, source: "owid_poore_nemecek_2018", source_id: "milk", confidence: "medium" },
|
|
45
|
+
{ name_en: "milk (skim)", name_pt: "leite desnatado", aliases: ["skim milk", "leite desnatado"], kg_co2e_per_kg: 1.5, source: "agribalyse", source_id: "19011", confidence: "high" },
|
|
46
|
+
{ name_en: "yogurt", name_pt: "iogurte", aliases: ["yogurt", "yoghurt", "iogurte", "iogurte natural"], kg_co2e_per_kg: 2.2, source: "owid_poore_nemecek_2018", source_id: "yogurt", confidence: "medium" },
|
|
47
|
+
{ name_en: "butter", name_pt: "manteiga", aliases: ["butter", "manteiga"], kg_co2e_per_kg: 12, source: "owid_poore_nemecek_2018", source_id: "butter", confidence: "medium" },
|
|
48
|
+
// ---- Grains, breads, pasta ----
|
|
49
|
+
{ name_en: "rice", name_pt: "arroz", aliases: ["rice", "arroz", "arroz branco", "arroz integral", "arroz cozido", "white rice", "brown rice"], kg_co2e_per_kg: 4.0, source: "owid_poore_nemecek_2018", source_id: "rice", confidence: "medium", note: "Rice has unusually high emissions for a grain due to methane from flooded paddies." },
|
|
50
|
+
{ name_en: "bread", name_pt: "pão", aliases: ["bread", "pão", "pao", "pão francês", "pão integral", "whole wheat bread", "french bread"], kg_co2e_per_kg: 1.4, source: "owid_poore_nemecek_2018", source_id: "wheat-rye-bread", confidence: "medium" },
|
|
51
|
+
{ name_en: "pasta", name_pt: "macarrão", aliases: ["pasta", "macarrão", "macarrao", "spaghetti", "massa", "noodles"], kg_co2e_per_kg: 1.0, source: "agribalyse", source_id: "9410", confidence: "high" },
|
|
52
|
+
{ name_en: "oats", name_pt: "aveia", aliases: ["oats", "aveia", "oatmeal", "rolled oats"], kg_co2e_per_kg: 1.6, source: "owid_poore_nemecek_2018", source_id: "oats", confidence: "medium" },
|
|
53
|
+
{ name_en: "couscous", name_pt: "cuscuz", aliases: ["couscous", "cuscuz"], kg_co2e_per_kg: 1.0, source: "agribalyse", source_id: "9510", confidence: "high" },
|
|
54
|
+
{ name_en: "tapioca", name_pt: "tapioca", aliases: ["tapioca", "goma de tapioca", "cassava starch"], kg_co2e_per_kg: 1.3, source: "owid_poore_nemecek_2018", source_id: "cassava-derivatives", confidence: "medium" },
|
|
55
|
+
// ---- Legumes (lowest in animal-product comparison) ----
|
|
56
|
+
{ name_en: "beans (dry)", name_pt: "feijão seco", aliases: ["beans", "feijão", "feijao", "feijão preto", "feijão carioca", "black beans", "pinto beans"], kg_co2e_per_kg: 0.9, source: "owid_poore_nemecek_2018", source_id: "beans-aggregate", confidence: "medium" },
|
|
57
|
+
{ name_en: "lentils", name_pt: "lentilhas", aliases: ["lentil", "lentils", "lentilha"], kg_co2e_per_kg: 0.9, source: "owid_poore_nemecek_2018", source_id: "pulses-aggregate", confidence: "medium" },
|
|
58
|
+
{ name_en: "chickpeas", name_pt: "grão-de-bico", aliases: ["chickpea", "chickpeas", "grão de bico", "grao de bico", "garbanzo"], kg_co2e_per_kg: 0.9, source: "owid_poore_nemecek_2018", source_id: "pulses-aggregate", confidence: "medium" },
|
|
59
|
+
{ name_en: "peas", name_pt: "ervilha", aliases: ["peas", "ervilha", "ervilhas"], kg_co2e_per_kg: 0.7, source: "owid_poore_nemecek_2018", source_id: "peas", confidence: "medium" },
|
|
60
|
+
{ name_en: "tofu", name_pt: "tofu", aliases: ["tofu", "queijo de soja"], kg_co2e_per_kg: 2.0, source: "owid_poore_nemecek_2018", source_id: "tofu", confidence: "medium" },
|
|
61
|
+
// ---- Vegetables ----
|
|
62
|
+
{ name_en: "tomato (open field)", name_pt: "tomate (campo aberto)", aliases: ["tomato", "tomate"], kg_co2e_per_kg: 0.4, source: "owid_poore_nemecek_2018", source_id: "tomatoes-field", confidence: "medium", note: "Greenhouse tomatoes are ~2.1 kg." },
|
|
63
|
+
{ name_en: "potato", name_pt: "batata", aliases: ["potato", "batata", "batata inglesa"], kg_co2e_per_kg: 0.5, source: "owid_poore_nemecek_2018", source_id: "potatoes", confidence: "medium" },
|
|
64
|
+
{ name_en: "sweet potato", name_pt: "batata doce", aliases: ["sweet potato", "batata doce", "batata-doce"], kg_co2e_per_kg: 0.5, source: "agribalyse", source_id: "20114", confidence: "high" },
|
|
65
|
+
{ name_en: "cassava", name_pt: "mandioca", aliases: ["cassava", "yuca", "mandioca", "macaxeira", "aipim"], kg_co2e_per_kg: 1.3, source: "owid_poore_nemecek_2018", source_id: "cassava", confidence: "medium" },
|
|
66
|
+
{ name_en: "carrot", name_pt: "cenoura", aliases: ["carrot", "cenoura"], kg_co2e_per_kg: 0.4, source: "owid_poore_nemecek_2018", source_id: "root-vegetables", confidence: "medium" },
|
|
67
|
+
{ name_en: "lettuce", name_pt: "alface", aliases: ["lettuce", "alface", "salad greens", "leaf salad"], kg_co2e_per_kg: 0.5, source: "owid_poore_nemecek_2018", source_id: "leafy-vegetables", confidence: "medium" },
|
|
68
|
+
{ name_en: "onion", name_pt: "cebola", aliases: ["onion", "cebola", "cebolas"], kg_co2e_per_kg: 0.3, source: "owid_poore_nemecek_2018", source_id: "onions-leeks", confidence: "medium" },
|
|
69
|
+
{ name_en: "broccoli", name_pt: "brócolis", aliases: ["broccoli", "brócolis", "brocolis", "couve-flor", "cauliflower"], kg_co2e_per_kg: 0.5, source: "agribalyse", source_id: "20053", confidence: "high" },
|
|
70
|
+
{ name_en: "pumpkin", name_pt: "abóbora", aliases: ["pumpkin", "abóbora", "abobora", "jerimum", "squash"], kg_co2e_per_kg: 0.5, source: "agribalyse", source_id: "20177", confidence: "high" },
|
|
71
|
+
// ---- Fruits ----
|
|
72
|
+
{ name_en: "banana", name_pt: "banana", aliases: ["banana", "bananas", "banana prata", "banana nanica"], kg_co2e_per_kg: 0.7, source: "owid_poore_nemecek_2018", source_id: "bananas", confidence: "medium" },
|
|
73
|
+
{ name_en: "apple", name_pt: "maçã", aliases: ["apple", "apples", "maçã", "maca"], kg_co2e_per_kg: 0.4, source: "owid_poore_nemecek_2018", source_id: "apples", confidence: "medium" },
|
|
74
|
+
{ name_en: "orange", name_pt: "laranja", aliases: ["orange", "oranges", "laranja", "laranja pera"], kg_co2e_per_kg: 0.3, source: "owid_poore_nemecek_2018", source_id: "citrus", confidence: "medium" },
|
|
75
|
+
{ name_en: "berries", name_pt: "frutas vermelhas", aliases: ["berry", "berries", "morango", "strawberry", "blueberry", "framboesa", "amora", "mirtilo"], kg_co2e_per_kg: 1.5, source: "owid_poore_nemecek_2018", source_id: "berries-grapes", confidence: "medium" },
|
|
76
|
+
{ name_en: "avocado", name_pt: "abacate", aliases: ["avocado", "abacate"], kg_co2e_per_kg: 2.5, source: "owid_poore_nemecek_2018", source_id: "avocado", confidence: "medium" },
|
|
77
|
+
{ name_en: "mango", name_pt: "manga", aliases: ["mango", "manga"], kg_co2e_per_kg: 0.6, source: "owid_poore_nemecek_2018", source_id: "tropical-fruit-aggregate", confidence: "medium" },
|
|
78
|
+
{ name_en: "pineapple", name_pt: "abacaxi", aliases: ["pineapple", "abacaxi", "ananás"], kg_co2e_per_kg: 1.7, source: "owid_poore_nemecek_2018", source_id: "tropical-shipped", confidence: "medium", note: "Air-shipped tropical fruit; ground-shipped is ~0.5 kg." },
|
|
79
|
+
{ name_en: "watermelon", name_pt: "melancia", aliases: ["watermelon", "melancia"], kg_co2e_per_kg: 0.3, source: "agribalyse", source_id: "13030", confidence: "high" },
|
|
80
|
+
{ name_en: "papaya", name_pt: "mamão", aliases: ["papaya", "mamão", "mamao"], kg_co2e_per_kg: 0.6, source: "owid_poore_nemecek_2018", source_id: "tropical-fruit-aggregate", confidence: "medium" },
|
|
81
|
+
{ name_en: "açaí", name_pt: "açaí", aliases: ["açaí", "acai", "açaí na tigela", "acai bowl"], kg_co2e_per_kg: 1.5, source: "single_study", source_id: "santos-2022-acai", confidence: "low", note: "Açaí carbon estimate is uncertain — single-study aggregate including transport from Pará." },
|
|
82
|
+
// ---- Fats & sweets ----
|
|
83
|
+
{ name_en: "olive oil", name_pt: "azeite de oliva", aliases: ["olive oil", "azeite", "azeite de oliva"], kg_co2e_per_kg: 5.5, source: "owid_poore_nemecek_2018", source_id: "olive-oil", confidence: "medium" },
|
|
84
|
+
{ name_en: "soybean oil", name_pt: "óleo de soja", aliases: ["soybean oil", "óleo de soja", "oleo de soja", "vegetable oil"], kg_co2e_per_kg: 6.3, source: "owid_poore_nemecek_2018", source_id: "soybean-oil", confidence: "medium" },
|
|
85
|
+
{ name_en: "sugar (cane)", name_pt: "açúcar de cana", aliases: ["sugar", "açúcar", "acucar", "açúcar refinado", "cane sugar"], kg_co2e_per_kg: 3.0, source: "owid_poore_nemecek_2018", source_id: "sugar-cane", confidence: "medium" },
|
|
86
|
+
{ name_en: "chocolate (dark)", name_pt: "chocolate amargo", aliases: ["dark chocolate", "chocolate", "chocolate amargo", "cocoa"], kg_co2e_per_kg: 19, source: "owid_poore_nemecek_2018", source_id: "dark-chocolate", confidence: "medium" },
|
|
87
|
+
{ name_en: "nuts (almonds)", name_pt: "amêndoas", aliases: ["almond", "almonds", "amêndoas", "amendoas", "nuts", "castanhas"], kg_co2e_per_kg: 2.3, source: "owid_poore_nemecek_2018", source_id: "nuts-aggregate", confidence: "medium" },
|
|
88
|
+
{ name_en: "peanuts", name_pt: "amendoim", aliases: ["peanut", "peanuts", "amendoim", "peanut butter", "pasta de amendoim"], kg_co2e_per_kg: 2.5, source: "owid_poore_nemecek_2018", source_id: "groundnuts", confidence: "medium" },
|
|
89
|
+
// ---- Drinks ----
|
|
90
|
+
{ name_en: "coffee (beans, brewed)", name_pt: "café", aliases: ["coffee", "café", "cafe", "cafezinho", "espresso", "café preto"], kg_co2e_per_kg: 17, source: "owid_poore_nemecek_2018", source_id: "coffee-beans", confidence: "medium", note: "Per kg of dry coffee beans. A typical 200 ml cup uses ~10–15 g." },
|
|
91
|
+
{ name_en: "orange juice", name_pt: "suco de laranja", aliases: ["orange juice", "suco de laranja"], kg_co2e_per_kg: 0.6, source: "agribalyse", source_id: "18066", confidence: "high" },
|
|
92
|
+
{ name_en: "wine", name_pt: "vinho", aliases: ["wine", "vinho", "red wine", "white wine"], kg_co2e_per_kg: 1.8, source: "owid_poore_nemecek_2018", source_id: "wine", confidence: "medium" },
|
|
93
|
+
{ name_en: "beer", name_pt: "cerveja", aliases: ["beer", "cerveja"], kg_co2e_per_kg: 0.8, source: "owid_poore_nemecek_2018", source_id: "beer", confidence: "medium" },
|
|
94
|
+
// ---- Brazilian dishes ----
|
|
95
|
+
{ name_en: "feijoada", name_pt: "feijoada", aliases: ["feijoada", "feijoada completa"], kg_co2e_per_kg: 8.5, source: "single_study", source_id: "feijoada-recipe-mean", confidence: "low", note: "Composite of beans + pork + sausage + beef trim; recipe-level estimate." },
|
|
96
|
+
{ name_en: "pão de queijo", name_pt: "pão de queijo", aliases: ["pão de queijo", "pao de queijo", "cheese bread"], kg_co2e_per_kg: 5.0, source: "single_study", source_id: "pao-de-queijo-recipe", confidence: "low", note: "Composite of cheese + cassava starch + eggs; recipe-level estimate." },
|
|
97
|
+
{ name_en: "coxinha", name_pt: "coxinha", aliases: ["coxinha", "coxinha de frango"], kg_co2e_per_kg: 3.5, source: "single_study", source_id: "coxinha-recipe", confidence: "low", note: "Composite chicken + wheat dough + frying oil." },
|
|
98
|
+
{ name_en: "brigadeiro", name_pt: "brigadeiro", aliases: ["brigadeiro", "negrinho"], kg_co2e_per_kg: 8.0, source: "single_study", source_id: "brigadeiro-recipe", confidence: "low", note: "Dominated by condensed milk + chocolate." },
|
|
99
|
+
// ---- Expanded dairy ----
|
|
100
|
+
{ name_en: "mozzarella", name_pt: "mussarela", aliases: ["mozzarella", "mussarela", "muzzarela"], kg_co2e_per_kg: 8.6, source: "agribalyse", source_id: "21563", confidence: "high" },
|
|
101
|
+
{ name_en: "parmesan", name_pt: "parmesão", aliases: ["parmesan", "parmesão", "parmesao"], kg_co2e_per_kg: 13.5, source: "agribalyse", source_id: "21564", confidence: "high" },
|
|
102
|
+
{ name_en: "cream cheese", name_pt: "requeijão", aliases: ["cream cheese", "requeijão", "requeijao", "catupiry"], kg_co2e_per_kg: 11.0, source: "single_study", source_id: "cream-cheese-mean", confidence: "low" },
|
|
103
|
+
{ name_en: "condensed milk", name_pt: "leite condensado", aliases: ["condensed milk", "leite condensado", "leite moça"], kg_co2e_per_kg: 4.8, source: "agribalyse", source_id: "19015", confidence: "high" },
|
|
104
|
+
{ name_en: "cottage cheese", name_pt: "queijo cottage", aliases: ["cottage cheese", "queijo cottage"], kg_co2e_per_kg: 4.5, source: "owid_poore_nemecek_2018", source_id: "fresh-cheese", confidence: "medium" },
|
|
105
|
+
{ name_en: "ice cream", name_pt: "sorvete", aliases: ["ice cream", "sorvete", "gelato"], kg_co2e_per_kg: 6.5, source: "agribalyse", source_id: "19030", confidence: "high" },
|
|
106
|
+
// ---- Expanded meats ----
|
|
107
|
+
{ name_en: "turkey", name_pt: "peru", aliases: ["turkey", "peru", "turkey breast", "peito de peru"], kg_co2e_per_kg: 5.4, source: "owid_poore_nemecek_2018", source_id: "poultry-meat", confidence: "medium" },
|
|
108
|
+
{ name_en: "duck", name_pt: "pato", aliases: ["duck", "pato"], kg_co2e_per_kg: 7.0, source: "single_study", source_id: "duck-mean", confidence: "low" },
|
|
109
|
+
{ name_en: "ham", name_pt: "presunto", aliases: ["ham", "presunto", "presunto cozido"], kg_co2e_per_kg: 7.6, source: "owid_poore_nemecek_2018", source_id: "pig-meat", confidence: "medium" },
|
|
110
|
+
{ name_en: "bacon", name_pt: "bacon", aliases: ["bacon"], kg_co2e_per_kg: 12.3, source: "agribalyse", source_id: "28102", confidence: "high" },
|
|
111
|
+
{ name_en: "sausage (pork)", name_pt: "linguiça", aliases: ["sausage", "linguiça", "linguica", "salsicha", "calabresa"], kg_co2e_per_kg: 7.9, source: "owid_poore_nemecek_2018", source_id: "pig-meat", confidence: "medium" },
|
|
112
|
+
{ name_en: "ground beef (lean)", name_pt: "carne moída magra", aliases: ["lean beef", "ground beef lean", "patinho moído"], kg_co2e_per_kg: 60, source: "owid_poore_nemecek_2018", source_id: "beef-beef-herd", confidence: "medium" },
|
|
113
|
+
// ---- Expanded fish ----
|
|
114
|
+
{ name_en: "salmon (farmed)", name_pt: "salmão de cativeiro", aliases: ["salmon", "salmão", "salmao", "filé de salmão"], kg_co2e_per_kg: 5.1, source: "agribalyse", source_id: "26020", confidence: "high" },
|
|
115
|
+
{ name_en: "salmon (wild)", name_pt: "salmão selvagem", aliases: ["wild salmon", "salmão selvagem"], kg_co2e_per_kg: 11.8, source: "single_study", source_id: "wild-salmon-mean", confidence: "low", note: "Wild salmon has higher emissions than farmed due to fuel-intensive trawling." },
|
|
116
|
+
{ name_en: "cod", name_pt: "bacalhau", aliases: ["cod", "bacalhau"], kg_co2e_per_kg: 6.5, source: "owid_poore_nemecek_2018", source_id: "fish-wild-trawl", confidence: "medium" },
|
|
117
|
+
{ name_en: "tilapia", name_pt: "tilápia", aliases: ["tilapia", "tilápia"], kg_co2e_per_kg: 4.0, source: "owid_poore_nemecek_2018", source_id: "fish-farmed-warmwater", confidence: "medium" },
|
|
118
|
+
{ name_en: "mackerel", name_pt: "cavala", aliases: ["mackerel", "cavala"], kg_co2e_per_kg: 2.5, source: "owid_poore_nemecek_2018", source_id: "fish-wild-pelagic", confidence: "medium" },
|
|
119
|
+
// ---- Expanded vegetables ----
|
|
120
|
+
{ name_en: "spinach", name_pt: "espinafre", aliases: ["spinach", "espinafre"], kg_co2e_per_kg: 0.5, source: "owid_poore_nemecek_2018", source_id: "leafy-vegetables", confidence: "medium" },
|
|
121
|
+
{ name_en: "kale", name_pt: "couve", aliases: ["kale", "couve", "couve manteiga", "couve refogada"], kg_co2e_per_kg: 0.5, source: "owid_poore_nemecek_2018", source_id: "leafy-vegetables", confidence: "medium" },
|
|
122
|
+
{ name_en: "bell pepper", name_pt: "pimentão", aliases: ["bell pepper", "pimentão", "pimentao"], kg_co2e_per_kg: 1.4, source: "agribalyse", source_id: "20034", confidence: "high" },
|
|
123
|
+
{ name_en: "cucumber", name_pt: "pepino", aliases: ["cucumber", "pepino"], kg_co2e_per_kg: 0.5, source: "agribalyse", source_id: "20070", confidence: "high" },
|
|
124
|
+
{ name_en: "zucchini", name_pt: "abobrinha", aliases: ["zucchini", "abobrinha", "courgette"], kg_co2e_per_kg: 0.4, source: "agribalyse", source_id: "20011", confidence: "high" },
|
|
125
|
+
{ name_en: "eggplant", name_pt: "berinjela", aliases: ["eggplant", "berinjela", "aubergine"], kg_co2e_per_kg: 1.4, source: "agribalyse", source_id: "20044", confidence: "high" },
|
|
126
|
+
{ name_en: "mushrooms", name_pt: "cogumelos", aliases: ["mushroom", "mushrooms", "cogumelo", "cogumelos", "champignon"], kg_co2e_per_kg: 1.7, source: "agribalyse", source_id: "20082", confidence: "high" },
|
|
127
|
+
{ name_en: "asparagus", name_pt: "aspargos", aliases: ["asparagus", "aspargos"], kg_co2e_per_kg: 1.2, source: "agribalyse", source_id: "20003", confidence: "high" },
|
|
128
|
+
{ name_en: "beetroot", name_pt: "beterraba", aliases: ["beetroot", "beet", "beterraba"], kg_co2e_per_kg: 0.4, source: "owid_poore_nemecek_2018", source_id: "root-vegetables", confidence: "medium" },
|
|
129
|
+
{ name_en: "corn (sweet)", name_pt: "milho doce", aliases: ["corn", "milho", "milho doce", "sweet corn"], kg_co2e_per_kg: 0.7, source: "agribalyse", source_id: "20066", confidence: "high" },
|
|
130
|
+
// ---- Expanded fruits ----
|
|
131
|
+
{ name_en: "grapes", name_pt: "uva", aliases: ["grape", "grapes", "uva", "uvas"], kg_co2e_per_kg: 1.1, source: "owid_poore_nemecek_2018", source_id: "berries-grapes", confidence: "medium" },
|
|
132
|
+
{ name_en: "pear", name_pt: "pera", aliases: ["pear", "pera"], kg_co2e_per_kg: 0.4, source: "agribalyse", source_id: "13059", confidence: "high" },
|
|
133
|
+
{ name_en: "melon", name_pt: "melão", aliases: ["melon", "melão", "melao", "cantaloupe"], kg_co2e_per_kg: 0.4, source: "agribalyse", source_id: "13050", confidence: "high" },
|
|
134
|
+
{ name_en: "peach", name_pt: "pêssego", aliases: ["peach", "pêssego", "pessego"], kg_co2e_per_kg: 0.5, source: "agribalyse", source_id: "13063", confidence: "high" },
|
|
135
|
+
{ name_en: "plum", name_pt: "ameixa", aliases: ["plum", "ameixa"], kg_co2e_per_kg: 0.4, source: "agribalyse", source_id: "13066", confidence: "high" },
|
|
136
|
+
{ name_en: "kiwi", name_pt: "kiwi", aliases: ["kiwi", "kiwifruit"], kg_co2e_per_kg: 1.4, source: "owid_poore_nemecek_2018", source_id: "tropical-shipped", confidence: "medium" },
|
|
137
|
+
{ name_en: "guava", name_pt: "goiaba", aliases: ["guava", "goiaba"], kg_co2e_per_kg: 0.6, source: "owid_poore_nemecek_2018", source_id: "tropical-fruit-aggregate", confidence: "medium" },
|
|
138
|
+
{ name_en: "passion fruit", name_pt: "maracujá", aliases: ["passion fruit", "maracujá", "maracuja"], kg_co2e_per_kg: 0.6, source: "owid_poore_nemecek_2018", source_id: "tropical-fruit-aggregate", confidence: "medium" },
|
|
139
|
+
{ name_en: "coconut", name_pt: "coco", aliases: ["coconut", "coco", "coconut milk", "leite de coco"], kg_co2e_per_kg: 1.0, source: "single_study", source_id: "coconut-mean", confidence: "low" },
|
|
140
|
+
{ name_en: "raisins", name_pt: "passas", aliases: ["raisin", "raisins", "uva passa", "passas"], kg_co2e_per_kg: 2.5, source: "single_study", source_id: "dried-fruit", confidence: "low", note: "Dried fruit concentrates the carbon (~10x by weight vs fresh)." },
|
|
141
|
+
// ---- Expanded grains ----
|
|
142
|
+
{ name_en: "quinoa", name_pt: "quinoa", aliases: ["quinoa", "quinua"], kg_co2e_per_kg: 1.5, source: "single_study", source_id: "quinoa-mean", confidence: "low" },
|
|
143
|
+
{ name_en: "barley", name_pt: "cevada", aliases: ["barley", "cevada"], kg_co2e_per_kg: 1.2, source: "owid_poore_nemecek_2018", source_id: "barley", confidence: "medium" },
|
|
144
|
+
{ name_en: "popcorn", name_pt: "pipoca", aliases: ["popcorn", "pipoca"], kg_co2e_per_kg: 1.4, source: "single_study", source_id: "popcorn-recipe", confidence: "low", note: "Per kg of popped corn, including small oil/butter add-on." },
|
|
145
|
+
{ name_en: "polenta", name_pt: "polenta", aliases: ["polenta", "fubá", "fuba"], kg_co2e_per_kg: 1.0, source: "agribalyse", source_id: "9425", confidence: "high" },
|
|
146
|
+
// ---- Nuts ----
|
|
147
|
+
{ name_en: "walnuts", name_pt: "nozes", aliases: ["walnut", "walnuts", "noz", "nozes"], kg_co2e_per_kg: 0.9, source: "owid_poore_nemecek_2018", source_id: "nuts-aggregate", confidence: "medium" },
|
|
148
|
+
{ name_en: "cashews", name_pt: "castanha de caju", aliases: ["cashew", "cashews", "castanha de caju", "caju nut"], kg_co2e_per_kg: 2.7, source: "single_study", source_id: "cashew-mean", confidence: "low" },
|
|
149
|
+
{ name_en: "brazil nuts", name_pt: "castanha do Pará", aliases: ["brazil nut", "brazil nuts", "castanha do pará", "castanha do para"], kg_co2e_per_kg: 1.1, source: "single_study", source_id: "brazil-nut-mean", confidence: "low" },
|
|
150
|
+
// ---- Plant proteins ----
|
|
151
|
+
{ name_en: "tempeh", name_pt: "tempeh", aliases: ["tempeh"], kg_co2e_per_kg: 2.0, source: "owid_poore_nemecek_2018", source_id: "tofu", confidence: "medium" },
|
|
152
|
+
{ name_en: "edamame", name_pt: "edamame", aliases: ["edamame", "soja verde"], kg_co2e_per_kg: 0.9, source: "owid_poore_nemecek_2018", source_id: "soybeans", confidence: "medium" },
|
|
153
|
+
{ name_en: "hummus", name_pt: "homus", aliases: ["hummus", "homus"], kg_co2e_per_kg: 1.1, source: "single_study", source_id: "hummus-recipe", confidence: "low" },
|
|
154
|
+
// ---- Processed / fast food ----
|
|
155
|
+
{ name_en: "pizza margherita", name_pt: "pizza margherita", aliases: ["pizza", "pizza margherita"], kg_co2e_per_kg: 4.5, source: "single_study", source_id: "pizza-margherita-recipe", confidence: "low", note: "Margherita; meat pizzas are ~6-9 kg." },
|
|
156
|
+
{ name_en: "hamburger", name_pt: "hambúrguer", aliases: ["hamburger", "hambúrguer", "burger", "x-burger"], kg_co2e_per_kg: 13.0, source: "single_study", source_id: "burger-recipe", confidence: "low", note: "Beef burger including bun + cheese; chicken burger ~3.5 kg." },
|
|
157
|
+
{ name_en: "fried chicken", name_pt: "frango frito", aliases: ["fried chicken", "frango frito"], kg_co2e_per_kg: 6.5, source: "single_study", source_id: "fried-chicken-recipe", confidence: "low" },
|
|
158
|
+
{ name_en: "french fries", name_pt: "batata frita", aliases: ["french fries", "fries", "batata frita"], kg_co2e_per_kg: 3.6, source: "agribalyse", source_id: "20109", confidence: "high" },
|
|
159
|
+
{ name_en: "biscuits", name_pt: "biscoitos", aliases: ["biscuit", "biscuits", "cookie", "cookies", "bolacha", "biscoito"], kg_co2e_per_kg: 2.5, source: "agribalyse", source_id: "9301", confidence: "high" },
|
|
160
|
+
// ---- Drinks expanded ----
|
|
161
|
+
{ name_en: "coca-cola / sugar soda", name_pt: "refrigerante", aliases: ["coca cola", "coca-cola", "refrigerante", "soda", "guaraná"], kg_co2e_per_kg: 0.5, source: "single_study", source_id: "soda-mean", confidence: "low" },
|
|
162
|
+
{ name_en: "coconut water", name_pt: "água de coco", aliases: ["coconut water", "água de coco", "agua de coco"], kg_co2e_per_kg: 0.7, source: "single_study", source_id: "coconut-water", confidence: "low" },
|
|
163
|
+
{ name_en: "tea (black)", name_pt: "chá preto", aliases: ["tea", "black tea", "chá preto", "cha preto"], kg_co2e_per_kg: 6.0, source: "single_study", source_id: "tea-dry", confidence: "low", note: "Per kg of dry tea leaves; a 200ml cup uses ~2-3g." },
|
|
164
|
+
{ name_en: "tea (green)", name_pt: "chá verde", aliases: ["green tea", "chá verde", "cha verde", "matcha"], kg_co2e_per_kg: 6.0, source: "single_study", source_id: "tea-dry", confidence: "low" },
|
|
165
|
+
// ---- Other staples ----
|
|
166
|
+
{ name_en: "honey", name_pt: "mel", aliases: ["honey", "mel"], kg_co2e_per_kg: 1.2, source: "single_study", source_id: "honey-mean", confidence: "low" },
|
|
167
|
+
{ name_en: "salt", name_pt: "sal", aliases: ["salt", "sal", "table salt", "sea salt"], kg_co2e_per_kg: 0.3, source: "single_study", source_id: "salt-mean", confidence: "low" },
|
|
168
|
+
];
|
|
169
|
+
//# sourceMappingURL=carbon-footprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carbon-footprint.js","sourceRoot":"","sources":["../../src/data/carbon-footprint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { NutrientMap } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Curated subset of the TACO 4 Brazilian food composition table.
|
|
4
|
+
*
|
|
5
|
+
* Source: NEPA / UNICAMP — Tabela Brasileira de Composição de Alimentos, 4ª edição
|
|
6
|
+
* Publication: https://www.nepa.unicamp.br/tabela-brasileira-de-composicao-de-alimentos-4a-edicao/
|
|
7
|
+
*
|
|
8
|
+
* v1 ships a curated subset of the most commonly logged Brazilian foods from
|
|
9
|
+
* the public TACO 4 publication. Future PRs will replace this with a build
|
|
10
|
+
* script that ingests the full Excel (~597 foods) once UNICAMP has confirmed
|
|
11
|
+
* a redistribution license. Each entry below cites the TACO row id so the
|
|
12
|
+
* upgrade path is traceable.
|
|
13
|
+
*
|
|
14
|
+
* Attribution: Tabela TACO is © UNICAMP / NEPA. Values are reproduced here
|
|
15
|
+
* with attribution for non-commercial reference use; nothing here implies
|
|
16
|
+
* endorsement by NEPA or UNICAMP. If you maintain TACO and want a change
|
|
17
|
+
* to this attribution or scope, please open an issue.
|
|
18
|
+
*/
|
|
19
|
+
export interface TacoFood {
|
|
20
|
+
/** TACO 4 row id from the published Excel. */
|
|
21
|
+
taco_id: number;
|
|
22
|
+
/** Canonical pt-BR name as published. */
|
|
23
|
+
name_pt: string;
|
|
24
|
+
/** English name for cross-locale matching. */
|
|
25
|
+
name_en: string;
|
|
26
|
+
/** Category from the TACO publication. */
|
|
27
|
+
category: TacoCategory;
|
|
28
|
+
nutrients_per_100g: NutrientMap;
|
|
29
|
+
/** Most common single-serving size for Brazilian eating. */
|
|
30
|
+
common_serving: {
|
|
31
|
+
label_pt: string;
|
|
32
|
+
grams: number;
|
|
33
|
+
};
|
|
34
|
+
/** Aliases for name-matching (case-insensitive, diacritic-insensitive). */
|
|
35
|
+
aliases: string[];
|
|
36
|
+
}
|
|
37
|
+
export type TacoCategory = "cereais_e_derivados" | "leguminosas_e_derivados" | "verduras_e_legumes" | "frutas_e_derivados" | "carnes_e_derivados" | "pescados" | "ovos_e_derivados" | "leite_e_derivados" | "bebidas" | "alimentos_industrializados";
|
|
38
|
+
export declare const TACO_LICENSE: {
|
|
39
|
+
readonly name: "TACO 4 — Tabela Brasileira de Composição de Alimentos (UNICAMP/NEPA)";
|
|
40
|
+
readonly attribution: "Composição nutricional reproduzida com atribuição da Tabela TACO 4ª edição (NEPA/UNICAMP). Reference: https://www.nepa.unicamp.br/tabela-brasileira-de-composicao-de-alimentos-4a-edicao/";
|
|
41
|
+
readonly share_alike: false;
|
|
42
|
+
readonly url: "https://www.nepa.unicamp.br/tabela-brasileira-de-composicao-de-alimentos-4a-edicao/";
|
|
43
|
+
};
|
|
44
|
+
export declare const TACO_FOODS: readonly TacoFood[];
|