@adeficior/data-modifier-ingredients 2.0.0-rc.20260814115618

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.
Files changed (67) hide show
  1. package/dist/fields.d.ts +4 -0
  2. package/dist/fields.js +5 -0
  3. package/dist/fields.js.map +1 -0
  4. package/dist/index.d.ts +13 -0
  5. package/dist/index.js +7 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/ingredient/impl.d.ts +73 -0
  8. package/dist/ingredient/impl.js +151 -0
  9. package/dist/ingredient/impl.js.map +1 -0
  10. package/dist/ingredient/input.d.ts +3 -0
  11. package/dist/ingredient/input.js +3 -0
  12. package/dist/ingredient/input.js.map +1 -0
  13. package/dist/module.d.ts +11 -0
  14. package/dist/module.js +29 -0
  15. package/dist/module.js.map +1 -0
  16. package/dist/predicates/index.d.ts +14 -0
  17. package/dist/predicates/index.js +42 -0
  18. package/dist/predicates/index.js.map +1 -0
  19. package/dist/predicates/ingredients.d.ts +14 -0
  20. package/dist/predicates/ingredients.js +43 -0
  21. package/dist/predicates/ingredients.js.map +1 -0
  22. package/dist/result/impl.d.ts +39 -0
  23. package/dist/result/impl.js +74 -0
  24. package/dist/result/impl.js.map +1 -0
  25. package/dist/result/input.d.ts +3 -0
  26. package/dist/result/input.js +3 -0
  27. package/dist/result/input.js.map +1 -0
  28. package/dist/serializer/ingredients/15.d.ts +2 -0
  29. package/dist/serializer/ingredients/15.js +38 -0
  30. package/dist/serializer/ingredients/15.js.map +1 -0
  31. package/dist/serializer/ingredients/44.d.ts +2 -0
  32. package/dist/serializer/ingredients/44.js +45 -0
  33. package/dist/serializer/ingredients/44.js.map +1 -0
  34. package/dist/serializer/ingredients/common.d.ts +3 -0
  35. package/dist/serializer/ingredients/common.js +16 -0
  36. package/dist/serializer/ingredients/common.js.map +1 -0
  37. package/dist/serializer/ingredients/index.d.ts +9 -0
  38. package/dist/serializer/ingredients/index.js +36 -0
  39. package/dist/serializer/ingredients/index.js.map +1 -0
  40. package/dist/serializer/ingredients/ingredientMap.d.ts +9 -0
  41. package/dist/serializer/ingredients/ingredientMap.js +16 -0
  42. package/dist/serializer/ingredients/ingredientMap.js.map +1 -0
  43. package/dist/serializer/results/15.d.ts +2 -0
  44. package/dist/serializer/results/15.js +23 -0
  45. package/dist/serializer/results/15.js.map +1 -0
  46. package/dist/serializer/results/44.d.ts +2 -0
  47. package/dist/serializer/results/44.js +20 -0
  48. package/dist/serializer/results/44.js.map +1 -0
  49. package/dist/serializer/results/common.d.ts +3 -0
  50. package/dist/serializer/results/common.js +9 -0
  51. package/dist/serializer/results/common.js.map +1 -0
  52. package/dist/serializer/results/index.d.ts +5 -0
  53. package/dist/serializer/results/index.js +20 -0
  54. package/dist/serializer/results/index.js.map +1 -0
  55. package/dist/serializer/withModules.d.ts +7 -0
  56. package/dist/serializer/withModules.js +4 -0
  57. package/dist/serializer/withModules.js.map +1 -0
  58. package/dist/testing/index.d.ts +1 -0
  59. package/dist/testing/index.js +2 -0
  60. package/dist/testing/index.js.map +1 -0
  61. package/dist/testing/mocks.d.ts +29 -0
  62. package/dist/testing/mocks.js +39 -0
  63. package/dist/testing/mocks.js.map +1 -0
  64. package/dist/units.d.ts +1 -0
  65. package/dist/units.js +2 -0
  66. package/dist/units.js.map +1 -0
  67. package/package.json +44 -0
@@ -0,0 +1,4 @@
1
+ import * as z from "zod";
2
+ export declare const CountSchema: z.ZodCodec<z.ZodOptional<z.ZodNumber>, z.ZodNumber>;
3
+ export declare const AmountSchema: z.ZodNumber;
4
+ export declare const ChanceSchema: z.ZodOptional<z.ZodNumber>;
package/dist/fields.js ADDED
@@ -0,0 +1,5 @@
1
+ import * as z from "zod";
2
+ export const CountSchema = z.codec(z.number().int().positive().optional(), z.number(), { decode: (it) => it ?? 1, encode: (it) => (it === 1 ? undefined : it) });
3
+ export const AmountSchema = z.number().positive();
4
+ export const ChanceSchema = z.number().positive().optional();
5
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAChC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EACtC,CAAC,CAAC,MAAM,EAAE,EACV,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CACzE,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ export { default } from "./module";
2
+ export * from "./fields";
3
+ export * from "./ingredient/impl";
4
+ export type * from "./ingredient/input";
5
+ export * from "./result/impl";
6
+ export type * from "./result/input";
7
+ export * from "./units";
8
+ export type { IngredientSerializer } from "./serializer/ingredients/index";
9
+ export * from "./serializer/ingredients/ingredientMap";
10
+ export type { ResultSerializer } from "./serializer/results/index";
11
+ export type * from "./serializer/withModules";
12
+ export type { Predicates } from "./predicates";
13
+ export type { IngredientFilter } from "./predicates/ingredients";
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ export { default } from "./module";
2
+ export * from "./fields";
3
+ export * from "./ingredient/impl";
4
+ export * from "./result/impl";
5
+ export * from "./units";
6
+ export * from "./serializer/ingredients/ingredientMap";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAElC,cAAc,eAAe,CAAC;AAE9B,cAAc,SAAS,CAAC;AAGxB,cAAc,wCAAwC,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { type IdInput, type NormalizedId, type Registered, type RegistryIds, type RegistryLookup, type TagId } from "@adeficior/data-modifier-core";
2
+ import { type BlockId, type FluidId, type ItemId, type RegistryId } from "@adeficior/data-modifier/generated";
3
+ import { BlockResult, FluidResult, ItemResult, type Result } from "../result/impl";
4
+ export declare abstract class Ingredient implements Registered {
5
+ validate(_: RegistryLookup): void;
6
+ abstract ids(): RegistryIds;
7
+ abstract asResult(): Result;
8
+ }
9
+ export declare abstract class TagIngredient extends Ingredient {
10
+ readonly registry: NormalizedId<RegistryId>;
11
+ readonly tag: TagId;
12
+ constructor(input: IdInput, registry: NormalizedId<RegistryId>);
13
+ ids(): RegistryIds;
14
+ asResult(): Result;
15
+ }
16
+ export declare class ItemTagIngredient extends TagIngredient {
17
+ readonly count: number;
18
+ constructor(tag: IdInput, count?: number);
19
+ }
20
+ export declare class FluidTagIngredient extends TagIngredient {
21
+ readonly amount: number;
22
+ constructor(tag: IdInput, amount?: number);
23
+ }
24
+ export declare class BlockTagIngredient extends TagIngredient {
25
+ constructor(tag: IdInput);
26
+ }
27
+ export declare abstract class RegistryEntryIngredient<T extends string> extends Ingredient {
28
+ readonly registry: NormalizedId<RegistryId>;
29
+ readonly id: NormalizedId<T>;
30
+ constructor(input: IdInput<T>, registry: NormalizedId<RegistryId>);
31
+ ids(): RegistryIds;
32
+ }
33
+ export declare class ItemIngredient extends RegistryEntryIngredient<ItemId> {
34
+ readonly count: number;
35
+ constructor(id: IdInput<ItemId>, count?: number);
36
+ validate(lookup: RegistryLookup): void;
37
+ asResult(): ItemResult;
38
+ }
39
+ export declare class FluidIngredient extends RegistryEntryIngredient<FluidId> {
40
+ readonly amount: number;
41
+ readonly chance?: number | undefined;
42
+ constructor(id: IdInput<FluidId>, amount?: number, chance?: number | undefined);
43
+ validate(lookup: RegistryLookup): void;
44
+ asResult(): FluidResult;
45
+ }
46
+ export declare class BlockIngredient extends RegistryEntryIngredient<BlockId> {
47
+ readonly weight?: number | undefined;
48
+ constructor(id: IdInput<BlockId>, weight?: number | undefined);
49
+ validate(lookup: RegistryLookup): void;
50
+ asResult(): BlockResult;
51
+ }
52
+ export declare class ListIngredient extends Ingredient {
53
+ readonly entries: Ingredient[];
54
+ constructor(entries: Ingredient[]);
55
+ validate(lookup: RegistryLookup): void;
56
+ ids(): RegistryIds;
57
+ asResult(): Result;
58
+ }
59
+ export type ItemLikeIngredient = ItemTagIngredient | ItemIngredient;
60
+ export type FluidLikeIngredient = FluidTagIngredient | FluidIngredient;
61
+ export type BlockLikeIngredient = BlockTagIngredient | BlockIngredient;
62
+ export declare class ToolActionIngredient extends Ingredient {
63
+ readonly action: string;
64
+ constructor(action: string);
65
+ asResult(): Result;
66
+ ids(): RegistryIds;
67
+ }
68
+ export declare class IgnoredIngredient extends Ingredient {
69
+ readonly raw: unknown;
70
+ constructor(raw: unknown);
71
+ asResult(): Result;
72
+ ids(): RegistryIds;
73
+ }
@@ -0,0 +1,151 @@
1
+ import { encodeId, toTag, } from "@adeficior/data-modifier-core";
2
+ import {} from "@adeficior/data-modifier/generated";
3
+ import { uniq } from "lodash-es";
4
+ import { BlockResult, FluidResult, ItemResult, } from "../result/impl";
5
+ import { BUCKET } from "../units";
6
+ export class Ingredient {
7
+ validate(_) { }
8
+ }
9
+ export class TagIngredient extends Ingredient {
10
+ registry;
11
+ tag;
12
+ constructor(input, registry) {
13
+ super();
14
+ this.registry = registry;
15
+ // TODO complain if input is already a tag?
16
+ this.tag = toTag(input);
17
+ }
18
+ ids() {
19
+ return { [this.registry]: [this.tag] };
20
+ }
21
+ asResult() {
22
+ throw new Error("tag ingredients cannot be transformed into a result");
23
+ }
24
+ }
25
+ export class ItemTagIngredient extends TagIngredient {
26
+ count;
27
+ constructor(tag, count = 1) {
28
+ super(tag, "minecraft:item");
29
+ this.count = count;
30
+ }
31
+ }
32
+ export class FluidTagIngredient extends TagIngredient {
33
+ amount;
34
+ constructor(tag, amount = BUCKET) {
35
+ super(tag, "minecraft:fluid");
36
+ this.amount = amount;
37
+ }
38
+ }
39
+ export class BlockTagIngredient extends TagIngredient {
40
+ constructor(tag) {
41
+ super(tag, "minecraft:block");
42
+ }
43
+ }
44
+ export class RegistryEntryIngredient extends Ingredient {
45
+ registry;
46
+ id;
47
+ constructor(input, registry) {
48
+ super();
49
+ this.registry = registry;
50
+ this.id = encodeId(input);
51
+ }
52
+ ids() {
53
+ return { [this.registry]: [this.id] };
54
+ }
55
+ }
56
+ export class ItemIngredient extends RegistryEntryIngredient {
57
+ count;
58
+ constructor(id, count = 1) {
59
+ super(id, "minecraft:item");
60
+ this.count = count;
61
+ }
62
+ validate(lookup) {
63
+ lookup.validateEntry("minecraft:item", this.id);
64
+ }
65
+ asResult() {
66
+ return new ItemResult(this.id, this.count);
67
+ }
68
+ }
69
+ export class FluidIngredient extends RegistryEntryIngredient {
70
+ amount;
71
+ chance;
72
+ constructor(id, amount = BUCKET, chance) {
73
+ super(id, "minecraft:fluid");
74
+ this.amount = amount;
75
+ this.chance = chance;
76
+ }
77
+ validate(lookup) {
78
+ lookup.validateEntry("minecraft:fluid", this.id);
79
+ }
80
+ asResult() {
81
+ return new FluidResult(this.id, this.amount);
82
+ }
83
+ }
84
+ export class BlockIngredient extends RegistryEntryIngredient {
85
+ weight;
86
+ constructor(id, weight) {
87
+ super(id, "minecraft:block");
88
+ this.weight = weight;
89
+ }
90
+ validate(lookup) {
91
+ lookup.validateEntry("minecraft:block", this.id);
92
+ }
93
+ asResult() {
94
+ return new BlockResult(this.id);
95
+ }
96
+ }
97
+ export class ListIngredient extends Ingredient {
98
+ entries;
99
+ constructor(entries) {
100
+ super();
101
+ this.entries = entries;
102
+ }
103
+ validate(lookup) {
104
+ this.entries.forEach((it) => it.validate(lookup));
105
+ }
106
+ ids() {
107
+ return this.entries
108
+ .map((it) => it.ids())
109
+ .reduce((a, b) => {
110
+ const keys = uniq([
111
+ ...Object.keys(a),
112
+ ...Object.keys(b),
113
+ ]);
114
+ const out = {};
115
+ keys.forEach((key) => {
116
+ out[key] = uniq([...(a[key] ?? []), ...(b[key] ?? [])]);
117
+ });
118
+ return out;
119
+ }, {});
120
+ }
121
+ asResult() {
122
+ throw new Error("union ingredients cannot be transformed into a result");
123
+ }
124
+ }
125
+ export class ToolActionIngredient extends Ingredient {
126
+ action;
127
+ constructor(action) {
128
+ super();
129
+ this.action = action;
130
+ }
131
+ asResult() {
132
+ throw new Error("tool action ingredient cannot be transformed into a result");
133
+ }
134
+ ids() {
135
+ return {};
136
+ }
137
+ }
138
+ export class IgnoredIngredient extends Ingredient {
139
+ raw;
140
+ constructor(raw) {
141
+ super();
142
+ this.raw = raw;
143
+ }
144
+ asResult() {
145
+ throw new Error("ignored ingredient cannot be transformed into a result");
146
+ }
147
+ ids() {
148
+ return {};
149
+ }
150
+ }
151
+ //# sourceMappingURL=impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impl.js","sourceRoot":"","sources":["../../src/ingredient/impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ItemId } from "@adeficior/data-modifier/generated";
2
+ import { type Ingredient } from "./impl";
3
+ export type IngredientInput = ItemId | Ingredient | IngredientInput[];
@@ -0,0 +1,3 @@
1
+ import {} from "@adeficior/data-modifier/generated";
2
+ import {} from "./impl";
3
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/ingredient/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAmB,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type Predicates } from "./predicates";
2
+ import { type IngredientSerializer } from "./serializer/ingredients";
3
+ import { type ResultSerializer } from "./serializer/results";
4
+ declare const _default: import("@adeficior/data-modifier-core").ModuleConfig<{
5
+ services: {
6
+ "serializer:results": ResultSerializer;
7
+ "serializer:ingredients": IngredientSerializer;
8
+ predicates: Predicates;
9
+ };
10
+ }>;
11
+ export default _default;
package/dist/module.js ADDED
@@ -0,0 +1,29 @@
1
+ import { defineModule } from "@adeficior/data-modifier-core";
2
+ import { name } from "../package.json";
3
+ import { createPredicates } from "./predicates";
4
+ import { createIngredientSerializer, } from "./serializer/ingredients";
5
+ import { createResultSerializer, } from "./serializer/results";
6
+ export default defineModule({
7
+ importModule: name,
8
+ dependencies: {
9
+ // TODO could be optional somehow
10
+ "@adeficior/data-modifier-tags": "required",
11
+ },
12
+ types: {
13
+ services: {
14
+ "serializer:results": "ResultSerializer",
15
+ "serializer:ingredients": "IngredientSerializer",
16
+ predicates: "Predicates",
17
+ },
18
+ },
19
+ setup: (pack) => {
20
+ const ingredientSerializer = pack.service("serializer:ingredients", (container) => createIngredientSerializer(pack.options.packFormat, container.get("registries")));
21
+ pack.service("serializer:results", (container) => createResultSerializer(pack.options.packFormat, container.get("registries")));
22
+ // TODO make tags optional
23
+ pack.service("predicates", (container) => createPredicates(container.get("registries"),
24
+ // TODO somehow I depend on tags which does not make sense because tags depends on core
25
+ // solved if moved to ingredients package?
26
+ container.get("loader:tags"), ingredientSerializer()));
27
+ },
28
+ });
29
+ //# sourceMappingURL=module.js.map
@@ -0,0 +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;AACvC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AACjE,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAE9B,eAAe,YAAY,CAMxB;IACD,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE;QACZ,iCAAiC;QACjC,+BAA+B,EAAE,UAAU;KAC5C;IACD,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,oBAAoB,EAAE,kBAAkB;YACxC,wBAAwB,EAAE,sBAAsB;YAChD,UAAU,EAAE,YAAY;SACzB;KACF;IACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CACvC,wBAAwB,EACxB,CAAC,SAAS,EAAE,EAAE,CACZ,0BAA0B,CACxB,IAAI,CAAC,OAAO,CAAC,UAAU,EACvB,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAC5B,CACJ,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,SAAS,EAAE,EAAE,CAC/C,sBAAsB,CACpB,IAAI,CAAC,OAAO,CAAC,UAAU,EACvB,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAC5B,CACF,CAAC;QAEF,0BAA0B;QAC1B,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CACvC,gBAAgB,CACd,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3B,uFAAuF;QACvF,0CAA0C;QAC1C,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAC5B,oBAAoB,EAAE,CACvB,CACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type IdInput, type NormalizedId, type RegistryLookup } from "@adeficior/data-modifier-core";
2
+ import { type CommonFilter, type Predicate } from "@adeficior/data-modifier-core/serializer";
3
+ import { type TagRegistryHolder } from "@adeficior/data-modifier-tags";
4
+ import { type InferIds, type RegistryId } from "@adeficior/data-modifier/generated";
5
+ import { type Ingredient } from "../ingredient/impl";
6
+ import { type Result } from "../result/impl";
7
+ import { type IngredientSerializer } from "../serializer/ingredients";
8
+ import { type IngredientFilter } from "./ingredients";
9
+ export type Predicates = {
10
+ ingredient(filter: IngredientFilter): Predicate<Ingredient>;
11
+ result(filter: IngredientFilter): Predicate<Result>;
12
+ id<T extends RegistryId>(filter: CommonFilter<NormalizedId<InferIds<T>>>, registry: T): Predicate<IdInput<InferIds<T>>>;
13
+ };
14
+ export declare function createPredicates(registries: RegistryLookup, tags: TagRegistryHolder, ingredientSerializer: IngredientSerializer): Predicates;
@@ -0,0 +1,42 @@
1
+ import {} from "@adeficior/data-modifier-core";
2
+ import { resolveIdTest, } from "@adeficior/data-modifier-core/serializer";
3
+ import {} from "@adeficior/data-modifier-tags";
4
+ import {} from "@adeficior/data-modifier/generated";
5
+ import {} from "../ingredient/impl";
6
+ import {} from "../result/impl";
7
+ import {} from "../serializer/ingredients";
8
+ import { createIngredientPredicate, } from "./ingredients";
9
+ export function createPredicates(registries, tags, ingredientSerializer) {
10
+ return new PredicatesImpl(registries, tags, ingredientSerializer);
11
+ }
12
+ class PredicatesImpl {
13
+ registries;
14
+ tags;
15
+ ingredientSerializer;
16
+ constructor(
17
+ // TODO inject
18
+ registries, tags, ingredientSerializer) {
19
+ this.registries = registries;
20
+ this.tags = tags;
21
+ this.ingredientSerializer = ingredientSerializer;
22
+ }
23
+ ingredient(filter) {
24
+ return createIngredientPredicate(filter, {
25
+ serializer: this.ingredientSerializer,
26
+ registries: this.registries,
27
+ tags: this.tags,
28
+ });
29
+ }
30
+ result(filter) {
31
+ const ingredientPredicate = this.ingredient(filter);
32
+ return (result, ...args) => {
33
+ const ingredient = result.asIngredient();
34
+ return ingredientPredicate(ingredient, ...args);
35
+ };
36
+ }
37
+ id(filter, registry) {
38
+ const tags = typeof registry == "string" ? this.tags.registry(registry) : registry;
39
+ return resolveIdTest(filter, tags);
40
+ }
41
+ }
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/predicates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,aAAa,GAGd,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAGN,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAGN,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAmB,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAe,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAA6B,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,yBAAyB,GAE1B,MAAM,eAAe,CAAC;AAWvB,MAAM,UAAU,gBAAgB,CAC9B,UAA0B,EAC1B,IAAuB,EACvB,oBAA0C;IAE1C,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,cAAc;IAGC;IACA;IACA;IAJnB;IACE,cAAc;IACG,UAA0B,EAC1B,IAAuB,EACvB,oBAA0C;QAF1C,eAAU,GAAV,UAAU,CAAgB;QAC1B,SAAI,GAAJ,IAAI,CAAmB;QACvB,yBAAoB,GAApB,oBAAoB,CAAsB;IAC1D,CAAC;IAEJ,UAAU,CAAC,MAAwB;QACjC,OAAO,yBAAyB,CAAC,MAAM,EAAE;YACvC,UAAU,EAAE,IAAI,CAAC,oBAAoB;YACrC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAwB;QAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEpD,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE;YACzB,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YACzC,OAAO,mBAAmB,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAED,EAAE,CACA,MAA+C,EAC/C,QAA4B;QAE5B,MAAM,IAAI,GACR,OAAO,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxE,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import { type RegistryLookup } from "@adeficior/data-modifier-core";
2
+ import { type CommonFilter, type Predicate } from "@adeficior/data-modifier-core/serializer";
3
+ import { type TagRegistryHolder } from "@adeficior/data-modifier-tags";
4
+ import { Ingredient } from "../ingredient/impl";
5
+ import { type IngredientInput } from "../ingredient/input";
6
+ import { type IngredientSerializer } from "../serializer/ingredients";
7
+ export type IngredientFilter = CommonFilter<Ingredient> | IngredientInput | `#${string}`;
8
+ type Context = {
9
+ registries: RegistryLookup;
10
+ serializer: IngredientSerializer;
11
+ tags: TagRegistryHolder;
12
+ };
13
+ export declare function createIngredientPredicate(test: IngredientFilter, context: Context): Predicate<Ingredient>;
14
+ export {};
@@ -0,0 +1,43 @@
1
+ import { IllegalShapeError, } from "@adeficior/data-modifier-core";
2
+ import { createIdPredicate, } from "@adeficior/data-modifier-core/serializer";
3
+ import {} from "@adeficior/data-modifier-tags";
4
+ import {} from "@adeficior/data-modifier/generated";
5
+ import { Ingredient, ItemIngredient, ItemTagIngredient, ListIngredient, RegistryEntryIngredient, TagIngredient, } from "../ingredient/impl";
6
+ import {} from "../ingredient/input";
7
+ import {} from "../serializer/ingredients";
8
+ export function createIngredientPredicate(test, context) {
9
+ const unvalidated = createUnvalidatedFilter(test, context);
10
+ return (it) => unvalidated(context.serializer.validated(it));
11
+ }
12
+ function createUnvalidatedFilter(test, context) {
13
+ if (typeof test === "string") {
14
+ if (test.startsWith("#")) {
15
+ return createUnvalidatedFilter(new ItemTagIngredient(test.substring(1)), context);
16
+ }
17
+ return createUnvalidatedFilter(new ItemIngredient(test), context);
18
+ }
19
+ if (test instanceof RegExp) {
20
+ return filterByRegistry(test, context.tags, "minecraft:item");
21
+ }
22
+ if (typeof test === "function") {
23
+ return test;
24
+ }
25
+ if (test instanceof Ingredient) {
26
+ test.validate(context.registries);
27
+ }
28
+ if (test instanceof TagIngredient) {
29
+ return filterByRegistry(test.tag, context.tags, test.registry);
30
+ }
31
+ if (test instanceof RegistryEntryIngredient) {
32
+ return filterByRegistry(test.id, context.tags, test.registry);
33
+ }
34
+ if (test instanceof ListIngredient) {
35
+ const predicates = test.entries.map((it) => createUnvalidatedFilter(it, context));
36
+ return (it) => predicates.some((predicate) => predicate(it));
37
+ }
38
+ throw new IllegalShapeError("cannot filter by unknown ingredient type", test);
39
+ }
40
+ function filterByRegistry(test, tags, registry) {
41
+ return createIdPredicate(test, (it) => it.ids()[registry] ?? [], tags.registry(registry));
42
+ }
43
+ //# sourceMappingURL=ingredients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingredients.js","sourceRoot":"","sources":["../../src/predicates/ingredients.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAGlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iBAAiB,GAGlB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAA0B,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,EACL,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAwB,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAA6B,MAAM,2BAA2B,CAAC;AAWtE,MAAM,UAAU,yBAAyB,CACvC,IAAsB,EACtB,OAAgB;IAEhB,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAAsB,EACtB,OAAgB;IAEhB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,uBAAuB,CAC5B,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACxC,OAAO,CACR,CAAC;QACJ,CAAC;QAED,OAAO,uBAAuB,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,IAAI,YAAY,aAAa,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,IAAI,YAAY,uBAAuB,EAAE,CAAC;QAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACzC,uBAAuB,CAAC,EAAE,EAAE,OAAO,CAAC,CACrC,CAAC;QACF,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,IAAI,iBAAiB,CAAC,0CAA0C,EAAE,IAAI,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,gBAAgB,CACvB,IAA2B,EAC3B,IAAuB,EACvB,QAAkC;IAElC,OAAO,iBAAiB,CACtB,IAAI,EACJ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { type IdInput, type NormalizedId, type Registered, type RegistryIds, type RegistryLookup } from "@adeficior/data-modifier-core";
2
+ import { type BlockId, type FluidId, type ItemId, type RegistryId } from "@adeficior/data-modifier/generated";
3
+ import { BlockIngredient, FluidIngredient, ItemIngredient, type Ingredient } from "../ingredient/impl";
4
+ export declare abstract class Result implements Registered {
5
+ validate(_: RegistryLookup): void;
6
+ abstract ids(): RegistryIds;
7
+ abstract asIngredient(): Ingredient;
8
+ }
9
+ export declare abstract class RegistryEntryResult<T extends string> extends Result {
10
+ private readonly registry;
11
+ readonly id: NormalizedId<T>;
12
+ constructor(input: IdInput<T>, registry: NormalizedId<RegistryId>);
13
+ ids(): RegistryIds;
14
+ }
15
+ export declare class ItemResult extends RegistryEntryResult<ItemId> {
16
+ readonly count: number;
17
+ readonly chance?: number | undefined;
18
+ constructor(id: IdInput<ItemId>, count?: number, chance?: number | undefined);
19
+ validate(lookup: RegistryLookup): void;
20
+ asIngredient(): ItemIngredient;
21
+ }
22
+ export declare class FluidResult extends RegistryEntryResult<FluidId> {
23
+ readonly amount: number;
24
+ readonly chance?: number | undefined;
25
+ constructor(id: IdInput<FluidId>, amount?: number, chance?: number | undefined);
26
+ validate(lookup: RegistryLookup): void;
27
+ asIngredient(): FluidIngredient;
28
+ }
29
+ export declare class BlockResult extends RegistryEntryResult<BlockId> {
30
+ constructor(id: IdInput<BlockId>);
31
+ validate(lookup: RegistryLookup): void;
32
+ asIngredient(): BlockIngredient;
33
+ }
34
+ export declare class IgnoredResult extends Result {
35
+ readonly raw: unknown;
36
+ constructor(raw: unknown);
37
+ asIngredient(): Ingredient;
38
+ ids(): RegistryIds;
39
+ }
@@ -0,0 +1,74 @@
1
+ import { encodeId, } from "@adeficior/data-modifier-core";
2
+ import {} from "@adeficior/data-modifier/generated";
3
+ import { BlockIngredient, FluidIngredient, ItemIngredient, } from "../ingredient/impl";
4
+ import { BUCKET } from "../units";
5
+ export class Result {
6
+ validate(_) { }
7
+ }
8
+ export class RegistryEntryResult extends Result {
9
+ registry;
10
+ id;
11
+ constructor(input, registry) {
12
+ super();
13
+ this.registry = registry;
14
+ this.id = encodeId(input);
15
+ }
16
+ ids() {
17
+ return { [this.registry]: [this.id] };
18
+ }
19
+ }
20
+ export class ItemResult extends RegistryEntryResult {
21
+ count;
22
+ chance;
23
+ constructor(id, count = 1, chance) {
24
+ super(id, "minecraft:item");
25
+ this.count = count;
26
+ this.chance = chance;
27
+ }
28
+ validate(lookup) {
29
+ lookup.validateEntry("minecraft:item", this.id);
30
+ }
31
+ asIngredient() {
32
+ return new ItemIngredient(this.id, this.count);
33
+ }
34
+ }
35
+ export class FluidResult extends RegistryEntryResult {
36
+ amount;
37
+ chance;
38
+ constructor(id, amount = BUCKET, chance) {
39
+ super(id, "minecraft:fluid");
40
+ this.amount = amount;
41
+ this.chance = chance;
42
+ }
43
+ validate(lookup) {
44
+ lookup.validateEntry("minecraft:fluid", this.id);
45
+ }
46
+ asIngredient() {
47
+ return new FluidIngredient(this.id, this.amount);
48
+ }
49
+ }
50
+ export class BlockResult extends RegistryEntryResult {
51
+ constructor(id) {
52
+ super(id, "minecraft:block");
53
+ }
54
+ validate(lookup) {
55
+ lookup.validateEntry("minecraft:block", this.id);
56
+ }
57
+ asIngredient() {
58
+ return new BlockIngredient(this.id);
59
+ }
60
+ }
61
+ export class IgnoredResult extends Result {
62
+ raw;
63
+ constructor(raw) {
64
+ super();
65
+ this.raw = raw;
66
+ }
67
+ asIngredient() {
68
+ throw new Error("ignored result cannot be transformed into a ingredient");
69
+ }
70
+ ids() {
71
+ return {};
72
+ }
73
+ }
74
+ //# sourceMappingURL=impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impl.js","sourceRoot":"","sources":["../../src/result/impl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GAMT,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAKN,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,GAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAgB,MAAM;IAC1B,QAAQ,CAAC,CAAiB,IAAS,CAAC;CAGrC;AAED,MAAM,OAAgB,mBAAsC,SAAQ,MAAM;IAKrD;IAJH,EAAE,CAAkB;IAEpC,YACE,KAAiB,EACA,QAAkC;QAEnD,KAAK,EAAE,CAAC;QAFS,aAAQ,GAAR,QAAQ,CAA0B;QAGnD,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEQ,GAAG;QACV,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,mBAA2B;IAGvC;IACA;IAHlB,YACE,EAAmB,EACH,QAAQ,CAAC,EACT,MAAe;QAE/B,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAHZ,UAAK,GAAL,KAAK,CAAI;QACT,WAAM,GAAN,MAAM,CAAS;IAGjC,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAEQ,YAAY;QACnB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,mBAA4B;IAGzC;IACA;IAHlB,YACE,EAAoB,EACJ,SAAiB,MAAM,EACvB,MAAe;QAE/B,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAHb,WAAM,GAAN,MAAM,CAAiB;QACvB,WAAM,GAAN,MAAM,CAAS;IAGjC,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAEQ,YAAY;QACnB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,mBAA4B;IAC3D,YAAY,EAAoB;QAC9B,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC/B,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAEQ,YAAY;QACnB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,MAAM;IACX;IAA5B,YAA4B,GAAY;QACtC,KAAK,EAAE,CAAC;QADkB,QAAG,GAAH,GAAG,CAAS;IAExC,CAAC;IAEQ,YAAY;QACnB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAEQ,GAAG;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import { type ItemId } from "@adeficior/data-modifier/generated";
2
+ import { type Result } from "./impl";
3
+ export type ResultInput = ItemId | Result;
@@ -0,0 +1,3 @@
1
+ import {} from "@adeficior/data-modifier/generated";
2
+ import {} from "./impl";
3
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/result/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAe,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type Ingredient } from "../../ingredient/impl";
2
+ export declare const serializer15: import("@adeficior/data-modifier-core/serializer").SerializerModule<Ingredient, unknown>;
@@ -0,0 +1,38 @@
1
+ import { IdSchema, stripTag } from "@adeficior/data-modifier-core";
2
+ import { createSerializerModule, hasType, isObjectWith, } from "@adeficior/data-modifier-core/serializer";
3
+ import * as z from "zod";
4
+ import { AmountSchema, CountSchema } from "../../fields";
5
+ import { BlockIngredient, BlockTagIngredient, FluidIngredient, FluidTagIngredient, ItemIngredient, ItemTagIngredient, ToolActionIngredient, } from "../../ingredient/impl";
6
+ import { commonSerialization } from "./common";
7
+ export const serializer15 = createSerializerModule((builder) => {
8
+ commonSerialization(builder);
9
+ const toolActionType = "farmersdelight:tool_action";
10
+ builder.register(ToolActionIngredient, hasType(toolActionType), z.object({
11
+ type: z.literal(toolActionType),
12
+ action: z.string().nonempty(),
13
+ }), (it) => new ToolActionIngredient(it.action), ({ action }) => ({ action, type: toolActionType }));
14
+ builder.register(ItemTagIngredient, isObjectWith("tag"), z.object({
15
+ tag: IdSchema,
16
+ count: CountSchema,
17
+ }), (it) => new ItemTagIngredient(it.tag, it.count), ({ count, tag }) => ({ tag: stripTag(tag), count }));
18
+ builder.register(FluidTagIngredient, isObjectWith("fluidTag"), z.object({
19
+ fluidTag: IdSchema,
20
+ amount: AmountSchema,
21
+ }), (it) => new FluidTagIngredient(it.fluidTag, it.amount), ({ amount, tag }) => ({ fluidTag: stripTag(tag), amount }));
22
+ builder.register(BlockTagIngredient, isObjectWith("blockTag"), z.object({
23
+ blockTag: IdSchema,
24
+ weight: z.number().optional(),
25
+ }), (it) => new BlockTagIngredient(it.blockTag), ({ tag }) => ({ blockTag: stripTag(tag) }));
26
+ builder.register(ItemIngredient, isObjectWith("item"), z.object({
27
+ item: IdSchema,
28
+ count: CountSchema,
29
+ }), (it) => new ItemIngredient(it.item, it.count), ({ id, ...rest }) => ({ item: id, ...rest }));
30
+ builder.register(FluidIngredient, isObjectWith("fluid"), z.object({
31
+ fluid: IdSchema,
32
+ amount: AmountSchema,
33
+ }), (it) => new FluidIngredient(it.fluid, it.amount), ({ id, ...rest }) => ({ fluid: id, ...rest }));
34
+ builder.register(BlockIngredient, isObjectWith("block"), z.object({
35
+ block: IdSchema,
36
+ }), (it) => new BlockIngredient(it.block), ({ id }) => ({ block: id }));
37
+ });
38
+ //# sourceMappingURL=15.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"15.js","sourceRoot":"","sources":["../../../src/serializer/ingredients/15.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type Ingredient } from "../../ingredient/impl";
2
+ export declare const serializer44: import("@adeficior/data-modifier-core/serializer").SerializerModule<Ingredient, unknown>;
@@ -0,0 +1,45 @@
1
+ import { IdSchema, stripTag } from "@adeficior/data-modifier-core";
2
+ import { createSerializerModule, hasType, isObjectWith, } from "@adeficior/data-modifier-core/serializer";
3
+ import * as z from "zod";
4
+ import { AmountSchema, CountSchema } from "../../fields";
5
+ import { FluidIngredient, FluidTagIngredient, IgnoredIngredient, ItemIngredient, ItemTagIngredient, ListIngredient, ToolActionIngredient, } from "../../ingredient/impl";
6
+ import { commonSerialization } from "./common";
7
+ export const serializer44 = createSerializerModule((builder) => {
8
+ commonSerialization(builder);
9
+ // Do I also need to serialize as this?
10
+ builder.deserializer(hasType("neoforge:compound"), (it, deserialize) => {
11
+ const { children } = z
12
+ .object({
13
+ children: z.array(z.any()),
14
+ })
15
+ .parse(it);
16
+ return new ListIngredient(children.map(deserialize));
17
+ });
18
+ const toolActionType = "farmersdelight:item_ability";
19
+ builder.register(ToolActionIngredient, hasType(toolActionType), z.object({
20
+ type: z.literal(toolActionType),
21
+ action: z.string().nonempty(),
22
+ }), (it) => new ToolActionIngredient(it.action), ({ action }) => ({ action, type: toolActionType }));
23
+ builder.register(ItemTagIngredient, isObjectWith("tag"), z.object({
24
+ tag: IdSchema,
25
+ count: CountSchema,
26
+ }), (it) => new ItemTagIngredient(it.tag, it.count), ({ count, tag }) => ({ tag: stripTag(tag), count }));
27
+ builder.register(FluidTagIngredient, isObjectWith("fluidTag"), z.object({
28
+ fluidTag: IdSchema,
29
+ amount: AmountSchema,
30
+ }), (it) => new FluidTagIngredient(it.fluidTag, it.amount), ({ amount, tag }) => ({ fluidTag: stripTag(tag), amount }));
31
+ builder.register(ItemIngredient, isObjectWith("item"), z.object({
32
+ item: IdSchema,
33
+ count: CountSchema,
34
+ }), (it) => new ItemIngredient(it.item, it.count), ({ id, ...rest }) => ({ item: id, ...rest }));
35
+ // TODO "type": "neoforge:single",
36
+ builder.register(FluidIngredient, isObjectWith("fluid"), z.object({
37
+ fluid: IdSchema,
38
+ amount: AmountSchema,
39
+ }), (it) => new FluidIngredient(it.fluid, it.amount), ({ id, ...rest }) => ({ fluid: id, ...rest }));
40
+ // TODO add support for these?
41
+ builder.deserializer(hasType("neoforge:components"), (it) => new IgnoredIngredient(it));
42
+ builder.deserializer(hasType("neoforge:intersection"), (it) => new IgnoredIngredient(it));
43
+ builder.deserializer(hasType("neoforge:difference"), (it) => new IgnoredIngredient(it));
44
+ });
45
+ //# sourceMappingURL=44.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"44.js","sourceRoot":"","sources":["../../../src/serializer/ingredients/44.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type SerializerBuilder } from "@adeficior/data-modifier-core/serializer";
2
+ import { type Ingredient } from "../../ingredient/impl";
3
+ export declare function commonSerialization(builder: SerializerBuilder<Ingredient>): void;
@@ -0,0 +1,16 @@
1
+ import {} from "@adeficior/data-modifier-core/serializer";
2
+ import { IgnoredIngredient, ItemIngredient, ItemTagIngredient, ListIngredient, } from "../../ingredient/impl";
3
+ import { Result } from "../../result/impl";
4
+ export function commonSerialization(builder) {
5
+ builder.deserializer((it) => it instanceof Result, (it) => it.asIngredient());
6
+ builder.deserializer((it) => typeof it === "string", (input) => {
7
+ if (input.startsWith("#")) {
8
+ return new ItemTagIngredient(input);
9
+ }
10
+ return new ItemIngredient(input);
11
+ });
12
+ builder.serializer(ListIngredient, (it, serialize) => it.entries.flatMap(serialize));
13
+ builder.deserializer(Array.isArray, (it, deserialize) => new ListIngredient(it.map(deserialize)));
14
+ builder.serializer(IgnoredIngredient, (it) => it.raw);
15
+ }
16
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/serializer/ingredients/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,MAAM,0CAA0C,CAAC;AAClF,OAAO,EACL,iBAAiB,EAEjB,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,UAAU,mBAAmB,CAAC,OAAsC;IACxE,OAAO,CAAC,YAAY,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,MAAM,EAC5B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAC1B,CAAC;IAEF,OAAO,CAAC,YAAY,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,EAC9B,CAAC,KAAK,EAAE,EAAE;QACR,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CACnD,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAC9B,CAAC;IAEF,OAAO,CAAC,YAAY,CAClB,KAAK,CAAC,OAAO,EACb,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAC7D,CAAC;IAEF,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type RegistryLookup, type SemVerInput } from "@adeficior/data-modifier-core";
2
+ import { type Serializer } from "@adeficior/data-modifier-core/serializer";
3
+ import { Ingredient } from "../../ingredient/impl";
4
+ import { IngredientMap, type IngredientMapInput } from "./ingredientMap";
5
+ export interface IngredientSerializer extends Serializer<Ingredient, IngredientSerializer> {
6
+ deserializeIngredientMap(input: IngredientMapInput): IngredientMap;
7
+ serializeIngredientMap(map: IngredientMap): IngredientMapInput;
8
+ }
9
+ export declare function createIngredientSerializer(packFormat: SemVerInput, lookup: RegistryLookup): IngredientSerializer;
@@ -0,0 +1,36 @@
1
+ import {} from "@adeficior/data-modifier-core";
2
+ import { VersionedSerializer, WrapperSerializer, } from "@adeficior/data-modifier-core/serializer";
3
+ import { mapValues } from "lodash-es";
4
+ import { Ingredient } from "../../ingredient/impl";
5
+ import { serializer15 } from "./15";
6
+ import { serializer44 } from "./44";
7
+ import { IngredientMap } from "./ingredientMap";
8
+ class IngredientSerializerImpl extends VersionedSerializer {
9
+ constructor(packFormat, lookup) {
10
+ super(packFormat, lookup, Ingredient, {
11
+ 15: serializer15,
12
+ 44: serializer44,
13
+ });
14
+ }
15
+ deserializeIngredientMap(input) {
16
+ return new IngredientMap(mapValues(input, (it) => this.deserialize(it)));
17
+ }
18
+ serializeIngredientMap(map) {
19
+ return mapValues(map.ingredients, (it) => this.serialize(it));
20
+ }
21
+ withModule(module) {
22
+ return new WrappedIngredientSerializer(this, module);
23
+ }
24
+ }
25
+ class WrappedIngredientSerializer extends WrapperSerializer {
26
+ deserializeIngredientMap(input) {
27
+ return this.serializer.deserializeIngredientMap(input);
28
+ }
29
+ serializeIngredientMap(map) {
30
+ return this.serializer.serializeIngredientMap(map);
31
+ }
32
+ }
33
+ export function createIngredientSerializer(packFormat, lookup) {
34
+ return new IngredientSerializerImpl(packFormat, lookup);
35
+ }
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/serializer/ingredients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,aAAa,EAA2B,MAAM,iBAAiB,CAAC;AAWzE,MAAM,wBACJ,SAAQ,mBAAqD;IAG7D,YAAY,UAAuB,EAAE,MAAsB;QACzD,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;YACpC,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,YAAY;SACjB,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB,CAAC,KAAyB;QAChD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,sBAAsB,CAAC,GAAkB;QACvC,OAAO,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAEQ,UAAU,CACjB,MAAoC;QAEpC,OAAO,IAAI,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,2BAA4B,SAAQ,iBAGzC;IACC,wBAAwB,CAAC,KAAyB;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,sBAAsB,CAAC,GAAkB;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;CACF;AAED,MAAM,UAAU,0BAA0B,CACxC,UAAuB,EACvB,MAAsB;IAEtB,OAAO,IAAI,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type Replacer } from "@adeficior/data-modifier-core/serializer";
2
+ import { type Ingredient } from "../../ingredient/impl";
3
+ export type IngredientMapInput = Record<string, unknown>;
4
+ export declare class IngredientMap {
5
+ readonly ingredients: Record<string, Ingredient>;
6
+ constructor(ingredients: Record<string, Ingredient>);
7
+ list(): Ingredient[];
8
+ replace(replace: Replacer<Ingredient>): IngredientMap;
9
+ }
@@ -0,0 +1,16 @@
1
+ import {} from "@adeficior/data-modifier-core/serializer";
2
+ import { mapValues } from "lodash-es";
3
+ import {} from "../../ingredient/impl";
4
+ export class IngredientMap {
5
+ ingredients;
6
+ constructor(ingredients) {
7
+ this.ingredients = ingredients;
8
+ }
9
+ list() {
10
+ return Object.values(this.ingredients);
11
+ }
12
+ replace(replace) {
13
+ return new IngredientMap(mapValues(this.ingredients, replace));
14
+ }
15
+ }
16
+ //# sourceMappingURL=ingredientMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingredientMap.js","sourceRoot":"","sources":["../../../src/serializer/ingredients/ingredientMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAmB,MAAM,uBAAuB,CAAC;AAIxD,MAAM,OAAO,aAAa;IACI;IAA5B,YAA4B,WAAuC;QAAvC,gBAAW,GAAX,WAAW,CAA4B;IAAG,CAAC;IAEvE,IAAI;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,OAA6B;QACnC,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ import { type Result } from "../../result/impl";
2
+ export declare const serializer15: import("@adeficior/data-modifier-core/serializer").SerializerModule<Result, unknown>;
@@ -0,0 +1,23 @@
1
+ import { IdSchema } from "@adeficior/data-modifier-core";
2
+ import { createSerializerModule, isObjectWith, } from "@adeficior/data-modifier-core/serializer";
3
+ import * as z from "zod";
4
+ import { AmountSchema, ChanceSchema, CountSchema } from "../../fields";
5
+ import { BlockResult, FluidResult, ItemResult, } from "../../result/impl";
6
+ import { commonSerialization } from "./common";
7
+ export const serializer15 = createSerializerModule((builder) => {
8
+ commonSerialization(builder);
9
+ builder.register(ItemResult, isObjectWith("item"), z.object({
10
+ item: IdSchema,
11
+ count: CountSchema,
12
+ chance: ChanceSchema,
13
+ }), (it) => new ItemResult(it.item, it.count, it.chance), ({ id, ...rest }) => ({ item: id, ...rest }));
14
+ builder.register(FluidResult, isObjectWith("fluid"), z.object({
15
+ fluid: IdSchema,
16
+ amount: AmountSchema,
17
+ chance: ChanceSchema,
18
+ }), (it) => new FluidResult(it.fluid, it.amount, it.chance), ({ id, ...rest }) => ({ fluid: id, ...rest }));
19
+ builder.register(BlockResult, isObjectWith("block"), z.object({
20
+ block: IdSchema,
21
+ }), (it) => new BlockResult(it.block), ({ id }) => ({ block: id }));
22
+ });
23
+ //# sourceMappingURL=15.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"15.js","sourceRoot":"","sources":["../../../src/serializer/results/15.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,GAEX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,sBAAsB,CAAS,CAAC,OAAO,EAAE,EAAE;IACrE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7B,OAAO,CAAC,QAAQ,CACd,UAAU,EACV,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,YAAY;KACrB,CAAC,EACF,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EACpD,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAC7C,CAAC;IAEF,OAAO,CAAC,QAAQ,CACd,WAAW,EACX,YAAY,CAAC,OAAO,CAAC,EACrB,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,YAAY;KACrB,CAAC,EACF,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EACvD,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAC9C,CAAC;IAEF,OAAO,CAAC,QAAQ,CACd,WAAW,EACX,YAAY,CAAC,OAAO,CAAC,EACrB,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,QAAQ;KAChB,CAAC,EACF,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EACjC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC5B,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type Result } from "../../result/impl";
2
+ export declare const serializer44: import("@adeficior/data-modifier-core/serializer").SerializerModule<Result, unknown>;
@@ -0,0 +1,20 @@
1
+ import { IdSchema } from "@adeficior/data-modifier-core";
2
+ import { createSerializerModule, isObjectWith, } from "@adeficior/data-modifier-core/serializer";
3
+ import * as z from "zod";
4
+ import { AmountSchema, ChanceSchema, CountSchema } from "../../fields";
5
+ import { FluidResult, ItemResult } from "../../result/impl";
6
+ import { commonSerialization } from "./common";
7
+ export const serializer44 = createSerializerModule((builder) => {
8
+ commonSerialization(builder);
9
+ builder.register(FluidResult, isObjectWith("amount"), z.object({
10
+ id: IdSchema,
11
+ amount: AmountSchema,
12
+ chance: ChanceSchema,
13
+ }), (it) => new FluidResult(it.id, it.amount, it.chance), ({ ...rest }) => ({ ...rest }));
14
+ builder.register(ItemResult, isObjectWith("id"), z.object({
15
+ id: IdSchema,
16
+ count: CountSchema,
17
+ chance: ChanceSchema,
18
+ }), (it) => new ItemResult(it.id, it.count, it.chance), ({ ...rest }) => ({ ...rest }));
19
+ });
20
+ //# sourceMappingURL=44.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"44.js","sourceRoot":"","sources":["../../../src/serializer/results/44.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,sBAAsB,CAAS,CAAC,OAAO,EAAE,EAAE;IACrE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7B,OAAO,CAAC,QAAQ,CACd,WAAW,EACX,YAAY,CAAC,QAAQ,CAAC,EACtB,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,QAAQ;QACZ,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,YAAY;KACrB,CAAC,EACF,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EACpD,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAC/B,CAAC;IAEF,OAAO,CAAC,QAAQ,CACd,UAAU,EACV,YAAY,CAAC,IAAI,CAAC,EAClB,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,YAAY;KACrB,CAAC,EACF,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAClD,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAC/B,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type SerializerBuilder } from "@adeficior/data-modifier-core/serializer";
2
+ import { type Result } from "../../result/impl";
3
+ export declare function commonSerialization(builder: SerializerBuilder<Result>): void;
@@ -0,0 +1,9 @@
1
+ import {} from "@adeficior/data-modifier-core/serializer";
2
+ import { Ingredient } from "../../ingredient/impl";
3
+ import { IgnoredResult, ItemResult } from "../../result/impl";
4
+ export function commonSerialization(builder) {
5
+ builder.deserializer((it) => it instanceof Ingredient, (it) => it.asResult());
6
+ builder.deserializer((it) => typeof it === "string", (input) => new ItemResult(input));
7
+ builder.serializer(IgnoredResult, (it) => it.raw);
8
+ }
9
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/serializer/results/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAE3E,MAAM,UAAU,mBAAmB,CAAC,OAAkC;IACpE,OAAO,CAAC,YAAY,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,UAAU,EAChC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CACtB,CAAC;IAEF,OAAO,CAAC,YAAY,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,EAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CACjC,CAAC;IAEF,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type RegistryLookup, type SemVerInput } from "@adeficior/data-modifier-core";
2
+ import { type Serializer } from "@adeficior/data-modifier-core/serializer";
3
+ import { Result } from "../../result/impl";
4
+ export type ResultSerializer = Serializer<Result, ResultSerializer>;
5
+ export declare function createResultSerializer(packFormat: SemVerInput, lookup: RegistryLookup): ResultSerializer;
@@ -0,0 +1,20 @@
1
+ import {} from "@adeficior/data-modifier-core";
2
+ import { VersionedSerializer, WrapperSerializer, } from "@adeficior/data-modifier-core/serializer";
3
+ import { Result } from "../../result/impl";
4
+ import { serializer15 } from "./15";
5
+ import { serializer44 } from "./44";
6
+ export function createResultSerializer(packFormat, lookup) {
7
+ return new ResultSerializerImpl(packFormat, lookup);
8
+ }
9
+ class ResultSerializerImpl extends VersionedSerializer {
10
+ constructor(packFormat, lookup) {
11
+ super(packFormat, lookup, Result, {
12
+ 15: serializer15,
13
+ 44: serializer44,
14
+ });
15
+ }
16
+ withModule(module) {
17
+ return new WrapperSerializer(this, module);
18
+ }
19
+ }
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/serializer/results/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAIpC,MAAM,UAAU,sBAAsB,CACpC,UAAuB,EACvB,MAAsB;IAEtB,OAAO,IAAI,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,oBACJ,SAAQ,mBAA6C;IAGrD,YAAY,UAAuB,EAAE,MAAsB;QACzD,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;YAChC,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,YAAY;SACjB,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,MAAgC;QACzC,OAAO,IAAI,iBAAiB,CAA2B,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import { type SerializerModule } from "@adeficior/data-modifier-core/serializer";
2
+ import { type Ingredient } from "../ingredient/impl";
3
+ import { type Result } from "../result/impl";
4
+ export interface WithSerializerModules {
5
+ ingredientModules(): Record<string, SerializerModule<Ingredient>>;
6
+ resultModules(): Record<string, SerializerModule<Result>>;
7
+ }
@@ -0,0 +1,4 @@
1
+ import {} from "@adeficior/data-modifier-core/serializer";
2
+ import {} from "../ingredient/impl";
3
+ import {} from "../result/impl";
4
+ //# sourceMappingURL=withModules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withModules.js","sourceRoot":"","sources":["../../src/serializer/withModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAmB,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAe,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./mocks";
@@ -0,0 +1,2 @@
1
+ export * from "./mocks";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,29 @@
1
+ export declare function mockResultSerializer(): {
2
+ deserialize: import("bun:test").Mock<(...args: any[]) => any>;
3
+ deserializeList: import("bun:test").Mock<(...args: any[]) => any>;
4
+ serialize: import("bun:test").Mock<(...args: any[]) => any>;
5
+ serializeList: import("bun:test").Mock<(...args: any[]) => any>;
6
+ deserializeOptional: import("bun:test").Mock<(...args: any[]) => any>;
7
+ serializeOptional: import("bun:test").Mock<(...args: any[]) => any>;
8
+ selectModule: import("bun:test").Mock<(...args: any[]) => any>;
9
+ validated: import("bun:test").Mock<(...args: any[]) => any>;
10
+ withModule: import("bun:test").Mock<(...args: any[]) => any>;
11
+ };
12
+ export declare function mockIngredientSerializer(): {
13
+ deserializeIngredientMap: import("bun:test").Mock<(...args: any[]) => any>;
14
+ serializeIngredientMap: import("bun:test").Mock<(...args: any[]) => any>;
15
+ deserialize: import("bun:test").Mock<(...args: any[]) => any>;
16
+ deserializeList: import("bun:test").Mock<(...args: any[]) => any>;
17
+ serialize: import("bun:test").Mock<(...args: any[]) => any>;
18
+ serializeList: import("bun:test").Mock<(...args: any[]) => any>;
19
+ deserializeOptional: import("bun:test").Mock<(...args: any[]) => any>;
20
+ serializeOptional: import("bun:test").Mock<(...args: any[]) => any>;
21
+ selectModule: import("bun:test").Mock<(...args: any[]) => any>;
22
+ validated: import("bun:test").Mock<(...args: any[]) => any>;
23
+ withModule: import("bun:test").Mock<(...args: any[]) => any>;
24
+ };
25
+ export declare function mockPredicates(): {
26
+ id: import("bun:test").Mock<(...args: any[]) => any>;
27
+ ingredient: import("bun:test").Mock<(...args: any[]) => any>;
28
+ result: import("bun:test").Mock<(...args: any[]) => any>;
29
+ };
@@ -0,0 +1,39 @@
1
+ import {} from "@adeficior/data-modifier-core/serializer";
2
+ import { mock } from "bun:test";
3
+ import {} from "../ingredient/impl";
4
+ import {} from "../predicates";
5
+ import {} from "../result/impl";
6
+ import {} from "../serializer/ingredients";
7
+ import {} from "../serializer/results";
8
+ function mockSerializer() {
9
+ return {
10
+ deserialize: mock(),
11
+ deserializeList: mock(),
12
+ serialize: mock(),
13
+ serializeList: mock(),
14
+ deserializeOptional: mock(),
15
+ serializeOptional: mock(),
16
+ selectModule: mock(),
17
+ validated: mock().mockImplementation((it) => it),
18
+ withModule: mock().mockReturnThis(),
19
+ };
20
+ }
21
+ export function mockResultSerializer() {
22
+ return mockSerializer();
23
+ }
24
+ export function mockIngredientSerializer() {
25
+ const base = mockSerializer();
26
+ return {
27
+ ...base,
28
+ deserializeIngredientMap: mock(),
29
+ serializeIngredientMap: mock(),
30
+ };
31
+ }
32
+ export function mockPredicates() {
33
+ return {
34
+ id: mock(),
35
+ ingredient: mock(),
36
+ result: mock(),
37
+ };
38
+ }
39
+ //# sourceMappingURL=mocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../src/testing/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAmB,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAmB,MAAM,eAAe,CAAC;AAChD,OAAO,EAAe,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAA6B,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAyB,MAAM,uBAAuB,CAAC;AAE9D,SAAS,cAAc;IACrB,OAAO;QACL,WAAW,EAAE,IAAI,EAAE;QACnB,eAAe,EAAE,IAAI,EAAE;QACvB,SAAS,EAAE,IAAI,EAAE;QACjB,aAAa,EAAE,IAAI,EAAE;QACrB,mBAAmB,EAAE,IAAI,EAAE;QAC3B,iBAAiB,EAAE,IAAI,EAAE;QACzB,YAAY,EAAE,IAAI,EAAE;QACpB,SAAS,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAChD,UAAU,EAAE,IAAI,EAAE,CAAC,cAAc,EAAE;KACT,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,cAAc,EAAuD,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,MAAM,IAAI,GAAG,cAAc,EAAoC,CAAC;IAChE,OAAO;QACL,GAAG,IAAI;QACP,wBAAwB,EAAE,IAAI,EAAE;QAChC,sBAAsB,EAAE,IAAI,EAAE;KACA,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,EAAE,EAAE,IAAI,EAAE;QACV,UAAU,EAAE,IAAI,EAAE;QAClB,MAAM,EAAE,IAAI,EAAE;KACM,CAAC;AACzB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const BUCKET = 1000;
package/dist/units.js ADDED
@@ -0,0 +1,2 @@
1
+ export const BUCKET = 1000;
2
+ //# sourceMappingURL=units.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.js","sourceRoot":"","sources":["../src/units.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@adeficior/data-modifier-ingredients",
3
+ "version": "2.0.0-rc.20260814115618",
4
+ "exports": {
5
+ ".": "./dist/index.js",
6
+ "./testing": "./dist/testing/index.js"
7
+ },
8
+ "types": "./dist/index.d.ts",
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "typesVersions": {
13
+ "*": {
14
+ "testing": [
15
+ "./dist/testing/index.d.ts"
16
+ ]
17
+ }
18
+ },
19
+ "type": "module",
20
+ "scripts": {
21
+ "build": "tsc --project tsconfig.build.json",
22
+ "check": "tsc --noEmit",
23
+ "dev": "bun run build --watch",
24
+ "lint": "eslint {src,test}",
25
+ "test": "bun test --timeout 10000",
26
+ "prune": "bun run datamod-dev --prune",
27
+ "prepare": "datamod-dev --configs && datamod-dev --types",
28
+ "test:ci": "bun run lint && bun run check && bun run test --coverage"
29
+ },
30
+ "devDependencies": {
31
+ "@adeficior/configs": "workspace:*",
32
+ "@adeficior/testing": "workspace:*",
33
+ "@adeficior/data-modifier-tags": "workspace:*",
34
+ "@types/lodash-es": "catalog:"
35
+ },
36
+ "peerDependencies": {
37
+ "@adeficior/pack-resolver": "catalog:",
38
+ "typescript": "catalog:",
39
+ "zod": "catalog:",
40
+ "lodash-es": "catalog:",
41
+ "@adeficior/data-modifier-tags": "workspace:*",
42
+ "@adeficior/data-modifier-core": "workspace:*"
43
+ }
44
+ }