cooking-temperature 1.0.2 → 1.0.4
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 +296 -35
- package/dist/icons.d.mts +5 -0
- package/dist/icons.d.ts +5 -0
- package/dist/icons.js +102 -0
- package/dist/icons.js.map +1 -0
- package/dist/icons.mjs +75 -0
- package/dist/icons.mjs.map +1 -0
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../data/poultry.ts","../data/beef.ts","../data/pork.ts","../data/seafood.ts","../data/eggs.ts","../data/vegetables.ts","../data/grains.ts","../index.ts"],"sourcesContent":["import type {CookingTemperatureEntry} from \"../types\"\n\nexport const poultry: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"chicken_breast_boneless\",\n\t\tname: \"Chicken Breast (Boneless, Skinless)\",\n\t\tcategory: \"poultry\",\n\t\taliases: [\"chicken breast\", \"boneless chicken\", \"chicken fillet\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 3,\n\n\t\t// Poultry doesn't have doneness levels - it's either safe or not\n\t\tdonenessLevels: undefined,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard (6-8 oz, 1 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 22, max: 26},\n\t\t\t\t\t\tnotes: \"Let rest 5 minutes before slicing\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400, // represents \"medium-high\"\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 8},\n\t\t\t\t\t\tnotes: \"Per side. Flatten to even thickness for best results.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 8},\n\t\t\t\t\t\tnotes: \"Per side. Direct heat.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"poach\",\n\t\t\t\t\t\tapplianceTemp: 170,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Liquid should be barely simmering, not boiling.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 18, max: 22},\n\t\t\t\t\t\tnotes: \"Flip halfway through.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"thick cut (10-12 oz, 1.5 inches)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 26, max: 32},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t\tnotes: \"Per side. Consider finishing in oven.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Juices run clear, not pink\",\n\t\t\t\"Flesh is opaque white throughout\",\n\t\t\t\"No pink remaining at thickest part\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"America's Test Kitchen\"],\n\t},\n\n\t{\n\t\tid: \"chicken_thigh_boneless\",\n\t\tname: \"Chicken Thigh (Boneless)\",\n\t\tcategory: \"poultry\",\n\t\taliases: [\"boneless thigh\", \"chicken thigh meat\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 3,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard (4-6 oz)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 25},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 7},\n\t\t\t\t\t\tnotes: \"Per side. Start skin-side down if skin-on.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 7},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Internal temp reaches 165°F\",\n\t\t\t\"Thighs are more forgiving - can go to 175-180°F for better texture\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const beef: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"beef_steak_ribeye\",\n\t\tname: \"Ribeye Steak\",\n\t\tcategory: \"beef\",\n\t\taliases: [\"rib eye\", \"rib-eye\", \"delmonico\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 3,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"rare\",\n\t\t\t\tinternalTemp: 125,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Cool red center\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium_rare\",\n\t\t\t\tinternalTemp: 135,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Warm red center\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Warm pink center\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium_well\",\n\t\t\t\tinternalTemp: 150,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Slightly pink center\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"well_done\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"No pink\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 inch thick\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 500, // high heat\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side for medium-rare. Add 1 min per side for each doneness level.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side for medium-rare. Direct heat.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"broil\",\n\t\t\t\t\t\tapplianceTemp: 500,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side for medium-rare. 4 inches from heat source.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"1.5 inches thick\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 500,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side for medium-rare. Finish in 400°F oven for 5-7 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 6},\n\t\t\t\t\t\tnotes: \"Per side for medium-rare.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Use finger test: touch thumb to index finger, feel base of thumb = rare\",\n\t\t\t\"Crust should be deep brown\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"Serious Eats\"],\n\t},\n\n\t{\n\t\tid: \"beef_ground\",\n\t\tname: \"Ground Beef\",\n\t\tcategory: \"beef\",\n\t\taliases: [\"hamburger\", \"minced beef\", \"beef mince\"],\n\n\t\t// Ground beef MUST reach 160°F - no exceptions\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\t// No doneness levels - ground meat must be cooked through\n\t\tdonenessLevels: undefined,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"burger patty (4 oz, 3/4 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side. Do not press down on patty.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side. Direct heat.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"No pink remaining in center\",\n\t\t\t\"Juices run clear\",\n\t\t\t\"Internal temp must reach 160°F - color alone is not reliable\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const pork: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"pork_chop_bone_in\",\n\t\tname: \"Pork Chop (Bone-In)\",\n\t\tcategory: \"pork\",\n\t\taliases: [\n\t\t\t\"bone-in pork chop\",\n\t\t\t\"pork loin chop\",\n\t\t\t\"center cut pork chop\",\n\t\t],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 3,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Slightly pink center, juicy (USDA recommended)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"well_done\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"No pink, drier texture\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard (1 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side. Let come to room temp before cooking.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Sear first for best crust, then finish in oven.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side. Direct heat.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 12, max: 15},\n\t\t\t\t\t\tnotes: \"Flip halfway through.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"thick cut (1.5 inches)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 6},\n\t\t\t\t\t\tnotes: \"Per side. Finish in 400°F oven for 8-10 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 25},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 8},\n\t\t\t\t\t\tnotes: \"Per side. Move to indirect heat if browning too fast.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Juices run clear\",\n\t\t\t\"Slight pink in center is safe and desirable\",\n\t\t\t\"Firm to touch but not hard\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"National Pork Board\"],\n\t},\n\n\t{\n\t\tid: \"pork_chop_boneless\",\n\t\tname: \"Pork Chop (Boneless)\",\n\t\tcategory: \"pork\",\n\t\taliases: [\"boneless pork chop\", \"pork cutlet\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 3,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Slightly pink center, juicy\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"well_done\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"No pink\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard (3/4 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 12, max: 15},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 12},\n\t\t\t\t\t\tnotes: \"Flip halfway.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"thick cut (1 inch)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 18},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Juices run clear\",\n\t\t\t\"Internal temp is most reliable indicator\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\"],\n\t},\n\n\t{\n\t\tid: \"pork_tenderloin\",\n\t\tname: \"Pork Tenderloin\",\n\t\tcategory: \"pork\",\n\t\taliases: [\"pork tender\", \"pork fillet\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 5,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Slightly pink center, very juicy\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium_well\",\n\t\t\t\tinternalTemp: 150,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Barely pink, still moist\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"whole tenderloin (1-1.5 lbs)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 25},\n\t\t\t\t\t\tnotes: \"Sear all sides first, then roast.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Rotate every 5 minutes for even cooking. Use indirect heat.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 18, max: 22},\n\t\t\t\t\t\tnotes: \"Turn halfway through.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Firm when pressed\",\n\t\t\t\"Slightly pink center is ideal\",\n\t\t\t\"Let rest before slicing - very important for tenderloin\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"National Pork Board\"],\n\t},\n\n\t{\n\t\tid: \"ground_pork\",\n\t\tname: \"Ground Pork\",\n\t\tcategory: \"pork\",\n\t\taliases: [\"pork mince\", \"minced pork\"],\n\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"loose/crumbled (1 lb)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 12},\n\t\t\t\t\t\tnotes: \"Break into small pieces. Stir frequently.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"patty (4 oz, 3/4 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 6},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\"No pink remaining\", \"Juices run clear\"],\n\n\t\tsources: [\"USDA FSIS\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const seafood: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"salmon_fillet\",\n\t\tname: \"Salmon Fillet\",\n\t\tcategory: \"seafood_fish\",\n\t\taliases: [\n\t\t\t\"salmon\",\n\t\t\t\"atlantic salmon\",\n\t\t\t\"sockeye salmon\",\n\t\t\t\"salmon steak\",\n\t\t],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 2,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium_rare\",\n\t\t\t\tinternalTemp: 120,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Translucent center, very moist\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 130,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Slightly translucent center, moist\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"safe_minimum\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Fully opaque, flakes easily\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard fillet (6 oz, 1 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 12, max: 15},\n\t\t\t\t\t\tnotes: \"Skin-side down on parchment. No flipping needed.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Skin-side down first for 3-4 min, flip for 1-2 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side. Oil grates well to prevent sticking.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"broil\",\n\t\t\t\t\t\tapplianceTemp: 500,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t\tnotes: \"6 inches from heat source. No flipping needed.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"poach\",\n\t\t\t\t\t\tapplianceTemp: 170,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 15},\n\t\t\t\t\t\tnotes: \"Liquid should be barely simmering.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 380,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 7, max: 10},\n\t\t\t\t\t\tnotes: \"No flipping needed.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"thick cut (8 oz, 1.5 inches)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 18},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Skin-side first, then flip. May need to finish in oven.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Flesh turns from translucent to opaque\",\n\t\t\t\"Flakes easily with fork\",\n\t\t\t\"White albumin proteins appear on surface (normal)\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"Serious Eats\"],\n\t},\n\n\t{\n\t\tid: \"shrimp\",\n\t\tname: \"Shrimp\",\n\t\tcategory: \"seafood_shellfish\",\n\t\taliases: [\"prawns\", \"large shrimp\", \"jumbo shrimp\", \"tiger shrimp\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"medium (41-50 count per lb)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 1, max: 2},\n\t\t\t\t\t\tnotes: \"Per side. Do not overcrowd pan.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 3},\n\t\t\t\t\t\tnotes: \"Add to boiling water, remove when pink and opaque.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 3},\n\t\t\t\t\t\tnotes: \"Per side. Use skewers to prevent falling through grates.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 6},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"large (31-40 count per lb)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 3},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 3},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"jumbo (21-25 count per lb)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 3},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Turns from grey/translucent to pink and opaque\",\n\t\t\t\"Curls into a loose C shape (tight curl = overcooked)\",\n\t\t\t\"Flesh is firm but not rubbery\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"America's Test Kitchen\"],\n\t},\n\n\t{\n\t\tid: \"cod_fillet\",\n\t\tname: \"Cod Fillet\",\n\t\tcategory: \"seafood_fish\",\n\t\taliases: [\"cod\", \"atlantic cod\", \"pacific cod\", \"white fish\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 2,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard fillet (6 oz, 1 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 12},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side. Cod is delicate - use a fish spatula.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"poach\",\n\t\t\t\t\t\tapplianceTemp: 170,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Flesh turns opaque white\",\n\t\t\t\"Flakes easily with fork\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const eggs: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"egg_fried\",\n\t\tname: \"Fried Egg\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"sunny side up\", \"over easy\", \"over medium\", \"over hard\"],\n\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"rare\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Runny yolk, barely set white (sunny side up)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium_rare\",\n\t\t\t\tinternalTemp: 150,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Runny yolk, fully set white (over easy)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 155,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Jammy yolk, set white (over medium)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"safe_minimum\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Fully set yolk and white (over hard)\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"single egg\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 325,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 4},\n\t\t\t\t\t\tnotes: \"Low-medium heat. Sunny side up: 2-3 min. Over easy: flip at 2 min, cook 30 sec more.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Sunny side up: white is set, yolk jiggles\",\n\t\t\t\"Over easy: white fully set on both sides, yolk runny\",\n\t\t\t\"Over medium: yolk slightly thickened but still flows\",\n\t\t\t\"Over hard: yolk fully set\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"American Egg Board\"],\n\t},\n\n\t{\n\t\tid: \"egg_scrambled\",\n\t\tname: \"Scrambled Eggs\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"scrambled egg\"],\n\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Soft, creamy curds with slight shine\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"safe_minimum\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Fully set, no wet spots\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"2-3 eggs\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 300,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 5},\n\t\t\t\t\t\tnotes: \"Low heat. Stir constantly with spatula. Remove from heat while slightly underdone - carryover cooking will finish them.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Soft curds: glossy, barely holds shape\",\n\t\t\t\"Medium curds: matte surface, holds shape\",\n\t\t\t\"Hard curds: dry appearance, firm texture\",\n\t\t],\n\n\t\tsources: [\"American Egg Board\"],\n\t},\n\n\t{\n\t\tid: \"egg_hard_boiled\",\n\t\tname: \"Hard Boiled Egg\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"hard cooked egg\", \"boiled egg\"],\n\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"large egg\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 12},\n\t\t\t\t\t\tnotes: \"Start in cold water, bring to boil, then cover and remove from heat. Let sit 10-12 min. Ice bath immediately.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 12, max: 14},\n\t\t\t\t\t\tnotes: \"Add eggs to steamer basket over boiling water. Easier to peel than boiled.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Yolk is fully set and pale yellow throughout\",\n\t\t\t\"No green ring around yolk (green = overcooked)\",\n\t\t],\n\n\t\tsources: [\"American Egg Board\"],\n\t},\n\n\t{\n\t\tid: \"egg_soft_boiled\",\n\t\tname: \"Soft Boiled Egg\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"soft cooked egg\", \"jammy egg\", \"ramen egg\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"rare\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Runny yolk, just-set white\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 150,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Jammy yolk, firm white\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"large egg\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 7},\n\t\t\t\t\t\tnotes: \"Lower eggs into already boiling water. 6 min = runny, 7 min = jammy. Ice bath immediately.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 8},\n\t\t\t\t\t\tnotes: \"6-7 min for runny, 8 min for jammy.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"White is fully set\",\n\t\t\t\"Yolk ranges from liquid to jammy depending on time\",\n\t\t],\n\n\t\tsources: [\"American Egg Board\", \"Serious Eats\"],\n\t},\n\n\t{\n\t\tid: \"egg_poached\",\n\t\tname: \"Poached Egg\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"poach egg\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium_rare\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Runny yolk, just-set white\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 155,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Jammy yolk, firm white\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"single egg\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"poach\",\n\t\t\t\t\t\tapplianceTemp: 180,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Water should be barely simmering with small bubbles. Add splash of vinegar. Swirl water before adding egg.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"White is fully opaque and set\",\n\t\t\t\"Yolk should jiggle when touched\",\n\t\t],\n\n\t\tsources: [\"American Egg Board\"],\n\t},\n\n\t{\n\t\tid: \"egg_omelette\",\n\t\tname: \"Omelette\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"omelet\", \"french omelette\"],\n\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"French style - creamy, barely set interior\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"safe_minimum\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"American style - fully set throughout\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"2-3 eggs\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 325,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 4},\n\t\t\t\t\t\tnotes: \"French style: constant movement, 90 seconds. American style: let set, fold at 2-3 min.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"French: pale yellow exterior, creamy interior\",\n\t\t\t\"American: light golden exterior, fully set\",\n\t\t],\n\n\t\tsources: [\"American Egg Board\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const vegetables: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"broccoli\",\n\t\tname: \"Broccoli\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"broccoli florets\", \"broccoli crowns\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"florets (bite-sized)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 7},\n\t\t\t\t\t\tnotes: \"Tender-crisp at 5 min, soft at 7 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 25},\n\t\t\t\t\t\tnotes: \"Toss with oil. Edges should be charred.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 8},\n\t\t\t\t\t\tnotes: \"High heat, don't stir too often. Let it char.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 5},\n\t\t\t\t\t\tnotes: \"Blanch in salted water, then ice bath to stop cooking.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t\tnotes: \"Toss with oil. Shake basket halfway.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Bright green color (overcooked = olive/army green)\",\n\t\t\t\"Fork tender but not mushy\",\n\t\t\t\"Stems should have slight resistance\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"asparagus\",\n\t\tname: \"Asparagus\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"asparagus spears\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard spears (trimmed)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 15},\n\t\t\t\t\t\tnotes: \"Thin spears: 10 min. Thick spears: 15 min. Single layer.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 10},\n\t\t\t\t\t\tnotes: \"Perpendicular to grates. Turn once.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 8},\n\t\t\t\t\t\tnotes: \"High heat, occasional turning.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 5},\n\t\t\t\t\t\tnotes: \"Stand upright in steamer if possible.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 4},\n\t\t\t\t\t\tnotes: \"Blanch briefly, ice bath immediately.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Bright green, tips intact\",\n\t\t\t\"Slight bend when lifted from middle\",\n\t\t\t\"Tender when pierced with knife\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"potato_russet\",\n\t\tname: \"Russet Potato\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"baking potato\", \"idaho potato\"],\n\n\t\tsafeMinimumTemp: 185,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"whole (medium, 8 oz)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 50, max: 60},\n\t\t\t\t\t\tnotes: \"Pierce with fork. Place directly on rack.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 30},\n\t\t\t\t\t\tnotes: \"Start in cold salted water. For mashed potatoes.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 40, max: 50},\n\t\t\t\t\t\tnotes: \"Pierce and rub with oil.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"cubed (1 inch)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 30, max: 40},\n\t\t\t\t\t\tnotes: \"Toss with oil, single layer. Flip halfway.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 15},\n\t\t\t\t\t\tnotes: \"Start in cold water for even cooking.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"For home fries. Don't crowd the pan.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Fork slides in easily with no resistance\",\n\t\t\t\"Internal temp reaches 185-210°F for fluffy texture\",\n\t\t],\n\n\t\tsources: [\"USDA\", \"Idaho Potato Commission\"],\n\t},\n\n\t{\n\t\tid: \"carrots\",\n\t\tname: \"Carrots\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"carrot\", \"baby carrots\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"sliced or baby carrots\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 25, max: 35},\n\t\t\t\t\t\tnotes: \"Toss with oil. Caramelization develops at edges.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 7, max: 10},\n\t\t\t\t\t\tnotes: \"Sliced: 7-8 min. Whole baby carrots: 10 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 10},\n\t\t\t\t\t\tnotes: \"Sliced: 5-7 min. Whole: 10 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 15},\n\t\t\t\t\t\tnotes: \"Add splash of water and cover to steam-sauté.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"whole (medium)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 35, max: 45},\n\t\t\t\t\t\tnotes: \"Halve lengthwise for faster cooking.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Fork tender\",\n\t\t\t\"Vibrant orange color\",\n\t\t\t\"Slight caramelization when roasted\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"green_beans\",\n\t\tname: \"Green Beans\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"string beans\", \"snap beans\", \"haricots verts\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"trimmed\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 7},\n\t\t\t\t\t\tnotes: \"Tender-crisp at 5 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 6},\n\t\t\t\t\t\tnotes: \"Blanch in well-salted water.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Toss with oil. Some charring is good.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t\tnotes: \"High heat, let them blister.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t\tnotes: \"Shake basket halfway.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Bright green color\",\n\t\t\t\"Crisp-tender texture\",\n\t\t\t\"Snaps when bent (not limp)\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"zucchini\",\n\t\tname: \"Zucchini\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"courgette\", \"summer squash\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"sliced (1/2 inch rounds or half-moons)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 6},\n\t\t\t\t\t\tnotes: \"High heat, single layer. Don't stir too much.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Single layer. Salt before roasting to draw out moisture.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side. Cut lengthwise for grill marks.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 12},\n\t\t\t\t\t\tnotes: \"Shake halfway.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Golden brown spots\",\n\t\t\t\"Tender but not mushy\",\n\t\t\t\"Should still have some structure\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"bell_pepper\",\n\t\tname: \"Bell Pepper\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"sweet pepper\", \"capsicum\", \"red pepper\", \"green pepper\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"sliced or diced\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 8},\n\t\t\t\t\t\tnotes: \"High heat for char, medium for soft.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 25},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 6},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"whole (for roasting/charring)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"broil\",\n\t\t\t\t\t\tapplianceTemp: 500,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Turn every 5 min until charred all over. Steam in bag to peel.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 500,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 15},\n\t\t\t\t\t\tnotes: \"Direct flame, turn until charred all over.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Softened but not collapsed\",\n\t\t\t\"Slight char marks when roasted\",\n\t\t\t\"Skin blisters and blackens when charring\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"onion\",\n\t\tname: \"Onion\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"yellow onion\", \"white onion\", \"red onion\", \"sweet onion\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"sliced or diced\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 350,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 12},\n\t\t\t\t\t\tnotes: \"Medium heat for softened. Stir occasionally.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 275,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 45, max: 60},\n\t\t\t\t\t\tnotes: \"Low and slow for caramelized. Stir every 10 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 25, max: 35},\n\t\t\t\t\t\tnotes: \"Toss with oil. Edges will char.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 12},\n\t\t\t\t\t\tnotes: \"Thick slices or wedges to prevent falling through.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Softened: translucent, no bite\",\n\t\t\t\"Caramelized: deep golden brown, sweet aroma\",\n\t\t\t\"Charred: blackened edges, sweet interior\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const grains: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"white_rice_long_grain\",\n\t\tname: \"White Rice (Long Grain)\",\n\t\tcategory: \"grain\",\n\t\taliases: [\n\t\t\t\"white rice\",\n\t\t\t\"long grain rice\",\n\t\t\t\"jasmine rice\",\n\t\t\t\"basmati rice\",\n\t\t],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 5,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry (serves 2-3)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 18},\n\t\t\t\t\t\tnotes: \"1:1.5 rice to water ratio. Bring to boil, reduce to low, cover. Rest 5 min off heat.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 350,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 25, max: 30},\n\t\t\t\t\t\tnotes: \"1:1.5 ratio. Boiling water, covered tightly with foil.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"All water absorbed\",\n\t\t\t\"Grains are separate, not mushy\",\n\t\t\t\"Small steam holes on surface\",\n\t\t],\n\n\t\tsources: [\"USA Rice Federation\"],\n\t},\n\n\t{\n\t\tid: \"brown_rice\",\n\t\tname: \"Brown Rice\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"whole grain rice\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 5,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 40, max: 50},\n\t\t\t\t\t\tnotes: \"1:2 rice to water ratio. Bring to boil, reduce to low, cover.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 60, max: 75},\n\t\t\t\t\t\tnotes: \"1:2.5 ratio. Boiling water, covered tightly.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Grains are tender but slightly chewy\",\n\t\t\t\"All water absorbed\",\n\t\t],\n\n\t\tsources: [\"USA Rice Federation\"],\n\t},\n\n\t{\n\t\tid: \"quinoa\",\n\t\tname: \"Quinoa\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"white quinoa\", \"red quinoa\", \"tricolor quinoa\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 5,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry (serves 3-4)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"1:2 quinoa to water ratio. Rinse well first. Bring to boil, reduce to low, cover.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Germ separates and forms a visible spiral\",\n\t\t\t\"Translucent with white ring\",\n\t\t\t\"Slight pop when bitten\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"pasta_dried\",\n\t\tname: \"Pasta (Dried)\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"spaghetti\", \"penne\", \"rigatoni\", \"fusilli\", \"farfalle\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard shapes (penne, fusilli)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 12},\n\t\t\t\t\t\tnotes: \"Well-salted water. Check 2 min before package time for al dente. Reserve pasta water.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"long pasta (spaghetti, linguine)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 11},\n\t\t\t\t\t\tnotes: \"Don't break pasta. Stir during first minute to prevent sticking.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"thin pasta (angel hair, capellini)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 5},\n\t\t\t\t\t\tnotes: \"Cooks very quickly. Watch carefully.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Al dente: firm bite, tiny white dot in center\",\n\t\t\t\"Fully cooked: no white center, softer texture\",\n\t\t\t\"Overcooked: mushy, falls apart\",\n\t\t],\n\n\t\tsources: [\"Barilla\"],\n\t},\n\n\t{\n\t\tid: \"oatmeal_rolled\",\n\t\tname: \"Rolled Oats\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"oatmeal\", \"old fashioned oats\", \"porridge oats\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 2,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1/2 cup dry (1 serving)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 7},\n\t\t\t\t\t\tnotes: \"1:2 oats to water/milk ratio. Bring liquid to boil, add oats, reduce heat.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Creamy consistency\",\n\t\t\t\"Oats are soft but not mushy\",\n\t\t\t\"Liquid is absorbed\",\n\t\t],\n\n\t\tsources: [\"Quaker Oats\"],\n\t},\n\n\t{\n\t\tid: \"couscous\",\n\t\tname: \"Couscous\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"moroccan couscous\", \"instant couscous\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 5,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 5},\n\t\t\t\t\t\tnotes: \"1:1.5 ratio. Pour boiling water over couscous, cover, let sit 5 min. Fluff with fork.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Fluffy, separate grains\",\n\t\t\t\"All liquid absorbed\",\n\t\t\t\"Light and airy texture\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"farro\",\n\t\tname: \"Farro\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"emmer wheat\", \"pearled farro\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry (pearled)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 30},\n\t\t\t\t\t\tnotes: \"Cook like pasta in plenty of salted water. Drain when tender.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry (whole grain)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 35, max: 45},\n\t\t\t\t\t\tnotes: \"Soak overnight to reduce cooking time. Cook in salted water.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Tender but chewy\",\n\t\t\t\"Slightly nutty texture\",\n\t\t\t\"Grains should not be mushy\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n]\n","import {poultry} from \"./data/poultry\"\nimport {beef} from \"./data/beef\"\nimport {pork} from \"./data/pork\"\nimport {seafood} from \"./data/seafood\"\nimport {eggs} from \"./data/eggs\"\nimport {vegetables} from \"./data/vegetables\"\nimport {grains} from \"./data/grains\"\nimport type {\n\tCookingTemperatureEntry,\n\tCookingMethod,\n\tIngredientCategory,\n\tTemperatureUnit,\n\tDonenessLevel,\n} from \"./types\"\n\nconst ALL_ENTRIES: CookingTemperatureEntry[] = [\n\t...poultry,\n\t...beef,\n\t...pork,\n\t...seafood,\n\t...eggs,\n\t...vegetables,\n\t...grains,\n]\n\n// Basic lookups\nexport const findByName = (\n\tquery: string\n): CookingTemperatureEntry | undefined => {\n\tconst normalizedQuery = query.toLowerCase().trim()\n\n\treturn ALL_ENTRIES.find(\n\t\tentry =>\n\t\t\tentry.name.toLowerCase().includes(normalizedQuery) ||\n\t\t\tentry.aliases.some(alias =>\n\t\t\t\talias.toLowerCase().includes(normalizedQuery)\n\t\t\t)\n\t)\n}\n\nexport const findById = (id: string): CookingTemperatureEntry | undefined => {\n\treturn ALL_ENTRIES.find(entry => entry.id === id)\n}\n\nexport const findByCategory = (\n\tcategory: IngredientCategory\n): CookingTemperatureEntry[] => {\n\treturn ALL_ENTRIES.filter(entry => entry.category === category)\n}\n\nexport const getAllEntries = (): CookingTemperatureEntry[] => {\n\treturn [...ALL_ENTRIES]\n}\n\nexport const getAllCategories = (): IngredientCategory[] => {\n\treturn [...new Set(ALL_ENTRIES.map(entry => entry.category))]\n}\n\nconst CATEGORY_NAMES: Record<IngredientCategory, string> = {\n\tpoultry: \"Poultry\",\n\tbeef: \"Beef\",\n\tpork: \"Pork\",\n\tlamb: \"Lamb\",\n\tseafood_fish: \"Fish\",\n\tseafood_shellfish: \"Shellfish\",\n\tegg: \"Eggs\",\n\tvegetable: \"Vegetables\",\n\tgrain: \"Grains\",\n\tlegume: \"Legumes\",\n}\n\nexport const getCategoryName = (category: IngredientCategory): string => {\n\treturn CATEGORY_NAMES[category]\n}\n\n// Temperature utilities\nexport const convertTemperature = (\n\ttemp: number,\n\tfrom: TemperatureUnit,\n\tto: TemperatureUnit\n): number => {\n\tif (from === to) return temp\n\treturn from === \"F\"\n\t\t? Math.round((temp - 32) * (5 / 9))\n\t\t: Math.round(temp * (9 / 5) + 32)\n}\n\nexport const getSafeMinimumTemp = (\n\tingredientId: string,\n\tunit: TemperatureUnit = \"F\"\n): {temp: number; restMinutes: number} | undefined => {\n\tconst entry = ALL_ENTRIES.find(e => e.id === ingredientId)\n\tif (!entry) return undefined\n\n\tconst temp =\n\t\tunit === entry.safeMinimumTempUnit\n\t\t\t? entry.safeMinimumTemp\n\t\t\t: convertTemperature(\n\t\t\t\t\tentry.safeMinimumTemp,\n\t\t\t\t\tentry.safeMinimumTempUnit,\n\t\t\t\t\tunit\n\t\t\t\t)\n\n\treturn {\n\t\ttemp,\n\t\trestMinutes: entry.restTimeMinutes ?? 0,\n\t}\n}\n\nexport const getDonenessTemp = (\n\tingredientId: string,\n\tdoneness: DonenessLevel,\n\tunit: TemperatureUnit = \"F\"\n): number | undefined => {\n\tconst entry = ALL_ENTRIES.find(e => e.id === ingredientId)\n\tif (!entry || !entry.donenessLevels) return undefined\n\n\tconst level = entry.donenessLevels.find(d => d.level === doneness)\n\tif (!level) return undefined\n\n\treturn unit === level.internalTempUnit\n\t\t? level.internalTemp\n\t\t: convertTemperature(level.internalTemp, level.internalTempUnit, unit)\n}\n\n// Cooking instruction lookups\nexport const getCookingMethods = (ingredientId: string): CookingMethod[] => {\n\tconst entry = ALL_ENTRIES.find(e => e.id === ingredientId)\n\tif (!entry) return []\n\n\tconst methods = new Set<CookingMethod>()\n\tentry.cookingInstructions.forEach(portion => {\n\t\tportion.methods.forEach(method => methods.add(method.method))\n\t})\n\n\treturn [...methods]\n}\n\nexport const getCookingInstruction = (\n\tingredientId: string,\n\tmethod: CookingMethod,\n\tportionHint?: string\n):\n\t| {\n\t\t\tapplianceTemp: number\n\t\t\tapplianceTempUnit: TemperatureUnit\n\t\t\ttimeMinutes: {min: number; max: number}\n\t\t\tnotes?: string\n\t\t\tportionDescription: string\n\t }\n\t| undefined => {\n\tconst entry = ALL_ENTRIES.find(e => e.id === ingredientId)\n\tif (!entry) return undefined\n\n\t// Find matching portion\n\tconst portion = portionHint\n\t\t? (entry.cookingInstructions.find(p =>\n\t\t\t\tp.portionDescription\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.includes(portionHint.toLowerCase())\n\t\t\t) ?? entry.cookingInstructions[0])\n\t\t: entry.cookingInstructions[0]\n\n\tif (!portion) return undefined\n\n\tconst instruction = portion.methods.find(m => m.method === method)\n\tif (!instruction) return undefined\n\n\treturn {\n\t\tapplianceTemp: instruction.applianceTemp,\n\t\tapplianceTempUnit: instruction.applianceTempUnit,\n\t\ttimeMinutes: instruction.timeMinutes,\n\t\tnotes: instruction.notes,\n\t\tportionDescription: portion.portionDescription,\n\t}\n}\n\n// Quick reference function - the main use case you described\nexport const getQuickReference = (\n\tquery: string,\n\tmethod?: CookingMethod,\n\tunit: TemperatureUnit = \"F\"\n):\n\t| {\n\t\t\tname: string\n\t\t\tsafeMinimumTemp: number\n\t\t\ttempUnit: TemperatureUnit\n\t\t\trestMinutes: number\n\t\t\tsuggestedMethod?: {\n\t\t\t\tmethod: CookingMethod\n\t\t\t\tapplianceTemp: number\n\t\t\t\ttimeMinutes: {min: number; max: number}\n\t\t\t\tnotes?: string\n\t\t\t}\n\t\t\tvisualIndicators: string[]\n\t }\n\t| undefined => {\n\tconst entry = findByName(query)\n\tif (!entry) return undefined\n\n\tconst safeTemp =\n\t\tunit === entry.safeMinimumTempUnit\n\t\t\t? entry.safeMinimumTemp\n\t\t\t: convertTemperature(\n\t\t\t\t\tentry.safeMinimumTemp,\n\t\t\t\t\tentry.safeMinimumTempUnit,\n\t\t\t\t\tunit\n\t\t\t\t)\n\n\tlet suggestedMethod:\n\t\t| {\n\t\t\t\tmethod: CookingMethod\n\t\t\t\tapplianceTemp: number\n\t\t\t\ttimeMinutes: {min: number; max: number}\n\t\t\t\tnotes?: string\n\t\t }\n\t\t| undefined\n\n\tif (method) {\n\t\tconst instruction = getCookingInstruction(entry.id, method)\n\t\tif (instruction) {\n\t\t\tsuggestedMethod = {\n\t\t\t\tmethod,\n\t\t\t\tapplianceTemp:\n\t\t\t\t\tunit === instruction.applianceTempUnit\n\t\t\t\t\t\t? instruction.applianceTemp\n\t\t\t\t\t\t: convertTemperature(\n\t\t\t\t\t\t\t\tinstruction.applianceTemp,\n\t\t\t\t\t\t\t\tinstruction.applianceTempUnit,\n\t\t\t\t\t\t\t\tunit\n\t\t\t\t\t\t\t),\n\t\t\t\ttimeMinutes: instruction.timeMinutes,\n\t\t\t\tnotes: instruction.notes,\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tname: entry.name,\n\t\tsafeMinimumTemp: safeTemp,\n\t\ttempUnit: unit,\n\t\trestMinutes: entry.restTimeMinutes ?? 0,\n\t\tsuggestedMethod,\n\t\tvisualIndicators: entry.visualIndicators ?? [],\n\t}\n}\n\n// Re-export types\nexport * from \"./types\"\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../data/poultry.ts","../data/beef.ts","../data/pork.ts","../data/seafood.ts","../data/eggs.ts","../data/vegetables.ts","../data/grains.ts","../index.ts"],"sourcesContent":["import type {CookingTemperatureEntry} from \"../types\"\n\nexport const poultry: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"chicken_breast_boneless\",\n\t\tname: \"Chicken Breast (Boneless, Skinless)\",\n\t\tcategory: \"poultry\",\n\t\taliases: [\"chicken breast\", \"boneless chicken\", \"chicken fillet\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 3,\n\n\t\t// Poultry doesn't have doneness levels - it's either safe or not\n\t\tdonenessLevels: undefined,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard (6-8 oz, 1 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 22, max: 26},\n\t\t\t\t\t\tnotes: \"Let rest 5 minutes before slicing\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400, // represents \"medium-high\"\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 8},\n\t\t\t\t\t\tnotes: \"Per side. Flatten to even thickness for best results.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 8},\n\t\t\t\t\t\tnotes: \"Per side. Direct heat.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"poach\",\n\t\t\t\t\t\tapplianceTemp: 170,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Liquid should be barely simmering, not boiling.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 18, max: 22},\n\t\t\t\t\t\tnotes: \"Flip halfway through.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"thick cut (10-12 oz, 1.5 inches)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 26, max: 32},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t\tnotes: \"Per side. Consider finishing in oven.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Juices run clear, not pink\",\n\t\t\t\"Flesh is opaque white throughout\",\n\t\t\t\"No pink remaining at thickest part\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"America's Test Kitchen\"],\n\t},\n\n\t{\n\t\tid: \"chicken_thigh_boneless\",\n\t\tname: \"Chicken Thigh (Boneless)\",\n\t\tcategory: \"poultry\",\n\t\taliases: [\"boneless thigh\", \"chicken thigh meat\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 3,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard (4-6 oz)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 25},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 7},\n\t\t\t\t\t\tnotes: \"Per side. Start skin-side down if skin-on.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 7},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Internal temp reaches 165°F\",\n\t\t\t\"Thighs are more forgiving - can go to 175-180°F for better texture\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const beef: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"beef_steak_ribeye\",\n\t\tname: \"Ribeye Steak\",\n\t\tcategory: \"beef\",\n\t\taliases: [\"rib eye\", \"rib-eye\", \"delmonico\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 3,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"rare\",\n\t\t\t\tinternalTemp: 125,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Cool red center\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium_rare\",\n\t\t\t\tinternalTemp: 135,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Warm red center\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Warm pink center\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium_well\",\n\t\t\t\tinternalTemp: 150,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Slightly pink center\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"well_done\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"No pink\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 inch thick\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 500, // high heat\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side for medium-rare. Add 1 min per side for each doneness level.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side for medium-rare. Direct heat.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"broil\",\n\t\t\t\t\t\tapplianceTemp: 500,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side for medium-rare. 4 inches from heat source.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"1.5 inches thick\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 500,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side for medium-rare. Finish in 400°F oven for 5-7 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 6},\n\t\t\t\t\t\tnotes: \"Per side for medium-rare.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Use finger test: touch thumb to index finger, feel base of thumb = rare\",\n\t\t\t\"Crust should be deep brown\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"Serious Eats\"],\n\t},\n\n\t{\n\t\tid: \"beef_ground\",\n\t\tname: \"Ground Beef\",\n\t\tcategory: \"beef\",\n\t\taliases: [\"hamburger\", \"minced beef\", \"beef mince\"],\n\n\t\t// Ground beef MUST reach 160°F - no exceptions\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\t// No doneness levels - ground meat must be cooked through\n\t\tdonenessLevels: undefined,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"burger patty (4 oz, 3/4 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side. Do not press down on patty.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side. Direct heat.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"No pink remaining in center\",\n\t\t\t\"Juices run clear\",\n\t\t\t\"Internal temp must reach 160°F - color alone is not reliable\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const pork: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"pork_chop_bone_in\",\n\t\tname: \"Pork Chop (Bone-In)\",\n\t\tcategory: \"pork\",\n\t\taliases: [\n\t\t\t\"bone-in pork chop\",\n\t\t\t\"pork loin chop\",\n\t\t\t\"center cut pork chop\",\n\t\t],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 3,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Slightly pink center, juicy (USDA recommended)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"well_done\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"No pink, drier texture\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard (1 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side. Let come to room temp before cooking.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Sear first for best crust, then finish in oven.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side. Direct heat.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 12, max: 15},\n\t\t\t\t\t\tnotes: \"Flip halfway through.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"thick cut (1.5 inches)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 6},\n\t\t\t\t\t\tnotes: \"Per side. Finish in 400°F oven for 8-10 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 25},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 8},\n\t\t\t\t\t\tnotes: \"Per side. Move to indirect heat if browning too fast.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Juices run clear\",\n\t\t\t\"Slight pink in center is safe and desirable\",\n\t\t\t\"Firm to touch but not hard\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"National Pork Board\"],\n\t},\n\n\t{\n\t\tid: \"pork_chop_boneless\",\n\t\tname: \"Pork Chop (Boneless)\",\n\t\tcategory: \"pork\",\n\t\taliases: [\"boneless pork chop\", \"pork cutlet\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 3,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Slightly pink center, juicy\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"well_done\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"No pink\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard (3/4 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 12, max: 15},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 12},\n\t\t\t\t\t\tnotes: \"Flip halfway.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"thick cut (1 inch)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 18},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Juices run clear\",\n\t\t\t\"Internal temp is most reliable indicator\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\"],\n\t},\n\n\t{\n\t\tid: \"pork_tenderloin\",\n\t\tname: \"Pork Tenderloin\",\n\t\tcategory: \"pork\",\n\t\taliases: [\"pork tender\", \"pork fillet\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 5,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Slightly pink center, very juicy\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium_well\",\n\t\t\t\tinternalTemp: 150,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Barely pink, still moist\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"whole tenderloin (1-1.5 lbs)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 25},\n\t\t\t\t\t\tnotes: \"Sear all sides first, then roast.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Rotate every 5 minutes for even cooking. Use indirect heat.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 18, max: 22},\n\t\t\t\t\t\tnotes: \"Turn halfway through.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Firm when pressed\",\n\t\t\t\"Slightly pink center is ideal\",\n\t\t\t\"Let rest before slicing - very important for tenderloin\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"National Pork Board\"],\n\t},\n\n\t{\n\t\tid: \"ground_pork\",\n\t\tname: \"Ground Pork\",\n\t\tcategory: \"pork\",\n\t\taliases: [\"pork mince\", \"minced pork\"],\n\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"loose/crumbled (1 lb)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 12},\n\t\t\t\t\t\tnotes: \"Break into small pieces. Stir frequently.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"patty (4 oz, 3/4 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 6},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\"No pink remaining\", \"Juices run clear\"],\n\n\t\tsources: [\"USDA FSIS\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const seafood: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"salmon_fillet\",\n\t\tname: \"Salmon Fillet\",\n\t\tcategory: \"seafood_fish\",\n\t\taliases: [\n\t\t\t\"salmon\",\n\t\t\t\"atlantic salmon\",\n\t\t\t\"sockeye salmon\",\n\t\t\t\"salmon steak\",\n\t\t],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 2,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium_rare\",\n\t\t\t\tinternalTemp: 120,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Translucent center, very moist\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 130,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Slightly translucent center, moist\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"safe_minimum\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Fully opaque, flakes easily\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard fillet (6 oz, 1 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 12, max: 15},\n\t\t\t\t\t\tnotes: \"Skin-side down on parchment. No flipping needed.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Skin-side down first for 3-4 min, flip for 1-2 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side. Oil grates well to prevent sticking.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"broil\",\n\t\t\t\t\t\tapplianceTemp: 500,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t\tnotes: \"6 inches from heat source. No flipping needed.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"poach\",\n\t\t\t\t\t\tapplianceTemp: 170,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 15},\n\t\t\t\t\t\tnotes: \"Liquid should be barely simmering.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 380,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 7, max: 10},\n\t\t\t\t\t\tnotes: \"No flipping needed.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"thick cut (8 oz, 1.5 inches)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 18},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t\tnotes: \"Skin-side first, then flip. May need to finish in oven.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Flesh turns from translucent to opaque\",\n\t\t\t\"Flakes easily with fork\",\n\t\t\t\"White albumin proteins appear on surface (normal)\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"Serious Eats\"],\n\t},\n\n\t{\n\t\tid: \"shrimp\",\n\t\tname: \"Shrimp\",\n\t\tcategory: \"seafood_shellfish\",\n\t\taliases: [\"prawns\", \"large shrimp\", \"jumbo shrimp\", \"tiger shrimp\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"medium (41-50 count per lb)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 1, max: 2},\n\t\t\t\t\t\tnotes: \"Per side. Do not overcrowd pan.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 3},\n\t\t\t\t\t\tnotes: \"Add to boiling water, remove when pink and opaque.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 3},\n\t\t\t\t\t\tnotes: \"Per side. Use skewers to prevent falling through grates.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 6},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"large (31-40 count per lb)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 3},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 3},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"jumbo (21-25 count per lb)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 3},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 5},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Turns from grey/translucent to pink and opaque\",\n\t\t\t\"Curls into a loose C shape (tight curl = overcooked)\",\n\t\t\t\"Flesh is firm but not rubbery\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"America's Test Kitchen\"],\n\t},\n\n\t{\n\t\tid: \"cod_fillet\",\n\t\tname: \"Cod Fillet\",\n\t\tcategory: \"seafood_fish\",\n\t\taliases: [\"cod\", \"atlantic cod\", \"pacific cod\", \"white fish\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 2,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard fillet (6 oz, 1 inch thick)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 12},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side. Cod is delicate - use a fish spatula.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"poach\",\n\t\t\t\t\t\tapplianceTemp: 170,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Flesh turns opaque white\",\n\t\t\t\"Flakes easily with fork\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const eggs: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"egg_fried\",\n\t\tname: \"Fried Egg\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"sunny side up\", \"over easy\", \"over medium\", \"over hard\"],\n\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"rare\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Runny yolk, barely set white (sunny side up)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium_rare\",\n\t\t\t\tinternalTemp: 150,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Runny yolk, fully set white (over easy)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 155,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Jammy yolk, set white (over medium)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"safe_minimum\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Fully set yolk and white (over hard)\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"single egg\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 325,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 4},\n\t\t\t\t\t\tnotes: \"Low-medium heat. Sunny side up: 2-3 min. Over easy: flip at 2 min, cook 30 sec more.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Sunny side up: white is set, yolk jiggles\",\n\t\t\t\"Over easy: white fully set on both sides, yolk runny\",\n\t\t\t\"Over medium: yolk slightly thickened but still flows\",\n\t\t\t\"Over hard: yolk fully set\",\n\t\t],\n\n\t\tsources: [\"USDA FSIS\", \"American Egg Board\"],\n\t},\n\n\t{\n\t\tid: \"egg_scrambled\",\n\t\tname: \"Scrambled Eggs\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"scrambled egg\"],\n\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Soft, creamy curds with slight shine\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"safe_minimum\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Fully set, no wet spots\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"2-3 eggs\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 300,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 5},\n\t\t\t\t\t\tnotes: \"Low heat. Stir constantly with spatula. Remove from heat while slightly underdone - carryover cooking will finish them.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Soft curds: glossy, barely holds shape\",\n\t\t\t\"Medium curds: matte surface, holds shape\",\n\t\t\t\"Hard curds: dry appearance, firm texture\",\n\t\t],\n\n\t\tsources: [\"American Egg Board\"],\n\t},\n\n\t{\n\t\tid: \"egg_hard_boiled\",\n\t\tname: \"Hard Boiled Egg\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"hard cooked egg\", \"boiled egg\"],\n\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"large egg\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 12},\n\t\t\t\t\t\tnotes: \"Start in cold water, bring to boil, then cover and remove from heat. Let sit 10-12 min. Ice bath immediately.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 12, max: 14},\n\t\t\t\t\t\tnotes: \"Add eggs to steamer basket over boiling water. Easier to peel than boiled.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Yolk is fully set and pale yellow throughout\",\n\t\t\t\"No green ring around yolk (green = overcooked)\",\n\t\t],\n\n\t\tsources: [\"American Egg Board\"],\n\t},\n\n\t{\n\t\tid: \"egg_soft_boiled\",\n\t\tname: \"Soft Boiled Egg\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"soft cooked egg\", \"jammy egg\", \"ramen egg\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"rare\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Runny yolk, just-set white\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 150,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Jammy yolk, firm white\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"large egg\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 7},\n\t\t\t\t\t\tnotes: \"Lower eggs into already boiling water. 6 min = runny, 7 min = jammy. Ice bath immediately.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 8},\n\t\t\t\t\t\tnotes: \"6-7 min for runny, 8 min for jammy.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"White is fully set\",\n\t\t\t\"Yolk ranges from liquid to jammy depending on time\",\n\t\t],\n\n\t\tsources: [\"American Egg Board\", \"Serious Eats\"],\n\t},\n\n\t{\n\t\tid: \"egg_poached\",\n\t\tname: \"Poached Egg\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"poach egg\"],\n\n\t\tsafeMinimumTemp: 145,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium_rare\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Runny yolk, just-set white\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 155,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"Jammy yolk, firm white\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"single egg\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"poach\",\n\t\t\t\t\t\tapplianceTemp: 180,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Water should be barely simmering with small bubbles. Add splash of vinegar. Swirl water before adding egg.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"White is fully opaque and set\",\n\t\t\t\"Yolk should jiggle when touched\",\n\t\t],\n\n\t\tsources: [\"American Egg Board\"],\n\t},\n\n\t{\n\t\tid: \"egg_omelette\",\n\t\tname: \"Omelette\",\n\t\tcategory: \"egg\",\n\t\taliases: [\"omelet\", \"french omelette\"],\n\n\t\tsafeMinimumTemp: 160,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tdonenessLevels: [\n\t\t\t{\n\t\t\t\tlevel: \"medium\",\n\t\t\t\tinternalTemp: 145,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"French style - creamy, barely set interior\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlevel: \"safe_minimum\",\n\t\t\t\tinternalTemp: 160,\n\t\t\t\tinternalTempUnit: \"F\",\n\t\t\t\tdescription: \"American style - fully set throughout\",\n\t\t\t},\n\t\t],\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"2-3 eggs\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 325,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 4},\n\t\t\t\t\t\tnotes: \"French style: constant movement, 90 seconds. American style: let set, fold at 2-3 min.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"French: pale yellow exterior, creamy interior\",\n\t\t\t\"American: light golden exterior, fully set\",\n\t\t],\n\n\t\tsources: [\"American Egg Board\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const vegetables: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"broccoli\",\n\t\tname: \"Broccoli\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"broccoli florets\", \"broccoli crowns\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"florets (bite-sized)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 7},\n\t\t\t\t\t\tnotes: \"Tender-crisp at 5 min, soft at 7 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 25},\n\t\t\t\t\t\tnotes: \"Toss with oil. Edges should be charred.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 8},\n\t\t\t\t\t\tnotes: \"High heat, don't stir too often. Let it char.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 5},\n\t\t\t\t\t\tnotes: \"Blanch in salted water, then ice bath to stop cooking.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t\tnotes: \"Toss with oil. Shake basket halfway.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Bright green color (overcooked = olive/army green)\",\n\t\t\t\"Fork tender but not mushy\",\n\t\t\t\"Stems should have slight resistance\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"asparagus\",\n\t\tname: \"Asparagus\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"asparagus spears\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard spears (trimmed)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 15},\n\t\t\t\t\t\tnotes: \"Thin spears: 10 min. Thick spears: 15 min. Single layer.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 6, max: 10},\n\t\t\t\t\t\tnotes: \"Perpendicular to grates. Turn once.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 8},\n\t\t\t\t\t\tnotes: \"High heat, occasional turning.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 5},\n\t\t\t\t\t\tnotes: \"Stand upright in steamer if possible.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 2, max: 4},\n\t\t\t\t\t\tnotes: \"Blanch briefly, ice bath immediately.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Bright green, tips intact\",\n\t\t\t\"Slight bend when lifted from middle\",\n\t\t\t\"Tender when pierced with knife\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"potato_russet\",\n\t\tname: \"Russet Potato\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"baking potato\", \"idaho potato\"],\n\n\t\tsafeMinimumTemp: 185,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"whole (medium, 8 oz)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 50, max: 60},\n\t\t\t\t\t\tnotes: \"Pierce with fork. Place directly on rack.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 30},\n\t\t\t\t\t\tnotes: \"Start in cold salted water. For mashed potatoes.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 40, max: 50},\n\t\t\t\t\t\tnotes: \"Pierce and rub with oil.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"cubed (1 inch)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 30, max: 40},\n\t\t\t\t\t\tnotes: \"Toss with oil, single layer. Flip halfway.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 15},\n\t\t\t\t\t\tnotes: \"Start in cold water for even cooking.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_fry\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"For home fries. Don't crowd the pan.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Fork slides in easily with no resistance\",\n\t\t\t\"Internal temp reaches 185-210°F for fluffy texture\",\n\t\t],\n\n\t\tsources: [\"USDA\", \"Idaho Potato Commission\"],\n\t},\n\n\t{\n\t\tid: \"carrots\",\n\t\tname: \"Carrots\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"carrot\", \"baby carrots\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"sliced or baby carrots\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 25, max: 35},\n\t\t\t\t\t\tnotes: \"Toss with oil. Caramelization develops at edges.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 7, max: 10},\n\t\t\t\t\t\tnotes: \"Sliced: 7-8 min. Whole baby carrots: 10 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 10},\n\t\t\t\t\t\tnotes: \"Sliced: 5-7 min. Whole: 10 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 15},\n\t\t\t\t\t\tnotes: \"Add splash of water and cover to steam-sauté.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"whole (medium)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 35, max: 45},\n\t\t\t\t\t\tnotes: \"Halve lengthwise for faster cooking.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Fork tender\",\n\t\t\t\"Vibrant orange color\",\n\t\t\t\"Slight caramelization when roasted\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"green_beans\",\n\t\tname: \"Green Beans\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"string beans\", \"snap beans\", \"haricots verts\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"trimmed\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 7},\n\t\t\t\t\t\tnotes: \"Tender-crisp at 5 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 6},\n\t\t\t\t\t\tnotes: \"Blanch in well-salted water.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Toss with oil. Some charring is good.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t\tnotes: \"High heat, let them blister.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 10},\n\t\t\t\t\t\tnotes: \"Shake basket halfway.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Bright green color\",\n\t\t\t\"Crisp-tender texture\",\n\t\t\t\"Snaps when bent (not limp)\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"zucchini\",\n\t\tname: \"Zucchini\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"courgette\", \"summer squash\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"sliced (1/2 inch rounds or half-moons)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 6},\n\t\t\t\t\t\tnotes: \"High heat, single layer. Don't stir too much.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Single layer. Salt before roasting to draw out moisture.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 4},\n\t\t\t\t\t\tnotes: \"Per side. Cut lengthwise for grill marks.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"air_fry\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 12},\n\t\t\t\t\t\tnotes: \"Shake halfway.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Golden brown spots\",\n\t\t\t\"Tender but not mushy\",\n\t\t\t\"Should still have some structure\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"bell_pepper\",\n\t\tname: \"Bell Pepper\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"sweet pepper\", \"capsicum\", \"red pepper\", \"green pepper\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"sliced or diced\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 400,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 8},\n\t\t\t\t\t\tnotes: \"High heat for char, medium for soft.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 25},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 4, max: 6},\n\t\t\t\t\t\tnotes: \"Per side.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"whole (for roasting/charring)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"broil\",\n\t\t\t\t\t\tapplianceTemp: 500,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"Turn every 5 min until charred all over. Steam in bag to peel.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 500,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 10, max: 15},\n\t\t\t\t\t\tnotes: \"Direct flame, turn until charred all over.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Softened but not collapsed\",\n\t\t\t\"Slight char marks when roasted\",\n\t\t\t\"Skin blisters and blackens when charring\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"onion\",\n\t\tname: \"Onion\",\n\t\tcategory: \"vegetable\",\n\t\taliases: [\"yellow onion\", \"white onion\", \"red onion\", \"sweet onion\"],\n\n\t\tsafeMinimumTemp: 135,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"sliced or diced\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 350,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 12},\n\t\t\t\t\t\tnotes: \"Medium heat for softened. Stir occasionally.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"pan_sear\",\n\t\t\t\t\t\tapplianceTemp: 275,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 45, max: 60},\n\t\t\t\t\t\tnotes: \"Low and slow for caramelized. Stir every 10 min.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_roast\",\n\t\t\t\t\t\tapplianceTemp: 425,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 25, max: 35},\n\t\t\t\t\t\tnotes: \"Toss with oil. Edges will char.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"grill\",\n\t\t\t\t\t\tapplianceTemp: 450,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 12},\n\t\t\t\t\t\tnotes: \"Thick slices or wedges to prevent falling through.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Softened: translucent, no bite\",\n\t\t\t\"Caramelized: deep golden brown, sweet aroma\",\n\t\t\t\"Charred: blackened edges, sweet interior\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n]\n","import type {CookingTemperatureEntry} from \"../types\"\n\nexport const grains: CookingTemperatureEntry[] = [\n\t{\n\t\tid: \"white_rice_long_grain\",\n\t\tname: \"White Rice (Long Grain)\",\n\t\tcategory: \"grain\",\n\t\taliases: [\n\t\t\t\"white rice\",\n\t\t\t\"long grain rice\",\n\t\t\t\"jasmine rice\",\n\t\t\t\"basmati rice\",\n\t\t],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 5,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry (serves 2-3)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 18},\n\t\t\t\t\t\tnotes: \"1:1.5 rice to water ratio. Bring to boil, reduce to low, cover. Rest 5 min off heat.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 350,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 25, max: 30},\n\t\t\t\t\t\tnotes: \"1:1.5 ratio. Boiling water, covered tightly with foil.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"All water absorbed\",\n\t\t\t\"Grains are separate, not mushy\",\n\t\t\t\"Small steam holes on surface\",\n\t\t],\n\n\t\tsources: [\"USA Rice Federation\"],\n\t},\n\n\t{\n\t\tid: \"brown_rice\",\n\t\tname: \"Brown Rice\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"whole grain rice\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 5,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 40, max: 50},\n\t\t\t\t\t\tnotes: \"1:2 rice to water ratio. Bring to boil, reduce to low, cover.\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"oven_bake\",\n\t\t\t\t\t\tapplianceTemp: 375,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 60, max: 75},\n\t\t\t\t\t\tnotes: \"1:2.5 ratio. Boiling water, covered tightly.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Grains are tender but slightly chewy\",\n\t\t\t\"All water absorbed\",\n\t\t],\n\n\t\tsources: [\"USA Rice Federation\"],\n\t},\n\n\t{\n\t\tid: \"quinoa\",\n\t\tname: \"Quinoa\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"white quinoa\", \"red quinoa\", \"tricolor quinoa\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 5,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry (serves 3-4)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 15, max: 20},\n\t\t\t\t\t\tnotes: \"1:2 quinoa to water ratio. Rinse well first. Bring to boil, reduce to low, cover.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Germ separates and forms a visible spiral\",\n\t\t\t\"Translucent with white ring\",\n\t\t\t\"Slight pop when bitten\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"pasta_dried\",\n\t\tname: \"Pasta (Dried)\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"spaghetti\", \"penne\", \"rigatoni\", \"fusilli\", \"farfalle\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"standard shapes (penne, fusilli)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 12},\n\t\t\t\t\t\tnotes: \"Well-salted water. Check 2 min before package time for al dente. Reserve pasta water.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"long pasta (spaghetti, linguine)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 8, max: 11},\n\t\t\t\t\t\tnotes: \"Don't break pasta. Stir during first minute to prevent sticking.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"thin pasta (angel hair, capellini)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"boil\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 3, max: 5},\n\t\t\t\t\t\tnotes: \"Cooks very quickly. Watch carefully.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Al dente: firm bite, tiny white dot in center\",\n\t\t\t\"Fully cooked: no white center, softer texture\",\n\t\t\t\"Overcooked: mushy, falls apart\",\n\t\t],\n\n\t\tsources: [\"Barilla\"],\n\t},\n\n\t{\n\t\tid: \"oatmeal_rolled\",\n\t\tname: \"Rolled Oats\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"oatmeal\", \"old fashioned oats\", \"porridge oats\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 2,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1/2 cup dry (1 serving)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 7},\n\t\t\t\t\t\tnotes: \"1:2 oats to water/milk ratio. Bring liquid to boil, add oats, reduce heat.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Creamy consistency\",\n\t\t\t\"Oats are soft but not mushy\",\n\t\t\t\"Liquid is absorbed\",\n\t\t],\n\n\t\tsources: [\"Quaker Oats\"],\n\t},\n\n\t{\n\t\tid: \"couscous\",\n\t\tname: \"Couscous\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"moroccan couscous\", \"instant couscous\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 5,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"steam\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 5, max: 5},\n\t\t\t\t\t\tnotes: \"1:1.5 ratio. Pour boiling water over couscous, cover, let sit 5 min. Fluff with fork.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Fluffy, separate grains\",\n\t\t\t\"All liquid absorbed\",\n\t\t\t\"Light and airy texture\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n\n\t{\n\t\tid: \"farro\",\n\t\tname: \"Farro\",\n\t\tcategory: \"grain\",\n\t\taliases: [\"emmer wheat\", \"pearled farro\"],\n\n\t\tsafeMinimumTemp: 165,\n\t\tsafeMinimumTempUnit: \"F\",\n\t\trestTimeMinutes: 0,\n\n\t\tcookingInstructions: [\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry (pearled)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 20, max: 30},\n\t\t\t\t\t\tnotes: \"Cook like pasta in plenty of salted water. Drain when tender.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tportionDescription: \"1 cup dry (whole grain)\",\n\t\t\t\tmethods: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"simmer\",\n\t\t\t\t\t\tapplianceTemp: 212,\n\t\t\t\t\t\tapplianceTempUnit: \"F\",\n\t\t\t\t\t\ttimeMinutes: {min: 35, max: 45},\n\t\t\t\t\t\tnotes: \"Soak overnight to reduce cooking time. Cook in salted water.\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\n\t\tvisualIndicators: [\n\t\t\t\"Tender but chewy\",\n\t\t\t\"Slightly nutty texture\",\n\t\t\t\"Grains should not be mushy\",\n\t\t],\n\n\t\tsources: [\"USDA\"],\n\t},\n]\n","import {poultry} from \"./data/poultry\"\nimport {beef} from \"./data/beef\"\nimport {pork} from \"./data/pork\"\nimport {seafood} from \"./data/seafood\"\nimport {eggs} from \"./data/eggs\"\nimport {vegetables} from \"./data/vegetables\"\nimport {grains} from \"./data/grains\"\nimport type {\n\tCookingTemperatureEntry,\n\tCookingMethod,\n\tIngredientCategory,\n\tTemperatureUnit,\n\tDonenessLevel,\n} from \"./types\"\n\nconst ALL_ENTRIES: CookingTemperatureEntry[] = [\n\t...poultry,\n\t...beef,\n\t...pork,\n\t...seafood,\n\t...eggs,\n\t...vegetables,\n\t...grains,\n]\n\n// Basic lookups\nexport const findByName = (\n\tquery: string\n): CookingTemperatureEntry | undefined => {\n\tconst normalizedQuery = query.toLowerCase().trim()\n\n\treturn ALL_ENTRIES.find(\n\t\tentry =>\n\t\t\tentry.name.toLowerCase().includes(normalizedQuery) ||\n\t\t\tentry.aliases.some(alias =>\n\t\t\t\talias.toLowerCase().includes(normalizedQuery)\n\t\t\t)\n\t)\n}\n\nexport const findById = (id: string): CookingTemperatureEntry | undefined => {\n\treturn ALL_ENTRIES.find(entry => entry.id === id)\n}\n\nexport const findByCategory = (\n\tcategory: IngredientCategory\n): CookingTemperatureEntry[] => {\n\treturn ALL_ENTRIES.filter(entry => entry.category === category)\n}\n\nexport const getAllEntries = (): CookingTemperatureEntry[] => {\n\treturn [...ALL_ENTRIES]\n}\n\nexport const getAllCategories = (): IngredientCategory[] => {\n\treturn [...new Set(ALL_ENTRIES.map(entry => entry.category))]\n}\n\nconst CATEGORY_NAMES: Record<IngredientCategory, string> = {\n\tpoultry: \"Poultry\",\n\tbeef: \"Beef\",\n\tpork: \"Pork\",\n\tlamb: \"Lamb\",\n\tseafood_fish: \"Fish\",\n\tseafood_shellfish: \"Shellfish\",\n\tegg: \"Eggs\",\n\tvegetable: \"Vegetables\",\n\tgrain: \"Grains\",\n\tlegume: \"Legumes\",\n}\n\nexport const getCategoryName = (category: IngredientCategory): string => {\n\treturn CATEGORY_NAMES[category]\n}\n\n// Temperature utilities\nexport const convertTemperature = (\n\ttemp: number,\n\tfrom_unit: TemperatureUnit,\n\tto_unit: TemperatureUnit\n): number => {\n\tif (from_unit === to_unit) return temp\n\treturn from_unit === \"F\"\n\t\t? Math.round((temp - 32) * (5 / 9))\n\t\t: Math.round(temp * (9 / 5) + 32)\n}\n\nexport const getSafeMinimumTemp = (\n\tingredientId: string,\n\tunit: TemperatureUnit = \"F\"\n): {temp: number; restMinutes: number} | undefined => {\n\tconst entry = ALL_ENTRIES.find(e => e.id === ingredientId)\n\tif (!entry) return undefined\n\n\tconst temp =\n\t\tunit === entry.safeMinimumTempUnit\n\t\t\t? entry.safeMinimumTemp\n\t\t\t: convertTemperature(\n\t\t\t\t\tentry.safeMinimumTemp,\n\t\t\t\t\tentry.safeMinimumTempUnit,\n\t\t\t\t\tunit\n\t\t\t\t)\n\n\treturn {\n\t\ttemp,\n\t\trestMinutes: entry.restTimeMinutes ?? 0,\n\t}\n}\n\nexport const getDonenessTemp = (\n\tingredientId: string,\n\tdoneness_level: DonenessLevel,\n\tunit: TemperatureUnit = \"F\"\n): number | undefined => {\n\tconst entry = ALL_ENTRIES.find(e => e.id === ingredientId)\n\tif (!entry || !entry.donenessLevels) return undefined\n\n\tconst level = entry.donenessLevels.find(d => d.level === doneness_level)\n\tif (!level) return undefined\n\n\treturn unit === level.internalTempUnit\n\t\t? level.internalTemp\n\t\t: convertTemperature(level.internalTemp, level.internalTempUnit, unit)\n}\n\n// Cooking instruction lookups\nexport const getCookingMethods = (ingredientId: string): CookingMethod[] => {\n\tconst entry = ALL_ENTRIES.find(e => e.id === ingredientId)\n\tif (!entry) return []\n\n\tconst methods = new Set<CookingMethod>()\n\tentry.cookingInstructions.forEach(portion => {\n\t\tportion.methods.forEach(method => methods.add(method.method))\n\t})\n\n\treturn [...methods]\n}\n\nexport const getCookingInstruction = (\n\tingredientId: string,\n\tcooking_method: CookingMethod,\n\tportionHint?: string\n):\n\t| {\n\t\t\tapplianceTemp: number\n\t\t\tapplianceTempUnit: TemperatureUnit\n\t\t\ttimeMinutes: {min: number; max: number}\n\t\t\tnotes?: string\n\t\t\tportionDescription: string\n\t }\n\t| undefined => {\n\tconst entry = ALL_ENTRIES.find(e => e.id === ingredientId)\n\tif (!entry) return undefined\n\n\t// Find matching portion\n\tconst portion = portionHint\n\t\t? (entry.cookingInstructions.find(p =>\n\t\t\t\tp.portionDescription\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.includes(portionHint.toLowerCase())\n\t\t\t) ?? entry.cookingInstructions[0])\n\t\t: entry.cookingInstructions[0]\n\n\tif (!portion) return undefined\n\n\tconst instruction = portion.methods.find(m => m.method === cooking_method)\n\tif (!instruction) return undefined\n\n\treturn {\n\t\tapplianceTemp: instruction.applianceTemp,\n\t\tapplianceTempUnit: instruction.applianceTempUnit,\n\t\ttimeMinutes: instruction.timeMinutes,\n\t\tnotes: instruction.notes,\n\t\tportionDescription: portion.portionDescription,\n\t}\n}\n\n// Quick reference function - the main use case you described\nexport const getQuickReference = (\n\tquery: string,\n\tcooking_method?: CookingMethod,\n\tunit: TemperatureUnit = \"F\"\n):\n\t| {\n\t\t\tname: string\n\t\t\tsafeMinimumTemp: number\n\t\t\ttempUnit: TemperatureUnit\n\t\t\trestMinutes: number\n\t\t\tsuggestedMethod?: {\n\t\t\t\tmethod: CookingMethod\n\t\t\t\tapplianceTemp: number\n\t\t\t\ttimeMinutes: {min: number; max: number}\n\t\t\t\tnotes?: string\n\t\t\t}\n\t\t\tvisualIndicators: string[]\n\t }\n\t| undefined => {\n\tconst entry = findByName(query)\n\tif (!entry) return undefined\n\n\tconst safeTemp =\n\t\tunit === entry.safeMinimumTempUnit\n\t\t\t? entry.safeMinimumTemp\n\t\t\t: convertTemperature(\n\t\t\t\t\tentry.safeMinimumTemp,\n\t\t\t\t\tentry.safeMinimumTempUnit,\n\t\t\t\t\tunit\n\t\t\t\t)\n\n\tlet suggestedMethod:\n\t\t| {\n\t\t\t\tmethod: CookingMethod\n\t\t\t\tapplianceTemp: number\n\t\t\t\ttimeMinutes: {min: number; max: number}\n\t\t\t\tnotes?: string\n\t\t }\n\t\t| undefined\n\n\tif (cooking_method) {\n\t\tconst instruction = getCookingInstruction(entry.id, cooking_method)\n\t\tif (instruction) {\n\t\t\tsuggestedMethod = {\n\t\t\t\tmethod: cooking_method,\n\t\t\t\tapplianceTemp:\n\t\t\t\t\tunit === instruction.applianceTempUnit\n\t\t\t\t\t\t? instruction.applianceTemp\n\t\t\t\t\t\t: convertTemperature(\n\t\t\t\t\t\t\t\tinstruction.applianceTemp,\n\t\t\t\t\t\t\t\tinstruction.applianceTempUnit,\n\t\t\t\t\t\t\t\tunit\n\t\t\t\t\t\t\t),\n\t\t\t\ttimeMinutes: instruction.timeMinutes,\n\t\t\t\tnotes: instruction.notes,\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tname: entry.name,\n\t\tsafeMinimumTemp: safeTemp,\n\t\ttempUnit: unit,\n\t\trestMinutes: entry.restTimeMinutes ?? 0,\n\t\tsuggestedMethod,\n\t\tvisualIndicators: entry.visualIndicators ?? [],\n\t}\n}\n\n// Re-export types\nexport * from \"./types\"\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cooking-temperature",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "A comprehensive library for safe cooking temperatures, doneness levels, and cooking instructions for various ingredients",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"import": "./dist/index.mjs",
|
|
12
12
|
"require": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./icons": {
|
|
15
|
+
"types": "./dist/icons.d.ts",
|
|
16
|
+
"import": "./dist/icons.mjs",
|
|
17
|
+
"require": "./dist/icons.js"
|
|
13
18
|
}
|
|
14
19
|
},
|
|
15
20
|
"files": [
|