@adeficior/data-modifier 1.0.0-rc.44 → 1.0.0-rc.46

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.
@@ -36,6 +36,6 @@ function createUnvalidatedFilter(test, context) {
36
36
  throw new IllegalShapeError("cannot filter by unknown ingredient type", test);
37
37
  }
38
38
  function filterByRegistry(test, context, registry) {
39
- return createIdPredicate(test, (it) => it.idsFor(registry), context.tags.registry(registry));
39
+ return createIdPredicate(test, (it) => it.ids()[registry] ?? [], context.tags.registry(registry));
40
40
  }
41
41
  //# sourceMappingURL=filter.js.map
@@ -1 +1 @@
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
+ {"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,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAChC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAChC,CAAC;AACJ,CAAC"}
@@ -1,18 +1,18 @@
1
1
  import type { BlockId, FluidId, ItemId, RegistryId } from "@adeficior/data-modifier/generated";
2
2
  import type RegistryLookup from "../../loader/registry";
3
3
  import { type IdInput, type NormalizedId, type TagId } from "../id";
4
- import type { InputOutput } from "../inputOutput";
4
+ import type { InputOutput, RegistryIds } from "../inputOutput";
5
5
  import { BlockResult, FluidResult, ItemResult, type Result } from "../result";
6
6
  export declare abstract class Ingredient implements InputOutput {
7
7
  validate(_: RegistryLookup): void;
8
- abstract idsFor(registry: NormalizedId<RegistryId>): NormalizedId<RegistryId>[];
8
+ abstract ids(): RegistryIds;
9
9
  abstract asResult(): Result;
10
10
  }
11
11
  export declare abstract class TagIngredient extends Ingredient {
12
12
  readonly registry: NormalizedId<RegistryId>;
13
13
  readonly tag: TagId;
14
14
  constructor(input: IdInput, registry: NormalizedId<RegistryId>);
15
- idsFor(registry: NormalizedId<RegistryId>): `#${string}:${string}`[];
15
+ ids(): RegistryIds;
16
16
  asResult(): Result;
17
17
  }
18
18
  export declare class ItemTagIngredient extends TagIngredient {
@@ -30,7 +30,7 @@ export declare abstract class RegistryEntryIngredient<T extends string> extends
30
30
  readonly registry: NormalizedId<RegistryId>;
31
31
  readonly id: NormalizedId<T>;
32
32
  constructor(input: IdInput<T>, registry: NormalizedId<RegistryId>);
33
- idsFor(registry: NormalizedId<RegistryId>): NormalizedId<T>[];
33
+ ids(): RegistryIds;
34
34
  }
35
35
  export declare class ItemIngredient extends RegistryEntryIngredient<ItemId> {
36
36
  readonly count: number;
@@ -55,7 +55,7 @@ export declare class ListIngredient extends Ingredient {
55
55
  readonly entries: Ingredient[];
56
56
  constructor(entries: Ingredient[]);
57
57
  validate(lookup: RegistryLookup): void;
58
- idsFor(registry: NormalizedId<RegistryId>): `${string}:${string}`[];
58
+ ids(): RegistryIds;
59
59
  asResult(): Result;
60
60
  }
61
61
  export type ItemLikeIngredient = ItemTagIngredient | ItemIngredient;
@@ -65,11 +65,11 @@ export declare class ToolActionIngredient extends Ingredient {
65
65
  readonly action: string;
66
66
  constructor(action: string);
67
67
  asResult(): Result;
68
- idsFor(): never[];
68
+ ids(): RegistryIds;
69
69
  }
70
70
  export declare class IgnoredIngredient extends Ingredient {
71
71
  readonly raw: unknown;
72
72
  constructor(raw: unknown);
73
73
  asResult(): Result;
74
- idsFor(): never[];
74
+ ids(): RegistryIds;
75
75
  }
@@ -1,3 +1,4 @@
1
+ import { uniq } from "lodash-es";
1
2
  import { encodeId, toTag, } from "../id";
2
3
  import { BlockResult, FluidResult, ItemResult } from "../result";
3
4
  import { BUCKET } from "../units";
@@ -13,10 +14,8 @@ export class TagIngredient extends Ingredient {
13
14
  // TODO complain if input is already a tag?
14
15
  this.tag = toTag(input);
15
16
  }
16
- idsFor(registry) {
17
- if (this.registry === registry)
18
- return [this.tag];
19
- return [];
17
+ ids() {
18
+ return { [this.registry]: [this.tag] };
20
19
  }
21
20
  asResult() {
22
21
  throw new Error("tag ingredients cannot be transformed into a result");
@@ -49,10 +48,8 @@ export class RegistryEntryIngredient extends Ingredient {
49
48
  this.registry = registry;
50
49
  this.id = encodeId(input);
51
50
  }
52
- idsFor(registry) {
53
- if (this.registry === registry)
54
- return [this.id];
55
- return [];
51
+ ids() {
52
+ return { [this.registry]: [this.id] };
56
53
  }
57
54
  }
58
55
  export class ItemIngredient extends RegistryEntryIngredient {
@@ -105,8 +102,20 @@ export class ListIngredient extends Ingredient {
105
102
  validate(lookup) {
106
103
  this.entries.forEach((it) => it.validate(lookup));
107
104
  }
108
- idsFor(registry) {
109
- return this.entries.flatMap((it) => it.idsFor(registry));
105
+ ids() {
106
+ return this.entries
107
+ .map((it) => it.ids())
108
+ .reduce((a, b) => {
109
+ const keys = uniq([
110
+ ...Object.keys(a),
111
+ ...Object.keys(b),
112
+ ]);
113
+ const out = {};
114
+ keys.forEach((key) => {
115
+ out[key] = uniq([...(a[key] ?? []), ...(b[key] ?? [])]);
116
+ });
117
+ return out;
118
+ }, {});
110
119
  }
111
120
  asResult() {
112
121
  throw new Error("union ingredients cannot be transformed into a result");
@@ -121,8 +130,8 @@ export class ToolActionIngredient extends Ingredient {
121
130
  asResult() {
122
131
  throw new Error("tool action ingredient cannot be transformed into a result");
123
132
  }
124
- idsFor() {
125
- return [];
133
+ ids() {
134
+ return {};
126
135
  }
127
136
  }
128
137
  export class IgnoredIngredient extends Ingredient {
@@ -134,8 +143,8 @@ export class IgnoredIngredient extends Ingredient {
134
143
  asResult() {
135
144
  throw new Error("ignored ingredient cannot be transformed into a result");
136
145
  }
137
- idsFor() {
138
- return [];
146
+ ids() {
147
+ return {};
139
148
  }
140
149
  }
141
150
  //# sourceMappingURL=index.js.map
@@ -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":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { RegistryId } from "@adeficior/data-modifier/generated";
2
2
  import type RegistryLookup from "../loader/registry";
3
3
  import type { NormalizedId } from "./id";
4
+ export type RegistryIds = Record<NormalizedId<RegistryId>, NormalizedId[]>;
4
5
  export interface InputOutput {
5
6
  validate(lookup: RegistryLookup): void;
6
- idsFor(registry: NormalizedId<RegistryId>): NormalizedId<RegistryId>[];
7
+ ids(): RegistryIds;
7
8
  }
@@ -6,7 +6,10 @@ export default class Registry<TEntry, TId extends string = string> {
6
6
  getOrPut(key: IdInput<TId>, defaultValue: () => TEntry): TEntry;
7
7
  forEach(consumer: (value: TEntry, key: Id) => void): void;
8
8
  forEachAsync(consumer: (value: TEntry, key: Id) => Promise<void>): Promise<void>;
9
+ filter(predicate: (value: TEntry, key: Id) => boolean): [NormalizedId<TId>, TEntry][];
10
+ delete(id: IdInput<TId>): void;
9
11
  clear(): void;
10
12
  keys(): NormalizedId<TId>[];
13
+ values(): TEntry[];
11
14
  has(key: IdInput<TId>): boolean;
12
15
  }
@@ -23,12 +23,21 @@ export default class Registry {
23
23
  this.forEach((...args) => promises.push(consumer(...args)));
24
24
  await Promise.all(promises);
25
25
  }
26
+ filter(predicate) {
27
+ return [...this.entries.entries()].filter(([id, v]) => predicate(v, createId(id)));
28
+ }
29
+ delete(id) {
30
+ this.entries.delete(encodeId(id));
31
+ }
26
32
  clear() {
27
33
  this.entries.clear();
28
34
  }
29
35
  keys() {
30
36
  return [...this.entries.keys()];
31
37
  }
38
+ values() {
39
+ return [...this.entries.values()];
40
+ }
32
41
  has(key) {
33
42
  return this.entries.has(encodeId(key));
34
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/common/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,QAAQ;IACV,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEhE,GAAG,CAAC,GAAiB,EAAE,KAAa;QAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,GAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,GAAiB,EAAE,YAA0B;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,QAA0C;QAChD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAmD;QAEnD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,GAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/common/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,QAAQ;IACV,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEhE,GAAG,CAAC,GAAiB,EAAE,KAAa;QAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,GAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,GAAiB,EAAE,YAA0B;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,QAA0C;QAChD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAmD;QAEnD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CACJ,SAA8C;QAE9C,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CACpD,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,EAAgB;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,GAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -2,17 +2,17 @@ import type { BlockId, FluidId, ItemId, RegistryId } from "@adeficior/data-modif
2
2
  import type RegistryLookup from "../../loader/registry";
3
3
  import { type IdInput, type NormalizedId } from "../id";
4
4
  import { BlockIngredient, FluidIngredient, ItemIngredient, type Ingredient } from "../ingredient";
5
- import type { InputOutput } from "../inputOutput";
5
+ import type { InputOutput, RegistryIds } from "../inputOutput";
6
6
  export declare abstract class Result implements InputOutput {
7
7
  validate(_: RegistryLookup): void;
8
- abstract idsFor(registry: NormalizedId<RegistryId>): NormalizedId<RegistryId>[];
8
+ abstract ids(): RegistryIds;
9
9
  abstract asIngredient(): Ingredient;
10
10
  }
11
11
  export declare abstract class RegistryEntryResult<T extends string> extends Result {
12
12
  private readonly registry;
13
13
  readonly id: NormalizedId<T>;
14
14
  constructor(input: IdInput<T>, registry: NormalizedId<RegistryId>);
15
- idsFor(registry: NormalizedId<RegistryId>): NormalizedId<T>[];
15
+ ids(): RegistryIds;
16
16
  }
17
17
  export declare class ItemResult extends RegistryEntryResult<ItemId> {
18
18
  readonly count: number;
@@ -37,5 +37,5 @@ export declare class IgnoredResult extends Result {
37
37
  readonly raw: unknown;
38
38
  constructor(raw: unknown);
39
39
  asIngredient(): Ingredient;
40
- idsFor(): never[];
40
+ ids(): RegistryIds;
41
41
  }
@@ -12,10 +12,8 @@ export class RegistryEntryResult extends Result {
12
12
  this.registry = registry;
13
13
  this.id = encodeId(input);
14
14
  }
15
- idsFor(registry) {
16
- if (this.registry === registry)
17
- return [this.id];
18
- return [];
15
+ ids() {
16
+ return { [this.registry]: [this.id] };
19
17
  }
20
18
  }
21
19
  export class ItemResult extends RegistryEntryResult {
@@ -68,8 +66,8 @@ export class IgnoredResult extends Result {
68
66
  asIngredient() {
69
67
  throw new Error("ignored result cannot be transformed into a ingredient");
70
68
  }
71
- idsFor() {
72
- return [];
69
+ ids() {
70
+ return {};
73
71
  }
74
72
  }
75
73
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/result/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAmC,MAAM,OAAO,CAAC;AAClE,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,GAEf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAgB,MAAM;IAC1B,QAAQ,CAAC,CAAiB,IAAS,CAAC;CAKrC;AAED,MAAM,OAAgB,mBAAsC,SAAQ,MAAM;IAKrD;IAJH,EAAE,CAAkB;IAEpC,YACE,KAAiB,EACA,QAAkC;QAEnD,KAAK,EAAE,CAAC;QAFS,aAAQ,GAAR,QAAQ,CAA0B;QAGnD,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEQ,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,UAAW,SAAQ,mBAA2B;IAGvC;IACA;IAHlB,YACE,EAAmB,EACH,QAAQ,CAAC,EACT,MAAe;QAE/B,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAHZ,UAAK,GAAL,KAAK,CAAI;QACT,WAAM,GAAN,MAAM,CAAS;IAGjC,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAEQ,YAAY;QACnB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,mBAA4B;IAGzC;IACA;IAHlB,YACE,EAAoB,EACJ,SAAiB,MAAM,EACvB,MAAe;QAE/B,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAHb,WAAM,GAAN,MAAM,CAAiB;QACvB,WAAM,GAAN,MAAM,CAAS;IAGjC,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAEQ,YAAY;QACnB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,mBAA4B;IAC3D,YAAY,EAAoB;QAC9B,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC/B,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAEQ,YAAY;QACnB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,MAAM;IACX;IAA5B,YAA4B,GAAY;QACtC,KAAK,EAAE,CAAC;QADkB,QAAG,GAAH,GAAG,CAAS;IAExC,CAAC;IAEQ,YAAY;QACnB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAEQ,MAAM;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/result/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAmC,MAAM,OAAO,CAAC;AAClE,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,GAEf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAgB,MAAM;IAC1B,QAAQ,CAAC,CAAiB,IAAS,CAAC;CAGrC;AAED,MAAM,OAAgB,mBAAsC,SAAQ,MAAM;IAKrD;IAJH,EAAE,CAAkB;IAEpC,YACE,KAAiB,EACA,QAAkC;QAEnD,KAAK,EAAE,CAAC;QAFS,aAAQ,GAAR,QAAQ,CAA0B;QAGnD,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEQ,GAAG;QACV,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,mBAA2B;IAGvC;IACA;IAHlB,YACE,EAAmB,EACH,QAAQ,CAAC,EACT,MAAe;QAE/B,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAHZ,UAAK,GAAL,KAAK,CAAI;QACT,WAAM,GAAN,MAAM,CAAS;IAGjC,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAEQ,YAAY;QACnB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,mBAA4B;IAGzC;IACA;IAHlB,YACE,EAAoB,EACJ,SAAiB,MAAM,EACvB,MAAe;QAE/B,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAHb,WAAM,GAAN,MAAM,CAAiB;QACvB,WAAM,GAAN,MAAM,CAAS;IAGjC,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAEQ,YAAY;QACnB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,mBAA4B;IAC3D,YAAY,EAAoB;QAC9B,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC/B,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAEQ,YAAY;QACnB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,MAAM;IACX;IAA5B,YAA4B,GAAY;QACtC,KAAK,EAAE,CAAC;QADkB,QAAG,GAAH,GAAG,CAAS;IAExC,CAAC;IAEQ,YAAY;QACnB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAEQ,GAAG;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -44,12 +44,7 @@ export default class BlacklistEmitter {
44
44
  return this.filterItemIds(input);
45
45
  }
46
46
  const ingredient = this.context.ingredients.deserialize(input);
47
- const registries = [
48
- "minecraft:item",
49
- "minecraft:fluid",
50
- "minecraft:block",
51
- ];
52
- return registries.flatMap((registry) => ingredient.idsFor(registry));
47
+ return Object.values(ingredient.ids()).flat();
53
48
  }
54
49
  resolver(context) {
55
50
  return simpleResolver(async (acceptor) => {
@@ -1 +1 @@
1
- {"version":3,"file":"blacklist.js","sourceRoot":"","sources":["../../src/emit/blacklist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blacklist.js","sourceRoot":"","sources":["../../src/emit/blacklist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { type BaseContext } from "@adeficior/pack-resolver";
2
+ import type { ClearableEmitter } from ".";
3
+ import { type CommonFilter } from "../common/filters";
4
+ import { type IdInput, type NormalizedId } from "../common/id";
5
+ import type { JsonLoader } from "../loader";
6
+ import { type TagRegistryHolder } from "../loader/tags";
7
+ import type { RecipeHolder } from "../parser";
8
+ import type { ItemId, RecipeSerializerId } from "../stubTypes";
9
+ export interface RecipeGraphOptions {
10
+ keepTags?: boolean;
11
+ }
12
+ export interface RecipeGraphAccessor {
13
+ represent(type: CommonFilter<NormalizedId<RecipeSerializerId>>, icon: IdInput<ItemId>, label?: string): void;
14
+ show(id: IdInput): void;
15
+ }
16
+ export declare class RecipeGraphEmitter implements ClearableEmitter, RecipeGraphAccessor {
17
+ private readonly recipes;
18
+ private readonly tags;
19
+ private readonly options;
20
+ private readonly shown;
21
+ private representations;
22
+ constructor(recipes: JsonLoader<RecipeHolder>, tags: TagRegistryHolder, options?: RecipeGraphOptions);
23
+ represent(type: CommonFilter<NormalizedId<RecipeSerializerId>>, icon: IdInput<ItemId>, label?: string): void;
24
+ show(id: IdInput): void;
25
+ clear(): void;
26
+ resolver(context: BaseContext): import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable, BaseContext>;
27
+ }
@@ -0,0 +1,175 @@
1
+ import { simpleResolver } from "@adeficior/pack-resolver";
2
+ import { resolveIDTest, } from "../common/filters";
3
+ import { createId, encodeId, prefix, } from "../common/id";
4
+ import Registry from "../common/registry";
5
+ import {} from "../loader/tags";
6
+ import { toJson } from "../textHelper";
7
+ export class RecipeGraphEmitter {
8
+ recipes;
9
+ tags;
10
+ options;
11
+ shown = new Registry();
12
+ representations = [];
13
+ constructor(recipes, tags, options = {}) {
14
+ this.recipes = recipes;
15
+ this.tags = tags;
16
+ this.options = options;
17
+ this.represent(/minecraft:crafting_.+/, "minecraft:crafting_bench");
18
+ this.represent(/.+:crafting_special_.+/, "minecraft:crafting_bench");
19
+ this.represent("minecraft:smelting", "minecraft:furnace");
20
+ this.represent("minecraft:smoking", "minecraft:smoker");
21
+ this.represent("minecraft:blasting", "minecraft:blast_furnace");
22
+ this.represent("minecraft:campfire_cooking", "minecraft:campfire");
23
+ this.represent("minecraft:stonecutting", "minecraft:stonecutter");
24
+ this.represent(/minecraft:smithing.+/, "minecraft:smithing_table");
25
+ this.represent("create:crushing", "create:crushing_wheel");
26
+ this.represent("create:milling", "create:crushing_wheel");
27
+ this.represent("create:mixing", "create:mechanical_mixer");
28
+ this.represent("create:splashing", "create:encased_fan");
29
+ this.represent("create:compacting", "create:mechanical_press");
30
+ this.represent("create:pressing", "create:mechanical_press");
31
+ this.represent("create:cutting", "create:mechanical_saw");
32
+ this.represent("create:deploying", "create:deployer");
33
+ this.represent("create:emptying", "create:spout");
34
+ this.represent("create:filling", "create:spout");
35
+ this.represent("create:haunting", "create:encased_fan");
36
+ this.represent("create:mechanical_crafting", "create:mechanical_crafter");
37
+ this.represent("create:sandpaper_polishing", "create:sand_paper");
38
+ this.represent("farmersdelight:cooking", "farmersdelight:cooking_pot");
39
+ this.represent("farmersdelight:cutting", "farmersdelight:cutting_board");
40
+ this.represent("clayworks:baking", "clayworks:kiln");
41
+ this.represent("sliceanddice:cutting", "sliceanddice:slicer");
42
+ }
43
+ represent(type, icon, label) {
44
+ this.representations.push({
45
+ test: resolveIDTest(type),
46
+ icon: encodeId(icon),
47
+ label,
48
+ });
49
+ }
50
+ show(id) {
51
+ const recipe = this.recipes.get(id);
52
+ if (!recipe)
53
+ throw new Error(`cannot generate graph for unknown recipe '${id}'`);
54
+ this.shown.set(id, recipe);
55
+ }
56
+ clear() {
57
+ this.shown.clear();
58
+ this.representations = [];
59
+ }
60
+ resolver(context) {
61
+ return simpleResolver(async (acceptor) => {
62
+ const builder = new GraphBuilder(this.tags, this.representations, this.options);
63
+ const { edges, nodes } = builder.build(this.shown);
64
+ if (edges.length === 0)
65
+ return;
66
+ await Promise.all([
67
+ acceptor("graph/nodes.json", toJson(nodes)),
68
+ acceptor("graph/edges.json", toJson(edges)),
69
+ ]);
70
+ }, context);
71
+ }
72
+ }
73
+ class GraphBuilder {
74
+ tags;
75
+ representations;
76
+ options;
77
+ nodes = new Registry();
78
+ edges = new Registry();
79
+ constructor(tags, representations, options) {
80
+ this.tags = tags;
81
+ this.representations = representations;
82
+ this.options = options;
83
+ }
84
+ addIONode(recipeId, from, input) {
85
+ const entry = Object.entries(from.ids()).find((it) => it[1].length > 0);
86
+ if (!entry)
87
+ return;
88
+ const registry = entry[0];
89
+ const id = entry[1][0];
90
+ const { namespace, path } = createId(id);
91
+ this.nodes.set(id, {
92
+ shape: "image",
93
+ registry,
94
+ image: `https://icons.macarena.ceo/icons/${namespace}/${path}.png`,
95
+ });
96
+ this.addIOEdge(recipeId, id, input);
97
+ }
98
+ addEdge(edge) {
99
+ this.edges.set(Bun.randomUUIDv7().replaceAll("-", ""), edge);
100
+ }
101
+ addIOEdge(recipeId, id, input, label) {
102
+ const common = { label, arrows: "to" };
103
+ if (input) {
104
+ this.addEdge({ ...common, from: id, to: recipeId });
105
+ }
106
+ else {
107
+ this.addEdge({ ...common, from: recipeId, to: id });
108
+ }
109
+ }
110
+ addRecipeNode(id, recipe) {
111
+ const representation = this.representations.find((it) => it.test(recipe.serializerType));
112
+ const common = {
113
+ id,
114
+ registry: "minecraft:recipe_serializer",
115
+ };
116
+ if (representation) {
117
+ this.nodes.set(id, {
118
+ ...common,
119
+ shape: "image",
120
+ image: representation.icon,
121
+ label: representation.label,
122
+ });
123
+ }
124
+ else {
125
+ this.nodes.set(id, {
126
+ ...common,
127
+ label: id,
128
+ });
129
+ }
130
+ }
131
+ addRecipe(id, recipe) {
132
+ const recipeNodeId = prefix(id, "recipe/");
133
+ this.addRecipeNode(recipeNodeId, recipe);
134
+ recipe
135
+ .getIngredients()
136
+ .forEach((it) => this.addIONode(recipeNodeId, it, true));
137
+ recipe
138
+ .getResults()
139
+ .forEach((it) => this.addIONode(recipeNodeId, it, false));
140
+ }
141
+ sanitize() {
142
+ if (!this.options.keepTags) {
143
+ this.nodes.forEach((node, id) => {
144
+ if (id.isTag) {
145
+ const tags = this.tags.registry(node.registry);
146
+ const entries = tags.resolve(id);
147
+ const replacements = entries
148
+ .map((it) => (typeof it === "string" ? it : it.id))
149
+ .map(encodeId)
150
+ .filter((id) => this.nodes.get(id));
151
+ if (replacements.length == 0)
152
+ return;
153
+ // TODO delete tag
154
+ // TODO add tag info to edge
155
+ const nodeId = encodeId(id);
156
+ const from = this.edges.filter((it) => it.from === nodeId);
157
+ const to = this.edges.filter((it) => it.to === nodeId);
158
+ const label = `uses any ${nodeId}`;
159
+ replacements.forEach((id) => {
160
+ from.forEach(([, edge]) => this.addIOEdge(edge.to, id, true, label));
161
+ to.forEach(([, edge]) => this.addIOEdge(edge.from, id, false, label));
162
+ });
163
+ from.forEach(([id]) => this.edges.delete(id));
164
+ to.forEach(([id]) => this.edges.delete(id));
165
+ }
166
+ });
167
+ }
168
+ }
169
+ build(shown) {
170
+ shown.forEach((recipe, id) => this.addRecipe(id, recipe));
171
+ this.sanitize();
172
+ return { edges: this.edges.values(), nodes: this.nodes.values() };
173
+ }
174
+ }
175
+ //# sourceMappingURL=recipeGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipeGraph.js","sourceRoot":"","sources":["../../src/emit/recipeGraph.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import type { Acceptable, Acceptor, BaseContext, Logger, Resolver } from "@adeficior/pack-resolver";
2
- import type { Id } from "../common/id.js";
3
- import Registry from "../common/registry.js";
2
+ import type { Id, IdInput } from "../common/id.js";
4
3
  import type { RegistryProvider } from "../emit/index.js";
5
4
  export default interface Loader {
6
5
  loadFrom(resolver: Resolver): Promise<void>;
7
6
  }
8
7
  export declare function tryParseJson(logger: Logger, content: Acceptable): any;
9
8
  export declare abstract class JsonLoader<T> implements RegistryProvider<T>, Acceptor {
10
- protected readonly registry: Registry<T, string>;
9
+ private readonly registry;
11
10
  protected abstract parse(json: unknown, id: Id): T | null;
11
+ get(id: IdInput): T | undefined;
12
12
  forEach(consumer: (recipe: T, id: Id) => void): void;
13
13
  forEachAsync(consumer: (recipe: T, id: Id) => Promise<void>): Promise<void>;
14
14
  accept(path: string, content: PromiseLike<Acceptable>, context: BaseContext): Promise<false | undefined>;
@@ -15,6 +15,9 @@ export function tryParseJson(logger, content) {
15
15
  }
16
16
  export class JsonLoader {
17
17
  registry = new Registry();
18
+ get(id) {
19
+ return this.registry.get(id);
20
+ }
18
21
  forEach(consumer) {
19
22
  this.registry.forEach(consumer);
20
23
  }
@@ -1 +1 @@
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,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAgB,UAAU;IACX,QAAQ,GAAG,IAAI,QAAQ,EAAK,CAAC;IAIhD,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
+ {"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,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAgB,UAAU;IACb,QAAQ,GAAG,IAAI,QAAQ,EAAK,CAAC;IAI9C,GAAG,CAAC,EAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,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"}
@@ -3,7 +3,7 @@ import { JsonLoader } from "./index.js";
3
3
  export default class LangLoader extends JsonLoader {
4
4
  parse(json, id) {
5
5
  const parsed = LangSchema.parse(json);
6
- const existing = this.registry.get(id);
6
+ const existing = this.get(id);
7
7
  if (!existing)
8
8
  return parsed;
9
9
  return { ...existing, ...parsed };
@@ -1 +1 @@
1
- {"version":3,"file":"lang.js","sourceRoot":"","sources":["../../src/loader/lang.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAA0B;IACtD,KAAK,CAAC,IAAa,EAAE,EAAM;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC7B,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"lang.js","sourceRoot":"","sources":["../../src/loader/lang.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAA0B;IACtD,KAAK,CAAC,IAAa,EAAE,EAAM;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC7B,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,CAAC;CACF"}
@@ -12,6 +12,7 @@ import type { RecipeRules } from "../emit/data/recipe.js";
12
12
  import type { TagEmitterOptions, TagRules } from "../emit/data/tags.js";
13
13
  import type { ClearableEmitter } from "../emit/index.js";
14
14
  import type { PolytoneTabs } from "../emit/polytoneTabs.js";
15
+ import { type RecipeGraphAccessor } from "../emit/recipeGraph.js";
15
16
  import { type SemVerInput } from "../packFormat.js";
16
17
  import type Loader from "./index.js";
17
18
  import type { RecipeLoaderAccessor } from "./recipe.js";
@@ -23,7 +24,7 @@ export type LoaderEmitOptions = {
23
24
  description?: string;
24
25
  };
25
26
  export default class PackLoader implements Loader {
26
- readonly logger: Logger;
27
+ private readonly logger;
27
28
  private readonly lookup;
28
29
  private readonly emitters;
29
30
  readonly tags: TagRules;
@@ -35,7 +36,7 @@ export default class PackLoader implements Loader {
35
36
  private readonly itemDefinition;
36
37
  private readonly blockDefinition;
37
38
  private readonly tagLoader;
38
- private readonly recipesLoader;
39
+ private readonly _recipeLoader;
39
40
  private readonly lootLoader;
40
41
  private readonly langLoader;
41
42
  readonly blockstates: BlockstateRules;
@@ -45,6 +46,7 @@ export default class PackLoader implements Loader {
45
46
  private readonly acceptor;
46
47
  private readonly context;
47
48
  private readonly packFormat;
49
+ readonly recipeGraph: RecipeGraphAccessor;
48
50
  constructor(logger: Logger, options: PackLoaderOptions);
49
51
  registerEmitter<T extends ClearableEmitter>(emitter: T): T;
50
52
  registerRegistry(key: string): void;
@@ -12,6 +12,7 @@ import RecipeEmitter from "../emit/data/recipe.js";
12
12
  import TagEmitter from "../emit/data/tags.js";
13
13
  import { overwritePackMetadata } from "../emit/packMetadata.js";
14
14
  import PolytoneTabsEmitter from "../emit/polytoneTabs.js";
15
+ import { RecipeGraphEmitter, } from "../emit/recipeGraph.js";
15
16
  import { lootTableFolder, recipeFolder, } from "../packFormat.js";
16
17
  import { createIngredientSerializer, } from "../serializer/ingredients";
17
18
  import { createResultSerializer, } from "../serializer/results";
@@ -34,7 +35,7 @@ export default class PackLoader {
34
35
  itemDefinition;
35
36
  blockDefinition;
36
37
  tagLoader;
37
- recipesLoader;
38
+ _recipeLoader;
38
39
  lootLoader;
39
40
  langLoader;
40
41
  blockstates = this.registerEmitter(new BlockstateEmitter());
@@ -47,6 +48,7 @@ export default class PackLoader {
47
48
  acceptor;
48
49
  context;
49
50
  packFormat;
51
+ recipeGraph;
50
52
  constructor(logger, options) {
51
53
  this.logger = logger;
52
54
  this.packFormat = options.packFormat;
@@ -63,8 +65,8 @@ export default class PackLoader {
63
65
  lookup: this.lookup,
64
66
  packFormat: options.packFormat,
65
67
  };
66
- this.recipesLoader = new RecipeLoader(this.context);
67
- this.recipes = this.registerEmitter(new RecipeEmitter(logger, this.recipesLoader, this.context, this.recipesLoader));
68
+ this._recipeLoader = new RecipeLoader(this.context);
69
+ this.recipes = this.registerEmitter(new RecipeEmitter(logger, this._recipeLoader, this.context, this._recipeLoader));
68
70
  this.loot = this.registerEmitter(new LootTableEmitter(this.lootLoader, this.context));
69
71
  this.lang = this.registerEmitter(new LangEmitter(this.langLoader));
70
72
  this.tabs = this.registerEmitter(new PolytoneTabsEmitter(this.lookup));
@@ -73,12 +75,13 @@ export default class PackLoader {
73
75
  this.blockDefinition = this.registerEmitter(new BlockDefinitionEmitter(this.models.blocks, this.blockstates, this.loot));
74
76
  this.acceptor = filterAcceptor(createMergingAcceptor(distributedAcceptor({
75
77
  "data/*/tags/**/*.json": this.tagLoader,
76
- [`data/*/${recipeFolder(options.packFormat)}/**/*.json`]: this.recipesLoader,
78
+ [`data/*/${recipeFolder(options.packFormat)}/**/*.json`]: this._recipeLoader,
77
79
  [`data/*/${lootTableFolder(options.packFormat)}/**/*.json`]: this.lootLoader,
78
80
  "assets/*/lang/*.json": this.langLoader,
79
81
  })), {
80
82
  include: ["assets/**/*.json", "data/**/*.json"],
81
83
  });
84
+ this.recipeGraph = this.registerEmitter(new RecipeGraphEmitter(this._recipeLoader, this.tagLoader));
82
85
  }
83
86
  registerEmitter(emitter) {
84
87
  this.emitters.push(emitter);
@@ -97,7 +100,7 @@ export default class PackLoader {
97
100
  };
98
101
  }
99
102
  get recipeLoader() {
100
- return this.recipesLoader;
103
+ return this._recipeLoader;
101
104
  }
102
105
  get registries() {
103
106
  return this.lookup;
@@ -118,7 +121,7 @@ export default class PackLoader {
118
121
  this.lookup.set(registryDumpLoader);
119
122
  }
120
123
  clear() {
121
- this.recipesLoader.clear();
124
+ this._recipeLoader.clear();
122
125
  this.lookup.reset();
123
126
  this.emitters.forEach((it) => it.clear());
124
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/loader/pack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/loader/pack.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,cAAc,GAMf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,yBAAyB,EAAE,EAEjC,MAAM,gCAAgC,CAAC;AAExC,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAE9D,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AAEpD,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AAExE,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AAEtE,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AAEpD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAEnD,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,mBAAmB,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,kBAAkB,GAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,YAAY,GAEb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,GAE3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,GAEvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,UAAU,MAAM,WAAW,CAAC;AACnC,OAAO,eAAe,MAAM,WAAW,CAAC;AAExC,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,kBAAkB,MAAM,oBAAoB,CAAC;AAEpD,OAAO,qBAAqB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,UAAU,MAAM,WAAW,CAAC;AAWnC,MAAM,CAAC,OAAO,OAAO,UAAU;IAsCV;IArCF,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAErC,QAAQ,GAAuB,EAAE,CAAC;IAE1C,IAAI,CAAW;IACf,OAAO,CAAc;IACrB,IAAI,CAAY;IAChB,IAAI,CAAY;IAChB,IAAI,CAAe;IACnB,SAAS,CAAiB;IAClB,cAAc,CAAsB;IACpC,eAAe,CAAuB;IAEtC,SAAS,CAAa;IACtB,aAAa,CAAe;IAC5B,UAAU,CAAkB;IAC5B,UAAU,CAAa;IAC/B,WAAW,GAAoB,IAAI,CAAC,eAAe,CAC1D,IAAI,iBAAiB,EAAE,CACxB,CAAC;IAEO,MAAM,GAAoB;QACjC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACvD,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;KACtD,CAAC;IAEe,OAAO,CAAmB;IAC1B,WAAW,CAAuB;IAElC,QAAQ,CAAW;IACnB,OAAO,CAAc;IAErB,UAAU,CAAc;IAEhC,WAAW,CAAsB;IAE1C,YACmB,MAAc,EAC/B,OAA0B;QADT,WAAM,GAAN,MAAM,CAAQ;QAG/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAEnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAC3C,OAAO,CAAC,UAAU,EAClB,IAAI,CAAC,MAAM,CACZ,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CACjC,IAAI,aAAa,CACf,MAAM,EACN,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CACF,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAC9B,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CACpD,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAEnE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CACnC,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAC5C,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CACxC,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CACpE,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CACzC,IAAI,sBAAsB,CACxB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,CACV,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,cAAc,CAC5B,qBAAqB,CACnB,mBAAmB,CAAC;YAClB,uBAAuB,EAAE,IAAI,CAAC,SAAS;YACvC,CAAC,UAAU,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EACtD,IAAI,CAAC,aAAa;YACpB,CAAC,UAAU,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EACzD,IAAI,CAAC,UAAU;YACjB,sBAAsB,EAAE,IAAI,CAAC,UAAU;SACxC,CAAC,CACH,EACD;YACE,OAAO,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;SACxB,CAC1B,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CACrC,IAAI,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,eAAe,CAA6B,OAAU;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,GAAW;QAC1B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,WAAW,CAAuB,GAAM;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,OAAO;QAIT,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,eAAe;YAC5B,KAAK,EAAE,IAAI,CAAC,cAAc;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,qBAAqB,CAAC,IAAsB;QAC1C,OAAO,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,gBAAgB,CAAC,SAAqB;QACpC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAkB;QAC/B,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAkB;QACvC,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACpD,MAAM,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEO,QAAQ,CAAC,OAAwC;QACvD,MAAM,gBAAgB,GAAG,gBAAgB,CACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACvB,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CACtE,EACD,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CAAC;QAEF,OAAO,qBAAqB,CAAC,gBAAgB,EAAE;YAC7C,GAAG,OAAO;YACV,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAY,EAAE,UAA6B,EAAE;QACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAc,EAAE,EAAY;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adeficior/data-modifier",
3
- "version": "1.0.0-rc.44",
3
+ "version": "1.0.0-rc.46",
4
4
  "description": "Data Modifier",
5
5
  "main": "dist/index.js",
6
6
  "bin": {