@xyo-network/node-abstract 3.6.9 → 3.6.11

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,6 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
1
  // src/AbstractNode.ts
5
2
  import { assertEx } from "@xylabs/assert";
6
3
  import { globallyUnique } from "@xylabs/object";
@@ -8,16 +5,18 @@ import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
8
5
  import { NodeManifestPayloadSchema } from "@xyo-network/manifest-model";
9
6
  import { AbstractModuleInstance } from "@xyo-network/module-abstract";
10
7
  import { AddressSchema } from "@xyo-network/module-model";
11
- import { ChildCertificationSchema, NodeAttachedQuerySchema, NodeAttachQuerySchema, NodeCertifyQuerySchema, NodeConfigSchema, NodeDetachQuerySchema, NodeRegisteredQuerySchema } from "@xyo-network/node-model";
8
+ import {
9
+ ChildCertificationSchema,
10
+ NodeAttachedQuerySchema,
11
+ NodeAttachQuerySchema,
12
+ NodeCertifyQuerySchema,
13
+ NodeConfigSchema,
14
+ NodeDetachQuerySchema,
15
+ NodeRegisteredQuerySchema
16
+ } from "@xyo-network/node-model";
12
17
  import { PayloadBuilder } from "@xyo-network/payload-builder";
13
18
  var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
14
- static {
15
- __name(this, "AbstractNode");
16
- }
17
- static configSchemas = [
18
- ...super.configSchemas,
19
- NodeConfigSchema
20
- ];
19
+ static configSchemas = [...super.configSchemas, NodeConfigSchema];
21
20
  static defaultConfigSchema = NodeConfigSchema;
22
21
  static uniqueName = globallyUnique("AbstractNode", _AbstractNode, "xyo");
23
22
  isNode = true;
@@ -52,16 +51,11 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
52
51
  return await this.attachedHandler();
53
52
  }
54
53
  async attachedHandler() {
55
- return [
56
- ...(await this.attachedPublicModules()).map((mod) => mod.address),
57
- ...(await this.attachedPrivateModules()).map((mod) => mod.address)
58
- ];
54
+ return [...(await this.attachedPublicModules()).map((mod) => mod.address), ...(await this.attachedPrivateModules()).map((mod) => mod.address)];
59
55
  }
60
56
  async attachedQuery(account) {
61
57
  this._noOverride("attachedQuery");
62
- const queryPayload = {
63
- schema: NodeAttachedQuerySchema
64
- };
58
+ const queryPayload = { schema: NodeAttachedQuerySchema };
65
59
  return await this.sendQueryRaw(queryPayload, [], account);
66
60
  }
67
61
  async certify(id) {
@@ -69,10 +63,7 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
69
63
  return await this.certifyHandler(id);
70
64
  }
71
65
  async certifyQuery(id, account) {
72
- const queryPayload = {
73
- id,
74
- schema: NodeCertifyQuerySchema
75
- };
66
+ const queryPayload = { id, schema: NodeCertifyQuerySchema };
76
67
  return await this.sendQueryRaw(queryPayload, [], account);
77
68
  }
78
69
  async detach(id) {
@@ -81,10 +72,7 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
81
72
  }
82
73
  async detachQuery(id, account) {
83
74
  this._noOverride("detachQuery");
84
- const queryPayload = {
85
- id,
86
- schema: NodeDetachQuerySchema
87
- };
75
+ const queryPayload = { id, schema: NodeDetachQuerySchema };
88
76
  return await this.sendQueryRaw(queryPayload, [], account);
89
77
  }
90
78
  async manifest(maxDepth = 10, ignoreAddresses = []) {
@@ -102,49 +90,29 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
102
90
  }
103
91
  async registeredQuery(account) {
104
92
  this._noOverride("registeredQuery");
105
- const queryPayload = {
106
- schema: NodeRegisteredQuerySchema
107
- };
93
+ const queryPayload = { schema: NodeRegisteredQuerySchema };
108
94
  return await this.sendQueryRaw(queryPayload, [], account);
109
95
  }
110
96
  async attachedPrivateModules(maxDepth = 1) {
111
- return (await (this.resolvePrivate("*", {
112
- maxDepth
113
- }) ?? [])).filter((mod) => mod.address !== this.address);
97
+ return (await (this.resolvePrivate("*", { maxDepth }) ?? [])).filter((mod) => mod.address !== this.address);
114
98
  }
115
99
  async attachedPublicModules(maxDepth = 1) {
116
- return (await (this.downResolver.resolve("*", {
117
- direction: "down",
118
- maxDepth
119
- }) ?? [])).filter((mod) => mod.address !== this.address);
100
+ return (await (this.downResolver.resolve("*", { direction: "down", maxDepth }) ?? [])).filter((mod) => mod.address !== this.address);
120
101
  }
121
102
  async generateConfigAndAddress(maxDepth = 10) {
122
103
  const childMods = await this.attachedPublicModules(maxDepth);
123
- const childModAddresses = childMods.map((mod) => new PayloadBuilder({
124
- schema: AddressSchema
125
- }).fields({
126
- address: mod.address
127
- }).build());
128
- return [
129
- ...await super.generateConfigAndAddress(maxDepth),
130
- ...childModAddresses
131
- ];
104
+ const childModAddresses = childMods.map((mod) => new PayloadBuilder({ schema: AddressSchema }).fields({ address: mod.address }).build());
105
+ return [...await super.generateConfigAndAddress(maxDepth), ...childModAddresses];
132
106
  }
133
107
  async manifestHandler(maxDepth = 10, ignoreAddresses = []) {
134
108
  const cachedResult = this._cachedManifests.get(maxDepth);
135
109
  if (cachedResult) {
136
110
  return cachedResult;
137
111
  }
138
- const manifest = {
139
- ...await super.manifestHandler(maxDepth, ignoreAddresses),
140
- schema: NodeManifestPayloadSchema
141
- };
142
- const newIgnoreAddresses = [
143
- ...ignoreAddresses,
144
- this.address
145
- ];
146
- const notThisModule = /* @__PURE__ */ __name((mod) => mod.address !== this.address && !ignoreAddresses.includes(mod.address), "notThisModule");
147
- const toManifest = /* @__PURE__ */ __name((mod) => mod.manifest(maxDepth - 1, newIgnoreAddresses), "toManifest");
112
+ const manifest = { ...await super.manifestHandler(maxDepth, ignoreAddresses), schema: NodeManifestPayloadSchema };
113
+ const newIgnoreAddresses = [...ignoreAddresses, this.address];
114
+ const notThisModule = (mod) => mod.address !== this.address && !ignoreAddresses.includes(mod.address);
115
+ const toManifest = (mod) => mod.manifest(maxDepth - 1, newIgnoreAddresses);
148
116
  const publicChildren = await this.publicChildren();
149
117
  const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest));
150
118
  if (publicModuleManifests.length > 0) {
@@ -163,11 +131,7 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
163
131
  case NodeAttachQuerySchema: {
164
132
  const address = await this.attachHandler(queryPayload.id, queryPayload.external);
165
133
  if (address) {
166
- const payload = await new PayloadBuilder({
167
- schema: AddressSchema
168
- }).fields({
169
- address
170
- }).build();
134
+ const payload = await new PayloadBuilder({ schema: AddressSchema }).fields({ address }).build();
171
135
  resultPayloads.push(payload);
172
136
  }
173
137
  break;
@@ -175,9 +139,7 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
175
139
  case NodeCertifyQuerySchema: {
176
140
  const fields = await this.certifyHandler(queryPayload.id);
177
141
  if (fields) {
178
- const payload = await new PayloadBuilder({
179
- schema: ChildCertificationSchema
180
- }).fields(fields).build();
142
+ const payload = await new PayloadBuilder({ schema: ChildCertificationSchema }).fields(fields).build();
181
143
  resultPayloads.push(payload);
182
144
  }
183
145
  break;
@@ -185,11 +147,7 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
185
147
  case NodeDetachQuerySchema: {
186
148
  const address = await this.detachHandler(queryPayload.id);
187
149
  if (address) {
188
- const payload = await new PayloadBuilder({
189
- schema: AddressSchema
190
- }).fields({
191
- address
192
- }).build();
150
+ const payload = await new PayloadBuilder({ schema: AddressSchema }).fields({ address }).build();
193
151
  resultPayloads.push(payload);
194
152
  }
195
153
  break;
@@ -197,11 +155,7 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
197
155
  case NodeAttachedQuerySchema: {
198
156
  const addresses = await this.attachedHandler();
199
157
  for (const address of addresses) {
200
- const payload = await new PayloadBuilder({
201
- schema: AddressSchema
202
- }).fields({
203
- address
204
- }).build();
158
+ const payload = await new PayloadBuilder({ schema: AddressSchema }).fields({ address }).build();
205
159
  resultPayloads.push(payload);
206
160
  }
207
161
  break;
@@ -209,11 +163,7 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
209
163
  case NodeRegisteredQuerySchema: {
210
164
  const addresses = await this.registeredHandler();
211
165
  for (const address of addresses) {
212
- const payload = await new PayloadBuilder({
213
- schema: AddressSchema
214
- }).fields({
215
- address
216
- }).build();
166
+ const payload = await new PayloadBuilder({ schema: AddressSchema }).fields({ address }).build();
217
167
  resultPayloads.push(payload);
218
168
  }
219
169
  break;
@@ -228,41 +178,45 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
228
178
 
229
179
  // src/NodeHelper/attachedPrivateModules.ts
230
180
  import { asNodeInstance } from "@xyo-network/node-model";
231
- var attachedPrivateModules = /* @__PURE__ */ __name(async (node, maxDepth = 1) => {
181
+ var attachedPrivateModules = async (node, maxDepth = 1) => {
232
182
  const remainingDepth = maxDepth - 1;
233
183
  const mods = [];
234
184
  const publicChildren = await node.privateChildren();
235
185
  mods.push(...publicChildren);
236
186
  if (remainingDepth > 0) {
237
- await Promise.all(publicChildren.map(async (mod) => {
238
- const node2 = asNodeInstance(mod);
239
- if (node2) {
240
- const children = await attachedPrivateModules(node2, remainingDepth);
241
- mods.push(...children);
242
- }
243
- }));
187
+ await Promise.all(
188
+ publicChildren.map(async (mod) => {
189
+ const node2 = asNodeInstance(mod);
190
+ if (node2) {
191
+ const children = await attachedPrivateModules(node2, remainingDepth);
192
+ mods.push(...children);
193
+ }
194
+ })
195
+ );
244
196
  }
245
197
  return mods;
246
- }, "attachedPrivateModules");
198
+ };
247
199
 
248
200
  // src/NodeHelper/attachedPublicModules.ts
249
201
  import { asNodeInstance as asNodeInstance2 } from "@xyo-network/node-model";
250
- var attachedPublicModules = /* @__PURE__ */ __name(async (node, maxDepth = 1) => {
202
+ var attachedPublicModules = async (node, maxDepth = 1) => {
251
203
  const remainingDepth = maxDepth - 1;
252
204
  const mods = [];
253
205
  const publicChildren = await node.publicChildren();
254
206
  mods.push(...publicChildren);
255
207
  if (remainingDepth > 0) {
256
- await Promise.all(publicChildren.map(async (mod) => {
257
- const node2 = asNodeInstance2(mod);
258
- if (node2) {
259
- const children = await attachedPublicModules(node2, remainingDepth);
260
- mods.push(...children);
261
- }
262
- }));
208
+ await Promise.all(
209
+ publicChildren.map(async (mod) => {
210
+ const node2 = asNodeInstance2(mod);
211
+ if (node2) {
212
+ const children = await attachedPublicModules(node2, remainingDepth);
213
+ mods.push(...children);
214
+ }
215
+ })
216
+ );
263
217
  }
264
218
  return mods;
265
- }, "attachedPublicModules");
219
+ };
266
220
 
267
221
  // src/NodeHelper/index.ts
268
222
  var NodeHelper = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AbstractNode.ts","../../src/NodeHelper/attachedPrivateModules.ts","../../src/NodeHelper/attachedPublicModules.ts","../../src/NodeHelper/index.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport type { Promisable } from '@xylabs/promise'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport type { ModuleManifestPayload, NodeManifestPayload } from '@xyo-network/manifest-model'\nimport { NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport type {\n AddressPayload,\n Module,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { AddressSchema } from '@xyo-network/module-model'\nimport type {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n NodeAttachedQuery,\n NodeAttachQuery,\n NodeCertifyQuery,\n NodeDetachQuery,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n} from '@xyo-network/node-model'\nimport {\n ChildCertificationSchema,\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n static isNode(mod: unknown) {\n return (mod as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = {\n external, id, schema: NodeAttachQuerySchema,\n }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [...(await this.attachedPublicModules()).map(mod => mod.address), ...(await this.attachedPrivateModules()).map(mod => mod.address)]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter(mod => mod.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter(mod => mod.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n // console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = childMods.map(mod => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build())\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (mod: ModuleInstance) => mod.address !== this.address && !ignoreAddresses.includes(mod.address)\n const toManifest = (mod: ModuleInstance) => mod.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig), () => 'Module is not queryable with the provided query')\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n","import type { ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nexport const attachedPrivateModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.privateChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPrivateModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n","import type { ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nexport const attachedPublicModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.publicChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPublicModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n","import { attachedPrivateModules } from './attachedPrivateModules.ts'\nimport { attachedPublicModules } from './attachedPublicModules.ts'\n\nexport const NodeHelper = {\n attachedPrivateModules,\n attachedPublicModules,\n}\n"],"mappings":"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","names":["assertEx","globallyUnique","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","AddressSchema","ChildCertificationSchema","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","defaultConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","mod","attach","id","external","_noOverride","attachHandler","attachQuery","account","queryPayload","schema","sendQueryRaw","attached","attachedHandler","attachedPublicModules","map","address","attachedPrivateModules","attachedQuery","certify","certifyHandler","certifyQuery","detach","detachHandler","detachQuery","manifest","maxDepth","ignoreAddresses","manifestHandler","privateChildren","publicChildren","registered","registeredHandler","registeredQuery","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","PayloadBuilder","AddressSchema","fields","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModuleManifests","Promise","all","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","getQuery","assertEx","queryable","resultPayloads","payload","push","ChildCertificationSchema","addresses","asNodeInstance","attachedPrivateModules","node","maxDepth","remainingDepth","mods","publicChildren","privateChildren","push","Promise","all","map","mod","asNodeInstance","children","asNodeInstance","attachedPublicModules","node","maxDepth","remainingDepth","mods","publicChildren","push","Promise","all","map","mod","asNodeInstance","children","NodeHelper","attachedPrivateModules","attachedPublicModules"]}
1
+ {"version":3,"sources":["../../src/AbstractNode.ts","../../src/NodeHelper/attachedPrivateModules.ts","../../src/NodeHelper/attachedPublicModules.ts","../../src/NodeHelper/index.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\nimport type { Promisable } from '@xylabs/promise'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport type { ModuleManifestPayload, NodeManifestPayload } from '@xyo-network/manifest-model'\nimport { NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport type {\n AddressPayload,\n Module,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { AddressSchema } from '@xyo-network/module-model'\nimport type {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n NodeAttachedQuery,\n NodeAttachQuery,\n NodeCertifyQuery,\n NodeDetachQuery,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n} from '@xyo-network/node-model'\nimport {\n ChildCertificationSchema,\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n Module<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n static isNode(mod: unknown) {\n return (mod as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = {\n external, id, schema: NodeAttachQuerySchema,\n }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<Address[]> {\n return [...(await this.attachedPublicModules()).map(mod => mod.address), ...(await this.attachedPrivateModules()).map(mod => mod.address)]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<Address[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter(mod => mod.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter(mod => mod.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n // console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = childMods.map(mod => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build())\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (mod: ModuleInstance) => mod.address !== this.address && !ignoreAddresses.includes(mod.address)\n const toManifest = (mod: ModuleInstance) => mod.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig), () => 'Module is not queryable with the provided query')\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attachHandler(queryPayload.id, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const fields = await this.certifyHandler(queryPayload.id)\n if (fields) {\n const payload = await new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detachHandler(queryPayload.id)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<Address | undefined>\n\n abstract registeredHandler(): Promisable<Address[]>\n}\n","import type { ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nexport const attachedPrivateModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.privateChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPrivateModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n","import type { ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nexport const attachedPublicModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.publicChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPublicModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n","import { attachedPrivateModules } from './attachedPrivateModules.ts'\nimport { attachedPublicModules } from './attachedPublicModules.ts'\n\nexport const NodeHelper = {\n attachedPrivateModules,\n attachedPublicModules,\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AAEzB,SAAS,sBAAsB;AAI/B,SAAS,gCAAgC;AAEzC,SAAS,iCAAiC;AAC1C,SAAS,8BAA8B;AAUvC,SAAS,qBAAqB;AAgB9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAGxB,IAAe,eAAf,MAAe,sBACZ,uBAM0B;AAAA,EAClC,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,gBAAgB;AAAA,EAC5F,OAAyB,sBAA8B;AAAA,EACvD,OAAyB,aAAa,eAAe,gBAAgB,eAAc,KAAK;AAAA,EAEvE,SAAS;AAAA,EAE1B,IAAa,UAAoB;AAC/B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,MAAM;AAAA,IACX;AAAA,EACF;AAAA,EAEA,OAAO,OAAO,KAAc;AAC1B,WAAQ,IAAqB;AAAA,EAC/B;AAAA,EAEA,MAAM,OAAO,IAAsB,UAAkD;AACnF,SAAK,YAAY,QAAQ;AACzB,WAAO,MAAM,KAAK,cAAc,IAAI,QAAQ;AAAA,EAC9C;AAAA,EAEA,MAAM,YAAY,IAAsB,UAAoB,SAAuE;AACjI,SAAK,YAAY,aAAa;AAC9B,UAAM,eAAgC;AAAA,MACpC;AAAA,MAAU;AAAA,MAAI,QAAQ;AAAA,IACxB;AACA,WAAO,MAAM,KAAK,aAAa,cAAc,CAAC,GAAG,OAAO;AAAA,EAC1D;AAAA,EAEA,MAAM,WAA+B;AACnC,SAAK,YAAY,UAAU;AAC3B,WAAO,MAAM,KAAK,gBAAgB;AAAA,EACpC;AAAA,EAEA,MAAM,kBAAsC;AAC1C,WAAO,CAAC,IAAI,MAAM,KAAK,sBAAsB,GAAG,IAAI,SAAO,IAAI,OAAO,GAAG,IAAI,MAAM,KAAK,uBAAuB,GAAG,IAAI,SAAO,IAAI,OAAO,CAAC;AAAA,EAC3I;AAAA,EAEA,MAAM,cAAc,SAAuE;AACzF,SAAK,YAAY,eAAe;AAChC,UAAM,eAAkC,EAAE,QAAQ,wBAAwB;AAC1E,WAAO,MAAM,KAAK,aAAa,cAAc,CAAC,GAAG,OAAO;AAAA,EAC1D;AAAA,EAEA,MAAM,QAAQ,IAAqE;AACjF,SAAK,YAAY,SAAS;AAC1B,WAAO,MAAM,KAAK,eAAe,EAAE;AAAA,EACrC;AAAA,EAEA,MAAM,aAAa,IAAsB,SAA2E;AAClH,UAAM,eAAiC,EAAE,IAAI,QAAQ,uBAAuB;AAC5E,WAAO,MAAM,KAAK,aAAa,cAAc,CAAC,GAAG,OAAO;AAAA,EAC1D;AAAA,EAEA,MAAM,OAAO,IAAoD;AAC/D,SAAK,YAAY,QAAQ;AACzB,WAAO,MAAM,KAAK,cAAc,EAAE;AAAA,EACpC;AAAA,EAEA,MAAM,YAAY,IAAsB,SAAuE;AAC7G,SAAK,YAAY,aAAa;AAC9B,UAAM,eAAgC,EAAE,IAAI,QAAQ,sBAAsB;AAC1E,WAAO,MAAM,KAAK,aAAa,cAAc,CAAC,GAAG,OAAO;AAAA,EAC1D;AAAA,EAEA,MAAe,SAAS,WAAW,IAAI,kBAA6B,CAAC,GAAmC;AACtG,WAAO,MAAM,KAAK,gBAAgB,UAAU,eAAe;AAAA,EAC7D;AAAA,EAEA,MAAe,kBAA6C;AAC1D,WAAO,MAAM,KAAK,uBAAuB;AAAA,EAC3C;AAAA,EAEA,MAAe,iBAA4C;AACzD,WAAO,MAAM,KAAK,sBAAsB;AAAA,EAC1C;AAAA,EAEA,MAAM,aAAiC;AACrC,SAAK,YAAY,YAAY;AAC7B,WAAO,MAAM,KAAK,kBAAkB;AAAA,EACtC;AAAA,EAEA,MAAM,gBAAgB,SAAuE;AAC3F,SAAK,YAAY,iBAAiB;AAClC,UAAM,eAAoC,EAAE,QAAQ,0BAA0B;AAC9E,WAAO,MAAM,KAAK,aAAa,cAAc,CAAC,GAAG,OAAO;AAAA,EAC1D;AAAA,EAEA,MAAgB,uBAAuB,WAAW,GAA8B;AAC9E,YAAQ,OAAO,KAAK,eAAe,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,SAAO,IAAI,YAAY,KAAK,OAAO;AAAA,EAC1G;AAAA,EAEA,MAAgB,sBAAsB,WAAW,GAA8B;AAC7E,YAAQ,OAAO,KAAK,aAAa,QAAQ,KAAK,EAAE,WAAW,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,SAAO,IAAI,YAAY,KAAK,OAAO;AAAA,EACnI;AAAA,EAEA,MAAyB,yBAAyB,WAAW,IAAwB;AACnF,UAAM,YAAY,MAAM,KAAK,sBAAsB,QAAQ;AAE3D,UAAM,oBAAoB,UAAU,IAAI,SAAO,IAAI,eAA+B,EAAE,QAAQ,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,IAAI,QAAQ,CAAC,EAAE,MAAM,CAAC;AAErJ,WAAO,CAAC,GAAI,MAAM,MAAM,yBAAyB,QAAQ,GAAI,GAAG,iBAAiB;AAAA,EACnF;AAAA,EAEA,MAAyB,gBAAgB,WAAW,IAAI,kBAA6B,CAAC,GAAmC;AACvH,UAAM,eAAe,KAAK,iBAAiB,IAAI,QAAQ;AACvD,QAAI,cAAc;AAChB,aAAO;AAAA,IACT;AAEA,UAAM,WAAgC,EAAE,GAAI,MAAM,MAAM,gBAAgB,UAAU,eAAe,GAAI,QAAQ,0BAA0B;AACvI,UAAM,qBAAqB,CAAC,GAAG,iBAAiB,KAAK,OAAO;AAE5D,UAAM,gBAAgB,CAAC,QAAwB,IAAI,YAAY,KAAK,WAAW,CAAC,gBAAgB,SAAS,IAAI,OAAO;AACpH,UAAM,aAAa,CAAC,QAAwB,IAAI,SAAS,WAAW,GAAG,kBAAkB;AAEzF,UAAM,iBAAiB,MAAM,KAAK,eAAe;AACjD,UAAM,wBAAwB,MAAM,QAAQ,IAAI,eAAe,OAAO,aAAa,EAAE,IAAI,UAAU,CAAC;AACpG,QAAI,sBAAsB,SAAS,GAAG;AACpC,eAAS,UAAU,SAAS,WAAW,CAAC;AACxC,eAAS,QAAQ,SAAS;AAAA,IAC5B;AAEA,SAAK,iBAAiB,IAAI,UAAU,QAAQ;AAE5C,WAAO;AAAA,EACT;AAAA,EAEA,MAAyB,aACvB,OACA,UACA,aACmC;AACnC,UAAM,UAAU,MAAM,yBAAyB,WAAwB,OAAO,QAAQ;AACtF,UAAM,eAAe,MAAM,QAAQ,SAAS;AAC5C,aAAS,MAAM,KAAK,UAAU,OAAO,UAAU,WAAW,GAAG,MAAM,iDAAiD;AACpH,UAAM,iBAA4B,CAAC;AACnC,YAAQ,aAAa,QAAQ;AAAA,MAC3B,KAAK,uBAAuB;AAC1B,cAAM,UAAU,MAAM,KAAK,cAAc,aAAa,IAAI,aAAa,QAAQ;AAC/E,YAAI,SAAS;AACX,gBAAM,UAAU,MAAM,IAAI,eAA+B,EAAE,QAAQ,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM;AAC9G,yBAAe,KAAK,OAAO;AAAA,QAC7B;AACA;AAAA,MACF;AAAA,MACA,KAAK,wBAAwB;AAC3B,cAAM,SAAS,MAAM,KAAK,eAAe,aAAa,EAAE;AACxD,YAAI,QAAQ;AACV,gBAAM,UAAU,MAAM,IAAI,eAAmC,EAAE,QAAQ,yBAAyB,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM;AACxH,yBAAe,KAAK,OAAO;AAAA,QAC7B;AACA;AAAA,MACF;AAAA,MACA,KAAK,uBAAuB;AAC1B,cAAM,UAAU,MAAM,KAAK,cAAc,aAAa,EAAE;AACxD,YAAI,SAAS;AACX,gBAAM,UAAU,MAAM,IAAI,eAA+B,EAAE,QAAQ,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM;AAC9G,yBAAe,KAAK,OAAO;AAAA,QAC7B;AACA;AAAA,MACF;AAAA,MACA,KAAK,yBAAyB;AAC5B,cAAM,YAAY,MAAM,KAAK,gBAAgB;AAC7C,mBAAW,WAAW,WAAW;AAC/B,gBAAM,UAAU,MAAM,IAAI,eAA+B,EAAE,QAAQ,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM;AAC9G,yBAAe,KAAK,OAAO;AAAA,QAC7B;AACA;AAAA,MACF;AAAA,MACA,KAAK,2BAA2B;AAC9B,cAAM,YAAY,MAAM,KAAK,kBAAkB;AAC/C,mBAAW,WAAW,WAAW;AAC/B,gBAAM,UAAU,MAAM,IAAI,eAA+B,EAAE,QAAQ,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM;AAC9G,yBAAe,KAAK,OAAO;AAAA,QAC7B;AACA;AAAA,MACF;AAAA,MACA,SAAS;AACP,eAAO,MAAM,MAAM,aAAa,OAAO,QAAQ;AAAA,MACjD;AAAA,IACF;AACA,WAAO;AAAA,EACT;AASF;;;AC1PA,SAAS,sBAAsB;AAExB,IAAM,yBAAyB,OAAO,MAAoB,WAAW,MAAiC;AAC3G,QAAM,iBAAiB,WAAW;AAClC,QAAM,OAAyB,CAAC;AAChC,QAAM,iBAAiB,MAAM,KAAK,gBAAgB;AAClD,OAAK,KAAK,GAAG,cAAc;AAE3B,MAAI,iBAAiB,GAAG;AACtB,UAAM,QAAQ;AAAA,MACZ,eAAe,IAAI,OAAO,QAAQ;AAChC,cAAMA,QAAO,eAAe,GAAG;AAC/B,YAAIA,OAAM;AACR,gBAAM,WAAW,MAAM,uBAAuBA,OAAM,cAAc;AAClE,eAAK,KAAK,GAAG,QAAQ;AAAA,QACvB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO;AACT;;;ACpBA,SAAS,kBAAAC,uBAAsB;AAExB,IAAM,wBAAwB,OAAO,MAAoB,WAAW,MAAiC;AAC1G,QAAM,iBAAiB,WAAW;AAClC,QAAM,OAAyB,CAAC;AAChC,QAAM,iBAAiB,MAAM,KAAK,eAAe;AACjD,OAAK,KAAK,GAAG,cAAc;AAE3B,MAAI,iBAAiB,GAAG;AACtB,UAAM,QAAQ;AAAA,MACZ,eAAe,IAAI,OAAO,QAAQ;AAChC,cAAMC,QAAOD,gBAAe,GAAG;AAC/B,YAAIC,OAAM;AACR,gBAAM,WAAW,MAAM,sBAAsBA,OAAM,cAAc;AACjE,eAAK,KAAK,GAAG,QAAQ;AAAA,QACvB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO;AACT;;;ACnBO,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;","names":["node","asNodeInstance","node"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/node-abstract",
3
- "version": "3.6.9",
3
+ "version": "3.6.11",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -29,24 +29,24 @@
29
29
  "module": "dist/neutral/index.mjs",
30
30
  "types": "dist/neutral/index.d.ts",
31
31
  "dependencies": {
32
- "@xylabs/assert": "^4.4.34",
33
- "@xylabs/hex": "^4.4.34",
34
- "@xylabs/object": "^4.4.34",
35
- "@xylabs/promise": "^4.4.34",
36
- "@xyo-network/account-model": "^3.6.9",
37
- "@xyo-network/boundwitness-model": "^3.6.9",
38
- "@xyo-network/boundwitness-wrapper": "^3.6.9",
39
- "@xyo-network/manifest-model": "^3.6.9",
40
- "@xyo-network/module-abstract": "^3.6.9",
41
- "@xyo-network/module-model": "^3.6.9",
42
- "@xyo-network/node-model": "^3.6.9",
43
- "@xyo-network/payload-builder": "^3.6.9",
44
- "@xyo-network/payload-model": "^3.6.9"
32
+ "@xylabs/assert": "^4.5.1",
33
+ "@xylabs/hex": "^4.5.1",
34
+ "@xylabs/object": "^4.5.1",
35
+ "@xylabs/promise": "^4.5.1",
36
+ "@xyo-network/account-model": "^3.6.11",
37
+ "@xyo-network/boundwitness-model": "^3.6.11",
38
+ "@xyo-network/boundwitness-wrapper": "^3.6.11",
39
+ "@xyo-network/manifest-model": "^3.6.11",
40
+ "@xyo-network/module-abstract": "^3.6.11",
41
+ "@xyo-network/module-model": "^3.6.11",
42
+ "@xyo-network/node-model": "^3.6.11",
43
+ "@xyo-network/payload-builder": "^3.6.11",
44
+ "@xyo-network/payload-model": "^3.6.11"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@xylabs/ts-scripts-yarn3": "^4.2.6",
48
48
  "@xylabs/tsconfig": "^4.2.6",
49
- "typescript": "^5.7.2"
49
+ "typescript": "^5.7.3"
50
50
  },
51
51
  "publishConfig": {
52
52
  "access": "public"