@adeficior/data-modifier-recipes 2.0.0-rc.20260816171656 → 2.0.0
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/emitter.d.ts +5 -5
- package/dist/emitter.js +2 -1
- package/dist/emitter.js.map +1 -1
- package/dist/helper/factory.d.ts +8 -0
- package/dist/helper/factory.js +12 -0
- package/dist/helper/factory.js.map +1 -0
- package/dist/helper/ids.d.ts +2 -0
- package/dist/helper/ids.js +12 -0
- package/dist/helper/ids.js.map +1 -0
- package/dist/helper/index.d.ts +2 -0
- package/dist/helper/index.js +3 -0
- package/dist/helper/index.js.map +1 -0
- package/dist/helper/vanilla.d.ts +17 -0
- package/dist/helper/vanilla.js +26 -0
- package/dist/helper/vanilla.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +2 -2
- package/dist/module.d.ts +2 -0
- package/dist/module.js +8 -1
- package/dist/module.js.map +1 -1
- package/dist/testing/setup.d.ts +11 -3
- package/dist/testing/setup.js +15 -7
- package/dist/testing/setup.js.map +1 -1
- package/package.json +16 -13
- package/.turbo/turbo-build.log +0 -1
- package/@types/modules.d.ts +0 -15
- package/@types/registry.d.ts +0 -20
- package/CHANGELOG.md +0 -14
- package/eslint.config.js +0 -8
- package/src/emitter.ts +0 -242
- package/src/hooks.ts +0 -6
- package/src/index.ts +0 -13
- package/src/loader.ts +0 -57
- package/src/model.ts +0 -13
- package/src/module.ts +0 -81
- package/src/rule.ts +0 -38
- package/src/schema.ts +0 -31
- package/src/serializer/abstract.ts +0 -45
- package/src/serializer/context.ts +0 -11
- package/src/serializer/default.ts +0 -68
- package/src/serializer/forge/conditional.ts +0 -74
- package/src/serializer/holder.ts +0 -84
- package/src/serializer/impl.ts +0 -102
- package/src/serializer/index.ts +0 -6
- package/src/serializer/manyToMany.ts +0 -61
- package/src/serializer/manyToOne.ts +0 -61
- package/src/serializer/modifier.ts +0 -9
- package/src/serializer/oneToOne.ts +0 -59
- package/src/serializer/vanilla/shaped.ts +0 -70
- package/src/serializer/vanilla/shapeless.ts +0 -8
- package/src/serializer/vanilla/smelting.ts +0 -66
- package/src/serializer/vanilla/smithing.ts +0 -72
- package/src/serializer/vanilla/stonecutting.ts +0 -61
- package/src/testing/index.ts +0 -1
- package/src/testing/setup.ts +0 -109
- package/test/1.20.1/__snapshots__/custom.test.ts.snap +0 -225
- package/test/1.20.1/__snapshots__/loader.test.ts.snap +0 -215
- package/test/1.20.1/__snapshots__/modify.test.ts.snap +0 -122
- package/test/1.20.1/custom.test.ts +0 -95
- package/test/1.20.1/loader.test.ts +0 -13
- package/test/1.20.1/modify.test.ts +0 -91
- package/test/1.20.1/removal.test.ts +0 -85
- package/test/1.20.1/serializer.test.ts +0 -21
- package/test/1.21.1/__snapshots__/custom.test.ts.snap +0 -201
- package/test/1.21.1/custom.test.ts +0 -27
- package/test/1.21.1/loader.test.ts +0 -13
- package/test/1.21.1/packFormat.test.ts +0 -50
- package/test/1.21.1/serializer.test.ts +0 -31
- package/test/providers/recipes.ts +0 -151
- package/test/resources/1.20.1/default/custom/data/custom/recipes/conditional.json +0 -25
- package/tsconfig.build.json +0 -14
- package/tsconfig.json +0 -35
package/dist/emitter.d.ts
CHANGED
|
@@ -14,13 +14,13 @@ export type RecipeTest = Readonly<{
|
|
|
14
14
|
output?: IngredientFilter;
|
|
15
15
|
input?: IngredientFilter;
|
|
16
16
|
}>;
|
|
17
|
-
export
|
|
17
|
+
export type RecipeEmitter = {
|
|
18
18
|
replaceResult(test: IngredientFilter, value: ResultInput, additionalTests?: RecipeTest): void;
|
|
19
19
|
replaceIngredient(test: IngredientFilter, value: IngredientInput, additionalTests?: RecipeTest): void;
|
|
20
|
-
add(id: IdInput, value: RecipeDefinition):
|
|
21
|
-
add(id: IdInput, type: IdInput<RecipeSerializerId>, value: Recipe, conditions?: Conditions):
|
|
20
|
+
add(id: IdInput, value: RecipeDefinition): NormalizedId;
|
|
21
|
+
add(id: IdInput, type: IdInput<RecipeSerializerId>, value: Recipe, conditions?: Conditions): NormalizedId;
|
|
22
22
|
remove(test: RecipeTest): void;
|
|
23
|
-
}
|
|
23
|
+
};
|
|
24
24
|
export declare const EMPTY_RECIPE: RecipeDefinition;
|
|
25
25
|
export declare class RecipeEmitterImpl implements RecipeEmitter, ClearableEmitter {
|
|
26
26
|
private readonly logger;
|
|
@@ -37,7 +37,7 @@ export declare class RecipeEmitterImpl implements RecipeEmitter, ClearableEmitte
|
|
|
37
37
|
private createIngredientPredicate;
|
|
38
38
|
private createResultPredicate;
|
|
39
39
|
private resolveRecipeTest;
|
|
40
|
-
add(id: IdInput, arg: RecipeDefinition | IdInput<RecipeSerializerId>, arg2?: Recipe, conditions?: Conditions):
|
|
40
|
+
add(id: IdInput, arg: RecipeDefinition | IdInput<RecipeSerializerId>, arg2?: Recipe, conditions?: Conditions): NormalizedId;
|
|
41
41
|
private addRule;
|
|
42
42
|
remove(test: RecipeTest): void;
|
|
43
43
|
replaceResult(test: IngredientFilter, input: ResultInput, additionalTest?: RecipeTest): void;
|
package/dist/emitter.js
CHANGED
|
@@ -63,7 +63,7 @@ export class RecipeEmitterImpl {
|
|
|
63
63
|
if (typeof arg === "string" || "namespace" in arg) {
|
|
64
64
|
const holder = RecipeHolder.of(arg, arg2, conditions);
|
|
65
65
|
const serialized = this.serializer.serialize(holder);
|
|
66
|
-
this.add(id, serialized);
|
|
66
|
+
return this.add(id, serialized);
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
69
|
const value = arg;
|
|
@@ -71,6 +71,7 @@ export class RecipeEmitterImpl {
|
|
|
71
71
|
this.logger.error(`Overwriting custom recipe with ID ${encodeId(id)}`);
|
|
72
72
|
// TODO add to custom registry so recipe graph can use it
|
|
73
73
|
this.custom.add(id, value);
|
|
74
|
+
return encodeId(id);
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
addRule(context, modifier, recipeTest = {}, ingredientTests = {}) {
|
package/dist/emitter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAKvC,OAAO,EACL,cAAc,EACd,aAAa,GACd,MAAM,0CAA0C,CAAC;AAalD,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAkCnD,MAAM,CAAC,MAAM,YAAY,GAAqB,sBAAsB,CAAC;IACnE,IAAI,EAAE,oBAAoB;CAC3B,CAAC,CAAC;AAEH,MAAM,OAAO,iBAAiB;IAST;IACA;IACA;IACA;IACA;IACA;IACA;IAdF,MAAM,GAAG,IAAI,aAAa,CAAmB,CAAC,EAAE,EAAE,EAAE,CACnE,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAChC,CAAC;IAEe,KAAK,CAAyC;IAE/D;IACE,cAAc;IACG,MAAc,EACd,UAAuB,EACvB,QAAwC,EACxC,gBAAkC,EAClC,oBAA0C,EAC1C,UAAsB,EACtB,UAA6B;QAN7B,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAa;QACvB,aAAQ,GAAR,QAAQ,CAAgC;QACxC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,eAAU,GAAV,UAAU,CAAY;QACtB,eAAU,GAAV,UAAU,CAAmB;QAE9C,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAC3B,IAAI,CAAC,QAAQ,EACb,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,EAClC,YAAY,EACZ,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EACrC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAC5B,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,OAAsB;QAC7B,OAAO,gBAAgB,CACrB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAC7D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,MAAyB;QACzD,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEO,qBAAqB,CAAC,MAAyB;QACrD,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAEO,iBAAiB,CAAC,IAAgB;QACxC,MAAM,EAAE,GAAoB,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAoB,EAAE,CAAC;QACjC,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,IAAI,IAAI,CAAC,EAAE;YAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,SAAS;YAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,KAAK;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAC1C,CAAC;IAED,GAAG,CACD,EAAW,EACX,GAAmD,EACnD,IAAa,EACb,UAAuB;QAEvB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,IAAK,EAAE,UAAU,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IdInput, NormalizedId } from "@adeficior/data-modifier-core";
|
|
2
|
+
type RecipeFactory<Args extends unknown[]> = (id: IdInput | null, ...args: Args) => NormalizedId;
|
|
3
|
+
type CurriedRecipeFactory<Args extends unknown[]> = {
|
|
4
|
+
(id: IdInput, ...args: Args): NormalizedId;
|
|
5
|
+
(...args: Args): NormalizedId;
|
|
6
|
+
};
|
|
7
|
+
export declare function withDefaultId<Args extends unknown[]>(factory: RecipeFactory<Args>): CurriedRecipeFactory<Args>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/helper/factory.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,aAAa,CAC3B,OAA4B;IAE5B,OAAO,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE;QAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAY,CAAC;YAC1B,OAAO,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,GAAI,IAA2B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAA+B,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RegistryEntryResult } from "@adeficior/data-modifier-ingredients";
|
|
2
|
+
import { arrayOrSelf } from "@adeficior/pack-resolver";
|
|
3
|
+
export function createResultId(result) {
|
|
4
|
+
const [first] = arrayOrSelf(result);
|
|
5
|
+
if (!first)
|
|
6
|
+
throw new Error("cannot create ID from empty result array");
|
|
7
|
+
if (first instanceof RegistryEntryResult) {
|
|
8
|
+
return first.id;
|
|
9
|
+
}
|
|
10
|
+
throw new Error(`cannot create default id from result '${first.hashCode()}'`);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/helper/ids.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,UAAU,cAAc,CAAC,MAAyB;IACtD,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAExE,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helper/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IdInput, NormalizedId } from "@adeficior/data-modifier-core";
|
|
2
|
+
import type { IngredientInput, IngredientSerializer, ResultInput, ResultSerializer } from "@adeficior/data-modifier-ingredients";
|
|
3
|
+
import type { RecipeEmitter } from "../emitter";
|
|
4
|
+
export type VanillaRecipeHelper = {
|
|
5
|
+
shaped(id: IdInput, ingredients: IngredientInput[][], result: ResultInput): NormalizedId;
|
|
6
|
+
shaped(ingredients: IngredientInput[][], result: ResultInput): NormalizedId;
|
|
7
|
+
shapeless(id: IdInput, ingredients: IngredientInput[], result: ResultInput): NormalizedId;
|
|
8
|
+
shapeless(ingredients: IngredientInput[], result: ResultInput): NormalizedId;
|
|
9
|
+
};
|
|
10
|
+
export declare class VanillaRecipeHelperImpl implements VanillaRecipeHelper {
|
|
11
|
+
private readonly emitter;
|
|
12
|
+
private readonly ingredients;
|
|
13
|
+
private readonly results;
|
|
14
|
+
constructor(emitter: RecipeEmitter, ingredients: IngredientSerializer, results: ResultSerializer);
|
|
15
|
+
readonly shaped: VanillaRecipeHelper["shaped"];
|
|
16
|
+
readonly shapeless: VanillaRecipeHelper["shapeless"];
|
|
17
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IngredientMap } from "@adeficior/data-modifier-ingredients";
|
|
2
|
+
import { ShapedRecipe } from "../serializer/vanilla/shaped";
|
|
3
|
+
import { ShapelessRecipe } from "../serializer/vanilla/shapeless";
|
|
4
|
+
import { withDefaultId } from "./factory";
|
|
5
|
+
import { createResultId } from "./ids";
|
|
6
|
+
export class VanillaRecipeHelperImpl {
|
|
7
|
+
emitter;
|
|
8
|
+
ingredients;
|
|
9
|
+
results;
|
|
10
|
+
constructor(emitter, ingredients, results) {
|
|
11
|
+
this.emitter = emitter;
|
|
12
|
+
this.ingredients = ingredients;
|
|
13
|
+
this.results = results;
|
|
14
|
+
}
|
|
15
|
+
shaped = withDefaultId((id, ingredientInputs, resultInput) => {
|
|
16
|
+
const { pattern, ingredients } = IngredientMap.from(ingredientInputs.map((line) => line.map((it) => this.ingredients.deserialize(it))));
|
|
17
|
+
const result = this.results.deserialize(resultInput);
|
|
18
|
+
return this.emitter.add(id ?? createResultId(result), "minecraft:crafting_shaped", new ShapedRecipe(pattern, ingredients, result));
|
|
19
|
+
});
|
|
20
|
+
shapeless = withDefaultId((id, ingredientInputs, resultInput) => {
|
|
21
|
+
const ingredients = this.ingredients.deserializeList(ingredientInputs);
|
|
22
|
+
const result = this.results.deserialize(resultInput);
|
|
23
|
+
return this.emitter.add(id ?? createResultId(result), "minecraft:crafting_shapeless", new ShapelessRecipe(ingredients, result));
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=vanilla.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vanilla.js","sourceRoot":"","sources":["../../src/helper/vanilla.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAkBvC,MAAM,OAAO,uBAAuB;IAEf;IACA;IACA;IAHnB,YACmB,OAAsB,EACtB,WAAiC,EACjC,OAAyB;QAFzB,YAAO,GAAP,OAAO,CAAe;QACtB,gBAAW,GAAX,WAAW,CAAsB;QACjC,YAAO,GAAP,OAAO,CAAkB;IACzC,CAAC;IAEK,MAAM,GAAkC,aAAa,CAC5D,CACE,EAAkB,EAClB,gBAAqC,EACrC,WAAwB,EACxB,EAAE;QACF,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC,IAAI,CACjD,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CACnD,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAErD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,EAAE,IAAI,cAAc,CAAC,MAAM,CAAC,EAC5B,2BAA2B,EAC3B,IAAI,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAC/C,CAAC;IACJ,CAAC,CACF,CAAC;IAEO,SAAS,GAAqC,aAAa,CAClE,CACE,EAAkB,EAClB,gBAAmC,EACnC,WAAwB,EACxB,EAAE;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAErD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,EAAE,IAAI,cAAc,CAAC,MAAM,CAAC,EAC5B,8BAA8B,EAC9B,IAAI,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CACzC,CAAC;IACJ,CAAC,CACF,CAAC;CACH"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { EMPTY_RECIPE, type RecipeEmitter, type RecipeTest } from "./emitter";
|
|
2
|
+
export type { VanillaRecipeHelper } from "./helper/vanilla";
|
|
2
3
|
export type * from "./hooks";
|
|
3
4
|
export type { RecipeLoader } from "./loader";
|
|
4
5
|
export type * from "./model";
|
|
5
6
|
export { default } from "./module";
|
|
6
7
|
export * from "./schema";
|
|
8
|
+
export type { RecipesSerializer } from "./serializer/abstract";
|
|
7
9
|
export * from "./serializer/forge/conditional";
|
|
8
10
|
export type * from "./serializer/modifier";
|
|
9
11
|
export * from "./serializer/vanilla/shaped";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuC,MAAM,WAAW,CAAC;AAK9E,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,cAAc,UAAU,CAAC;AAEzB,cAAc,gCAAgC,CAAC;AAE/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC"}
|
package/dist/loader.d.ts
CHANGED
|
@@ -3,9 +3,9 @@ import { JsonLoader } from "@adeficior/data-modifier-core";
|
|
|
3
3
|
import type { RecipeDefinition } from "./schema";
|
|
4
4
|
import type { RecipesSerializer } from "./serializer/abstract";
|
|
5
5
|
import type { RecipeHolder } from "./serializer/holder";
|
|
6
|
-
export
|
|
6
|
+
export type RecipeLoader = {
|
|
7
7
|
ignoreType(pattern: string): void;
|
|
8
|
-
}
|
|
8
|
+
} & RegistryProvider<RecipeHolder>;
|
|
9
9
|
export declare class RecipeLoaderImpl extends JsonLoader<RecipeHolder> implements RecipeLoader {
|
|
10
10
|
private readonly serializer;
|
|
11
11
|
private readonly ignoredRecipeTypePatterns;
|
package/dist/module.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RecipeEmitter } from "./emitter";
|
|
2
|
+
import type { VanillaRecipeHelper } from "./helper/vanilla";
|
|
2
3
|
import type { RegisterRecipeSerializer } from "./hooks";
|
|
3
4
|
import type { RecipeLoader } from "./loader";
|
|
4
5
|
import type { RecipesSerializer } from "./serializer/abstract";
|
|
@@ -14,6 +15,7 @@ declare const _default: import("@adeficior/data-modifier-core").ModuleConfig<{
|
|
|
14
15
|
};
|
|
15
16
|
services: {
|
|
16
17
|
"serializer:recipes": RecipesSerializer;
|
|
18
|
+
"helper:recipes:vanilla": VanillaRecipeHelper;
|
|
17
19
|
};
|
|
18
20
|
}>;
|
|
19
21
|
export default _default;
|
package/dist/module.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineModule } from "@adeficior/data-modifier-core";
|
|
2
2
|
import { name } from "../package.json";
|
|
3
3
|
import { RecipeEmitterImpl } from "./emitter";
|
|
4
|
+
import { VanillaRecipeHelperImpl } from "./helper/vanilla";
|
|
4
5
|
import { RecipeLoaderImpl } from "./loader";
|
|
5
6
|
import { recipePattern } from "./schema";
|
|
6
7
|
import { registerDefaultSerializers } from "./serializer/default";
|
|
@@ -22,12 +23,18 @@ export default defineModule({
|
|
|
22
23
|
},
|
|
23
24
|
services: {
|
|
24
25
|
"serializer:recipes": "RecipesSerializer",
|
|
26
|
+
"helper:recipes:vanilla": "VanillaRecipeHelper",
|
|
25
27
|
},
|
|
26
28
|
},
|
|
29
|
+
promote: [
|
|
30
|
+
{ service: "emitter:recipes", key: "recipes" },
|
|
31
|
+
{ service: "helper:recipes:vanilla", key: "recipes.vanilla" },
|
|
32
|
+
],
|
|
27
33
|
setup: (pack) => {
|
|
28
34
|
const serializer = pack.service("serializer:recipes", (container) => new RecipeSerializerImpl(container.get("serializer:results"), container.get("serializer:ingredients")));
|
|
29
35
|
const loader = pack.loader("recipes", () => new RecipeLoaderImpl(serializer()), recipePattern(pack.options.packFormat));
|
|
30
|
-
pack.emitter("recipes", (container) => new RecipeEmitterImpl(container.get("logger"), pack.options.packFormat, loader(), container.get("serializer:results"), container.get("serializer:ingredients"), container.get("predicates"), serializer()));
|
|
36
|
+
const emitter = pack.emitter("recipes", (container) => new RecipeEmitterImpl(container.get("logger"), pack.options.packFormat, loader(), container.get("serializer:results"), container.get("serializer:ingredients"), container.get("predicates"), serializer()));
|
|
37
|
+
pack.service("helper:recipes:vanilla", (container) => new VanillaRecipeHelperImpl(emitter(), container.get("serializer:ingredients"), container.get("serializer:results")));
|
|
31
38
|
pack.hook("recipes:register-serializer", registerDefaultSerializers);
|
|
32
39
|
pack.hook("setup:after", ({ callHook }) => {
|
|
33
40
|
callHook("recipes:register-serializer", serializer().createEvent());
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAI3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,eAAe,YAAY,CAcxB;IACD,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE;QACZ,sCAAsC,EAAE,UAAU;KACnD;IACD,KAAK,EAAE;QACL,KAAK,EAAE;YACL,6BAA6B,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE;SACpE;QACD,OAAO,EAAE;YACP,OAAO,EAAE,cAAc;SACxB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,eAAe;SACzB;QACD,QAAQ,EAAE;YACR,oBAAoB,EAAE,mBAAmB;YACzC,wBAAwB,EAAE,qBAAqB;SAChD;KACF;IACD,OAAO,EAAE;QACP,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,SAAS,EAAE;QAC9C,EAAE,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,iBAAiB,EAAE;KAC9D;IACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,oBAAoB,EACpB,CAAC,SAAS,EAAE,EAAE,CACZ,IAAI,oBAAoB,CACtB,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,EACnC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,CACxC,CACJ,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CACxB,SAAS,EACT,GAAG,EAAE,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC,EACxC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CACvC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAC1B,SAAS,EACT,CAAC,SAAS,EAAE,EAAE,CACZ,IAAI,iBAAiB,CACnB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EACvB,IAAI,CAAC,OAAO,CAAC,UAAU,EACvB,MAAM,EAAE,EACR,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,EACnC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,EACvC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAC3B,UAAU,EAAE,CACb,CACJ,CAAC;QAEF,IAAI,CAAC,OAAO,CACV,wBAAwB,EACxB,CAAC,SAAS,EAAE,EAAE,CACZ,IAAI,uBAAuB,CACzB,OAAO,EAAE,EACT,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,EACvC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CACpC,CACJ,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,0BAA0B,CAAC,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxC,QAAQ,CAAC,6BAA6B,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
package/dist/testing/setup.d.ts
CHANGED
|
@@ -1,21 +1,29 @@
|
|
|
1
1
|
import type { EventHandler, RegistryLookup } from "@adeficior/data-modifier-core";
|
|
2
|
+
import type { TestDataOptions } from "@adeficior/testing";
|
|
2
3
|
import type { RecipeEmitter } from "../emitter";
|
|
3
4
|
import type { RegisterRecipeSerializer } from "../hooks";
|
|
4
5
|
import type { RecipeLoader } from "../loader";
|
|
5
6
|
import type { RecipesSerializer } from "../serializer";
|
|
6
|
-
export
|
|
7
|
+
export type TestRecipeSerializerOptions = {
|
|
8
|
+
parsers?: EventHandler<RegisterRecipeSerializer>;
|
|
9
|
+
};
|
|
10
|
+
export declare function setupRecipeSerializer(version: string, options?: TestRecipeSerializerOptions): {
|
|
7
11
|
lookup: import("@adeficior/data-modifier-core").RegistryDumpLoader;
|
|
8
12
|
serializer: RecipesSerializer;
|
|
9
13
|
};
|
|
10
|
-
export
|
|
14
|
+
export type TestRecipeLoaderOptions = TestDataOptions & TestRecipeSerializerOptions & {
|
|
15
|
+
mods?: string[];
|
|
16
|
+
};
|
|
17
|
+
export declare function setupRecipeLoader(version: string, { mods, parsers, ...resolverOptions }?: TestRecipeLoaderOptions): {
|
|
11
18
|
logger: import("@adeficior/pack-resolver/testing").TestLogger;
|
|
12
19
|
serializer: RecipesSerializer;
|
|
13
20
|
lookup: RegistryLookup;
|
|
14
21
|
loader: RecipeLoader;
|
|
15
22
|
};
|
|
16
|
-
export declare function setupRecipeEmitter(version: string,
|
|
23
|
+
export declare function setupRecipeEmitter(version: string, options?: TestRecipeLoaderOptions): {
|
|
17
24
|
loader: RecipeLoader;
|
|
18
25
|
resolver: import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable, import("@adeficior/pack-resolver").BaseContext>;
|
|
19
26
|
logger: import("@adeficior/pack-resolver/testing").TestLogger;
|
|
20
27
|
emitter: RecipeEmitter;
|
|
21
28
|
};
|
|
29
|
+
export declare function recipeModuleOptions(mod: string, parsers: TestRecipeLoaderOptions["parsers"]): TestRecipeLoaderOptions;
|
package/dist/testing/setup.js
CHANGED
|
@@ -9,19 +9,19 @@ import { RecipeLoaderImpl } from "../loader";
|
|
|
9
9
|
import { recipePattern } from "../schema";
|
|
10
10
|
import { registerDefaultSerializers } from "../serializer/default";
|
|
11
11
|
import { RecipeSerializerImpl } from "../serializer/impl";
|
|
12
|
-
export function setupRecipeSerializer(version,
|
|
12
|
+
export function setupRecipeSerializer(version, options) {
|
|
13
13
|
const lookup = setupLookup(version);
|
|
14
14
|
const results = setupResultSerializer(version, lookup);
|
|
15
15
|
const ingredients = setupIngredientSerializer(version, lookup);
|
|
16
16
|
const serializer = new RecipeSerializerImpl(results, ingredients);
|
|
17
17
|
beforeAll(async () => {
|
|
18
18
|
registerDefaultSerializers(serializer.createEvent());
|
|
19
|
-
await parsers?.(serializer.createEvent());
|
|
19
|
+
await options?.parsers?.(serializer.createEvent());
|
|
20
20
|
});
|
|
21
21
|
return { lookup, serializer: serializer };
|
|
22
22
|
}
|
|
23
|
-
export function setupRecipeLoader(version,
|
|
24
|
-
const { lookup, serializer } = setupRecipeSerializer(version, parsers);
|
|
23
|
+
export function setupRecipeLoader(version, { mods = [], parsers, ...resolverOptions } = {}) {
|
|
24
|
+
const { lookup, serializer } = setupRecipeSerializer(version, { parsers });
|
|
25
25
|
const loader = new RecipeLoaderImpl(serializer, {
|
|
26
26
|
mods: ["minecraft", ...mods],
|
|
27
27
|
});
|
|
@@ -30,6 +30,7 @@ export function setupRecipeLoader(version, parsers, mods = []) {
|
|
|
30
30
|
const resolver = await createTestDataResolver(version, {
|
|
31
31
|
include: recipePattern(packFormatOf(version)),
|
|
32
32
|
logger,
|
|
33
|
+
...resolverOptions,
|
|
33
34
|
});
|
|
34
35
|
await resolver.extract(loader);
|
|
35
36
|
});
|
|
@@ -43,11 +44,11 @@ export function setupRecipeLoader(version, parsers, mods = []) {
|
|
|
43
44
|
loader: loader,
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
|
-
export function setupRecipeEmitter(version,
|
|
47
|
-
const { loader, serializer, lookup } = setupRecipeLoader(version,
|
|
47
|
+
export function setupRecipeEmitter(version, options) {
|
|
48
|
+
const { loader, serializer, lookup } = setupRecipeLoader(version, options);
|
|
48
49
|
const results = setupResultSerializer(version, lookup);
|
|
49
50
|
const ingredients = setupIngredientSerializer(version, lookup);
|
|
50
|
-
const tags = setupTagRegistry(version);
|
|
51
|
+
const tags = setupTagRegistry(version, options);
|
|
51
52
|
const predicates = setupPredicates(lookup, tags, ingredients);
|
|
52
53
|
const logger = createTestLogger();
|
|
53
54
|
const emitter = new RecipeEmitterImpl(logger, packFormatOf(version), loader, results, ingredients, predicates, serializer);
|
|
@@ -58,4 +59,11 @@ export function setupRecipeEmitter(version, parsers, mods = ["minecraft"]) {
|
|
|
58
59
|
});
|
|
59
60
|
return { loader, resolver, logger, emitter: emitter };
|
|
60
61
|
}
|
|
62
|
+
export function recipeModuleOptions(mod, parsers) {
|
|
63
|
+
return {
|
|
64
|
+
parsers,
|
|
65
|
+
from: ["default", mod],
|
|
66
|
+
mods: [mod],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
61
69
|
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/testing/setup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,qBAAqB,GACtB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/testing/setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,33 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adeficior/data-modifier-recipes",
|
|
3
3
|
"description": "data-modifier module for recipes",
|
|
4
|
-
"version": "2.0.0
|
|
4
|
+
"version": "2.0.0",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/index.js",
|
|
7
7
|
"./serializer": "./dist/serializer/index.js",
|
|
8
|
+
"./helper": "./dist/helper/index.js",
|
|
8
9
|
"./testing": "./dist/testing/index.js"
|
|
9
10
|
},
|
|
10
|
-
"types": "./dist/index.d.ts",
|
|
11
|
-
"typesVersions": {
|
|
12
|
-
"*": {
|
|
13
|
-
"serializer": ["./dist/serializer/index.d.ts"],
|
|
14
|
-
"testing": ["./dist/testing/index.d.ts"]
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
11
|
"type": "module",
|
|
18
12
|
"devDependencies": {
|
|
19
13
|
"@types/lodash-es": "^4.17.12",
|
|
20
|
-
"@adeficior/data-modifier-ingredients": "^2.0.0
|
|
14
|
+
"@adeficior/data-modifier-ingredients": "^2.0.0"
|
|
21
15
|
},
|
|
22
16
|
"peerDependencies": {
|
|
23
|
-
"@adeficior/pack-resolver": "^2.0.
|
|
17
|
+
"@adeficior/pack-resolver": "^2.0.1",
|
|
24
18
|
"typescript": "^5",
|
|
25
19
|
"minimatch": "^10.2.6",
|
|
26
20
|
"lodash-es": "^4.18.1",
|
|
27
|
-
"@adeficior/data-modifier-core": "^2.0.0
|
|
28
|
-
"@adeficior/data-modifier-ingredients": "^2.0.0
|
|
29
|
-
"@adeficior/data-modifier-tags": "^2.0.0
|
|
21
|
+
"@adeficior/data-modifier-core": "^2.0.0",
|
|
22
|
+
"@adeficior/data-modifier-ingredients": "^2.0.0",
|
|
23
|
+
"@adeficior/data-modifier-tags": "^2.0.0"
|
|
30
24
|
},
|
|
25
|
+
"typesVersions": {
|
|
26
|
+
"*": {
|
|
27
|
+
"./serializer": ["./dist/serializer/index.d.ts"],
|
|
28
|
+
"./helper": ["./dist/helper/index.d.ts"],
|
|
29
|
+
"./testing": ["./dist/testing/index.d.ts"]
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"files": ["dist"],
|
|
31
34
|
"bugs": { "url": "https://github.com/Adeficior/DataModifier/issues" },
|
|
32
35
|
"homepage": "https://github.com/Adeficior/DataModifier#readme",
|
|
33
36
|
"license": "LGPL-3.0-or-later",
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
$ tsc --project tsconfig.build.json
|
package/@types/modules.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
declare module "@adeficior/data-modifier-core/generated" {
|
|
2
|
-
export type Services<T extends ModuleTypes> = {
|
|
3
|
-
"serializer:results": import("@adeficior/data-modifier-ingredients").ResultSerializer;
|
|
4
|
-
"serializer:ingredients": import("@adeficior/data-modifier-ingredients").IngredientSerializer;
|
|
5
|
-
predicates: import("@adeficior/data-modifier-ingredients").Predicates;
|
|
6
|
-
"loader:tags": import("@adeficior/data-modifier-tags").TagRegistryHolder;
|
|
7
|
-
"emitter:tags": import("@adeficior/data-modifier-tags").TagRules;
|
|
8
|
-
registries: import("@adeficior/data-modifier-core").RegistryLookup;
|
|
9
|
-
logger: import("@adeficior/pack-resolver").Logger;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export type Hooks<T extends ModuleTypes> = {
|
|
13
|
-
"setup:after": import("@adeficior/data-modifier-core").AfterSetupEvent<T>;
|
|
14
|
-
};
|
|
15
|
-
}
|
package/@types/registry.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
declare module "@adeficior/data-modifier/generated" {
|
|
2
|
-
type StubId = string;
|
|
3
|
-
|
|
4
|
-
export type RegistryId = StubId;
|
|
5
|
-
|
|
6
|
-
export type CreativeModeTabId = StubId;
|
|
7
|
-
|
|
8
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
9
|
-
export type InferIds<T extends RegistryId> = StubId;
|
|
10
|
-
|
|
11
|
-
export type ItemId = StubId;
|
|
12
|
-
|
|
13
|
-
export type BlockId = StubId;
|
|
14
|
-
|
|
15
|
-
export type FluidId = StubId;
|
|
16
|
-
|
|
17
|
-
export type RecipeSerializerId = StubId;
|
|
18
|
-
|
|
19
|
-
export type EntityTypeId = StubId;
|
|
20
|
-
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# @adeficior/data-modifier-recipes
|
|
2
|
-
|
|
3
|
-
## 2.0.0-rc.20260816171656
|
|
4
|
-
|
|
5
|
-
### Major Changes
|
|
6
|
-
|
|
7
|
-
- 17a98c9: refactor into modular system
|
|
8
|
-
|
|
9
|
-
### Patch Changes
|
|
10
|
-
|
|
11
|
-
- Updated dependencies [17a98c9]
|
|
12
|
-
- @adeficior/data-modifier-ingredients@2.0.0-rc.20260816171656
|
|
13
|
-
- @adeficior/data-modifier-tags@2.0.0-rc.20260816171656
|
|
14
|
-
- @adeficior/data-modifier-core@2.0.0-rc.20260816171656
|
package/eslint.config.js
DELETED