@tmlmt/cooklang-parser 3.0.0-alpha.15 → 3.0.0-alpha.17
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 +200 -88
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +51 -16
- package/dist/index.d.ts +51 -16
- package/dist/index.js +200 -88
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
package/dist/index.d.cts
CHANGED
|
@@ -114,6 +114,11 @@ declare class Recipe {
|
|
|
114
114
|
* Used for giving ID numbers to items during parsing.
|
|
115
115
|
*/
|
|
116
116
|
private static itemCounts;
|
|
117
|
+
/**
|
|
118
|
+
* External storage for subgroup index tracking during parsing.
|
|
119
|
+
* Maps groupKey → subgroupKey → index within the subgroups array.
|
|
120
|
+
*/
|
|
121
|
+
private static subgroupIndices;
|
|
117
122
|
/**
|
|
118
123
|
* Gets the current item count for this recipe.
|
|
119
124
|
*/
|
|
@@ -268,6 +273,18 @@ interface MetadataSource {
|
|
|
268
273
|
/** The author at the source. */
|
|
269
274
|
author?: string;
|
|
270
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Represents scaling variable information for a recipe.
|
|
278
|
+
* @category Types
|
|
279
|
+
*/
|
|
280
|
+
interface MetadataScalingVar extends QuantityWithPlainUnit {
|
|
281
|
+
/** The text before the scaling variable. */
|
|
282
|
+
textBefore?: string;
|
|
283
|
+
/** The text after the scaling variable. */
|
|
284
|
+
textAfter?: string;
|
|
285
|
+
/** The text precising a numerical scaling variable. */
|
|
286
|
+
text?: string;
|
|
287
|
+
}
|
|
271
288
|
/**
|
|
272
289
|
* Represents time information for a recipe.
|
|
273
290
|
* @category Types
|
|
@@ -291,7 +308,7 @@ interface MetadataObject {
|
|
|
291
308
|
* Represents any value that can appear in recipe metadata.
|
|
292
309
|
* @category Types
|
|
293
310
|
*/
|
|
294
|
-
type MetadataValue = string | number | (string | number)[] | MetadataObject | MetadataSource | MetadataTime | undefined;
|
|
311
|
+
type MetadataValue = string | number | (string | number)[] | MetadataObject | MetadataSource | MetadataTime | MetadataScalingVar | undefined;
|
|
295
312
|
/**
|
|
296
313
|
* Represents the metadata of a recipe.
|
|
297
314
|
* @category Types
|
|
@@ -309,9 +326,10 @@ interface Metadata {
|
|
|
309
326
|
/** The author of the recipe (separate from source author). */
|
|
310
327
|
author?: string;
|
|
311
328
|
/** The number of servings the recipe makes.
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
* whatever you want
|
|
329
|
+
* Can be given either as:
|
|
330
|
+
* - a number
|
|
331
|
+
* - a string which starts with a number (which will be used for scaling) followed by a comma and then whatever you want
|
|
332
|
+
* - or an arbitrary scalable number, optionally preceded and/or followed by text.
|
|
315
333
|
*
|
|
316
334
|
* Interchangeable with `yield` or `serves`. If multiple ones are defined,
|
|
317
335
|
* the prevailance order for the number which will used for scaling
|
|
@@ -326,30 +344,37 @@ interface Metadata {
|
|
|
326
344
|
* ```yaml
|
|
327
345
|
* servings: 2, a few
|
|
328
346
|
* ```
|
|
347
|
+
*
|
|
348
|
+
* * @example
|
|
349
|
+
* ```yaml
|
|
350
|
+
* servings: {{1.5%kg}} of bread
|
|
351
|
+
* ```
|
|
329
352
|
*/
|
|
330
|
-
servings?:
|
|
353
|
+
servings?: MetadataScalingVar;
|
|
331
354
|
/** The yield of the recipe.
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
* whatever you want
|
|
355
|
+
* Can be given either as:
|
|
356
|
+
* - a number
|
|
357
|
+
* - a string which starts with a number (which will be used for scaling) followed by a comma and then whatever you want
|
|
358
|
+
* - or an arbitrary scalable number, optionally preceded and/or followed by text.
|
|
335
359
|
*
|
|
336
360
|
* Interchangeable with `servings` or `serves`. If multiple ones are defined,
|
|
337
361
|
* the prevailance order for the number which will used for scaling
|
|
338
362
|
* is `servings` \> `yield` \> `serves`. See {@link Metadata.servings | servings}
|
|
339
363
|
* for examples.
|
|
340
364
|
*/
|
|
341
|
-
yield?:
|
|
365
|
+
yield?: MetadataScalingVar;
|
|
342
366
|
/** The number of people the recipe serves.
|
|
343
|
-
*
|
|
344
|
-
*
|
|
345
|
-
* whatever you want
|
|
367
|
+
* Can be given either as:
|
|
368
|
+
* - a number
|
|
369
|
+
* - a string which starts with a number (which will be used for scaling) followed by a comma and then whatever you want
|
|
370
|
+
* - or an arbitrary scalable number, optionally preceded and/or followed by text.
|
|
346
371
|
*
|
|
347
372
|
* Interchangeable with `servings` or `yield`. If multiple ones are defined,
|
|
348
373
|
* the prevailance order for the number which will used for scaling
|
|
349
374
|
* is `servings` \> `yield` \> `serves`. See {@link Metadata.servings | servings}
|
|
350
375
|
* for examples.
|
|
351
376
|
*/
|
|
352
|
-
serves?:
|
|
377
|
+
serves?: MetadataScalingVar;
|
|
353
378
|
/** The course of the recipe. */
|
|
354
379
|
course?: string;
|
|
355
380
|
/** The category of the recipe. */
|
|
@@ -593,6 +618,12 @@ interface IngredientItem {
|
|
|
593
618
|
* `@|group|...` syntax), they represent a single logical choice.
|
|
594
619
|
*/
|
|
595
620
|
group?: string;
|
|
621
|
+
/**
|
|
622
|
+
* An optional subgroup identifier for binding multiple ingredients together
|
|
623
|
+
* within a group. Ingredients sharing the same `group` and `subgroup` are
|
|
624
|
+
* selected together as a unit (e.g., from `@|group/1|...` syntax).
|
|
625
|
+
*/
|
|
626
|
+
subgroup?: string;
|
|
596
627
|
}
|
|
597
628
|
/**
|
|
598
629
|
* Represents the choices one can make in a recipe
|
|
@@ -606,9 +637,13 @@ interface RecipeAlternatives {
|
|
|
606
637
|
ingredientItems: Map<string, IngredientAlternative[]>;
|
|
607
638
|
/** Map of choices that can be made for Grouped Ingredient StepItem's
|
|
608
639
|
* - Keys are the Group IDs (e.g. "eggs" for `@|eggs|...`)
|
|
609
|
-
* - Values are arrays of
|
|
640
|
+
* - Values are arrays of subgroups, where each subgroup is an array of
|
|
641
|
+
* bound IngredientAlternative objects that are selected together.
|
|
642
|
+
* Items sharing the same subgroup key (e.g., `@|group/1|...`) are
|
|
643
|
+
* in the same inner array. Items without a subgroup key each form
|
|
644
|
+
* their own single-element subgroup.
|
|
610
645
|
*/
|
|
611
|
-
ingredientGroups: Map<string, IngredientAlternative[]>;
|
|
646
|
+
ingredientGroups: Map<string, IngredientAlternative[][]>;
|
|
612
647
|
}
|
|
613
648
|
/**
|
|
614
649
|
* Represents the choices to apply when computing ingredient quantities.
|
|
@@ -1918,4 +1953,4 @@ declare class BadIndentationError extends Error {
|
|
|
1918
1953
|
constructor();
|
|
1919
1954
|
}
|
|
1920
1955
|
|
|
1921
|
-
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, 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 };
|
|
1956
|
+
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 };
|
package/dist/index.d.ts
CHANGED
|
@@ -114,6 +114,11 @@ declare class Recipe {
|
|
|
114
114
|
* Used for giving ID numbers to items during parsing.
|
|
115
115
|
*/
|
|
116
116
|
private static itemCounts;
|
|
117
|
+
/**
|
|
118
|
+
* External storage for subgroup index tracking during parsing.
|
|
119
|
+
* Maps groupKey → subgroupKey → index within the subgroups array.
|
|
120
|
+
*/
|
|
121
|
+
private static subgroupIndices;
|
|
117
122
|
/**
|
|
118
123
|
* Gets the current item count for this recipe.
|
|
119
124
|
*/
|
|
@@ -268,6 +273,18 @@ interface MetadataSource {
|
|
|
268
273
|
/** The author at the source. */
|
|
269
274
|
author?: string;
|
|
270
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Represents scaling variable information for a recipe.
|
|
278
|
+
* @category Types
|
|
279
|
+
*/
|
|
280
|
+
interface MetadataScalingVar extends QuantityWithPlainUnit {
|
|
281
|
+
/** The text before the scaling variable. */
|
|
282
|
+
textBefore?: string;
|
|
283
|
+
/** The text after the scaling variable. */
|
|
284
|
+
textAfter?: string;
|
|
285
|
+
/** The text precising a numerical scaling variable. */
|
|
286
|
+
text?: string;
|
|
287
|
+
}
|
|
271
288
|
/**
|
|
272
289
|
* Represents time information for a recipe.
|
|
273
290
|
* @category Types
|
|
@@ -291,7 +308,7 @@ interface MetadataObject {
|
|
|
291
308
|
* Represents any value that can appear in recipe metadata.
|
|
292
309
|
* @category Types
|
|
293
310
|
*/
|
|
294
|
-
type MetadataValue = string | number | (string | number)[] | MetadataObject | MetadataSource | MetadataTime | undefined;
|
|
311
|
+
type MetadataValue = string | number | (string | number)[] | MetadataObject | MetadataSource | MetadataTime | MetadataScalingVar | undefined;
|
|
295
312
|
/**
|
|
296
313
|
* Represents the metadata of a recipe.
|
|
297
314
|
* @category Types
|
|
@@ -309,9 +326,10 @@ interface Metadata {
|
|
|
309
326
|
/** The author of the recipe (separate from source author). */
|
|
310
327
|
author?: string;
|
|
311
328
|
/** The number of servings the recipe makes.
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
* whatever you want
|
|
329
|
+
* Can be given either as:
|
|
330
|
+
* - a number
|
|
331
|
+
* - a string which starts with a number (which will be used for scaling) followed by a comma and then whatever you want
|
|
332
|
+
* - or an arbitrary scalable number, optionally preceded and/or followed by text.
|
|
315
333
|
*
|
|
316
334
|
* Interchangeable with `yield` or `serves`. If multiple ones are defined,
|
|
317
335
|
* the prevailance order for the number which will used for scaling
|
|
@@ -326,30 +344,37 @@ interface Metadata {
|
|
|
326
344
|
* ```yaml
|
|
327
345
|
* servings: 2, a few
|
|
328
346
|
* ```
|
|
347
|
+
*
|
|
348
|
+
* * @example
|
|
349
|
+
* ```yaml
|
|
350
|
+
* servings: {{1.5%kg}} of bread
|
|
351
|
+
* ```
|
|
329
352
|
*/
|
|
330
|
-
servings?:
|
|
353
|
+
servings?: MetadataScalingVar;
|
|
331
354
|
/** The yield of the recipe.
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
* whatever you want
|
|
355
|
+
* Can be given either as:
|
|
356
|
+
* - a number
|
|
357
|
+
* - a string which starts with a number (which will be used for scaling) followed by a comma and then whatever you want
|
|
358
|
+
* - or an arbitrary scalable number, optionally preceded and/or followed by text.
|
|
335
359
|
*
|
|
336
360
|
* Interchangeable with `servings` or `serves`. If multiple ones are defined,
|
|
337
361
|
* the prevailance order for the number which will used for scaling
|
|
338
362
|
* is `servings` \> `yield` \> `serves`. See {@link Metadata.servings | servings}
|
|
339
363
|
* for examples.
|
|
340
364
|
*/
|
|
341
|
-
yield?:
|
|
365
|
+
yield?: MetadataScalingVar;
|
|
342
366
|
/** The number of people the recipe serves.
|
|
343
|
-
*
|
|
344
|
-
*
|
|
345
|
-
* whatever you want
|
|
367
|
+
* Can be given either as:
|
|
368
|
+
* - a number
|
|
369
|
+
* - a string which starts with a number (which will be used for scaling) followed by a comma and then whatever you want
|
|
370
|
+
* - or an arbitrary scalable number, optionally preceded and/or followed by text.
|
|
346
371
|
*
|
|
347
372
|
* Interchangeable with `servings` or `yield`. If multiple ones are defined,
|
|
348
373
|
* the prevailance order for the number which will used for scaling
|
|
349
374
|
* is `servings` \> `yield` \> `serves`. See {@link Metadata.servings | servings}
|
|
350
375
|
* for examples.
|
|
351
376
|
*/
|
|
352
|
-
serves?:
|
|
377
|
+
serves?: MetadataScalingVar;
|
|
353
378
|
/** The course of the recipe. */
|
|
354
379
|
course?: string;
|
|
355
380
|
/** The category of the recipe. */
|
|
@@ -593,6 +618,12 @@ interface IngredientItem {
|
|
|
593
618
|
* `@|group|...` syntax), they represent a single logical choice.
|
|
594
619
|
*/
|
|
595
620
|
group?: string;
|
|
621
|
+
/**
|
|
622
|
+
* An optional subgroup identifier for binding multiple ingredients together
|
|
623
|
+
* within a group. Ingredients sharing the same `group` and `subgroup` are
|
|
624
|
+
* selected together as a unit (e.g., from `@|group/1|...` syntax).
|
|
625
|
+
*/
|
|
626
|
+
subgroup?: string;
|
|
596
627
|
}
|
|
597
628
|
/**
|
|
598
629
|
* Represents the choices one can make in a recipe
|
|
@@ -606,9 +637,13 @@ interface RecipeAlternatives {
|
|
|
606
637
|
ingredientItems: Map<string, IngredientAlternative[]>;
|
|
607
638
|
/** Map of choices that can be made for Grouped Ingredient StepItem's
|
|
608
639
|
* - Keys are the Group IDs (e.g. "eggs" for `@|eggs|...`)
|
|
609
|
-
* - Values are arrays of
|
|
640
|
+
* - Values are arrays of subgroups, where each subgroup is an array of
|
|
641
|
+
* bound IngredientAlternative objects that are selected together.
|
|
642
|
+
* Items sharing the same subgroup key (e.g., `@|group/1|...`) are
|
|
643
|
+
* in the same inner array. Items without a subgroup key each form
|
|
644
|
+
* their own single-element subgroup.
|
|
610
645
|
*/
|
|
611
|
-
ingredientGroups: Map<string, IngredientAlternative[]>;
|
|
646
|
+
ingredientGroups: Map<string, IngredientAlternative[][]>;
|
|
612
647
|
}
|
|
613
648
|
/**
|
|
614
649
|
* Represents the choices to apply when computing ingredient quantities.
|
|
@@ -1918,4 +1953,4 @@ declare class BadIndentationError extends Error {
|
|
|
1918
1953
|
constructor();
|
|
1919
1954
|
}
|
|
1920
1955
|
|
|
1921
|
-
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, 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 };
|
|
1956
|
+
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 };
|