@adeficior/data-modifier 1.0.0-rc.35 → 1.0.0-rc.37

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 (158) hide show
  1. package/dist/common/class.d.ts +4 -0
  2. package/dist/common/class.js +1 -0
  3. package/dist/common/class.js.map +1 -0
  4. package/dist/common/fields.d.ts +1 -1
  5. package/dist/common/fields.js +1 -1
  6. package/dist/common/fields.js.map +1 -1
  7. package/dist/common/filters.d.ts +2 -3
  8. package/dist/common/filters.js +8 -10
  9. package/dist/common/filters.js.map +1 -1
  10. package/dist/common/id.d.ts +0 -2
  11. package/dist/common/id.js +2 -9
  12. package/dist/common/id.js.map +1 -1
  13. package/dist/common/ingredient/filter.js +10 -24
  14. package/dist/common/ingredient/filter.js.map +1 -1
  15. package/dist/common/ingredient/index.d.ts +4 -30
  16. package/dist/common/ingredient/index.js +1 -34
  17. package/dist/common/ingredient/index.js.map +1 -1
  18. package/dist/common/ingredient/serializer.d.ts +2 -10
  19. package/dist/common/ingredient/serializer.js +39 -106
  20. package/dist/common/ingredient/serializer.js.map +1 -1
  21. package/dist/common/{serializable.d.ts → inputOutput.d.ts} +1 -3
  22. package/dist/common/inputOutput.js +1 -0
  23. package/dist/common/inputOutput.js.map +1 -0
  24. package/dist/common/result/index.d.ts +2 -17
  25. package/dist/common/result/index.js +0 -15
  26. package/dist/common/result/index.js.map +1 -1
  27. package/dist/common/result/serializer.d.ts +2 -10
  28. package/dist/common/result/serializer.js +20 -75
  29. package/dist/common/result/serializer.js.map +1 -1
  30. package/dist/common/serializer.d.ts +32 -0
  31. package/dist/common/serializer.js +95 -0
  32. package/dist/common/serializer.js.map +1 -0
  33. package/dist/emit/assets/models.js +0 -1
  34. package/dist/emit/assets/models.js.map +1 -1
  35. package/dist/emit/blacklist.d.ts +2 -3
  36. package/dist/emit/blacklist.js +3 -5
  37. package/dist/emit/blacklist.js.map +1 -1
  38. package/dist/emit/data/loot.d.ts +2 -3
  39. package/dist/emit/data/loot.js +2 -4
  40. package/dist/emit/data/loot.js.map +1 -1
  41. package/dist/emit/data/recipe.js +2 -2
  42. package/dist/emit/data/recipe.js.map +1 -1
  43. package/dist/emit/data/tags.d.ts +2 -3
  44. package/dist/emit/data/tags.js +2 -4
  45. package/dist/emit/data/tags.js.map +1 -1
  46. package/dist/emit/rule/lootTable.js +9 -10
  47. package/dist/emit/rule/lootTable.js.map +1 -1
  48. package/dist/emit/rule/recipe.d.ts +1 -1
  49. package/dist/emit/rule/recipe.js +4 -4
  50. package/dist/emit/rule/recipe.js.map +1 -1
  51. package/dist/error.d.ts +1 -1
  52. package/dist/error.js +6 -20
  53. package/dist/error.js.map +1 -1
  54. package/dist/loader/index.d.ts +0 -2
  55. package/dist/loader/index.js +0 -4
  56. package/dist/loader/index.js.map +1 -1
  57. package/dist/loader/loot.d.ts +1 -2
  58. package/dist/loader/loot.js +2 -6
  59. package/dist/loader/loot.js.map +1 -1
  60. package/dist/loader/pack.d.ts +2 -8
  61. package/dist/loader/pack.js +10 -19
  62. package/dist/loader/pack.js.map +1 -1
  63. package/dist/loader/recipe.d.ts +1 -2
  64. package/dist/loader/recipe.js +2 -8
  65. package/dist/loader/recipe.js.map +1 -1
  66. package/dist/loader/tags.d.ts +2 -3
  67. package/dist/loader/tags.js +21 -8
  68. package/dist/loader/tags.js.map +1 -1
  69. package/dist/parser/recipe/adAstra/conversion.d.ts +1 -1
  70. package/dist/parser/recipe/adAstra/conversion.js +2 -2
  71. package/dist/parser/recipe/adAstra/conversion.js.map +1 -1
  72. package/dist/parser/recipe/adAstra/inputOutput.d.ts +1 -1
  73. package/dist/parser/recipe/adAstra/inputOutput.js +2 -2
  74. package/dist/parser/recipe/adAstra/inputOutput.js.map +1 -1
  75. package/dist/parser/recipe/adAstra/spaceStation.d.ts +1 -1
  76. package/dist/parser/recipe/adAstra/spaceStation.js +1 -1
  77. package/dist/parser/recipe/adAstra/spaceStation.js.map +1 -1
  78. package/dist/parser/recipe/botania/apothecary.d.ts +1 -1
  79. package/dist/parser/recipe/botania/apothecary.js +3 -3
  80. package/dist/parser/recipe/botania/apothecary.js.map +1 -1
  81. package/dist/parser/recipe/botania/blocks.js +1 -1
  82. package/dist/parser/recipe/botania/blocks.js.map +1 -1
  83. package/dist/parser/recipe/botania/brew.d.ts +1 -1
  84. package/dist/parser/recipe/botania/brew.js +1 -1
  85. package/dist/parser/recipe/botania/brew.js.map +1 -1
  86. package/dist/parser/recipe/botania/gogWrapper.d.ts +1 -1
  87. package/dist/parser/recipe/botania/gogWrapper.js +2 -2
  88. package/dist/parser/recipe/botania/gogWrapper.js.map +1 -1
  89. package/dist/parser/recipe/botania/manaInfusion.d.ts +1 -1
  90. package/dist/parser/recipe/botania/manaInfusion.js +3 -3
  91. package/dist/parser/recipe/botania/manaInfusion.js.map +1 -1
  92. package/dist/parser/recipe/botania/nbtWrapper.d.ts +1 -1
  93. package/dist/parser/recipe/botania/nbtWrapper.js +2 -2
  94. package/dist/parser/recipe/botania/nbtWrapper.js.map +1 -1
  95. package/dist/parser/recipe/botania/runicAltar.js +1 -1
  96. package/dist/parser/recipe/botania/runicAltar.js.map +1 -1
  97. package/dist/parser/recipe/create/assembly.d.ts +1 -1
  98. package/dist/parser/recipe/create/assembly.js +4 -4
  99. package/dist/parser/recipe/create/assembly.js.map +1 -1
  100. package/dist/parser/recipe/farmersdelight/cooking.d.ts +1 -1
  101. package/dist/parser/recipe/farmersdelight/cooking.js +3 -3
  102. package/dist/parser/recipe/farmersdelight/cooking.js.map +1 -1
  103. package/dist/parser/recipe/farmersdelight/cutting.d.ts +1 -1
  104. package/dist/parser/recipe/farmersdelight/cutting.js +2 -2
  105. package/dist/parser/recipe/farmersdelight/cutting.js.map +1 -1
  106. package/dist/parser/recipe/forge/conditional.d.ts +1 -1
  107. package/dist/parser/recipe/forge/conditional.js +2 -2
  108. package/dist/parser/recipe/forge/conditional.js.map +1 -1
  109. package/dist/parser/recipe/index.d.ts +2 -2
  110. package/dist/parser/recipe/index.js +4 -5
  111. package/dist/parser/recipe/index.js.map +1 -1
  112. package/dist/parser/recipe/manyToMany.d.ts +1 -1
  113. package/dist/parser/recipe/manyToMany.js +1 -1
  114. package/dist/parser/recipe/manyToMany.js.map +1 -1
  115. package/dist/parser/recipe/manyToOne.d.ts +1 -1
  116. package/dist/parser/recipe/manyToOne.js +2 -2
  117. package/dist/parser/recipe/manyToOne.js.map +1 -1
  118. package/dist/parser/recipe/oneToOne.d.ts +1 -1
  119. package/dist/parser/recipe/oneToOne.js +3 -3
  120. package/dist/parser/recipe/oneToOne.js.map +1 -1
  121. package/dist/parser/recipe/roots/component.d.ts +1 -1
  122. package/dist/parser/recipe/roots/component.js +1 -1
  123. package/dist/parser/recipe/roots/component.js.map +1 -1
  124. package/dist/parser/recipe/roots/ritual.d.ts +1 -1
  125. package/dist/parser/recipe/roots/ritual.js +2 -2
  126. package/dist/parser/recipe/roots/ritual.js.map +1 -1
  127. package/dist/parser/recipe/thermal/catalyst.d.ts +1 -1
  128. package/dist/parser/recipe/thermal/catalyst.js +2 -2
  129. package/dist/parser/recipe/thermal/catalyst.js.map +1 -1
  130. package/dist/parser/recipe/thermal/fuel.d.ts +1 -1
  131. package/dist/parser/recipe/thermal/fuel.js +2 -2
  132. package/dist/parser/recipe/thermal/fuel.js.map +1 -1
  133. package/dist/parser/recipe/thermal/index.d.ts +1 -1
  134. package/dist/parser/recipe/thermal/index.js +3 -3
  135. package/dist/parser/recipe/thermal/index.js.map +1 -1
  136. package/dist/parser/recipe/thermal/ingredient.js +1 -1
  137. package/dist/parser/recipe/thermal/ingredient.js.map +1 -1
  138. package/dist/parser/recipe/thermal/treeExtraction.d.ts +1 -1
  139. package/dist/parser/recipe/thermal/treeExtraction.js +4 -4
  140. package/dist/parser/recipe/thermal/treeExtraction.js.map +1 -1
  141. package/dist/parser/recipe/vanilla/shaped.d.ts +1 -1
  142. package/dist/parser/recipe/vanilla/shaped.js +2 -2
  143. package/dist/parser/recipe/vanilla/shaped.js.map +1 -1
  144. package/dist/parser/recipe/vanilla/smelting.d.ts +1 -1
  145. package/dist/parser/recipe/vanilla/smelting.js +3 -3
  146. package/dist/parser/recipe/vanilla/smelting.js.map +1 -1
  147. package/dist/parser/recipe/vanilla/smithing.d.ts +1 -1
  148. package/dist/parser/recipe/vanilla/smithing.js +4 -4
  149. package/dist/parser/recipe/vanilla/smithing.js.map +1 -1
  150. package/dist/parser/recipe/vanilla/stonecutting.d.ts +1 -1
  151. package/dist/parser/recipe/vanilla/stonecutting.js +3 -3
  152. package/dist/parser/recipe/vanilla/stonecutting.js.map +1 -1
  153. package/dist/schema/data/loot.d.ts +60 -1086
  154. package/dist/textHelper.js +1 -10
  155. package/dist/textHelper.js.map +1 -1
  156. package/package.json +2 -2
  157. package/dist/common/serializable.js +0 -1
  158. package/dist/common/serializable.js.map +0 -1
@@ -0,0 +1,4 @@
1
+ type Constructor<T> = new (...args: any[]) => T;
2
+ type AbstractConstructor<T> = abstract new (...args: any[]) => T;
3
+ export type Class<T> = Constructor<T> | AbstractConstructor<T>;
4
+ export {};
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class.js","sourceRoot":"","sources":["../../src/common/class.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
1
  import z from "zod";
2
- export declare const CountSchema: z.ZodDefault<z.ZodNumber>;
2
+ export declare const CountSchema: z.ZodCodec<z.ZodOptional<z.ZodNumber>, z.ZodNumber>;
3
3
  export declare const AmountSchema: z.ZodNumber;
4
4
  export declare const ChanceSchema: z.ZodOptional<z.ZodNumber>;
@@ -1,5 +1,5 @@
1
1
  import z from "zod";
2
- export const CountSchema = z.number().int().positive().default(1);
2
+ export const CountSchema = z.codec(z.number().int().positive().optional(), z.number(), { decode: (it) => it ?? 1, encode: (it) => (it === 1 ? undefined : it) });
3
3
  export const AmountSchema = z.number().positive();
4
4
  export const ChanceSchema = z.number().max(1).positive().optional();
5
5
  //# sourceMappingURL=fields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/common/fields.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/common/fields.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,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,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import type { InferIds, RegistryId } from "@adeficior/data-modifier/generated";
2
- import type { Logger } from "@adeficior/pack-resolver";
3
2
  import type { TagRegistry } from "../loader/tags.js";
4
3
  import type { IdInput, NormalizedId } from "./id.js";
5
- export type Predicate<T> = (value: T, logger?: Logger) => boolean;
4
+ export type Predicate<T> = (value: T) => boolean;
6
5
  export type CommonFilter<T> = RegExp | Predicate<T> | T;
7
- export declare function createIdPredicate<TEntry, TId extends string>(test: CommonFilter<TId>, resolve: (value: TEntry, logger?: Logger) => NormalizedId<TId>[], tags?: TagRegistry<RegistryId>): Predicate<TEntry>;
6
+ export declare function createIdPredicate<TEntry, TId extends string>(test: CommonFilter<TId>, resolve: (value: TEntry) => NormalizedId<TId>[], tags?: TagRegistry<RegistryId>): Predicate<TEntry>;
8
7
  export declare function resolveIDTest<T extends RegistryId>(test: CommonFilter<NormalizedId<InferIds<T>>>, tags?: TagRegistry<T>): Predicate<IdInput<InferIds<T>>>;
@@ -1,18 +1,16 @@
1
1
  import { encodeId } from "./id.js";
2
- export function createIdPredicate(test, resolve,
3
- // TODO required?
4
- tags) {
2
+ export function createIdPredicate(test, resolve, tags) {
5
3
  if (typeof test === "function") {
6
- return (entry, logger) => resolve(entry, logger).some((id) => test(id, logger));
4
+ return (entry) => resolve(entry).some((id) => test(id));
7
5
  }
8
6
  else if (test instanceof RegExp) {
9
- return (ingredient, logger) => {
10
- return resolve(ingredient, logger).some((it) => test.test(it));
7
+ return (ingredient) => {
8
+ return resolve(ingredient).some((it) => test.test(it));
11
9
  };
12
10
  }
13
11
  else if (test.startsWith("#")) {
14
- return (ingredient, logger) => {
15
- return resolve(ingredient, logger).some((id) => {
12
+ return (ingredient) => {
13
+ return resolve(ingredient).some((id) => {
16
14
  if (id.startsWith("#") && test === id)
17
15
  return true;
18
16
  else if (tags)
@@ -23,8 +21,8 @@ tags) {
23
21
  };
24
22
  }
25
23
  else {
26
- return (ingredient, logger) => {
27
- return resolve(ingredient, logger).includes(encodeId(test));
24
+ return (ingredient) => {
25
+ return resolve(ingredient).includes(encodeId(test));
28
26
  };
29
27
  }
30
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/common/filters.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKnC,MAAM,UAAU,iBAAiB,CAC/B,IAAuB,EACvB,OAAgE;AAChE,iBAAiB;AACjB,IAA8B;IAE9B,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACvB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,EAAE;oBAAE,OAAO,IAAI,CAAC;qBAC9C,IAAI,IAAI;oBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;;oBAC9D,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAA6C,EAC7C,IAAqB;IAErB,OAAO,iBAAiB,CACtB,IAAI,EACJ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EACtB,IAAI,CACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/common/filters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKnC,MAAM,UAAU,iBAAiB,CAC/B,IAAuB,EACvB,OAA+C,EAC/C,IAA8B;IAE9B,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAS,CAAC,CAAC,CAAC;IACjE,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,UAAU,EAAE,EAAE;YACpB,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,UAAU,EAAE,EAAE;YACpB,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBACrC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,EAAE;oBAAE,OAAO,IAAI,CAAC;qBAC9C,IAAI,IAAI;oBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;;oBAC9D,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,UAAU,EAAE,EAAE;YACpB,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAA6C,EAC7C,IAAqB;IAErB,OAAO,iBAAiB,CACtB,IAAI,EACJ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EACtB,IAAI,CACL,CAAC;AACJ,CAAC"}
@@ -9,8 +9,6 @@ export type NormalizedId<T extends string = string> = T extends `${string}:${str
9
9
  export type TagId = NormalizedId<`#${string}`>;
10
10
  export type TagInput = IdInput<`#${string}`>;
11
11
  export declare const IdSchema: zod.ZodString;
12
- export declare const TagSchema: zod.ZodType<`#${string}`>;
13
- export declare const IdOrTagSchema: zod.ZodString;
14
12
  export declare function createId(from: IdInput): Id;
15
13
  export declare function encodeId<T extends string>(from: IdInput<T>): NormalizedId<T>;
16
14
  export declare function toTag(from: IdInput): TagId;
package/dist/common/id.js CHANGED
@@ -1,16 +1,9 @@
1
1
  import zod from "zod";
2
2
  export const IdSchema = zod
3
3
  .string()
4
- .regex(/^([a-z0-9_.-]+:)?[a-z0-9/._-]+$/i)
4
+ .regex(/^#?([a-z0-9_.-]+:)?[a-z0-9_.-/]+$/i, "ID may only include letters, numbers, dashes and underscores")
5
+ .refine((val) => !val.startsWith("#"), "IDs may not start with a hashtag")
5
6
  .describe("Valid ID");
6
- export const TagSchema = zod
7
- .string()
8
- .regex(/^#([a-z0-9_.-]+:)?[a-z0-9/._-]+$/i)
9
- .describe("Valid Tag-ID");
10
- export const IdOrTagSchema = zod
11
- .string()
12
- .regex(/^#?([a-z0-9_.-]+:)?[a-z0-9/._-]+$/i)
13
- .describe("Valid ID or Tag-ID");
14
7
  export function createId(from) {
15
8
  if (typeof from !== "string")
16
9
  return from;
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/common/id.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAqBtB,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG;KACxB,MAAM,EAAE;KACR,KAAK,CAAC,kCAAkC,CAAC;KACzC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAExB,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG;KACzB,MAAM,EAAE;KACR,KAAK,CAAC,mCAAmC,CAAC;KAC1C,QAAQ,CAAC,cAAc,CAA8B,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG;KAC7B,MAAM,EAAE;KACR,KAAK,CAAC,oCAAoC,CAAC;KAC3C,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAElC,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACtB,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAEzD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAErB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACvE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;IAC9D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAmB,IAAgB;IACzD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAuB,CAAC;QACvD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YACtB,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAqB,CAAC;QAC9D,OAAO,aAAa,IAAI,EAAqB,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAqB,CAAC;IAC5E,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAqB,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAa;IACjC,OAAO,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAU,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,OAAO,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAW,EAAE,MAAc;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAW,EAAE,MAAc;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/common/id.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAqBtB,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG;KACxB,MAAM,EAAE;KACR,KAAK,CACJ,oCAAoC,EACpC,8DAA8D,CAC/D;KACA,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,kCAAkC,CAAC;KACzE,QAAQ,CAAC,UAAU,CAAC,CAAC;AAExB,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACtB,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAEzD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAErB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACvE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;IAC9D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAmB,IAAgB;IACzD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAuB,CAAC;QACvD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YACtB,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAqB,CAAC;QAC9D,OAAO,aAAa,IAAI,EAAqB,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAqB,CAAC;IAC5E,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAqB,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAa;IACjC,OAAO,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAU,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,OAAO,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAW,EAAE,MAAc;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAW,EAAE,MAAc;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC"}
@@ -1,4 +1,5 @@
1
- import { BlockIngredient, BlockTagIngredient, FluidIngredient, FluidTagIngredient, Ingredient, ItemIngredient, ItemTagIngredient, ListIngredient, } from ".";
1
+ import { Ingredient, ItemIngredient, ItemTagIngredient, ListIngredient, RegistryEntryIngredient, TagIngredient, } from ".";
2
+ import { IllegalShapeError } from "../../error";
2
3
  import { createIdPredicate, } from "../filters";
3
4
  import {} from "../id";
4
5
  export default function createIngredientPredicate(test, context) {
@@ -16,40 +17,25 @@ function createUnvalidatedFilter(test, context) {
16
17
  return filterByRegistry(test, context, "minecraft:item");
17
18
  }
18
19
  if (typeof test === "function") {
19
- // ingredients.create not needed if function wrapped
20
- return (it, logger) => test(context.ingredients.create(it), logger);
20
+ // TODO ingredients.create not needed if function wrapped
21
+ return (it) => test(context.ingredients.deserialize(it));
21
22
  }
22
23
  if (test instanceof Ingredient) {
23
24
  test.validate(context.lookup);
24
25
  }
25
- if (test instanceof ItemTagIngredient) {
26
- return filterByRegistry(test.tag, context, "minecraft:item");
26
+ if (test instanceof TagIngredient) {
27
+ return filterByRegistry(test.tag, context, test.registry);
27
28
  }
28
- if (test instanceof ItemIngredient) {
29
- return filterByRegistry(test.id, context, "minecraft:item");
30
- }
31
- if (test instanceof FluidTagIngredient) {
32
- return filterByRegistry(test.tag, context, "minecraft:fluid");
33
- }
34
- if (test instanceof FluidIngredient) {
35
- return filterByRegistry(test.id, context, "minecraft:fluid");
36
- }
37
- if (test instanceof BlockTagIngredient) {
38
- return filterByRegistry(test.tag, context, "minecraft:block");
39
- }
40
- if (test instanceof BlockIngredient) {
41
- return filterByRegistry(test.id, context, "minecraft:block");
29
+ if (test instanceof RegistryEntryIngredient) {
30
+ return filterByRegistry(test.id, context, test.registry);
42
31
  }
43
32
  if (test instanceof ListIngredient) {
44
33
  const predicates = test.entries.map((it) => createIngredientPredicate(it, context));
45
34
  return (it) => predicates.some((predicate) => predicate(it));
46
35
  }
47
- // TODO warn or throw?
48
- return () => false;
36
+ throw new IllegalShapeError("cannot filter by unknown ingredient type", test);
49
37
  }
50
38
  function filterByRegistry(test, context, registry) {
51
- return createIdPredicate(test,
52
- // TODO remove logger
53
- (it, _logger) => it.idsFor(registry), context.tags.registry(registry));
39
+ return createIdPredicate(test, (it) => it.idsFor(registry), context.tags.registry(registry));
54
40
  }
55
41
  //# sourceMappingURL=filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/common/ingredient/filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/common/ingredient/filter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,aAAa,GACd,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,iBAAiB,GAGlB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAqB,MAAM,OAAO,CAAC;AAQ1C,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,IAAsB,EACtB,OAA6D;IAE7D,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAAsB,EACtB,OAA6D;IAE7D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,yBAAyB,CAC9B,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACxC,OAAO,CACR,CAAC;QACJ,CAAC;QAED,OAAO,yBAAyB,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,yDAAyD;QACzD,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,IAAI,YAAY,aAAa,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,IAAI,YAAY,uBAAuB,EAAE,CAAC;QAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACzC,yBAAyB,CAAC,EAAE,EAAE,OAAO,CAAC,CACvC,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,OAA6D,EAC7D,QAAkC;IAElC,OAAO,iBAAiB,CACtB,IAAI,EACJ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC3B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAChC,CAAC;AACJ,CAAC"}
@@ -1,17 +1,15 @@
1
1
  import type { BlockId, FluidId, ItemId, RegistryId } from "@adeficior/data-modifier/generated";
2
2
  import type RegistryLookup from "../../loader/registry";
3
- import type { SemVerInput } from "../../packFormat";
4
3
  import { type IdInput, type NormalizedId, type TagId } from "../id";
4
+ import type { InputOutput } from "../inputOutput";
5
5
  import { BlockResult, FluidResult, ItemResult, type Result } from "../result";
6
- import type { Serializable } from "../serializable";
7
- export declare abstract class Ingredient implements Serializable {
6
+ export declare abstract class Ingredient implements InputOutput {
8
7
  validate(_: RegistryLookup): void;
9
- abstract serialize(packFormat: SemVerInput): unknown;
10
8
  abstract idsFor(registry: NormalizedId<RegistryId>): NormalizedId<RegistryId>[];
11
9
  abstract asResult(): Result;
12
10
  }
13
11
  export declare abstract class TagIngredient extends Ingredient {
14
- private readonly registry;
12
+ readonly registry: NormalizedId<RegistryId>;
15
13
  readonly tag: TagId;
16
14
  constructor(input: IdInput, registry: NormalizedId<RegistryId>);
17
15
  idsFor(registry: NormalizedId<RegistryId>): `#${string}:${string}`[];
@@ -20,27 +18,16 @@ export declare abstract class TagIngredient extends Ingredient {
20
18
  export declare class ItemTagIngredient extends TagIngredient {
21
19
  readonly count: number;
22
20
  constructor(tag: IdInput, count?: number);
23
- serialize(_packFormat: SemVerInput): {
24
- tag: `${string}:${string}`;
25
- count: number | undefined;
26
- };
27
21
  }
28
22
  export declare class FluidTagIngredient extends TagIngredient {
29
23
  readonly amount: number;
30
24
  constructor(tag: IdInput, amount?: number);
31
- serialize(_packFormat: SemVerInput): {
32
- fluidTag: `${string}:${string}`;
33
- amount: number;
34
- };
35
25
  }
36
26
  export declare class BlockTagIngredient extends TagIngredient {
37
27
  constructor(tag: IdInput);
38
- serialize(_packFormat: SemVerInput): {
39
- blockTag: `${string}:${string}`;
40
- };
41
28
  }
42
29
  export declare abstract class RegistryEntryIngredient<T extends string> extends Ingredient {
43
- private readonly registry;
30
+ readonly registry: NormalizedId<RegistryId>;
44
31
  readonly id: NormalizedId<T>;
45
32
  constructor(input: IdInput<T>, registry: NormalizedId<RegistryId>);
46
33
  idsFor(registry: NormalizedId<RegistryId>): NormalizedId<T>[];
@@ -48,10 +35,6 @@ export declare abstract class RegistryEntryIngredient<T extends string> extends
48
35
  export declare class ItemIngredient extends RegistryEntryIngredient<ItemId> {
49
36
  readonly count: number;
50
37
  constructor(id: IdInput<ItemId>, count?: number);
51
- serialize(_packFormat: SemVerInput): {
52
- item: `${string}:${string}`;
53
- count: number | undefined;
54
- };
55
38
  validate(lookup: RegistryLookup): void;
56
39
  asResult(): ItemResult;
57
40
  }
@@ -59,27 +42,18 @@ export declare class FluidIngredient extends RegistryEntryIngredient<FluidId> {
59
42
  readonly amount: number;
60
43
  readonly chance?: number | undefined;
61
44
  constructor(id: IdInput<FluidId>, amount?: number, chance?: number | undefined);
62
- serialize(_packFormat: SemVerInput): {
63
- fluid: `${string}:${string}`;
64
- amount: number;
65
- };
66
45
  validate(lookup: RegistryLookup): void;
67
46
  asResult(): FluidResult;
68
47
  }
69
48
  export declare class BlockIngredient extends RegistryEntryIngredient<BlockId> {
70
49
  readonly weight?: number | undefined;
71
50
  constructor(id: IdInput<BlockId>, weight?: number | undefined);
72
- serialize(_packFormat: SemVerInput): {
73
- block: `${string}:${string}`;
74
- weight: number | undefined;
75
- };
76
51
  validate(lookup: RegistryLookup): void;
77
52
  asResult(): BlockResult;
78
53
  }
79
54
  export declare class ListIngredient extends Ingredient {
80
55
  readonly entries: Ingredient[];
81
56
  constructor(entries: Ingredient[]);
82
- serialize(packFormat: SemVerInput): unknown[];
83
57
  validate(lookup: RegistryLookup): void;
84
58
  idsFor(registry: NormalizedId<RegistryId>): `${string}:${string}`[];
85
59
  asResult(): Result;
@@ -1,8 +1,7 @@
1
- import { encodeId, stripTag, toTag, } from "../id";
1
+ import { encodeId, toTag, } from "../id";
2
2
  import { BlockResult, FluidResult, ItemResult } from "../result";
3
3
  import { BUCKET } from "../units";
4
4
  export class Ingredient {
5
- // TODO make required
6
5
  validate(_) { }
7
6
  }
8
7
  export class TagIngredient extends Ingredient {
@@ -29,11 +28,6 @@ export class ItemTagIngredient extends TagIngredient {
29
28
  super(tag, "minecraft:item");
30
29
  this.count = count;
31
30
  }
32
- serialize(_packFormat) {
33
- const count = this.count === 1 ? undefined : this.count;
34
- const tag = stripTag(this.tag);
35
- return { tag, count };
36
- }
37
31
  }
38
32
  export class FluidTagIngredient extends TagIngredient {
39
33
  amount;
@@ -41,20 +35,11 @@ export class FluidTagIngredient extends TagIngredient {
41
35
  super(tag, "minecraft:fluid");
42
36
  this.amount = amount;
43
37
  }
44
- serialize(_packFormat) {
45
- const { amount } = this;
46
- const tag = stripTag(this.tag);
47
- return { fluidTag: tag, amount };
48
- }
49
38
  }
50
39
  export class BlockTagIngredient extends TagIngredient {
51
40
  constructor(tag) {
52
41
  super(tag, "minecraft:block");
53
42
  }
54
- serialize(_packFormat) {
55
- const tag = stripTag(this.tag);
56
- return { blockTag: tag };
57
- }
58
43
  }
59
44
  export class RegistryEntryIngredient extends Ingredient {
60
45
  registry;
@@ -76,11 +61,6 @@ export class ItemIngredient extends RegistryEntryIngredient {
76
61
  super(id, "minecraft:item");
77
62
  this.count = count;
78
63
  }
79
- serialize(_packFormat) {
80
- const count = this.count === 1 ? undefined : this.count;
81
- const id = encodeId(this.id);
82
- return { item: id, count };
83
- }
84
64
  validate(lookup) {
85
65
  lookup.validateEntry("minecraft:item", this.id);
86
66
  }
@@ -96,11 +76,6 @@ export class FluidIngredient extends RegistryEntryIngredient {
96
76
  this.amount = amount;
97
77
  this.chance = chance;
98
78
  }
99
- serialize(_packFormat) {
100
- const { amount } = this;
101
- const id = encodeId(this.id);
102
- return { fluid: id, amount };
103
- }
104
79
  validate(lookup) {
105
80
  lookup.validateEntry("minecraft:fluid", this.id);
106
81
  }
@@ -114,11 +89,6 @@ export class BlockIngredient extends RegistryEntryIngredient {
114
89
  super(id, "minecraft:block");
115
90
  this.weight = weight;
116
91
  }
117
- serialize(_packFormat) {
118
- const { weight } = this;
119
- const id = encodeId(this.id);
120
- return { block: id, weight };
121
- }
122
92
  validate(lookup) {
123
93
  lookup.validateEntry("minecraft:block", this.id);
124
94
  }
@@ -132,9 +102,6 @@ export class ListIngredient extends Ingredient {
132
102
  super();
133
103
  this.entries = entries;
134
104
  }
135
- serialize(packFormat) {
136
- return this.entries.map((it) => it.serialize(packFormat));
137
- }
138
105
  validate(lookup) {
139
106
  this.entries.forEach((it) => it.validate(lookup));
140
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/ingredient/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/ingredient/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,QAAQ,EACR,KAAK,GAIN,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAe,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAgB,UAAU;IAC9B,QAAQ,CAAC,CAAiB,IAAS,CAAC;CAKrC;AAED,MAAM,OAAgB,aAAc,SAAQ,UAAU;IAKlC;IAJF,GAAG,CAAQ;IAE3B,YACE,KAAc,EACE,QAAkC;QAElD,KAAK,EAAE,CAAC;QAFQ,aAAQ,GAAR,QAAQ,CAA0B;QAGlD,2CAA2C;QAC3C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEQ,MAAM,CAAC,QAAkC;QAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,QAAQ;QACf,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAGhC;IAFlB,YACE,GAAY,EACI,QAAQ,CAAC;QAEzB,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAFb,UAAK,GAAL,KAAK,CAAI;IAG3B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAGjC;IAFlB,YACE,GAAY,EACI,SAAS,MAAM;QAE/B,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAFd,WAAM,GAAN,MAAM,CAAS;IAGjC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IACnD,YAAY,GAAY;QACtB,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAgB,uBAEpB,SAAQ,UAAU;IAKA;IAJF,EAAE,CAAkB;IAEpC,YACE,KAAiB,EACD,QAAkC;QAElD,KAAK,EAAE,CAAC;QAFQ,aAAQ,GAAR,QAAQ,CAA0B;QAGlD,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEQ,MAAM,CAAC,QAAkC;QAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,uBAA+B;IAG/C;IAFlB,YACE,EAAmB,EACH,QAAQ,CAAC;QAEzB,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAFZ,UAAK,GAAL,KAAK,CAAI;IAG3B,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,uBAAgC;IAGjD;IACA;IAHlB,YACE,EAAoB,EACJ,SAAS,MAAM,EACf,MAAe;QAE/B,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAHb,WAAM,GAAN,MAAM,CAAS;QACf,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,QAAQ;QACf,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,uBAAgC;IAGjD;IAFlB,YACE,EAAoB,EACJ,MAAe;QAE/B,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAFb,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,QAAQ;QACf,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,UAAU;IAChB;IAA5B,YAA4B,OAAqB;QAC/C,KAAK,EAAE,CAAC;QADkB,YAAO,GAAP,OAAO,CAAc;IAEjD,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAEQ,MAAM,CAAC,QAAkC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEQ,QAAQ;QACf,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;CACF"}
@@ -2,16 +2,8 @@ import { Ingredient } from ".";
2
2
  import type RegistryLookup from "../../loader/registry";
3
3
  import type { SemVerInput } from "../../packFormat";
4
4
  import { IngredientMap, type IngredientMapInput } from "../../parser/recipe/ingredientMap";
5
- export default class IngredientSerializer {
6
- private readonly packFormat;
7
- private readonly lookup;
8
- private readonly deserializer;
5
+ import { VersionedSerializer } from "../serializer";
6
+ export default class IngredientSerializer extends VersionedSerializer<Ingredient> {
9
7
  constructor(packFormat: SemVerInput, lookup: RegistryLookup);
10
- serialize(ingredient: Ingredient): unknown;
11
- serializeList(ingredients: Ingredient[]): unknown[];
12
- private deserialize;
13
- create(input: unknown): Ingredient;
14
- validated<T extends Ingredient>(ingredient: T): T;
15
- createList(input: unknown[]): Ingredient[];
16
8
  ingredientMap(input: IngredientMapInput): IngredientMap;
17
9
  }
@@ -1,118 +1,51 @@
1
1
  import { mapValues } from "lodash-es";
2
2
  import z from "zod";
3
3
  import { BlockIngredient, BlockTagIngredient, FluidIngredient, FluidTagIngredient, Ingredient, ItemIngredient, ItemTagIngredient, ListIngredient, } from ".";
4
- import { IllegalShapeError, transformErrors } from "../../error";
5
4
  import { IngredientMap, } from "../../parser/recipe/ingredientMap";
6
5
  import { AmountSchema, CountSchema } from "../fields";
7
- import { IdSchema } from "../id";
8
- class OldDeserializer {
9
- schemas = {
10
- itemTag: z.object({
11
- tag: IdSchema,
12
- count: CountSchema,
13
- }),
14
- fluidTag: z.object({
15
- fluidTag: IdSchema,
16
- amount: AmountSchema,
17
- }),
18
- blockTag: z.object({
19
- blockTag: IdSchema,
20
- weight: z.number().optional(),
21
- }),
22
- itemStack: z.object({
23
- item: IdSchema,
24
- count: CountSchema,
25
- }),
26
- fluidStack: z.object({
27
- fluid: IdSchema,
28
- amount: AmountSchema,
29
- }),
30
- block: z.object({
31
- block: IdSchema,
32
- }),
33
- };
34
- deserialize(input) {
35
- if ("blockTag" in input) {
36
- const parsed = this.schemas.blockTag.parse(input);
37
- return new BlockTagIngredient(parsed.blockTag);
38
- }
39
- if ("tag" in input) {
40
- const parsed = this.schemas.itemTag.parse(input);
41
- return new ItemTagIngredient(parsed.tag, parsed.count);
42
- }
43
- if ("fluidTag" in input) {
44
- const parsed = this.schemas.fluidTag.parse(input);
45
- return new FluidTagIngredient(parsed.fluidTag, parsed.amount);
46
- }
47
- if ("block" in input) {
48
- const parsed = this.schemas.block.parse(input);
49
- return new BlockIngredient(parsed.block);
50
- }
51
- if ("item" in input) {
52
- const parsed = this.schemas.itemStack.parse(input);
53
- return new ItemIngredient(parsed.item, parsed.count);
54
- }
55
- if ("fluid" in input) {
56
- const parsed = this.schemas.fluidStack.parse(input);
57
- return new FluidIngredient(parsed.fluid, parsed.amount);
58
- }
59
- return null;
60
- }
61
- }
62
- export default class IngredientSerializer {
63
- packFormat;
64
- lookup;
65
- deserializer;
6
+ import { IdSchema, stripTag } from "../id";
7
+ import { createSerializer, isObjectWith, VersionedSerializer, } from "../serializer";
8
+ const serializer15 = createSerializer((builder) => {
9
+ builder.deserializer((it) => typeof it === "string", (input) => {
10
+ if (input.startsWith("#")) {
11
+ return new ItemTagIngredient(input);
12
+ }
13
+ return new ItemIngredient(input);
14
+ });
15
+ builder.serializer(ListIngredient, (it, serialize) => it.entries.flatMap(serialize));
16
+ builder.deserializer(Array.isArray, (it, deserialize) => new ListIngredient(it.map(deserialize)));
17
+ builder.register(ItemTagIngredient, isObjectWith("tag"), z.object({
18
+ tag: IdSchema,
19
+ count: CountSchema,
20
+ }), (it) => new ItemTagIngredient(it.tag, it.count), ({ count, tag }) => ({ tag: stripTag(tag), count }));
21
+ builder.register(FluidTagIngredient, isObjectWith("fluidTag"), z.object({
22
+ fluidTag: IdSchema,
23
+ amount: AmountSchema,
24
+ }), (it) => new FluidTagIngredient(it.fluidTag, it.amount), ({ amount, tag }) => ({ fluidTag: stripTag(tag), amount }));
25
+ builder.register(BlockTagIngredient, isObjectWith("blockTag"), z.object({
26
+ blockTag: IdSchema,
27
+ weight: z.number().optional(),
28
+ }), (it) => new BlockTagIngredient(it.blockTag), ({ tag }) => ({ blockTag: stripTag(tag) }));
29
+ builder.register(ItemIngredient, isObjectWith("item"), z.object({
30
+ item: IdSchema,
31
+ count: CountSchema,
32
+ }), (it) => new ItemIngredient(it.item, it.count), ({ id, ...rest }) => ({ item: id, ...rest }));
33
+ builder.register(FluidIngredient, isObjectWith("fluid"), z.object({
34
+ fluid: IdSchema,
35
+ amount: AmountSchema,
36
+ }), (it) => new FluidIngredient(it.fluid, it.amount), ({ id, ...rest }) => ({ fluid: id, ...rest }));
37
+ builder.register(BlockIngredient, isObjectWith("block"), z.object({
38
+ block: IdSchema,
39
+ }), (it) => new BlockIngredient(it.block), ({ id }) => ({ block: id }));
40
+ });
41
+ export default class IngredientSerializer extends VersionedSerializer {
66
42
  constructor(packFormat, lookup) {
67
- this.packFormat = packFormat;
68
- this.lookup = lookup;
69
- this.deserializer = new OldDeserializer();
70
- }
71
- serialize(ingredient) {
72
- return ingredient.serialize(this.packFormat);
73
- }
74
- serializeList(ingredients) {
75
- return ingredients.map((it) => this.serialize(it));
76
- }
77
- deserialize(input) {
78
- if (input instanceof Ingredient)
79
- return input;
80
- if (!input)
81
- throw new IllegalShapeError("ingredient input may not be null");
82
- if (typeof input === "string") {
83
- if (input.startsWith("#")) {
84
- return this.deserialize(new ItemTagIngredient(input));
85
- }
86
- this.lookup.validateEntry("minecraft:item", input);
87
- return new ItemIngredient(input);
88
- }
89
- if (Array.isArray(input)) {
90
- return new ListIngredient(input.map((it) => this.deserialize(it)));
91
- }
92
- if (typeof input === "object") {
93
- const deserialized = this.deserializer.deserialize(input);
94
- if (deserialized)
95
- return deserialized;
96
- }
97
- throw new IllegalShapeError(`unknown ingredient shape`, input);
98
- }
99
- // TODO rename deserialize
100
- create(input) {
101
- return transformErrors(() => {
102
- const deserialized = this.deserialize(input);
103
- deserialized.validate(this.lookup);
104
- return deserialized;
43
+ super(packFormat, lookup, Ingredient, {
44
+ 15: serializer15,
105
45
  });
106
46
  }
107
- validated(ingredient) {
108
- ingredient.validate(this.lookup);
109
- return ingredient;
110
- }
111
- createList(input) {
112
- return input.map((it) => this.create(it));
113
- }
114
47
  ingredientMap(input) {
115
- return new IngredientMap(mapValues(input, (it) => this.create(it)));
48
+ return new IngredientMap(mapValues(input, (it) => this.deserialize(it)));
116
49
  }
117
50
  }
118
51
  //# sourceMappingURL=serializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/common/ingredient/serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/common/ingredient/serializer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import type { RegistryId } from "@adeficior/data-modifier/generated";
2
2
  import type RegistryLookup from "../loader/registry";
3
- import type { SemVerInput } from "../packFormat";
4
3
  import type { NormalizedId } from "./id";
5
- export interface Serializable {
6
- serialize(packFormat: SemVerInput): unknown;
4
+ export interface InputOutput {
7
5
  validate(lookup: RegistryLookup): void;
8
6
  idsFor(registry: NormalizedId<RegistryId>): NormalizedId<RegistryId>[];
9
7
  }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=inputOutput.js.map