@adeficior/data-modifier 1.0.0-rc.28 → 1.0.0-rc.30

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 (65) hide show
  1. package/dist/cli/index.js +2 -2
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/context.d.ts +1 -0
  4. package/dist/context.js +1 -0
  5. package/dist/context.js.map +1 -0
  6. package/dist/emit/assets/blockstates.d.ts +2 -1
  7. package/dist/emit/assets/blockstates.js +3 -1
  8. package/dist/emit/assets/blockstates.js.map +1 -1
  9. package/dist/emit/assets/lang.d.ts +2 -1
  10. package/dist/emit/assets/lang.js +32 -30
  11. package/dist/emit/assets/lang.js.map +1 -1
  12. package/dist/emit/assets/models.d.ts +2 -2
  13. package/dist/emit/assets/models.js +3 -2
  14. package/dist/emit/assets/models.js.map +1 -1
  15. package/dist/emit/blacklist.d.ts +2 -2
  16. package/dist/emit/blacklist.js +17 -15
  17. package/dist/emit/blacklist.js.map +1 -1
  18. package/dist/emit/content/blockDefinition.d.ts +2 -1
  19. package/dist/emit/content/blockDefinition.js +3 -1
  20. package/dist/emit/content/blockDefinition.js.map +1 -1
  21. package/dist/emit/content/itemDefinition.d.ts +2 -1
  22. package/dist/emit/content/itemDefinition.js +3 -1
  23. package/dist/emit/content/itemDefinition.js.map +1 -1
  24. package/dist/emit/custom.d.ts +2 -2
  25. package/dist/emit/custom.js +8 -6
  26. package/dist/emit/custom.js.map +1 -1
  27. package/dist/emit/data/loot.d.ts +2 -2
  28. package/dist/emit/data/loot.js +11 -12
  29. package/dist/emit/data/loot.js.map +1 -1
  30. package/dist/emit/data/recipe.d.ts +2 -2
  31. package/dist/emit/data/recipe.js +21 -12
  32. package/dist/emit/data/recipe.js.map +1 -1
  33. package/dist/emit/data/tags.d.ts +2 -2
  34. package/dist/emit/data/tags.js +14 -12
  35. package/dist/emit/data/tags.js.map +1 -1
  36. package/dist/emit/index.d.ts +2 -2
  37. package/dist/emit/polytoneTabs.d.ts +2 -1
  38. package/dist/emit/polytoneTabs.js +6 -2
  39. package/dist/emit/polytoneTabs.js.map +1 -1
  40. package/dist/emit/rule/lootTable.d.ts +3 -3
  41. package/dist/emit/rule/lootTable.js +4 -5
  42. package/dist/emit/rule/lootTable.js.map +1 -1
  43. package/dist/emit/rule/recipe.d.ts +3 -3
  44. package/dist/emit/rule/recipe.js +4 -5
  45. package/dist/emit/rule/recipe.js.map +1 -1
  46. package/dist/emit/ruled.d.ts +3 -4
  47. package/dist/emit/ruled.js +24 -22
  48. package/dist/emit/ruled.js.map +1 -1
  49. package/dist/error.js +4 -2
  50. package/dist/error.js.map +1 -1
  51. package/dist/loader/index.d.ts +2 -2
  52. package/dist/loader/index.js +3 -4
  53. package/dist/loader/index.js.map +1 -1
  54. package/dist/loader/loot.js +2 -2
  55. package/dist/loader/loot.js.map +1 -1
  56. package/dist/loader/pack.d.ts +5 -4
  57. package/dist/loader/pack.js +12 -7
  58. package/dist/loader/pack.js.map +1 -1
  59. package/dist/loader/registry/dump.d.ts +2 -4
  60. package/dist/loader/registry/dump.js +4 -13
  61. package/dist/loader/registry/dump.js.map +1 -1
  62. package/dist/packFormat.d.ts +2 -0
  63. package/dist/packFormat.js +6 -0
  64. package/dist/packFormat.js.map +1 -1
  65. package/package.json +2 -3
@@ -3,7 +3,7 @@ import { resolveIDTest, } from "../../common/filters.js";
3
3
  import { encodeId } from "../../common/id.js";
4
4
  import createIngredientPredicate from "../../common/ingredient/filter.js";
5
5
  import createResultFilter from "../../common/result/filter.js";
6
- import { isAtLeastVersion } from "../../packFormat.js";
6
+ import { recipeFolder } from "../../packFormat.js";
7
7
  import { createReplacer, RecipeHolder, } from "../../parser/recipe/index.js";
8
8
  import CustomEmitter from "../custom.js";
9
9
  import RecipeRule from "../rule/recipe.js";
@@ -32,19 +32,18 @@ export default class RecipeEmitter {
32
32
  serializer;
33
33
  custom = new CustomEmitter((it) => this.recipePath(it));
34
34
  ruled;
35
- resolver;
36
35
  constructor(logger, registry, context, serializer) {
37
36
  this.logger = logger;
38
37
  this.registry = registry;
39
38
  this.context = context;
40
39
  this.serializer = serializer;
41
- this.ruled = new RuledEmitter(this.logger, this.registry, (id) => this.recipePath(id), EMPTY_RECIPE, (it) => this.serializer.serialize(it), (id) => this.custom.has(id));
42
- this.resolver = combineResolvers([this.ruled.resolver, this.custom.resolver], { async: true });
40
+ this.ruled = new RuledEmitter(this.registry, (id) => this.recipePath(id), EMPTY_RECIPE, (it) => this.serializer.serialize(it), (id) => this.custom.has(id));
41
+ }
42
+ resolver(context) {
43
+ return combineResolvers([this.ruled.resolver(context), this.custom.resolver(context)], { async: true });
43
44
  }
44
45
  recipePath(id) {
45
- const folder = isAtLeastVersion(this.context.packFormat, "44")
46
- ? "recipe"
47
- : "recipes";
46
+ const folder = recipeFolder(this.context.packFormat);
48
47
  return `data/${id.namespace}/${folder}/${id.path}.json`;
49
48
  }
50
49
  createIngredientPredicate(filter) {
@@ -90,24 +89,34 @@ export default class RecipeEmitter {
90
89
  this.custom.add(id, value);
91
90
  }
92
91
  }
93
- addRule(shape, modifier, recipeTest = {}, ingredientTests = {}) {
92
+ addRule(context, modifier, recipeTest = {}, ingredientTests = {}) {
94
93
  const recipePredicates = this.resolveRecipeTest(recipeTest ?? {});
95
- this.ruled.addRule(new RecipeRule(shape, recipePredicates.id, recipePredicates.type, [ingredientTests.ingredient, ...recipePredicates.ingredient].filter(exists), [ingredientTests.result, ...recipePredicates.result].filter(exists), modifier), recipeTest.optional !== true);
94
+ this.ruled.addRule(new RecipeRule(context, recipePredicates.id, recipePredicates.type, [ingredientTests.ingredient, ...recipePredicates.ingredient].filter(exists), [ingredientTests.result, ...recipePredicates.result].filter(exists), modifier), recipeTest.optional !== true);
96
95
  }
97
96
  remove(test) {
98
- this.addRule([test], () => null, test);
97
+ this.addRule({ operation: "remove", test }, () => null, test);
99
98
  }
100
99
  replaceResult(test, input, additionalTest) {
101
100
  const predicate = this.createResultPredicate(test);
102
101
  const value = this.context.results.create(input);
103
102
  const replace = createReplacer(predicate, value);
104
- this.addRule(["replace result", test, "with", value, additionalTest], (recipe) => recipe.replaceResult(replace), additionalTest, { result: predicate });
103
+ this.addRule({
104
+ operation: "replace result",
105
+ from: test,
106
+ to: value,
107
+ test: additionalTest,
108
+ }, (recipe) => recipe.replaceResult(replace), additionalTest, { result: predicate });
105
109
  }
106
110
  replaceIngredient(test, input, additionalTest) {
107
111
  const predicate = this.createIngredientPredicate(test);
108
112
  const value = this.context.ingredients.create(input);
109
113
  const replace = createReplacer(predicate, value);
110
- this.addRule(["replace ingredient", test, "with", value, additionalTest], (recipe) => recipe.replaceIngredient(replace), additionalTest, { ingredient: predicate });
114
+ this.addRule({
115
+ operation: "replace ingredient",
116
+ from: test,
117
+ to: value,
118
+ test: additionalTest,
119
+ }, (recipe) => recipe.replaceIngredient(replace), additionalTest, { ingredient: predicate });
111
120
  }
112
121
  clear() {
113
122
  this.custom.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../src/emit/data/recipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../src/emit/data/recipe.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { InferIds, RegistryId } from "@adeficior/data-modifier/generated";
2
- import { type Logger } from "@adeficior/pack-resolver";
2
+ import { type BaseContext, type Logger } from "@adeficior/pack-resolver";
3
3
  import { type CommonFilter } from "../../common/filters.js";
4
4
  import type { NormalizedId, TagInput } from "../../common/id.js";
5
5
  import type TagsLoader from "../../loader/tags.js";
@@ -30,7 +30,7 @@ export default class TagEmitter implements TagRules, ClearableEmitter {
30
30
  readonly fluids: ScopedTagRules<"minecraft:fluid">;
31
31
  constructor(logger: Logger, registry: TagsLoader, options: TagEmitterOptions);
32
32
  clear(): void;
33
- readonly resolver: import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable>;
33
+ resolver(context: BaseContext): import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable, BaseContext>;
34
34
  add<T extends RegistryId>(registry: T, id: TagInput, value: TagEntry<InferIds<T>>): void;
35
35
  remove<T extends RegistryId>(registry: T, id: TagInput, test: CommonFilter<NormalizedId<InferIds<T>>>): void;
36
36
  scoped<T extends RegistryId>(registry: T, folder?: string): ScopedTagRules<T>;
@@ -1,4 +1,4 @@
1
- import { simpleResolver } from "@adeficior/pack-resolver";
1
+ import { simpleResolver, } from "@adeficior/pack-resolver";
2
2
  import { resolveIDTest } from "../../common/filters.js";
3
3
  import { createId, encodeId } from "../../common/id.js";
4
4
  import Registry from "../../common/registry.js";
@@ -85,17 +85,19 @@ export default class TagEmitter {
85
85
  clear() {
86
86
  this.emitters.forEach((it) => it.clear());
87
87
  }
88
- resolver = simpleResolver(async (acceptor) => {
89
- const emitters = Array.from(this.emitters.values());
90
- await Promise.all(emitters.flatMap((scoped) => scoped.getModified(async (id, definition) => {
91
- const path = `data/${id.namespace}/tags/${scoped.folder}/${id.path}.json`;
92
- await acceptor(path, toJson({
93
- ...definition,
94
- values: definition.values && orderTagEntries(definition.values),
95
- remove: definition.remove && orderTagEntries(definition.remove),
96
- }));
97
- })));
98
- });
88
+ resolver(context) {
89
+ return simpleResolver(async (acceptor) => {
90
+ const emitters = Array.from(this.emitters.values());
91
+ await Promise.all(emitters.flatMap((scoped) => scoped.getModified(async (id, definition) => {
92
+ const path = `data/${id.namespace}/tags/${scoped.folder}/${id.path}.json`;
93
+ await acceptor(path, toJson({
94
+ ...definition,
95
+ values: definition.values && orderTagEntries(definition.values),
96
+ remove: definition.remove && orderTagEntries(definition.remove),
97
+ }));
98
+ })));
99
+ }, context);
100
+ }
99
101
  add(registry, id, value) {
100
102
  this.scoped(registry).add(id, value);
101
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/emit/data/tags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/emit/data/tags.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Resolver } from "@adeficior/pack-resolver";
1
+ import type { Acceptable, BaseContext, Resolver } from "@adeficior/pack-resolver";
2
2
  import type { Id } from "../common/id.js";
3
3
  export interface RegistryProvider<T> {
4
4
  forEach(consumer: (recipe: T, id: Id) => void): void;
@@ -7,5 +7,5 @@ export interface RegistryProvider<T> {
7
7
  export type PathProvider = (id: Id) => string;
8
8
  export interface ClearableEmitter {
9
9
  clear(): void;
10
- resolver: Resolver;
10
+ resolver(context: BaseContext): Resolver<Acceptable, BaseContext>;
11
11
  }
@@ -1,4 +1,5 @@
1
1
  import type { CreativeModeTabId, ItemId } from "@adeficior/data-modifier/generated";
2
+ import { type BaseContext } from "@adeficior/pack-resolver";
2
3
  import type { IdInput, NormalizedId } from "../common/id.js";
3
4
  import type RegistryLookup from "../loader/registry/index.js";
4
5
  import type { ClearableEmitter } from "./index.js";
@@ -54,7 +55,7 @@ export default class PolytoneTabsEmitter implements PolytoneTabs, ClearableEmitt
54
55
  private readonly tabs;
55
56
  constructor(lookup: RegistryLookup);
56
57
  clear(): void;
57
- readonly resolver: import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable>;
58
+ resolver(context: BaseContext): import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable, BaseContext>;
58
59
  remove(tab: IdInput<CreativeModeTabId> | IdInput<CreativeModeTabId>[], items: IdInput<ItemId>[], options?: TabOptions): void;
59
60
  add(tab: IdInput<CreativeModeTabId> | IdInput<CreativeModeTabId>[], items: IdInput<ItemId>[], options?: AddOptions): void;
60
61
  create(id: IdInput, modifications?: TabModifications): string;
@@ -1,4 +1,4 @@
1
- import { arrayOrSelf, combineResolvers } from "@adeficior/pack-resolver";
1
+ import { arrayOrSelf, combineResolvers, } from "@adeficior/pack-resolver";
2
2
  import { difference, uniq } from "lodash-es";
3
3
  import { createId, encodeId } from "../common/id.js";
4
4
  import CustomEmitter from "./custom.js";
@@ -56,7 +56,11 @@ export default class PolytoneTabsEmitter {
56
56
  this.entries.clear();
57
57
  this.tabs.clear();
58
58
  }
59
- resolver = combineResolvers([this.entries.resolver, this.tabs.resolver], { async: true });
59
+ resolver(context) {
60
+ return combineResolvers([this.entries.resolver(context), this.tabs.resolver(context)], {
61
+ async: true,
62
+ });
63
+ }
60
64
  remove(tab, items, options = {}) {
61
65
  this.forEach(tab, {
62
66
  removals: [{ type: "items_match", items: items.map(encodeId) }],
@@ -1 +1 @@
1
- {"version":3,"file":"polytoneTabs.js","sourceRoot":"","sources":["../../src/emit/polytoneTabs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,aAAa,MAAM,aAAa,CAAC;AAmExC,SAAS,sBAAsB,CAAC,EAC9B,IAAI,EACJ,UAAU,EACV,WAAW,EACX,GAAG,aAAa,EACC;IACjB,OAAO;QACL,GAAG,aAAa;QAChB,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnD,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;QACjD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,CAAsB,EACtB,CAAsB;IAEtB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,MAAM;QACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,OAAO;QACL,GAAG,CAAC;QACJ,GAAG,CAAC;QACJ,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3C,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC3D,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAsB,EAAE;IAChD,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE;gBACT,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,EAAE,aAAa;aACpB;SACF,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/C,OAAO;YACL,MAAM,EAAE,KAAK;YACb,SAAS,EAAE;gBACT,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,EAAE,aAAa;aACpB;SACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAaT;IAVZ,OAAO,GAAG,IAAI,aAAa,CAC1C,CAAC,EAAE,EAAE,EAAE,CACL,UAAU,EAAE,CAAC,SAAS,oCAAoC,EAAE,CAAC,IAAI,OAAO,CAC3E,CAAC;IAEe,IAAI,GAAG,IAAI,aAAa,CACvC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,SAAS,6BAA6B,EAC3D,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CACrB,CAAC;IAEF,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAEQ,QAAQ,GAAG,gBAAgB,CAClC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3C,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CAAC;IAEF,MAAM,CACJ,GAA8D,EAC9D,KAAwB,EACxB,UAAsB,EAAE;QAExB,IAAI,CAAC,OAAO,CACV,GAAG,EACH;YACE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;SAChE,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,GAAG,CACD,GAA8D,EAC9D,KAAwB,EACxB,UAAsB,EAAE;QAExB,IAAI,CAAC,OAAO,CACV,GAAG,EACH;YACE,SAAS,EAAE;gBACT,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,EAAE;aAC7D;SACF,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,EAAW,EAAE,gBAAkC,EAAE;QACtD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC3D,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CACnB,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,EAAW,EAAE,aAA+B;QACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,EAAE,EACF;YACE,GAAG,sBAAsB,CAAC,aAAa,CAAC;YACxC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACxB,EACD,cAAc,CACf,CAAC;IACJ,CAAC;IAEO,OAAO,CACb,GAA8D,EAC9D,QAA8C,EAC9C,OAAmB;QAEnB,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,GAAwB;gBACjC,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC3B,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,GAAG,QAAQ;aACZ,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"polytoneTabs.js","sourceRoot":"","sources":["../../src/emit/polytoneTabs.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Logger } from "@adeficior/pack-resolver";
1
+ import type { ContextLike, Logger } from "@adeficior/pack-resolver";
2
2
  import type { Predicate } from "../../common/filters.js";
3
3
  import type { Id } from "../../common/id.js";
4
4
  import { type Ingredient } from "../../common/ingredient/index.js";
@@ -6,10 +6,10 @@ import type { LootTable } from "../../schema/data/loot.js";
6
6
  import type { Modifier } from "./index.js";
7
7
  import Rule from "./index.js";
8
8
  export default class LootTableRule extends Rule<LootTable> {
9
- private readonly shape;
9
+ private readonly context;
10
10
  private readonly idTests;
11
11
  private readonly outputTests;
12
- constructor(shape: unknown[], idTests: Predicate<Id>[], outputTests: Predicate<Ingredient>[], modifier: Modifier<LootTable>);
12
+ constructor(context: ContextLike, idTests: Predicate<Id>[], outputTests: Predicate<Ingredient>[], modifier: Modifier<LootTable>);
13
13
  matches(id: Id, table: LootTable, logger: Logger): boolean;
14
14
  printWarning(logger: Logger): void;
15
15
  }
@@ -1,4 +1,3 @@
1
- import { exists } from "@adeficior/pack-resolver";
2
1
  import { ItemIngredient, ItemTagIngredient, } from "../../common/ingredient/index.js";
3
2
  import { extendLootEntry } from "../../schema/data/loot.js";
4
3
  import Rule from "./index.js";
@@ -28,12 +27,12 @@ function hasOutput(logger, test, table) {
28
27
  }));
29
28
  }
30
29
  export default class LootTableRule extends Rule {
31
- shape;
30
+ context;
32
31
  idTests;
33
32
  outputTests;
34
- constructor(shape, idTests, outputTests, modifier) {
33
+ constructor(context, idTests, outputTests, modifier) {
35
34
  super(modifier);
36
- this.shape = shape;
35
+ this.context = context;
37
36
  this.idTests = idTests;
38
37
  this.outputTests = outputTests;
39
38
  }
@@ -43,7 +42,7 @@ export default class LootTableRule extends Rule {
43
42
  this.outputTests.every((test) => hasOutput(prefixed, test, table)));
44
43
  }
45
44
  printWarning(logger) {
46
- logger.error("Could not find any loot table matching", ...this.shape.filter(exists));
45
+ logger.trace("could not find any matching loot table", this.context);
47
46
  }
48
47
  }
49
48
  //# sourceMappingURL=lootTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lootTable.js","sourceRoot":"","sources":["../../../src/emit/rule/lootTable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EACL,cAAc,EACd,iBAAiB,GAElB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,kEAAkE;AAElE,SAAS,YAAY,CACnB,MAAc,EACd,IAA2B,EAC3B,IAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,wBAAwB;gBAC3B,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACrE,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACtD,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACzD;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,MAAc,EACd,IAA2B,EAC3B,KAAgB;IAEhB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,IAAe;IAErC;IACA;IACA;IAHnB,YACmB,KAAgB,EAChB,OAAwB,EACxB,WAAoC,EACrD,QAA6B;QAE7B,KAAK,CAAC,QAAQ,CAAC,CAAC;QALC,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAAiB;QACxB,gBAAW,GAAX,WAAW,CAAyB;IAIvD,CAAC;IAED,OAAO,CAAC,EAAM,EAAE,KAAgB,EAAE,MAAc;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CACnE,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,MAAM,CAAC,KAAK,CACV,wCAAwC,EACxC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAC7B,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"lootTable.js","sourceRoot":"","sources":["../../../src/emit/rule/lootTable.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,iBAAiB,GAElB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,kEAAkE;AAElE,SAAS,YAAY,CACnB,MAAc,EACd,IAA2B,EAC3B,IAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,wBAAwB;gBAC3B,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACrE,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACtD,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACzD;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,MAAc,EACd,IAA2B,EAC3B,KAAgB;IAEhB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,IAAe;IAErC;IACA;IACA;IAHnB,YACmB,OAAoB,EACpB,OAAwB,EACxB,WAAoC,EACrD,QAA6B;QAE7B,KAAK,CAAC,QAAQ,CAAC,CAAC;QALC,YAAO,GAAP,OAAO,CAAa;QACpB,YAAO,GAAP,OAAO,CAAiB;QACxB,gBAAW,GAAX,WAAW,CAAyB;IAIvD,CAAC;IAED,OAAO,CAAC,EAAM,EAAE,KAAgB,EAAE,MAAc;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CACnE,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { Logger } from "@adeficior/pack-resolver";
1
+ import type { ContextLike, Logger } from "@adeficior/pack-resolver";
2
2
  import type { Predicate } from "../../common/filters.js";
3
3
  import type { Id } from "../../common/id.js";
4
4
  import type { Ingredient } from "../../common/ingredient/index.js";
@@ -7,12 +7,12 @@ import type { RecipeHolder } from "../../parser/recipe/index.js";
7
7
  import type { Modifier } from "./index.js";
8
8
  import Rule from "./index.js";
9
9
  export default class RecipeRule extends Rule<RecipeHolder> {
10
- private readonly shape;
10
+ private readonly context;
11
11
  private readonly idsTests;
12
12
  private readonly typeTests;
13
13
  private readonly ingredientTests;
14
14
  private readonly resultTests;
15
- constructor(shape: unknown[], idsTests: Predicate<Id>[], typeTests: Predicate<Id>[], ingredientTests: Predicate<Ingredient>[], resultTests: Predicate<Result>[], modifier: Modifier<RecipeHolder>);
15
+ constructor(context: ContextLike, idsTests: Predicate<Id>[], typeTests: Predicate<Id>[], ingredientTests: Predicate<Ingredient>[], resultTests: Predicate<Result>[], modifier: Modifier<RecipeHolder>);
16
16
  matches(id: Id, recipe: RecipeHolder, logger: Logger): boolean;
17
17
  printWarning(logger: Logger): void;
18
18
  }
@@ -1,15 +1,14 @@
1
- import { exists } from "@adeficior/pack-resolver";
2
1
  import { createId } from "../../common/id.js";
3
2
  import Rule from "./index.js";
4
3
  export default class RecipeRule extends Rule {
5
- shape;
4
+ context;
6
5
  idsTests;
7
6
  typeTests;
8
7
  ingredientTests;
9
8
  resultTests;
10
- constructor(shape, idsTests, typeTests, ingredientTests, resultTests, modifier) {
9
+ constructor(context, idsTests, typeTests, ingredientTests, resultTests, modifier) {
11
10
  super(modifier);
12
- this.shape = shape;
11
+ this.context = context;
13
12
  this.idsTests = idsTests;
14
13
  this.typeTests = typeTests;
15
14
  this.ingredientTests = ingredientTests;
@@ -23,7 +22,7 @@ export default class RecipeRule extends Rule {
23
22
  this.resultTests.every((test) => recipe.getResults().some((it) => test(it, logger))));
24
23
  }
25
24
  printWarning(logger) {
26
- logger.error("Could not find any recipes matching", ...this.shape.filter(exists));
25
+ logger.trace("could not find any recipes matching", this.context);
27
26
  }
28
27
  }
29
28
  //# sourceMappingURL=recipe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../src/emit/rule/recipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,IAAkB;IAErC;IACA;IACA;IACA;IACA;IALnB,YACmB,KAAgB,EAChB,QAAyB,EACzB,SAA0B,EAC1B,eAAwC,EACxC,WAAgC,EACjD,QAAgC;QAEhC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAPC,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,cAAS,GAAT,SAAS,CAAiB;QAC1B,oBAAe,GAAf,eAAe,CAAyB;QACxC,gBAAW,GAAX,WAAW,CAAqB;IAInD,CAAC;IAED,OAAO,CAAC,EAAM,EAAE,MAAoB,EAAE,MAAc;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9C,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CACvD;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CACnD,CACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,MAAM,CAAC,KAAK,CACV,qCAAqC,EACrC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAC7B,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../src/emit/rule/recipe.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,IAAkB;IAErC;IACA;IACA;IACA;IACA;IALnB,YACmB,OAAoB,EACpB,QAAyB,EACzB,SAA0B,EAC1B,eAAwC,EACxC,WAAgC,EACjD,QAAgC;QAEhC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAPC,YAAO,GAAP,OAAO,CAAa;QACpB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,cAAS,GAAT,SAAS,CAAiB;QAC1B,oBAAe,GAAf,eAAe,CAAyB;QACxC,gBAAW,GAAX,WAAW,CAAqB;IAInD,CAAC;IAED,OAAO,CAAC,EAAM,EAAE,MAAoB,EAAE,MAAc;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9C,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CACvD;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CACnD,CACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -1,19 +1,18 @@
1
- import { type Logger } from "@adeficior/pack-resolver";
1
+ import { type BaseContext } from "@adeficior/pack-resolver";
2
2
  import type { Id } from "../common/id.js";
3
3
  import type { ClearableEmitter, PathProvider, RegistryProvider } from "./index.js";
4
4
  import type Rule from "./rule/index.js";
5
5
  export default class RuledEmitter<TEntry, TRule extends Rule<TEntry>> implements ClearableEmitter {
6
- private readonly logger;
7
6
  private readonly provider;
8
7
  private readonly pathProvider;
9
8
  private readonly emptyValue;
10
9
  private readonly serialize;
11
10
  private readonly shouldSkip;
12
- constructor(logger: Logger, provider: RegistryProvider<TEntry>, pathProvider: PathProvider, emptyValue: unknown, serialize: (entry: TEntry) => unknown, shouldSkip?: (id: Id) => boolean);
11
+ constructor(provider: RegistryProvider<TEntry>, pathProvider: PathProvider, emptyValue: unknown, serialize: (entry: TEntry) => unknown, shouldSkip?: (id: Id) => boolean);
13
12
  private rulesArray;
14
13
  private requiredRules;
15
14
  protected get rules(): ReadonlyArray<TRule>;
16
15
  clear(): void;
17
16
  addRule(rule: TRule, required?: boolean): void;
18
- readonly resolver: import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable>;
17
+ resolver(context: BaseContext): import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable, BaseContext>;
19
18
  }
@@ -1,14 +1,12 @@
1
- import { simpleResolver } from "@adeficior/pack-resolver";
1
+ import { extendLoggerContext, simpleResolver, } from "@adeficior/pack-resolver";
2
2
  import { toJson } from "../textHelper.js";
3
3
  export default class RuledEmitter {
4
- logger;
5
4
  provider;
6
5
  pathProvider;
7
6
  emptyValue;
8
7
  serialize;
9
8
  shouldSkip;
10
- constructor(logger, provider, pathProvider, emptyValue, serialize, shouldSkip = () => true) {
11
- this.logger = logger;
9
+ constructor(provider, pathProvider, emptyValue, serialize, shouldSkip = () => true) {
12
10
  this.provider = provider;
13
11
  this.pathProvider = pathProvider;
14
12
  this.emptyValue = emptyValue;
@@ -29,23 +27,27 @@ export default class RuledEmitter {
29
27
  if (required)
30
28
  this.requiredRules.add(rule);
31
29
  }
32
- resolver = simpleResolver(async (acceptor) => {
33
- const missingRules = new Set(this.requiredRules);
34
- await this.provider.forEachAsync(async (recipe, id) => {
35
- if (this.shouldSkip(id))
36
- return;
37
- const path = this.pathProvider(id);
38
- const rules = this.rules.filter((it) => it.matches(id, recipe, this.logger.group(path)));
39
- if (rules.length === 0)
40
- return;
41
- rules.forEach((it) => missingRules.delete(it));
42
- const modified = rules.reduce((previous, rule) => previous && rule.modify(previous), recipe);
43
- const serialized = modified ? this.serialize(modified) : this.emptyValue;
44
- await acceptor(path, toJson(serialized));
45
- });
46
- missingRules.forEach((rule) => {
47
- rule.printWarning(this.logger);
48
- });
49
- });
30
+ resolver(context) {
31
+ return simpleResolver(async (acceptor) => {
32
+ const missingRules = new Set(this.requiredRules);
33
+ await this.provider.forEachAsync(async (recipe, id) => {
34
+ if (this.shouldSkip(id))
35
+ return;
36
+ const path = this.pathProvider(id);
37
+ const rules = this.rules.filter((it) => it.matches(id, recipe, extendLoggerContext(context.logger, { path })));
38
+ if (rules.length === 0)
39
+ return;
40
+ rules.forEach((it) => missingRules.delete(it));
41
+ const modified = rules.reduce((previous, rule) => previous && rule.modify(previous), recipe);
42
+ const serialized = modified
43
+ ? this.serialize(modified)
44
+ : this.emptyValue;
45
+ await acceptor(path, toJson(serialized));
46
+ });
47
+ missingRules.forEach((rule) => {
48
+ rule.printWarning(context.logger);
49
+ });
50
+ }, context);
51
+ }
50
52
  }
51
53
  //# sourceMappingURL=ruled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ruled.js","sourceRoot":"","sources":["../../src/emit/ruled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ1C,MAAM,CAAC,OAAO,OAAO,YAAY;IAKZ;IACA;IACA;IACA;IACA;IACA;IANnB,YACmB,MAAc,EACd,QAAkC,EAClC,YAA0B,EAC1B,UAAmB,EACnB,SAAqC,EACrC,aAAkC,GAAG,EAAE,CAAC,IAAI;QAL5C,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAA0B;QAClC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,eAAU,GAAV,UAAU,CAAS;QACnB,cAAS,GAAT,SAAS,CAA4B;QACrC,eAAU,GAAV,UAAU,CAAkC;IAC5D,CAAC;IAEI,UAAU,GAAY,EAAE,CAAC;IACzB,aAAa,GAAG,IAAI,GAAG,EAAS,CAAC;IAEzC,IAAc,KAAK;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,IAAW,EAAE,WAAoB,IAAI;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,QAAQ;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEQ,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACpD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAQ,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;YACpD,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAAE,OAAO;YAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CACrC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAE/B,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAE/C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EACrD,MAAM,CACP,CAAC;YAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;YAEzE,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"ruled.js","sourceRoot":"","sources":["../../src/emit/ruled.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,cAAc,GAEf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ1C,MAAM,CAAC,OAAO,OAAO,YAAY;IAKZ;IACA;IACA;IACA;IACA;IALnB,YACmB,QAAkC,EAClC,YAA0B,EAC1B,UAAmB,EACnB,SAAqC,EACrC,aAAkC,GAAG,EAAE,CAAC,IAAI;QAJ5C,aAAQ,GAAR,QAAQ,CAA0B;QAClC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,eAAU,GAAV,UAAU,CAAS;QACnB,cAAS,GAAT,SAAS,CAA4B;QACrC,eAAU,GAAV,UAAU,CAAkC;IAC5D,CAAC;IAEI,UAAU,GAAY,EAAE,CAAC;IACzB,aAAa,GAAG,IAAI,GAAG,EAAS,CAAC;IAEzC,IAAc,KAAK;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,IAAW,EAAE,WAAoB,IAAI;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,QAAQ;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,OAAoB;QAC3B,OAAO,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACvC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAQ,IAAI,CAAC,aAAa,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;gBACpD,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBAAE,OAAO;gBAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CACrC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CACtE,CAAC;gBACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAE/B,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE/C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EACrD,MAAM,CACP,CAAC;gBAEF,MAAM,UAAU,GAAG,QAAQ;oBACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;oBAC1B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;gBAEpB,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;CACF"}
package/dist/error.js CHANGED
@@ -40,16 +40,18 @@ export function transformErrors(run) {
40
40
  }
41
41
  }
42
42
  // TODO promise?
43
+ // TODO require logger?
43
44
  export function tryCatching(logger, run) {
44
45
  try {
45
46
  return run();
46
47
  }
47
48
  catch (error) {
48
49
  if (error instanceof IllegalShapeError) {
50
+ // TODO trace?
49
51
  if (error.input)
50
- logger?.warn(error.message, error.input);
52
+ logger?.trace(error.message, { input: error.input });
51
53
  else
52
- logger?.warn(error.message);
54
+ logger?.trace(error.message);
53
55
  return null;
54
56
  }
55
57
  if (error instanceof ZodError) {
package/dist/error.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE/B,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAG/B;IAFX,YACE,OAAe,EACN,KAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,UAAK,GAAL,KAAK,CAAU;IAG1B,CAAC;CACF;AAED,MAAM,OAAO,oBAA2C,SAAQ,KAAK;IAGxD;IACA;IAHX,YACE,OAAe,EACN,QAAW,EACX,EAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,aAAQ,GAAR,QAAQ,CAAG;QACX,OAAE,GAAF,EAAE,CAAa;IAG1B,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;aACzB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACV,IAAI,EAAE,CAAC,IAAI;gBAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;;gBACrD,OAAO,EAAE,CAAC,OAAO,CAAC;QACzB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,GAAY;IAC7C,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,WAAW,CACzB,MAA0B,EAC1B,GAAY;IAEZ,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,KAAK;gBAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;;gBACrD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;iBACzB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACV,IAAI,EAAE,CAAC,IAAI;oBAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;;oBACrD,OAAO,EAAE,CAAC,OAAO,CAAC;YACzB,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,EAAE,IAAI,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE/B,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAG/B;IAFX,YACE,OAAe,EACN,KAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,UAAK,GAAL,KAAK,CAAU;IAG1B,CAAC;CACF;AAED,MAAM,OAAO,oBAA2C,SAAQ,KAAK;IAGxD;IACA;IAHX,YACE,OAAe,EACN,QAAW,EACX,EAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,aAAQ,GAAR,QAAQ,CAAG;QACX,OAAE,GAAF,EAAE,CAAa;IAG1B,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;aACzB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACV,IAAI,EAAE,CAAC,IAAI;gBAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;;gBACrD,OAAO,EAAE,CAAC,OAAO,CAAC;QACzB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,GAAY;IAC7C,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,uBAAuB;AACvB,MAAM,UAAU,WAAW,CACzB,MAA0B,EAC1B,GAAY;IAEZ,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,cAAc;YACd,IAAI,KAAK,CAAC,KAAK;gBAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;;gBACjE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;iBACzB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACV,IAAI,EAAE,CAAC,IAAI;oBAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;;oBACrD,OAAO,EAAE,CAAC,OAAO,CAAC;YACzB,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,EAAE,IAAI,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Acceptable, Acceptor, Logger, Resolver } from "@adeficior/pack-resolver";
1
+ import type { Acceptable, Acceptor, BaseContext, Logger, Resolver } from "@adeficior/pack-resolver";
2
2
  import type { Id } from "../common/id.js";
3
3
  import Registry from "../common/registry.js";
4
4
  import type { RegistryProvider } from "../emit/index.js";
@@ -13,5 +13,5 @@ export declare abstract class JsonLoader<T> implements RegistryProvider<T>, Acce
13
13
  protected abstract parse(json: unknown, id: Id): T | null;
14
14
  forEach(consumer: (recipe: T, id: Id) => void): void;
15
15
  forEachAsync(consumer: (recipe: T, id: Id) => Promise<void>): Promise<void>;
16
- accept(path: string, content: PromiseLike<Acceptable>): Promise<false | undefined>;
16
+ accept(path: string, content: PromiseLike<Acceptable>, context: BaseContext): Promise<false | undefined>;
17
17
  }
@@ -25,17 +25,16 @@ export class JsonLoader {
25
25
  async forEachAsync(consumer) {
26
26
  await this.registry.forEachAsync(consumer);
27
27
  }
28
- async accept(path, content) {
28
+ async accept(path, content, context) {
29
29
  const match = /(data|assets)\/(?<namespace>[\w-]+)\/\w+\/(?<rest>[\w-/]+).json/.exec(path);
30
30
  if (!match?.groups)
31
31
  return false;
32
32
  const { namespace, rest } = match.groups;
33
33
  const id = { namespace: namespace, path: rest };
34
- const grouped = this.logger.group(path);
35
- const json = tryParseJson(grouped, await content);
34
+ const json = tryParseJson(context.logger, await content);
36
35
  if (!json)
37
36
  return false;
38
- const parsed = tryCatching(grouped, () => this.parse(json, id));
37
+ const parsed = tryCatching(context.logger, () => this.parse(json, id));
39
38
  if (!parsed)
40
39
  return false;
41
40
  this.registry.set(id, parsed);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":"AAOA,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,OAAmB;IAC9D,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAgB,UAAU;IAGC;IAFZ,QAAQ,GAAG,IAAI,QAAQ,EAAK,CAAC;IAEhD,YAA+B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAIjD,OAAO,CAAC,QAAqC;QAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAA8C;QAE9C,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAgC;QACzD,MAAM,KAAK,GACT,iEAAiE,CAAC,IAAI,CACpE,IAAI,CACL,CAAC;QACJ,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO,KAAK,CAAC;QAEjC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACzC,MAAM,EAAE,GAAO,EAAE,SAAS,EAAE,SAAU,EAAE,IAAI,EAAE,IAAK,EAAE,CAAC;QAEtD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":"AAQA,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,OAAmB;IAC9D,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAgB,UAAU;IAGC;IAFZ,QAAQ,GAAG,IAAI,QAAQ,EAAK,CAAC;IAEhD,YAA+B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAIjD,OAAO,CAAC,QAAqC;QAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAA8C;QAE9C,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,OAAgC,EAChC,OAAoB;QAEpB,MAAM,KAAK,GACT,iEAAiE,CAAC,IAAI,CACpE,IAAI,CACL,CAAC;QACJ,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO,KAAK,CAAC;QAEjC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACzC,MAAM,EAAE,GAAO,EAAE,SAAS,EAAE,SAAU,EAAE,IAAI,EAAE,IAAK,EAAE,CAAC;QAEtD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF"}
@@ -1,10 +1,10 @@
1
- import { encodeId } from "../common/id.js";
1
+ import { extendLoggerContext } from "@adeficior/pack-resolver";
2
2
  import { tryCatching } from "../error.js";
3
3
  import { LootTableSchema } from "../schema/data/loot.js";
4
4
  import { JsonLoader } from "./index.js";
5
5
  export default class LootTableLoader extends JsonLoader {
6
6
  parse(json, id) {
7
- return tryCatching(this.logger.group(`error parsing loot table ${encodeId(id)}`), () => {
7
+ return tryCatching(extendLoggerContext(this.logger, { id }), () => {
8
8
  return LootTableSchema.parse(json);
9
9
  });
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loot.js","sourceRoot":"","sources":["../../src/loader/loot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAqB;IACtD,KAAK,CAAC,IAAa,EAAE,EAAM;QACnC,OAAO,WAAW,CAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7D,GAAG,EAAE;YACH,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"loot.js","sourceRoot":"","sources":["../../src/loader/loot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAqB;IACtD,KAAK,CAAC,IAAa,EAAE,EAAM;QACnC,OAAO,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;YAChE,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import type { RegistryId } from "@adeficior/data-modifier/generated";
2
- import { type Acceptor, type Logger, type Resolver, type ResolverInfo } from "@adeficior/pack-resolver";
2
+ import { type Acceptor, type Logger, type Resolver } from "@adeficior/pack-resolver";
3
3
  import { type IngredientFilter } from "../common/ingredient/filter.js";
4
4
  import type { Ingredient } from "../common/ingredient/index.js";
5
5
  import type { IngredientInput } from "../common/ingredient/input.js";
@@ -23,7 +23,7 @@ import type RegistryLookup from "./registry/index.js";
23
23
  export interface PackLoaderOptions extends TagEmitterOptions, BlacklistOptions {
24
24
  packFormat: SemVerInput;
25
25
  }
26
- export default class PackLoader implements Loader, ClearableEmitter {
26
+ export default class PackLoader implements Loader {
27
27
  readonly logger: Logger;
28
28
  private readonly lookup;
29
29
  private readonly emitters;
@@ -58,10 +58,11 @@ export default class PackLoader implements Loader, ClearableEmitter {
58
58
  createResult(input: ResultInput): Result;
59
59
  createIngredient(input: IngredientInput): Ingredient;
60
60
  resolveIngredientTest(test: IngredientFilter): import("../common/filters.js").Predicate<Ingredient>;
61
- loadFromMultiple(resolvers: ResolverInfo[]): Promise<void>;
61
+ loadFromMultiple(resolvers: Resolver[]): Promise<void>;
62
62
  loadFrom(resolver: Resolver): Promise<void>;
63
63
  loadRegistryDump(resolver: Resolver): Promise<void>;
64
64
  clear(): void;
65
- get resolver(): Resolver;
65
+ private resolver;
66
+ emit(to: Acceptor): Promise<void>;
66
67
  run(from: Resolver, to: Acceptor): Promise<void>;
67
68
  }