@xyo-network/manifest 2.63.13 → 2.64.0

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.
@@ -8,54 +8,53 @@ export class ManifestWrapper extends PayloadWrapper {
8
8
  super(payload);
9
9
  this.wallet = wallet;
10
10
  }
11
- dAppManifest(id) {
12
- return this.payload().dapps?.find((dapp) => dapp.id === id);
11
+ async loadModule(node, manifest, external = true, additionalCreatableModules) {
12
+ const collision = async (node, name, external) => {
13
+ const externalConflict = external ? (await (external ? node.upResolver : node.downResolver).resolve({ name: [name] })).length !== 0 : false;
14
+ return externalConflict || (await node.downResolver.resolve({ name: [name] })).length !== 0;
15
+ };
16
+ const creatableModules = { ...standardCreatableModules, ...additionalCreatableModules };
17
+ if (!(await collision(node, manifest.config.name, external))) {
18
+ if (manifest.config.language && manifest.config.language === 'javascript') {
19
+ assertEx((manifest.config.name && (await node.attach(manifest.config.name, external))) ??
20
+ (await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external)), `No module with config schema [${manifest.config.name}] registered`);
21
+ }
22
+ }
13
23
  }
14
- async loadDappFromId(node, id, additionalCreatableModules) {
15
- return await this.loadDappFromManifest(node, assertEx(this.dAppManifest(id), 'Failed to find dApp Manifest'), additionalCreatableModules);
24
+ async loadNodeFromIndex(node, index, additionalCreatableModules) {
25
+ return await this.loadNodeFromManifest(node, assertEx(this.nodeManifest(index), 'Failed to find Node Manifest'), additionalCreatableModules);
16
26
  }
17
- async loadDappFromManifest(node, manifest, additionalCreatableModules) {
27
+ async loadNodeFromManifest(node, manifest, additionalCreatableModules) {
18
28
  const nodeWrapper = NodeWrapper.wrap(node);
19
29
  // Load Private Modules
20
30
  await Promise.all(manifest.modules?.private?.map(async (moduleManifest) => {
21
- await this.loadModule(nodeWrapper, assertEx(this.resolveModuleManifest(moduleManifest), 'Unable to resolve module manifest'), false, additionalCreatableModules);
31
+ await this.loadModule(nodeWrapper, moduleManifest, false, additionalCreatableModules);
22
32
  }) ?? [() => null]);
23
33
  // Load Public Modules
24
34
  await Promise.all(manifest.modules?.public?.map(async (moduleManifest) => {
25
- await this.loadModule(nodeWrapper, assertEx(this.resolveModuleManifest(moduleManifest), 'Unable to resolve module manifest'), true, additionalCreatableModules);
35
+ await this.loadModule(nodeWrapper, moduleManifest, true, additionalCreatableModules);
26
36
  }) ?? [() => null]);
27
37
  return node;
28
38
  }
29
- async loadDapps(node, additionalCreatableModules) {
30
- return await Promise.all(this.payload().dapps?.map(async (dappManifest) => {
31
- const subNode = await MemoryNode.create();
39
+ async loadNodes(node, additionalCreatableModules) {
40
+ return await Promise.all(this.payload().nodes?.map(async (nodeManifest, index) => {
41
+ const subNode = await MemoryNode.create({ config: { schema: 'network.xyo.node.config' }, wallet: await this.wallet.derivePath(`${index}'`) });
32
42
  await node?.register(subNode);
33
- await this.loadDappFromManifest(subNode, dappManifest, additionalCreatableModules);
43
+ await this.loadNodeFromManifest(subNode, nodeManifest, additionalCreatableModules);
34
44
  return subNode;
35
45
  }));
36
46
  }
37
- async loadModule(node, manifest, external = true, additionalCreatableModules) {
38
- const creatableModules = { ...standardCreatableModules, ...additionalCreatableModules };
39
- const nodeWrapper = NodeWrapper.wrap(node);
40
- if (!manifest.name || (await (external ? nodeWrapper.downResolver : nodeWrapper.upResolver).resolve({ name: [manifest.name] })).length === 0) {
41
- if (manifest.language && manifest.language === 'javascript') {
42
- const id = manifest.id;
43
- assertEx((manifest.name && (await node.attach(manifest.name, external))) ??
44
- (id ? await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external) : undefined), `No module named [${manifest.name}] registered`);
45
- }
46
- }
47
+ nodeManifest(index) {
48
+ return this.payload().nodes?.[index];
47
49
  }
48
50
  async registerModule(node, manifest, creatableModules) {
49
- const creatableModule = assertEx(creatableModules?.[assertEx(manifest.id, 'Attempting to create a module without an id')], `No module with [${manifest.id}] id available for registration`);
50
- const module = await creatableModule.create(manifest.config ? { account: this.wallet, config: manifest.config } : undefined);
51
+ const creatableModule = assertEx(creatableModules?.[manifest.config.schema], `No module with [${manifest.config.schema}] config schema available for registration`);
52
+ const module = await creatableModule.create({
53
+ account: manifest.config.accountPath ? await this.wallet.derivePath(manifest.config.accountPath) : this.wallet,
54
+ config: assertEx(manifest.config, 'Missing config'),
55
+ });
51
56
  await node.module.register(module);
52
57
  return module;
53
58
  }
54
- resolveModuleManifest(manifest) {
55
- if (manifest?.name && !manifest.id) {
56
- return this.payload().modules?.[manifest.name];
57
- }
58
- return manifest;
59
- }
60
59
  }
61
60
  //# sourceMappingURL=ManifestWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManifestWrapper.js","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ManifestWrapper.js","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@ import { ModuleFactory } from '@xyo-network/module';
4
4
  import { MemoryNode } from '@xyo-network/node';
5
5
  import { MemorySentinel } from '@xyo-network/sentinel';
6
6
  export const standardCreatableModules = {
7
- 'network.xyo.archivist': MemoryArchivist,
8
- 'network.xyo.bridge.http': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),
9
- 'network.xyo.node': MemoryNode,
10
- 'network.xyo.sentinel': MemorySentinel,
7
+ 'network.xyo.archivist.config': MemoryArchivist,
8
+ 'network.xyo.bridge.http.config': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),
9
+ 'network.xyo.node.config': MemoryNode,
10
+ 'network.xyo.sentinel.config': MemorySentinel,
11
11
  };
12
12
  //# sourceMappingURL=ModuleFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleFactory.js","sourceRoot":"","sources":["../../src/ModuleFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA6B,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAA8B;IACjE,uBAAuB,EAAE,eAAe;IACxC,yBAAyB,EAAE,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;IAChH,kBAAkB,EAAE,UAAU;IAC9B,sBAAsB,EAAE,cAAc;CACvC,CAAA"}
1
+ {"version":3,"file":"ModuleFactory.js","sourceRoot":"","sources":["../../src/ModuleFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA6B,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAA8B;IACjE,8BAA8B,EAAE,eAAe;IAC/C,gCAAgC,EAAE,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;IACvH,yBAAyB,EAAE,UAAU;IACrC,6BAA6B,EAAE,cAAc;CAC9C,CAAA"}
@@ -2,16 +2,15 @@ import { CreatableModuleDictionary } from '@xyo-network/module';
2
2
  import { MemoryNode, NodeWrapper } from '@xyo-network/node';
3
3
  import { PayloadWrapper } from '@xyo-network/payload-wrapper';
4
4
  import { WalletInstance } from '@xyo-network/wallet-model';
5
- import { DappManifest, ManifestPayload, ModuleManifest } from './Payload';
5
+ import { ManifestPayload, ModuleManifest, NodeManifest } from './Payload';
6
6
  export declare class ManifestWrapper extends PayloadWrapper<ManifestPayload> {
7
7
  protected wallet: WalletInstance;
8
8
  constructor(payload: ManifestPayload, wallet: WalletInstance);
9
- dAppManifest(id: string): DappManifest | undefined;
10
- loadDappFromId(node: MemoryNode, id: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode<import("@xyo-network/node").MemoryNodeParams, import("@xyo-network/node").NodeModuleEventData>>;
11
- loadDappFromManifest(node: MemoryNode, manifest: DappManifest, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode<import("@xyo-network/node").MemoryNodeParams, import("@xyo-network/node").NodeModuleEventData>>;
12
- loadDapps(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode<import("@xyo-network/node").MemoryNodeParams, import("@xyo-network/node").NodeModuleEventData>[]>;
13
9
  loadModule(node: NodeWrapper<MemoryNode>, manifest: ModuleManifest, external?: boolean, additionalCreatableModules?: CreatableModuleDictionary): Promise<void>;
10
+ loadNodeFromIndex(node: MemoryNode, index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode<import("@xyo-network/node").MemoryNodeParams, import("@xyo-network/node").NodeModuleEventData>>;
11
+ loadNodeFromManifest(node: MemoryNode, manifest: NodeManifest, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode<import("@xyo-network/node").MemoryNodeParams, import("@xyo-network/node").NodeModuleEventData>>;
12
+ loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode<import("@xyo-network/node").MemoryNodeParams, import("@xyo-network/node").NodeModuleEventData>[]>;
13
+ nodeManifest(index: number): NodeManifest;
14
14
  registerModule(node: NodeWrapper<MemoryNode>, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<import("@xyo-network/module").Module>;
15
- resolveModuleManifest(manifest?: ModuleManifest): ModuleManifest | undefined;
16
15
  }
17
16
  //# sourceMappingURL=ManifestWrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG1D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEzE,qBAAa,eAAgB,SAAQ,cAAc,CAAC,eAAe,CAAC;IAC5B,SAAS,CAAC,MAAM,EAAE,cAAc;gBAA1D,OAAO,EAAE,eAAe,EAAY,MAAM,EAAE,cAAc;IAItE,YAAY,CAAC,EAAE,EAAE,MAAM;IAIjB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB;IAInG,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,yBAAyB;IA6BrH,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,yBAAyB;IAWnF,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,UAAO,EAAE,0BAA0B,CAAC,EAAE,yBAAyB;IAe3I,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,yBAAyB;IAW1H,qBAAqB,CAAC,QAAQ,CAAC,EAAE,cAAc;CAMhD"}
1
+ {"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG1D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAEzE,qBAAa,eAAgB,SAAQ,cAAc,CAAC,eAAe,CAAC;IAC5B,SAAS,CAAC,MAAM,EAAE,cAAc;gBAA1D,OAAO,EAAE,eAAe,EAAY,MAAM,EAAE,cAAc;IAIhE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,UAAO,EAAE,0BAA0B,CAAC,EAAE,yBAAyB;IAkB3I,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB;IAIzG,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,yBAAyB;IAmBrH,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,yBAAyB;IAWzF,YAAY,CAAC,KAAK,EAAE,MAAM;IAIpB,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,yBAAyB;CAa3H"}
@@ -4,24 +4,27 @@ export type ManifestPayloadSchema = 'network.xyo.manifest';
4
4
  export declare const ManifestPayloadSchema: ManifestPayloadSchema;
5
5
  export interface Manifest {
6
6
  description?: string;
7
- id?: string;
8
- name?: string;
9
7
  }
10
- export interface DappManifest extends Manifest {
8
+ export type ConfigManifest = ModuleConfig<{
9
+ schema: string;
10
+ }> & {
11
+ accountPath?: string;
12
+ features?: string[];
13
+ language?: string;
14
+ name: string;
15
+ os?: string;
16
+ };
17
+ export interface NodeManifest extends ModuleManifest {
11
18
  modules?: {
12
19
  private?: ModuleManifest[];
13
20
  public?: ModuleManifest[];
14
21
  };
15
22
  }
16
23
  export interface ModuleManifest extends Manifest {
17
- accountPath?: string;
18
- config?: ModuleConfig;
19
- features?: string[];
20
- language?: string;
21
- os?: string;
24
+ config: ConfigManifest;
22
25
  }
23
26
  export type ManifestPayload = Payload<{
24
- dapps: DappManifest[];
25
27
  modules?: Record<string, ModuleManifest>;
28
+ nodes: NodeManifest[];
26
29
  }, ManifestPayloadSchema>;
27
30
  //# sourceMappingURL=Payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,CAAA;AAC1D,eAAO,MAAM,qBAAqB,EAAE,qBAA8C,CAAA;AAElF,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;QAC1B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;KAC1B,CAAA;CACF;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,CACnC;IACE,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACzC,EACD,qBAAqB,CACtB,CAAA"}
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,CAAA;AAC1D,eAAO,MAAM,qBAAqB,EAAE,qBAA8C,CAAA;AAElF,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;QAC1B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;KAC1B,CAAA;CACF;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,MAAM,EAAE,cAAc,CAAA;CACvB;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,CACnC;IACE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACxC,KAAK,EAAE,YAAY,EAAE,CAAA;CACtB,EACD,qBAAqB,CACtB,CAAA"}
package/package.json CHANGED
@@ -13,15 +13,15 @@
13
13
  "docs": "dist/docs.json",
14
14
  "dependencies": {
15
15
  "@xylabs/assert": "^2.9.3",
16
- "@xyo-network/http-bridge": "^2.63.13",
17
- "@xyo-network/memory-archivist": "^2.63.13",
18
- "@xyo-network/module": "^2.63.13",
19
- "@xyo-network/module-model": "^2.63.13",
20
- "@xyo-network/node": "^2.63.13",
21
- "@xyo-network/payload-model": "^2.63.13",
22
- "@xyo-network/payload-wrapper": "^2.63.13",
23
- "@xyo-network/sentinel": "^2.63.13",
24
- "@xyo-network/wallet-model": "^2.63.13"
16
+ "@xyo-network/http-bridge": "^2.64.0",
17
+ "@xyo-network/memory-archivist": "^2.64.0",
18
+ "@xyo-network/module": "^2.64.0",
19
+ "@xyo-network/module-model": "^2.64.0",
20
+ "@xyo-network/node": "^2.64.0",
21
+ "@xyo-network/payload-model": "^2.64.0",
22
+ "@xyo-network/payload-wrapper": "^2.64.0",
23
+ "@xyo-network/sentinel": "^2.64.0",
24
+ "@xyo-network/wallet-model": "^2.64.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@xylabs/ts-scripts-yarn3": "^2.17.17",
@@ -43,7 +43,9 @@
43
43
  "./dist/docs.json": {
44
44
  "default": "./dist/docs.json"
45
45
  },
46
- "./package.json": "./package.json"
46
+ "./package.json": "./package.json",
47
+ "./schema.json": "./src/schema.json",
48
+ "./schema": "./src/schema.json"
47
49
  },
48
50
  "main": "dist/cjs/index.js",
49
51
  "module": "dist/esm/index.js",
@@ -59,5 +61,5 @@
59
61
  },
60
62
  "sideEffects": false,
61
63
  "types": "dist/types/index.d.ts",
62
- "version": "2.63.13"
64
+ "version": "2.64.0"
63
65
  }
@@ -1,95 +1,84 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { CreatableModuleDictionary } from '@xyo-network/module'
3
- import { MemoryNode, NodeWrapper } from '@xyo-network/node'
3
+ import { MemoryNode, NodeModule, NodeWrapper } from '@xyo-network/node'
4
4
  import { PayloadWrapper } from '@xyo-network/payload-wrapper'
5
5
  import { WalletInstance } from '@xyo-network/wallet-model'
6
6
 
7
7
  import { standardCreatableModules } from './ModuleFactory'
8
- import { DappManifest, ManifestPayload, ModuleManifest } from './Payload'
8
+ import { ManifestPayload, ModuleManifest, NodeManifest } from './Payload'
9
9
 
10
10
  export class ManifestWrapper extends PayloadWrapper<ManifestPayload> {
11
11
  constructor(payload: ManifestPayload, protected wallet: WalletInstance) {
12
12
  super(payload)
13
13
  }
14
14
 
15
- dAppManifest(id: string) {
16
- return this.payload().dapps?.find((dapp) => dapp.id === id)
15
+ async loadModule(node: NodeWrapper<MemoryNode>, manifest: ModuleManifest, external = true, additionalCreatableModules?: CreatableModuleDictionary) {
16
+ const collision = async (node: NodeModule, name: string, external: boolean) => {
17
+ const externalConflict = external ? (await (external ? node.upResolver : node.downResolver).resolve({ name: [name] })).length !== 0 : false
18
+ return externalConflict || (await node.downResolver.resolve({ name: [name] })).length !== 0
19
+ }
20
+
21
+ const creatableModules = { ...standardCreatableModules, ...additionalCreatableModules }
22
+ if (!(await collision(node, manifest.config.name, external))) {
23
+ if (manifest.config.language && manifest.config.language === 'javascript') {
24
+ assertEx(
25
+ (manifest.config.name && (await node.attach(manifest.config.name, external))) ??
26
+ (await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external)),
27
+ `No module with config schema [${manifest.config.name}] registered`,
28
+ )
29
+ }
30
+ }
17
31
  }
18
32
 
19
- async loadDappFromId(node: MemoryNode, id: string, additionalCreatableModules?: CreatableModuleDictionary) {
20
- return await this.loadDappFromManifest(node, assertEx(this.dAppManifest(id), 'Failed to find dApp Manifest'), additionalCreatableModules)
33
+ async loadNodeFromIndex(node: MemoryNode, index: number, additionalCreatableModules?: CreatableModuleDictionary) {
34
+ return await this.loadNodeFromManifest(node, assertEx(this.nodeManifest(index), 'Failed to find Node Manifest'), additionalCreatableModules)
21
35
  }
22
36
 
23
- async loadDappFromManifest(node: MemoryNode, manifest: DappManifest, additionalCreatableModules?: CreatableModuleDictionary) {
37
+ async loadNodeFromManifest(node: MemoryNode, manifest: NodeManifest, additionalCreatableModules?: CreatableModuleDictionary) {
24
38
  const nodeWrapper = NodeWrapper.wrap<NodeWrapper<MemoryNode>>(node)
25
39
  // Load Private Modules
26
40
  await Promise.all(
27
41
  manifest.modules?.private?.map(async (moduleManifest) => {
28
- await this.loadModule(
29
- nodeWrapper,
30
- assertEx(this.resolveModuleManifest(moduleManifest), 'Unable to resolve module manifest'),
31
- false,
32
- additionalCreatableModules,
33
- )
42
+ await this.loadModule(nodeWrapper, moduleManifest, false, additionalCreatableModules)
34
43
  }) ?? [() => null],
35
44
  )
36
45
 
37
46
  // Load Public Modules
38
47
  await Promise.all(
39
48
  manifest.modules?.public?.map(async (moduleManifest) => {
40
- await this.loadModule(
41
- nodeWrapper,
42
- assertEx(this.resolveModuleManifest(moduleManifest), 'Unable to resolve module manifest'),
43
- true,
44
- additionalCreatableModules,
45
- )
49
+ await this.loadModule(nodeWrapper, moduleManifest, true, additionalCreatableModules)
46
50
  }) ?? [() => null],
47
51
  )
48
52
 
49
53
  return node
50
54
  }
51
55
 
52
- async loadDapps(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary) {
56
+ async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary) {
53
57
  return await Promise.all(
54
- this.payload().dapps?.map(async (dappManifest) => {
55
- const subNode = await MemoryNode.create()
58
+ this.payload().nodes?.map(async (nodeManifest, index) => {
59
+ const subNode = await MemoryNode.create({ config: { schema: 'network.xyo.node.config' }, wallet: await this.wallet.derivePath(`${index}'`) })
56
60
  await node?.register(subNode)
57
- await this.loadDappFromManifest(subNode, dappManifest, additionalCreatableModules)
61
+ await this.loadNodeFromManifest(subNode, nodeManifest, additionalCreatableModules)
58
62
  return subNode
59
63
  }),
60
64
  )
61
65
  }
62
66
 
63
- async loadModule(node: NodeWrapper<MemoryNode>, manifest: ModuleManifest, external = true, additionalCreatableModules?: CreatableModuleDictionary) {
64
- const creatableModules = { ...standardCreatableModules, ...additionalCreatableModules }
65
- const nodeWrapper = NodeWrapper.wrap(node)
66
- if (!manifest.name || (await (external ? nodeWrapper.downResolver : nodeWrapper.upResolver).resolve({ name: [manifest.name] })).length === 0) {
67
- if (manifest.language && manifest.language === 'javascript') {
68
- const id = manifest.id
69
- assertEx(
70
- (manifest.name && (await node.attach(manifest.name, external))) ??
71
- (id ? await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external) : undefined),
72
- `No module named [${manifest.name}] registered`,
73
- )
74
- }
75
- }
67
+ nodeManifest(index: number) {
68
+ return this.payload().nodes?.[index]
76
69
  }
77
70
 
78
71
  async registerModule(node: NodeWrapper<MemoryNode>, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary) {
79
72
  const creatableModule = assertEx(
80
- creatableModules?.[assertEx(manifest.id, 'Attempting to create a module without an id')],
81
- `No module with [${manifest.id}] id available for registration`,
73
+ creatableModules?.[manifest.config.schema],
74
+ `No module with [${manifest.config.schema}] config schema available for registration`,
82
75
  )
83
76
 
84
- const module = await creatableModule.create(manifest.config ? { account: this.wallet, config: manifest.config } : undefined)
77
+ const module = await creatableModule.create({
78
+ account: manifest.config.accountPath ? await this.wallet.derivePath(manifest.config.accountPath) : this.wallet,
79
+ config: assertEx(manifest.config, 'Missing config'),
80
+ })
85
81
  await node.module.register(module)
86
82
  return module
87
83
  }
88
-
89
- resolveModuleManifest(manifest?: ModuleManifest) {
90
- if (manifest?.name && !manifest.id) {
91
- return this.payload().modules?.[manifest.name]
92
- }
93
- return manifest
94
- }
95
84
  }
@@ -5,8 +5,8 @@ import { MemoryNode } from '@xyo-network/node'
5
5
  import { MemorySentinel } from '@xyo-network/sentinel'
6
6
 
7
7
  export const standardCreatableModules: CreatableModuleDictionary = {
8
- 'network.xyo.archivist': MemoryArchivist,
9
- 'network.xyo.bridge.http': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),
10
- 'network.xyo.node': MemoryNode,
11
- 'network.xyo.sentinel': MemorySentinel,
8
+ 'network.xyo.archivist.config': MemoryArchivist,
9
+ 'network.xyo.bridge.http.config': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),
10
+ 'network.xyo.node.config': MemoryNode,
11
+ 'network.xyo.sentinel.config': MemorySentinel,
12
12
  }
package/src/Payload.ts CHANGED
@@ -6,11 +6,17 @@ export const ManifestPayloadSchema: ManifestPayloadSchema = 'network.xyo.manifes
6
6
 
7
7
  export interface Manifest {
8
8
  description?: string
9
- id?: string
10
- name?: string
11
9
  }
12
10
 
13
- export interface DappManifest extends Manifest {
11
+ export type ConfigManifest = ModuleConfig<{ schema: string }> & {
12
+ accountPath?: string
13
+ features?: string[]
14
+ language?: string
15
+ name: string
16
+ os?: string
17
+ }
18
+
19
+ export interface NodeManifest extends ModuleManifest {
14
20
  modules?: {
15
21
  private?: ModuleManifest[]
16
22
  public?: ModuleManifest[]
@@ -18,17 +24,13 @@ export interface DappManifest extends Manifest {
18
24
  }
19
25
 
20
26
  export interface ModuleManifest extends Manifest {
21
- accountPath?: string
22
- config?: ModuleConfig
23
- features?: string[]
24
- language?: string
25
- os?: string
27
+ config: ConfigManifest
26
28
  }
27
29
 
28
30
  export type ManifestPayload = Payload<
29
31
  {
30
- dapps: DappManifest[]
31
32
  modules?: Record<string, ModuleManifest>
33
+ nodes: NodeManifest[]
32
34
  },
33
35
  ManifestPayloadSchema
34
36
  >