@xyo-network/node 2.43.4 → 2.43.6

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.
@@ -1,5 +1,5 @@
1
1
  import { Account } from '@xyo-network/account';
2
- import { AbstractModule, Module, ModuleDescription, ModuleFilter, ModuleParams, ModuleQueryResult, ModuleRepository, XyoQueryBoundWitness } from '@xyo-network/module';
2
+ import { AbstractModule, Module, ModuleConstructable, ModuleDescription, ModuleFilter, ModuleParams, ModuleQueryResult, ModuleRepository, ModuleWrapper, XyoQueryBoundWitness } from '@xyo-network/module';
3
3
  import { XyoPayload } from '@xyo-network/payload-model';
4
4
  import { Promisable } from '@xyo-network/promise';
5
5
  import { NodeConfig } from './Config';
@@ -22,7 +22,31 @@ export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConf
22
22
  register(_module: TModule): Promisable<void>;
23
23
  registered(): Promisable<string[]>;
24
24
  registeredModules(): Promisable<TModule[]>;
25
+ /**
26
+ * Resolves the supplied filter into wrapped modules
27
+ * @example <caption>Example using ArchivistWrapper</caption>
28
+ * const filter = { address: [address] }
29
+ * const mods: ArchivistWrapper[] = await node.resolveWrapped(ArchivistWrapper, filter)
30
+ * @param wrapper The ModuleWrapper class (ArchivistWrapper,
31
+ * DivinerWrapper, etc.)
32
+ * @param filter The ModuleFilter
33
+ * @returns An array of ModuleWrapper instances corresponding to
34
+ * the underlying modules matching the supplied filter
35
+ */
36
+ resolveWrapped<T extends ModuleWrapper<TModule> = ModuleWrapper<TModule>>(wrapper: ModuleConstructable<TModule, T>, filter?: ModuleFilter): Promise<T[]>;
25
37
  start(): Promise<this>;
38
+ /**
39
+ * Tries to resolve the supplied filter into wrapped modules
40
+ * @example <caption>Example using ArchivistWrapper</caption>
41
+ * const filter = { address: [address] }
42
+ * const mods: ArchivistWrapper[] = await node.tryResolveWrapped(ArchivistWrapper, filter)
43
+ * @param wrapper The ModuleWrapper class (ArchivistWrapper,
44
+ * DivinerWrapper, etc.)
45
+ * @param filter The ModuleFilter
46
+ * @returns An array of ModuleWrapper instances corresponding to
47
+ * the underlying modules matching the supplied filter
48
+ */
49
+ tryResolveWrapped<T extends ModuleWrapper<TModule> = ModuleWrapper<TModule>>(wrapper: ModuleConstructable<TModule, T>, filter?: ModuleFilter): Promise<T[]>;
26
50
  unregister(_module: TModule): Promisable<void>;
27
51
  abstract attach(address: string): Promisable<void>;
28
52
  abstract detach(address: string): Promisable<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,OAAO,EACL,cAAc,EACd,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAIhB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAKnC,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,YAAY,CAAC,OAAO,CAAC;IACzI,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CAC7C;AAED,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CACzG,SAAQ,cAAc,CAAC,OAAO,CAC9B,YAAW,UAAU;IAErB,MAAM,CAAC,QAAQ,CAAC,YAAY,4BAAmB;IAE/C,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAErD,SAAS,aAAa,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC;IAKlE,IAAI,gBAAgB,IAAI,OAAO,CAE9B;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAInF,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI5B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAyBnE,OAAO;IAIR,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2C1I,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;IAI5C,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAIlC,iBAAiB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;IAI3B,KAAK;IAKpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;IAI9C,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAClD,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAClD,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IAC9D,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;CAClE;AAED,2CAA2C;AAC3C,8BAAsB,OAAO,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,YAAY,CAC1I,OAAO,EACP,OAAO,CACR;CAAG"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.XyoNode = exports.AbstractNode = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const assert_1 = require("@xylabs/assert");
6
+ const exists_1 = require("@xylabs/exists");
6
7
  const account_1 = require("@xyo-network/account");
7
8
  const address_payload_plugin_1 = require("@xyo-network/address-payload-plugin");
8
9
  const module_1 = require("@xyo-network/module");
@@ -71,7 +72,7 @@ class AbstractNode extends module_1.AbstractModule {
71
72
  // const [bw, payloads] = result
72
73
  // return [bw, ...payloads]
73
74
  // })
74
- // .flatMap((x) => x)
75
+ // .flat()
75
76
  // return [...parent, ...children]
76
77
  return parent;
77
78
  });
@@ -135,6 +136,22 @@ class AbstractNode extends module_1.AbstractModule {
135
136
  registeredModules() {
136
137
  throw new Error('Method not implemented.');
137
138
  }
139
+ /**
140
+ * Resolves the supplied filter into wrapped modules
141
+ * @example <caption>Example using ArchivistWrapper</caption>
142
+ * const filter = { address: [address] }
143
+ * const mods: ArchivistWrapper[] = await node.resolveWrapped(ArchivistWrapper, filter)
144
+ * @param wrapper The ModuleWrapper class (ArchivistWrapper,
145
+ * DivinerWrapper, etc.)
146
+ * @param filter The ModuleFilter
147
+ * @returns An array of ModuleWrapper instances corresponding to
148
+ * the underlying modules matching the supplied filter
149
+ */
150
+ resolveWrapped(wrapper, filter) {
151
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
152
+ return (yield this.resolve(filter)).map((mod) => new wrapper(mod));
153
+ });
154
+ }
138
155
  start() {
139
156
  const _super = Object.create(null, {
140
157
  start: { get: () => super.start }
@@ -144,6 +161,31 @@ class AbstractNode extends module_1.AbstractModule {
144
161
  return this;
145
162
  });
146
163
  }
164
+ /**
165
+ * Tries to resolve the supplied filter into wrapped modules
166
+ * @example <caption>Example using ArchivistWrapper</caption>
167
+ * const filter = { address: [address] }
168
+ * const mods: ArchivistWrapper[] = await node.tryResolveWrapped(ArchivistWrapper, filter)
169
+ * @param wrapper The ModuleWrapper class (ArchivistWrapper,
170
+ * DivinerWrapper, etc.)
171
+ * @param filter The ModuleFilter
172
+ * @returns An array of ModuleWrapper instances corresponding to
173
+ * the underlying modules matching the supplied filter
174
+ */
175
+ tryResolveWrapped(wrapper, filter) {
176
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
177
+ return (yield this.tryResolve(filter))
178
+ .map((mod) => {
179
+ try {
180
+ return new wrapper(mod);
181
+ }
182
+ catch (_err) {
183
+ return undefined;
184
+ }
185
+ })
186
+ .filter(exists_1.exists);
187
+ });
188
+ }
147
189
  unregister(_module) {
148
190
  throw new Error('Method not implemented.');
149
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  import { Module, ModuleFilter } from '@xyo-network/module';
2
2
  import { AbstractNode, AbstractNodeParams } from './AbstractNode';
3
3
  import { NodeConfig } from './Config';
4
+ export interface MemoryNodeParams<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module> extends AbstractNodeParams<TConfig, TModule> {
5
+ autoAttachExternallyResolved?: boolean;
6
+ }
4
7
  export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module> extends AbstractNode<TConfig, TModule> {
5
8
  static configSchema: "network.xyo.node.config";
6
9
  private registeredModuleMap;
7
- static create(params?: Partial<AbstractNodeParams>): Promise<MemoryNode>;
10
+ static create(params?: Partial<MemoryNodeParams>): Promise<MemoryNode>;
8
11
  attach(address: string, name?: string): void;
9
12
  detach(address: string): void;
10
13
  register(module: TModule): void;
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAkB,MAAM,qBAAqB,CAAA;AAE1E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AAEvD,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;IACtI,MAAM,CAAC,YAAY,4BAAmB;IACtC,OAAO,CAAC,mBAAmB,CAA6B;WAElC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAI9E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAKrC,MAAM,CAAC,OAAO,EAAE,MAAM;IAItB,QAAQ,CAAC,MAAM,EAAE,OAAO;IAIxB,UAAU;IAMV,iBAAiB;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOlD,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAO3D,UAAU,CAAC,MAAM,EAAE,OAAO;CAGpC"}
1
+ {"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+C,MAAM,EAAE,YAAY,EAAkB,MAAM,qBAAqB,CAAA;AAEvH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AAEvD,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CACxG,SAAQ,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC;IAC5C,4BAA4B,CAAC,EAAE,OAAO,CAAA;CACvC;AAED,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;IACtI,MAAM,CAAC,YAAY,4BAAmB;IACtC,OAAO,CAAC,mBAAmB,CAA6B;WAElC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAwB5E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAKrC,MAAM,CAAC,OAAO,EAAE,MAAM;IAItB,QAAQ,CAAC,MAAM,EAAE,OAAO;IAIxB,UAAU;IAMV,iBAAiB;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOlD,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAY3D,UAAU,CAAC,MAAM,EAAE,OAAO;CAGpC"}
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MemoryNode = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const assert_1 = require("@xylabs/assert");
6
+ const exists_1 = require("@xylabs/exists");
7
+ const promise_1 = require("@xylabs/promise");
8
+ const module_1 = require("@xyo-network/module");
6
9
  const AbstractNode_1 = require("./AbstractNode");
7
10
  const Config_1 = require("./Config");
8
11
  class MemoryNode extends AbstractNode_1.AbstractNode {
@@ -15,7 +18,30 @@ class MemoryNode extends AbstractNode_1.AbstractNode {
15
18
  create: { get: () => super.create }
16
19
  });
17
20
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
18
- return (yield _super.create.call(this, params));
21
+ const instance = (yield _super.create.call(this, params));
22
+ if ((params === null || params === void 0 ? void 0 : params.resolver) && (params === null || params === void 0 ? void 0 : params.autoAttachExternallyResolved)) {
23
+ const resolver = (0, module_1.mixinResolverEventEmitter)(params === null || params === void 0 ? void 0 : params.resolver);
24
+ resolver.on('moduleResolved', (args) => {
25
+ var _a, _b;
26
+ const { module, filter } = args;
27
+ try {
28
+ instance.register(module);
29
+ if ((_a = filter === null || filter === void 0 ? void 0 : filter.name) === null || _a === void 0 ? void 0 : _a.length) {
30
+ filter.name.map((name) => {
31
+ instance.attach(module.address, name);
32
+ });
33
+ }
34
+ else {
35
+ instance.attach(module.address);
36
+ }
37
+ }
38
+ catch (err) {
39
+ (_b = params.logger) === null || _b === void 0 ? void 0 : _b.error(`Error attaching externally resolved module: 0x${module.address}`);
40
+ }
41
+ });
42
+ instance.resolver = resolver;
43
+ }
44
+ return instance;
19
45
  });
20
46
  }
21
47
  attach(address, name) {
@@ -44,7 +70,7 @@ class MemoryNode extends AbstractNode_1.AbstractNode {
44
70
  const internal = this.internalResolver.resolve(filter);
45
71
  const external = ((_a = this.resolver) === null || _a === void 0 ? void 0 : _a.resolve(filter)) || [];
46
72
  const resolved = yield Promise.all([internal, external]);
47
- return resolved.flatMap((mod) => mod);
73
+ return resolved.flat().filter(exists_1.exists).filter(module_1.duplicateModules);
48
74
  });
49
75
  }
50
76
  tryResolve(filter) {
@@ -52,8 +78,13 @@ class MemoryNode extends AbstractNode_1.AbstractNode {
52
78
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
53
79
  const internal = this.internalResolver.tryResolve(filter);
54
80
  const external = ((_a = this.resolver) === null || _a === void 0 ? void 0 : _a.tryResolve(filter)) || [];
55
- const resolved = yield Promise.all([internal, external]);
56
- return resolved.flatMap((mod) => mod);
81
+ const resolved = yield Promise.allSettled([internal, external]);
82
+ return resolved
83
+ .filter(promise_1.fulfilled)
84
+ .map((r) => r.value)
85
+ .flat()
86
+ .filter(exists_1.exists)
87
+ .filter(module_1.duplicateModules);
57
88
  });
58
89
  }
59
90
  unregister(module) {
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AAGzC,iDAAiE;AACjE,qCAAuD;AAEvD,MAAa,UAAqF,SAAQ,2BAA8B;IAAxI;;QAEU,wBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAgD1D,CAAC;IA9CC,MAAM,CAAgB,MAAM,CAAC,MAAoC;;;;;YAC/D,OAAO,CAAC,MAAM,OAAM,MAAM,YAAC,MAAM,CAAC,CAAe,CAAA;QACnD,CAAC;KAAA;IAEQ,MAAM,CAAC,OAAe,EAAE,IAAa;QAC5C,MAAM,MAAM,GAAG,IAAA,iBAAQ,EAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,iCAAiC,CAAC,CAAA;QACjG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAEQ,MAAM,CAAC,OAAe;QAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAEQ,QAAQ,CAAC,MAAe;QAC/B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;IAEQ,UAAU;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7D,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEQ,iBAAiB;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACjE,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC;IAEc,OAAO,CAAC,MAAqB;;;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACtD,MAAM,QAAQ,GAAG,CAAA,MAAC,IAAI,CAAC,QAAgD,0CAAE,OAAO,CAAC,MAAM,CAAC,KAAI,EAAE,CAAA;YAC9F,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;YACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;;KACtC;IAEc,UAAU,CAAC,MAAqB;;;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACzD,MAAM,QAAQ,GAAG,CAAA,MAAC,IAAI,CAAC,QAAgD,0CAAE,UAAU,CAAC,MAAM,CAAC,KAAI,EAAE,CAAA;YACjG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;YACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;;KACtC;IAEQ,UAAU,CAAC,MAAe;QACjC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;;AAjDH,gCAkDC;AAjDQ,uBAAY,GAAG,yBAAgB,CAAA"}
1
+ {"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}