@tmlmt/cooklang-parser 3.0.0-alpha.14 → 3.0.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +881 -182
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +287 -18
- package/dist/index.d.ts +287 -18
- package/dist/index.js +880 -182
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
package/dist/index.d.cts
CHANGED
|
@@ -155,6 +155,25 @@ declare class Recipe {
|
|
|
155
155
|
* @internal
|
|
156
156
|
*/
|
|
157
157
|
private _populateIngredientQuantities;
|
|
158
|
+
/** @internal */
|
|
159
|
+
private collectQuantityGroups;
|
|
160
|
+
/**
|
|
161
|
+
* Gets the raw (unprocessed) quantity groups for each ingredient, before
|
|
162
|
+
* any summation or equivalents simplification. This is useful for cross-recipe
|
|
163
|
+
* aggregation (e.g., in {@link ShoppingList}), where quantities from multiple
|
|
164
|
+
* recipes should be combined before processing.
|
|
165
|
+
*
|
|
166
|
+
* @param options - Options for filtering and choice selection (same as {@link getIngredientQuantities}).
|
|
167
|
+
* @returns Array of {@link RawQuantityGroup} objects, one per ingredient with quantities.
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* const rawGroups = recipe.getRawQuantityGroups();
|
|
172
|
+
* // Each group has: name, usedAsPrimary, flags, quantities[]
|
|
173
|
+
* // quantities are the raw QuantityWithExtendedUnit or FlatOrGroup entries
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
getRawQuantityGroups(options?: GetIngredientQuantitiesOptions): RawQuantityGroup[];
|
|
158
177
|
/**
|
|
159
178
|
* Gets ingredients with their quantities populated, optionally filtered by section/step
|
|
160
179
|
* and respecting user choices for alternatives.
|
|
@@ -249,6 +268,18 @@ interface MetadataSource {
|
|
|
249
268
|
/** The author at the source. */
|
|
250
269
|
author?: string;
|
|
251
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* Represents scaling variable information for a recipe.
|
|
273
|
+
* @category Types
|
|
274
|
+
*/
|
|
275
|
+
interface MetadataScalingVar extends QuantityWithPlainUnit {
|
|
276
|
+
/** The text before the scaling variable. */
|
|
277
|
+
textBefore?: string;
|
|
278
|
+
/** The text after the scaling variable. */
|
|
279
|
+
textAfter?: string;
|
|
280
|
+
/** The text precising a numerical scaling variable. */
|
|
281
|
+
text?: string;
|
|
282
|
+
}
|
|
252
283
|
/**
|
|
253
284
|
* Represents time information for a recipe.
|
|
254
285
|
* @category Types
|
|
@@ -272,7 +303,7 @@ interface MetadataObject {
|
|
|
272
303
|
* Represents any value that can appear in recipe metadata.
|
|
273
304
|
* @category Types
|
|
274
305
|
*/
|
|
275
|
-
type MetadataValue = string | number | (string | number)[] | MetadataObject | MetadataSource | MetadataTime | undefined;
|
|
306
|
+
type MetadataValue = string | number | (string | number)[] | MetadataObject | MetadataSource | MetadataTime | MetadataScalingVar | undefined;
|
|
276
307
|
/**
|
|
277
308
|
* Represents the metadata of a recipe.
|
|
278
309
|
* @category Types
|
|
@@ -290,9 +321,10 @@ interface Metadata {
|
|
|
290
321
|
/** The author of the recipe (separate from source author). */
|
|
291
322
|
author?: string;
|
|
292
323
|
/** The number of servings the recipe makes.
|
|
293
|
-
*
|
|
294
|
-
*
|
|
295
|
-
* whatever you want
|
|
324
|
+
* Can be given either as:
|
|
325
|
+
* - a number
|
|
326
|
+
* - a string which starts with a number (which will be used for scaling) followed by a comma and then whatever you want
|
|
327
|
+
* - or an arbitrary scalable number, optionally preceded and/or followed by text.
|
|
296
328
|
*
|
|
297
329
|
* Interchangeable with `yield` or `serves`. If multiple ones are defined,
|
|
298
330
|
* the prevailance order for the number which will used for scaling
|
|
@@ -307,30 +339,37 @@ interface Metadata {
|
|
|
307
339
|
* ```yaml
|
|
308
340
|
* servings: 2, a few
|
|
309
341
|
* ```
|
|
342
|
+
*
|
|
343
|
+
* * @example
|
|
344
|
+
* ```yaml
|
|
345
|
+
* servings: {{1.5%kg}} of bread
|
|
346
|
+
* ```
|
|
310
347
|
*/
|
|
311
|
-
servings?:
|
|
348
|
+
servings?: MetadataScalingVar;
|
|
312
349
|
/** The yield of the recipe.
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
* whatever you want
|
|
350
|
+
* Can be given either as:
|
|
351
|
+
* - a number
|
|
352
|
+
* - a string which starts with a number (which will be used for scaling) followed by a comma and then whatever you want
|
|
353
|
+
* - or an arbitrary scalable number, optionally preceded and/or followed by text.
|
|
316
354
|
*
|
|
317
355
|
* Interchangeable with `servings` or `serves`. If multiple ones are defined,
|
|
318
356
|
* the prevailance order for the number which will used for scaling
|
|
319
357
|
* is `servings` \> `yield` \> `serves`. See {@link Metadata.servings | servings}
|
|
320
358
|
* for examples.
|
|
321
359
|
*/
|
|
322
|
-
yield?:
|
|
360
|
+
yield?: MetadataScalingVar;
|
|
323
361
|
/** The number of people the recipe serves.
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
* whatever you want
|
|
362
|
+
* Can be given either as:
|
|
363
|
+
* - a number
|
|
364
|
+
* - a string which starts with a number (which will be used for scaling) followed by a comma and then whatever you want
|
|
365
|
+
* - or an arbitrary scalable number, optionally preceded and/or followed by text.
|
|
327
366
|
*
|
|
328
367
|
* Interchangeable with `servings` or `yield`. If multiple ones are defined,
|
|
329
368
|
* the prevailance order for the number which will used for scaling
|
|
330
369
|
* is `servings` \> `yield` \> `serves`. See {@link Metadata.servings | servings}
|
|
331
370
|
* for examples.
|
|
332
371
|
*/
|
|
333
|
-
serves?:
|
|
372
|
+
serves?: MetadataScalingVar;
|
|
334
373
|
/** The course of the recipe. */
|
|
335
374
|
course?: string;
|
|
336
375
|
/** The category of the recipe. */
|
|
@@ -623,6 +662,23 @@ interface GetIngredientQuantitiesOptions {
|
|
|
623
662
|
*/
|
|
624
663
|
choices?: RecipeChoices;
|
|
625
664
|
}
|
|
665
|
+
/**
|
|
666
|
+
* Represents a raw (unprocessed) group of quantities for a single ingredient.
|
|
667
|
+
* Returned by {@link Recipe.getRawQuantityGroups | getRawQuantityGroups()},
|
|
668
|
+
* these are the pre-addition quantities that can be fed directly into
|
|
669
|
+
* {@link addEquivalentsAndSimplify} for cross-recipe aggregation.
|
|
670
|
+
* @category Types
|
|
671
|
+
*/
|
|
672
|
+
interface RawQuantityGroup {
|
|
673
|
+
/** The name of the ingredient. */
|
|
674
|
+
name: string;
|
|
675
|
+
/** Whether this ingredient is used as a primary choice. */
|
|
676
|
+
usedAsPrimary?: boolean;
|
|
677
|
+
/** Flags on the ingredient (e.g., "hidden", "optional"). */
|
|
678
|
+
flags?: IngredientFlag[];
|
|
679
|
+
/** The raw, unprocessed quantities for this ingredient across all its mentions. */
|
|
680
|
+
quantities: (QuantityWithExtendedUnit | FlatOrGroup<QuantityWithExtendedUnit>)[];
|
|
681
|
+
}
|
|
626
682
|
/**
|
|
627
683
|
* Represents a cookware item in a recipe step.
|
|
628
684
|
* @category Types
|
|
@@ -797,10 +853,7 @@ type AddedRecipeOptions = {
|
|
|
797
853
|
* Represents an ingredient that has been added to a shopping list
|
|
798
854
|
* @category Types
|
|
799
855
|
*/
|
|
800
|
-
type AddedIngredient = Pick<Ingredient, "name"
|
|
801
|
-
/** The total quantity of the ingredient after applying choices. */
|
|
802
|
-
quantityTotal?: QuantityWithPlainUnit | MaybeNestedGroup<QuantityWithPlainUnit>;
|
|
803
|
-
};
|
|
856
|
+
type AddedIngredient = Pick<Ingredient, "name" | "quantities">;
|
|
804
857
|
/**
|
|
805
858
|
* Represents an ingredient in a category.
|
|
806
859
|
* @category Types
|
|
@@ -860,6 +913,48 @@ type ProductOption = ProductOptionBase & {
|
|
|
860
913
|
/** The size(s) of the product. Multiple sizes allow equivalent expressions (e.g., "1%dozen" and "12") */
|
|
861
914
|
sizes: ProductSize[];
|
|
862
915
|
};
|
|
916
|
+
/**
|
|
917
|
+
* Represents a pantry item entry in the TOML file.
|
|
918
|
+
* Can be a simple quantity string (e.g. `"500%g"`) or an object with details.
|
|
919
|
+
* @category Types
|
|
920
|
+
*/
|
|
921
|
+
type PantryItemToml = string | {
|
|
922
|
+
quantity?: string;
|
|
923
|
+
bought?: string;
|
|
924
|
+
expire?: string;
|
|
925
|
+
low?: string;
|
|
926
|
+
};
|
|
927
|
+
/**
|
|
928
|
+
* Represents a parsed pantry item.
|
|
929
|
+
* @category Types
|
|
930
|
+
*/
|
|
931
|
+
interface PantryItem {
|
|
932
|
+
/** The name of the item. */
|
|
933
|
+
name: string;
|
|
934
|
+
/** The storage location (TOML section name, e.g. "freezer", "fridge"). */
|
|
935
|
+
location: string;
|
|
936
|
+
/** The quantity value of the item. */
|
|
937
|
+
quantity?: FixedValue | Range;
|
|
938
|
+
/** The unit of the item's quantity. */
|
|
939
|
+
unit?: string;
|
|
940
|
+
/** The date when the item was purchased. */
|
|
941
|
+
bought?: Date;
|
|
942
|
+
/** The expiration date of the item. */
|
|
943
|
+
expire?: Date;
|
|
944
|
+
/** The low stock threshold value. */
|
|
945
|
+
low?: FixedValue | Range;
|
|
946
|
+
/** The unit of the low stock threshold. */
|
|
947
|
+
lowUnit?: string;
|
|
948
|
+
}
|
|
949
|
+
/**
|
|
950
|
+
* Options for configuring a {@link Pantry}.
|
|
951
|
+
* @category Types
|
|
952
|
+
*/
|
|
953
|
+
interface PantryOptions {
|
|
954
|
+
/** Date format pattern for parsing date strings (e.g. `"DD.MM.YYYY"`, `"MM/DD/YYYY"`, `"YYYY-MM-DD"`).
|
|
955
|
+
* If not provided, dates are parsed with fuzzy detection defaulting to day-first when ambiguous. */
|
|
956
|
+
dateFormat?: string;
|
|
957
|
+
}
|
|
863
958
|
/**
|
|
864
959
|
* Represents a product selection in a {@link ShoppingCart}
|
|
865
960
|
* @category Types
|
|
@@ -1119,6 +1214,127 @@ declare class CategoryConfig {
|
|
|
1119
1214
|
parse(config: string): void;
|
|
1120
1215
|
}
|
|
1121
1216
|
|
|
1217
|
+
/**
|
|
1218
|
+
* Pantry Inventory Manager: parses and queries a pantry inventory file.
|
|
1219
|
+
*
|
|
1220
|
+
* ## Usage
|
|
1221
|
+
*
|
|
1222
|
+
* Create a new Pantry instance with optional TOML content and options
|
|
1223
|
+
* (see {@link Pantry."constructor" | constructor}), then query items
|
|
1224
|
+
* using {@link Pantry.getDepletedItems | getDepletedItems()},
|
|
1225
|
+
* {@link Pantry.getExpiredItems | getExpiredItems()},
|
|
1226
|
+
* {@link Pantry.isLow | isLow()}, or {@link Pantry.isExpired | isExpired()}.
|
|
1227
|
+
*
|
|
1228
|
+
* A Pantry can also be attached to a {@link ShoppingList} via
|
|
1229
|
+
* {@link ShoppingList.addPantry | addPantry()} so that on-hand stock
|
|
1230
|
+
* is subtracted from recipe ingredient needs.
|
|
1231
|
+
*
|
|
1232
|
+
* @example
|
|
1233
|
+
* ```typescript
|
|
1234
|
+
* import { Pantry } from "@tmlmt/cooklang-parser";
|
|
1235
|
+
*
|
|
1236
|
+
* const pantryToml = `
|
|
1237
|
+
* [fridge]
|
|
1238
|
+
* milk = { expire = "10.05.2024", quantity = "1%L" }
|
|
1239
|
+
*
|
|
1240
|
+
* [freezer]
|
|
1241
|
+
* spinach = { quantity = "1%kg", low = "200%g" }
|
|
1242
|
+
* `;
|
|
1243
|
+
*
|
|
1244
|
+
* const pantry = new Pantry(pantryToml);
|
|
1245
|
+
* console.log(pantry.getExpiredItems());
|
|
1246
|
+
* console.log(pantry.isLow("spinach"));
|
|
1247
|
+
* ```
|
|
1248
|
+
*
|
|
1249
|
+
* @see [Pantry Configuration](https://cooklang.org/docs/spec/#pantry-configuration) section of the cooklang specs
|
|
1250
|
+
*
|
|
1251
|
+
* @category Classes
|
|
1252
|
+
*/
|
|
1253
|
+
declare class Pantry {
|
|
1254
|
+
/**
|
|
1255
|
+
* The parsed pantry items.
|
|
1256
|
+
*/
|
|
1257
|
+
items: PantryItem[];
|
|
1258
|
+
/**
|
|
1259
|
+
* Options for date parsing and other configuration.
|
|
1260
|
+
*/
|
|
1261
|
+
private options;
|
|
1262
|
+
/**
|
|
1263
|
+
* Optional category configuration for alias-based lookups.
|
|
1264
|
+
*/
|
|
1265
|
+
private categoryConfig?;
|
|
1266
|
+
/**
|
|
1267
|
+
* Creates a new Pantry instance.
|
|
1268
|
+
* @param tomlContent - Optional TOML content to parse.
|
|
1269
|
+
* @param options - Optional configuration options.
|
|
1270
|
+
*/
|
|
1271
|
+
constructor(tomlContent?: string, options?: PantryOptions);
|
|
1272
|
+
/**
|
|
1273
|
+
* Parses a TOML string into pantry items.
|
|
1274
|
+
* @param tomlContent - The TOML string to parse.
|
|
1275
|
+
* @returns The parsed list of pantry items.
|
|
1276
|
+
*/
|
|
1277
|
+
parse(tomlContent: string): PantryItem[];
|
|
1278
|
+
/**
|
|
1279
|
+
* Parses a single pantry item from its TOML representation.
|
|
1280
|
+
*/
|
|
1281
|
+
private parseItem;
|
|
1282
|
+
/**
|
|
1283
|
+
* Parses a date string using the configured format or fuzzy detection.
|
|
1284
|
+
*/
|
|
1285
|
+
private parseDate;
|
|
1286
|
+
/**
|
|
1287
|
+
* Sets a category configuration for alias-based item lookups.
|
|
1288
|
+
* @param config - The category configuration to use.
|
|
1289
|
+
*/
|
|
1290
|
+
setCategoryConfig(config: CategoryConfig): void;
|
|
1291
|
+
/**
|
|
1292
|
+
* Finds a pantry item by name, using exact match first, then alias lookup
|
|
1293
|
+
* via the stored CategoryConfig.
|
|
1294
|
+
* @param name - The name to search for.
|
|
1295
|
+
* @returns The matching pantry item, or undefined if not found.
|
|
1296
|
+
*/
|
|
1297
|
+
findItem(name: string): PantryItem | undefined;
|
|
1298
|
+
/**
|
|
1299
|
+
* Gets the numeric value of a pantry item's quantity, optionally converted to base units.
|
|
1300
|
+
* Returns undefined if the quantity has a text value or is not set.
|
|
1301
|
+
*/
|
|
1302
|
+
private getItemNumericValue;
|
|
1303
|
+
/**
|
|
1304
|
+
* Returns all items that are depleted (quantity = 0) or below their low threshold.
|
|
1305
|
+
* @returns An array of depleted pantry items.
|
|
1306
|
+
*/
|
|
1307
|
+
getDepletedItems(): PantryItem[];
|
|
1308
|
+
/**
|
|
1309
|
+
* Returns all items whose expiration date is within `nbDays` days from today
|
|
1310
|
+
* (or already passed).
|
|
1311
|
+
* @param nbDays - Number of days ahead to check. Defaults to 0 (already expired).
|
|
1312
|
+
* @returns An array of expired pantry items.
|
|
1313
|
+
*/
|
|
1314
|
+
getExpiredItems(nbDays?: number): PantryItem[];
|
|
1315
|
+
/**
|
|
1316
|
+
* Checks if a specific item is low (quantity = 0 or below `low` threshold).
|
|
1317
|
+
* @param itemName - The name of the item to check (supports aliases if CategoryConfig is set).
|
|
1318
|
+
* @returns true if the item is low, false otherwise. Returns false if item not found.
|
|
1319
|
+
*/
|
|
1320
|
+
isLow(itemName: string): boolean;
|
|
1321
|
+
/**
|
|
1322
|
+
* Checks if a specific item is expired or expires within `nbDays` days.
|
|
1323
|
+
* @param itemName - The name of the item to check (supports aliases if CategoryConfig is set).
|
|
1324
|
+
* @param nbDays - Number of days ahead to check. Defaults to 0.
|
|
1325
|
+
* @returns true if the item is expired, false otherwise. Returns false if item not found.
|
|
1326
|
+
*/
|
|
1327
|
+
isExpired(itemName: string, nbDays?: number): boolean;
|
|
1328
|
+
/**
|
|
1329
|
+
* Internal: checks if a pantry item is low.
|
|
1330
|
+
*/
|
|
1331
|
+
private isItemLow;
|
|
1332
|
+
/**
|
|
1333
|
+
* Internal: checks if a pantry item is expired.
|
|
1334
|
+
*/
|
|
1335
|
+
private isItemExpired;
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1122
1338
|
/**
|
|
1123
1339
|
* Product Catalog Manager: used in conjunction with {@link ShoppingCart}
|
|
1124
1340
|
*
|
|
@@ -1218,12 +1434,50 @@ declare class ShoppingList {
|
|
|
1218
1434
|
* The categorized ingredients in the shopping list.
|
|
1219
1435
|
*/
|
|
1220
1436
|
categories?: CategorizedIngredients;
|
|
1437
|
+
/**
|
|
1438
|
+
* The unit system to use for quantity simplification.
|
|
1439
|
+
* When set, overrides per-recipe unit systems.
|
|
1440
|
+
*/
|
|
1441
|
+
unitSystem?: SpecificUnitSystem;
|
|
1442
|
+
/**
|
|
1443
|
+
* Per-ingredient equivalence ratio maps for recomputing equivalents
|
|
1444
|
+
* after pantry subtraction. Keyed by ingredient name.
|
|
1445
|
+
* @internal
|
|
1446
|
+
*/
|
|
1447
|
+
private equivalenceRatios;
|
|
1448
|
+
/**
|
|
1449
|
+
* The original pantry (never mutated by recipe calculations).
|
|
1450
|
+
*/
|
|
1451
|
+
pantry?: Pantry;
|
|
1452
|
+
/**
|
|
1453
|
+
* The pantry with quantities updated after subtracting recipe needs.
|
|
1454
|
+
* Recomputed on every {@link ShoppingList.calculateIngredients | calculateIngredients()} call.
|
|
1455
|
+
*/
|
|
1456
|
+
private resultingPantry?;
|
|
1221
1457
|
/**
|
|
1222
1458
|
* Creates a new ShoppingList instance
|
|
1223
1459
|
* @param categoryConfigStr - The category configuration to parse.
|
|
1224
1460
|
*/
|
|
1225
1461
|
constructor(categoryConfigStr?: string | CategoryConfig);
|
|
1226
1462
|
private calculateIngredients;
|
|
1463
|
+
/**
|
|
1464
|
+
* Subtracts pantry item quantities from calculated ingredient quantities
|
|
1465
|
+
* and updates the resultingPantry to reflect consumed stock.
|
|
1466
|
+
*/
|
|
1467
|
+
private applyPantrySubtraction;
|
|
1468
|
+
/**
|
|
1469
|
+
* Builds a ratio map from equivalence lists.
|
|
1470
|
+
* For each equivalence list, stores ratio = equiv_value / primary_value
|
|
1471
|
+
* for every pair of units, so equivalents can be recomputed after
|
|
1472
|
+
* pantry subtraction modifies primary quantities.
|
|
1473
|
+
*/
|
|
1474
|
+
private static buildEquivalenceRatioMap;
|
|
1475
|
+
/**
|
|
1476
|
+
* Recomputes equivalent quantities from current primary values and stored ratios.
|
|
1477
|
+
* For each equivalent unit in equivUnits, new_value = Σ (primary_value × ratio[equivUnit][primaryUnit]).
|
|
1478
|
+
* Returns undefined if all equivalents compute to zero.
|
|
1479
|
+
*/
|
|
1480
|
+
private static recomputeEquivalents;
|
|
1227
1481
|
/**
|
|
1228
1482
|
* Adds a recipe to the shopping list, then automatically
|
|
1229
1483
|
* recalculates the quantities and recategorize the ingredients.
|
|
@@ -1245,9 +1499,24 @@ declare class ShoppingList {
|
|
|
1245
1499
|
* @param index - The index of the recipe to remove.
|
|
1246
1500
|
*/
|
|
1247
1501
|
removeRecipe(index: number): void;
|
|
1502
|
+
/**
|
|
1503
|
+
* Adds a pantry to the shopping list. On-hand pantry quantities will be
|
|
1504
|
+
* subtracted from recipe ingredient needs on each recalculation.
|
|
1505
|
+
* @param pantry - A Pantry instance or a TOML string to parse.
|
|
1506
|
+
* @param options - Options for pantry parsing (only used when providing a TOML string).
|
|
1507
|
+
*/
|
|
1508
|
+
addPantry(pantry: Pantry | string, options?: PantryOptions): void;
|
|
1509
|
+
/**
|
|
1510
|
+
* Returns the resulting pantry with quantities updated to reflect
|
|
1511
|
+
* what was consumed by the shopping list's recipes.
|
|
1512
|
+
* Returns undefined if no pantry was added.
|
|
1513
|
+
* @returns The resulting Pantry, or undefined.
|
|
1514
|
+
*/
|
|
1515
|
+
getPantry(): Pantry | undefined;
|
|
1248
1516
|
/**
|
|
1249
1517
|
* Sets the category configuration for the shopping list
|
|
1250
1518
|
* and automatically categorize current ingredients from the list.
|
|
1519
|
+
* Also propagates the configuration to the pantry if one is set.
|
|
1251
1520
|
* @param config - The category configuration to parse.
|
|
1252
1521
|
*/
|
|
1253
1522
|
setCategoryConfig(config: string | CategoryConfig): void;
|
|
@@ -1669,4 +1938,4 @@ declare class BadIndentationError extends Error {
|
|
|
1669
1938
|
constructor();
|
|
1670
1939
|
}
|
|
1671
1940
|
|
|
1672
|
-
export { type AddedIngredient, type AddedRecipe, type AddedRecipeOptions, type AlternativeIngredientRef, type AndGroup, type ArbitraryScalable, type ArbitraryScalableItem, BadIndentationError, type CartContent, type CartMatch, type CartMisMatch, type CategorizedIngredients, type Category, CategoryConfig, type CategoryIngredient, type Cookware, type CookwareFlag, type CookwareItem, type DecimalValue, type FixedNumericValue, type FixedValue, type FlatAndGroup, type FlatGroup, type FlatOrGroup, type FractionValue, type GetIngredientQuantitiesOptions, type Group, type Ingredient, type IngredientAlternative, type IngredientAlternativeBase, type IngredientExtras, type IngredientFlag, type IngredientItem, type IngredientQuantityAndGroup, type IngredientQuantityGroup, type MaybeNestedAndGroup, type MaybeNestedGroup, type MaybeNestedOrGroup, type MaybeScalableQuantity, type Metadata, type MetadataObject, type MetadataSource, type MetadataTime, type MetadataValue, NoProductCatalogForCartError, type NoProductMatchErrorCode, NoShoppingListForCartError, NoTabAsIndentError, type Note, type NoteItem, type OrGroup, ProductCatalog, type ProductMatch, type ProductMisMatch, type ProductOption, type ProductOptionBase, type ProductOptionCore, type ProductSelection, type ProductSize, type QuantityBase, type QuantityWithExtendedUnit, type QuantityWithPlainUnit, type QuantityWithUnitDef, type QuantityWithUnitLike, type Range, Recipe, type RecipeAlternatives, type RecipeChoices, type RecipeWithFactor, type RecipeWithServings, Section, ShoppingCart, type ShoppingCartOptions, type ShoppingCartSummary, ShoppingList, type SpecificUnitSystem, type Step, type StepItem, type TextAttribute, type TextItem, type TextValue, type Timer, type TimerItem, type ToBaseBySystem, type Unit, type UnitDefinition, type UnitDefinitionLike, type UnitFractionConfig, type UnitSystem, type UnitType, type WithOptionalQuantity, convertQuantityToSystem, formatExtendedQuantity, formatItemQuantity, formatNumericValue, formatQuantity, formatQuantityWithUnit, formatSingleValue, formatUnit, hasAlternatives, isAlternativeSelected, isAndGroup, isGroupedItem, isSimpleGroup, renderFractionAsVulgar };
|
|
1941
|
+
export { type AddedIngredient, type AddedRecipe, type AddedRecipeOptions, type AlternativeIngredientRef, type AndGroup, type ArbitraryScalable, type ArbitraryScalableItem, BadIndentationError, type CartContent, type CartMatch, type CartMisMatch, type CategorizedIngredients, type Category, CategoryConfig, type CategoryIngredient, type Cookware, type CookwareFlag, type CookwareItem, type DecimalValue, type FixedNumericValue, type FixedValue, type FlatAndGroup, type FlatGroup, type FlatOrGroup, type FractionValue, type GetIngredientQuantitiesOptions, type Group, type Ingredient, type IngredientAlternative, type IngredientAlternativeBase, type IngredientExtras, type IngredientFlag, type IngredientItem, type IngredientQuantityAndGroup, type IngredientQuantityGroup, type MaybeNestedAndGroup, type MaybeNestedGroup, type MaybeNestedOrGroup, type MaybeScalableQuantity, type Metadata, type MetadataObject, type MetadataScalingVar, type MetadataSource, type MetadataTime, type MetadataValue, NoProductCatalogForCartError, type NoProductMatchErrorCode, NoShoppingListForCartError, NoTabAsIndentError, type Note, type NoteItem, type OrGroup, Pantry, type PantryItem, type PantryItemToml, type PantryOptions, ProductCatalog, type ProductMatch, type ProductMisMatch, type ProductOption, type ProductOptionBase, type ProductOptionCore, type ProductSelection, type ProductSize, type QuantityBase, type QuantityWithExtendedUnit, type QuantityWithPlainUnit, type QuantityWithUnitDef, type QuantityWithUnitLike, type Range, type RawQuantityGroup, Recipe, type RecipeAlternatives, type RecipeChoices, type RecipeWithFactor, type RecipeWithServings, Section, ShoppingCart, type ShoppingCartOptions, type ShoppingCartSummary, ShoppingList, type SpecificUnitSystem, type Step, type StepItem, type TextAttribute, type TextItem, type TextValue, type Timer, type TimerItem, type ToBaseBySystem, type Unit, type UnitDefinition, type UnitDefinitionLike, type UnitFractionConfig, type UnitSystem, type UnitType, type WithOptionalQuantity, convertQuantityToSystem, formatExtendedQuantity, formatItemQuantity, formatNumericValue, formatQuantity, formatQuantityWithUnit, formatSingleValue, formatUnit, hasAlternatives, isAlternativeSelected, isAndGroup, isGroupedItem, isSimpleGroup, renderFractionAsVulgar };
|