@xyo-network/manifest 2.78.5 → 2.79.1
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.
- package/dist/browser/ManifestWrapper.d.cts +3 -1
- package/dist/browser/ManifestWrapper.d.cts.map +1 -1
- package/dist/browser/ManifestWrapper.d.mts +3 -1
- package/dist/browser/ManifestWrapper.d.mts.map +1 -1
- package/dist/browser/ManifestWrapper.d.ts +3 -1
- package/dist/browser/ManifestWrapper.d.ts.map +1 -1
- package/dist/browser/index.cjs +23 -3
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +23 -3
- package/dist/browser/index.js.map +1 -1
- package/dist/node/ManifestWrapper.d.cts +3 -1
- package/dist/node/ManifestWrapper.d.cts.map +1 -1
- package/dist/node/ManifestWrapper.d.mts +3 -1
- package/dist/node/ManifestWrapper.d.mts.map +1 -1
- package/dist/node/ManifestWrapper.d.ts +3 -1
- package/dist/node/ManifestWrapper.d.ts.map +1 -1
- package/dist/node/index.js +23 -3
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.mjs +23 -3
- package/dist/node/index.mjs.map +1 -1
- package/package.json +12 -12
- package/src/ManifestWrapper.ts +24 -1
- package/src/spec/simple-node-child.json +49 -0
- package/src/spec/simple-node-inline-manifest.json +0 -4
- package/src/spec/simple-node-parent.json +49 -0
|
@@ -6,7 +6,9 @@ import { WalletInstance } from '@xyo-network/wallet-model';
|
|
|
6
6
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
7
|
protected readonly wallet: WalletInstance;
|
|
8
8
|
protected readonly locator: ModuleFactoryLocator;
|
|
9
|
-
|
|
9
|
+
protected readonly publicChildren: PackageManifestPayload[];
|
|
10
|
+
protected readonly privateChildren: PackageManifestPayload[];
|
|
11
|
+
constructor(payload: PackageManifestPayload, wallet: WalletInstance, locator?: ModuleFactoryLocator, publicChildren?: PackageManifestPayload[], privateChildren?: PackageManifestPayload[]);
|
|
10
12
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>;
|
|
11
13
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleDictionary): Promise<void>;
|
|
12
14
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IAChD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE;IAC3D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,EAAE;gBAJ5D,OAAO,EAAE,sBAAsB,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,oBAAmD,EAC5D,cAAc,GAAE,sBAAsB,EAAO,EAC7C,eAAe,GAAE,sBAAsB,EAAO;IAK7D,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9I,UAAU,CACd,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,OAAO,EACjB,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,IAAI,CAAC;IA4BV,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC3G,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IAO7G,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IACrI,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6CvI,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACzG,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAajH,YAAY,CAAC,KAAK,EAAE,MAAM;IAIpB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/H,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;CAqBxI"}
|
|
@@ -6,7 +6,9 @@ import { WalletInstance } from '@xyo-network/wallet-model';
|
|
|
6
6
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
7
|
protected readonly wallet: WalletInstance;
|
|
8
8
|
protected readonly locator: ModuleFactoryLocator;
|
|
9
|
-
|
|
9
|
+
protected readonly publicChildren: PackageManifestPayload[];
|
|
10
|
+
protected readonly privateChildren: PackageManifestPayload[];
|
|
11
|
+
constructor(payload: PackageManifestPayload, wallet: WalletInstance, locator?: ModuleFactoryLocator, publicChildren?: PackageManifestPayload[], privateChildren?: PackageManifestPayload[]);
|
|
10
12
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>;
|
|
11
13
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleDictionary): Promise<void>;
|
|
12
14
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IAChD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE;IAC3D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,EAAE;gBAJ5D,OAAO,EAAE,sBAAsB,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,oBAAmD,EAC5D,cAAc,GAAE,sBAAsB,EAAO,EAC7C,eAAe,GAAE,sBAAsB,EAAO;IAK7D,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9I,UAAU,CACd,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,OAAO,EACjB,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,IAAI,CAAC;IA4BV,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC3G,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IAO7G,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IACrI,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6CvI,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACzG,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAajH,YAAY,CAAC,KAAK,EAAE,MAAM;IAIpB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/H,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;CAqBxI"}
|
|
@@ -6,7 +6,9 @@ import { WalletInstance } from '@xyo-network/wallet-model';
|
|
|
6
6
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
7
|
protected readonly wallet: WalletInstance;
|
|
8
8
|
protected readonly locator: ModuleFactoryLocator;
|
|
9
|
-
|
|
9
|
+
protected readonly publicChildren: PackageManifestPayload[];
|
|
10
|
+
protected readonly privateChildren: PackageManifestPayload[];
|
|
11
|
+
constructor(payload: PackageManifestPayload, wallet: WalletInstance, locator?: ModuleFactoryLocator, publicChildren?: PackageManifestPayload[], privateChildren?: PackageManifestPayload[]);
|
|
10
12
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>;
|
|
11
13
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleDictionary): Promise<void>;
|
|
12
14
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IAChD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE;IAC3D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,EAAE;gBAJ5D,OAAO,EAAE,sBAAsB,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,oBAAmD,EAC5D,cAAc,GAAE,sBAAsB,EAAO,EAC7C,eAAe,GAAE,sBAAsB,EAAO;IAK7D,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9I,UAAU,CACd,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,OAAO,EACjB,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,IAAI,CAAC;IA4BV,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC3G,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IAO7G,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IACrI,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6CvI,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACzG,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAajH,YAAY,CAAC,KAAK,EAAE,MAAM;IAIpB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/H,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;CAqBxI"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -47,11 +47,13 @@ var standardCreatableModules = {
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
// src/ManifestWrapper.ts
|
|
50
|
-
var ManifestWrapper = class extends import_payload_wrapper.PayloadWrapper {
|
|
51
|
-
constructor(payload, wallet, locator = new import_module_model2.ModuleFactoryLocator({})) {
|
|
50
|
+
var ManifestWrapper = class _ManifestWrapper extends import_payload_wrapper.PayloadWrapper {
|
|
51
|
+
constructor(payload, wallet, locator = new import_module_model2.ModuleFactoryLocator({}), publicChildren = [], privateChildren = []) {
|
|
52
52
|
super(payload);
|
|
53
53
|
this.wallet = wallet;
|
|
54
54
|
this.locator = locator;
|
|
55
|
+
this.publicChildren = publicChildren;
|
|
56
|
+
this.privateChildren = privateChildren;
|
|
55
57
|
}
|
|
56
58
|
async loadModule(node, manifest, external = true, additionalCreatableModules) {
|
|
57
59
|
const collision = async (node2, name, external2) => {
|
|
@@ -89,12 +91,30 @@ var ManifestWrapper = class extends import_payload_wrapper.PayloadWrapper {
|
|
|
89
91
|
await this.loadModule(node, moduleManifest, true, registry);
|
|
90
92
|
}) ?? [];
|
|
91
93
|
await Promise.all([...privateModules, ...publicModules]);
|
|
94
|
+
await Promise.all(
|
|
95
|
+
this.privateChildren.map(async (child) => {
|
|
96
|
+
const wrapper = new _ManifestWrapper(child, this.wallet, this.locator);
|
|
97
|
+
const subNodes = await wrapper.loadNodes(node);
|
|
98
|
+
subNodes.forEach((subNode) => {
|
|
99
|
+
node.attach(subNode.address, false);
|
|
100
|
+
});
|
|
101
|
+
})
|
|
102
|
+
);
|
|
103
|
+
await Promise.all(
|
|
104
|
+
this.publicChildren.map(async (child) => {
|
|
105
|
+
const wrapper = new _ManifestWrapper(child, this.wallet, this.locator);
|
|
106
|
+
const subNodes = await wrapper.loadNodes(node);
|
|
107
|
+
subNodes.forEach((subNode) => {
|
|
108
|
+
node.attach(subNode.address, true);
|
|
109
|
+
});
|
|
110
|
+
})
|
|
111
|
+
);
|
|
92
112
|
return node;
|
|
93
113
|
}
|
|
94
114
|
async loadNodes(node, additionalCreatableModules) {
|
|
95
115
|
const registry = (0, import_module_model2.toCreatableModuleRegistry)(additionalCreatableModules ?? {});
|
|
96
116
|
const result = await Promise.all(
|
|
97
|
-
this.
|
|
117
|
+
this.jsonPayload().nodes?.map(async (nodeManifest, index) => {
|
|
98
118
|
const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry);
|
|
99
119
|
await node?.register(subNode);
|
|
100
120
|
return subNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/ManifestWrapper.ts","../../src/standardCreatableModules.ts"],"sourcesContent":["export * from './ManifestWrapper'\nexport * from './standardCreatableModules'\nexport * from '@xyo-network/manifest-model'\n","import { assertEx } from '@xylabs/assert'\nimport { Account } from '@xyo-network/account'\nimport { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n assignCreatableModuleRegistry,\n CreatableModuleDictionary,\n CreatableModuleRegistry,\n ModuleFactoryLocator,\n ModuleInstance,\n toCreatableModuleRegistry,\n} from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { standardCreatableModules } from './standardCreatableModules'\n\nexport class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {\n constructor(\n payload: PackageManifestPayload,\n protected readonly wallet: WalletInstance,\n protected readonly locator: ModuleFactoryLocator = new ModuleFactoryLocator({}),\n ) {\n super(payload)\n }\n\n async loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external: boolean,\n additionalCreatableModules?: CreatableModuleDictionary,\n ): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external = true,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<void> {\n const collision = async (node: NodeInstance, name: string, external: boolean) => {\n const externalConflict = external ? (await node.resolve({ name: [name] }, { direction: external ? 'all' : 'down' })).length !== 0 : false\n return externalConflict || (await node.resolve({ name: [name] }, { direction: 'down' })).length !== 0\n }\n\n const creatableModules = assignCreatableModuleRegistry(\n {},\n toCreatableModuleRegistry(standardCreatableModules),\n toCreatableModuleRegistry(additionalCreatableModules ?? {}),\n )\n if (!(await collision(node, manifest.config.name, external))) {\n if (manifest.config.language && manifest.config.language === 'javascript') {\n assertEx(\n (manifest.config.name && (await node.attach(manifest.config.name, external))) ??\n (await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external)),\n `No module with config schema [${manifest.config.name}] registered`,\n )\n }\n }\n }\n\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode> {\n const manifest = assertEx(this.nodeManifest(index), 'Failed to find Node Manifest')\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n return await this.loadNodeFromManifest(manifest, manifest.config.accountPath ?? `${index}'`, registry)\n }\n\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromManifest(\n manifest: NodeManifest,\n path?: string,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<MemoryNode> {\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const node = await MemoryNode.create({ account, config: manifest.config, wallet })\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n // Load Private Modules\n const privateModules =\n manifest.modules?.private?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, false, registry)\n }) ?? []\n // Load Public Modules\n const publicModules =\n manifest.modules?.public?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, true, registry)\n }) ?? []\n await Promise.all([...privateModules, ...publicModules])\n return node\n }\n\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode[]> {\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n const result = await Promise.all(\n this.payload().nodes?.map(async (nodeManifest, index) => {\n const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry)\n await node?.register(subNode)\n return subNode\n }),\n )\n return result\n }\n\n nodeManifest(index: number) {\n return this.payload().nodes?.[index]\n }\n\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n async registerModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n creatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<ModuleInstance> {\n const registry = toCreatableModuleRegistry(creatableModules ?? {})\n const creatableModule = new ModuleFactoryLocator(this.locator.registry)\n .registerMany(registry)\n .locate(manifest.config.schema, manifest.config.labels)\n const path = manifest.config.accountPath\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const module = await creatableModule.create({\n account,\n config: assertEx(manifest.config, 'Missing config'),\n wallet,\n })\n await node.register(module)\n return module\n }\n}\n","import { HttpBridge } from '@xyo-network/http-bridge'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\nimport { CreatableModuleDictionary, ModuleFactory } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel'\n\nexport const standardCreatableModules: CreatableModuleDictionary = {\n 'network.xyo.archivist.config': MemoryArchivist,\n 'network.xyo.bridge.http.config': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),\n 'network.xyo.node.config': MemoryNode,\n 'network.xyo.sentinel.config': MemorySentinel,\n}\n"],"mappings":"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","names":["import_module_model","import_node_memory","node","external","module"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/ManifestWrapper.ts","../../src/standardCreatableModules.ts"],"sourcesContent":["export * from './ManifestWrapper'\nexport * from './standardCreatableModules'\nexport * from '@xyo-network/manifest-model'\n","import { assertEx } from '@xylabs/assert'\nimport { Account } from '@xyo-network/account'\nimport { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n assignCreatableModuleRegistry,\n CreatableModuleDictionary,\n CreatableModuleRegistry,\n ModuleFactoryLocator,\n ModuleInstance,\n toCreatableModuleRegistry,\n} from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { standardCreatableModules } from './standardCreatableModules'\n\nexport class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {\n constructor(\n payload: PackageManifestPayload,\n protected readonly wallet: WalletInstance,\n protected readonly locator: ModuleFactoryLocator = new ModuleFactoryLocator({}),\n protected readonly publicChildren: PackageManifestPayload[] = [],\n protected readonly privateChildren: PackageManifestPayload[] = [],\n ) {\n super(payload)\n }\n\n async loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external: boolean,\n additionalCreatableModules?: CreatableModuleDictionary,\n ): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external = true,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<void> {\n const collision = async (node: NodeInstance, name: string, external: boolean) => {\n const externalConflict = external ? (await node.resolve({ name: [name] }, { direction: external ? 'all' : 'down' })).length !== 0 : false\n return externalConflict || (await node.resolve({ name: [name] }, { direction: 'down' })).length !== 0\n }\n\n const creatableModules = assignCreatableModuleRegistry(\n {},\n toCreatableModuleRegistry(standardCreatableModules),\n toCreatableModuleRegistry(additionalCreatableModules ?? {}),\n )\n if (!(await collision(node, manifest.config.name, external))) {\n if (manifest.config.language && manifest.config.language === 'javascript') {\n assertEx(\n (manifest.config.name && (await node.attach(manifest.config.name, external))) ??\n (await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external)),\n `No module with config schema [${manifest.config.name}] registered`,\n )\n }\n }\n }\n\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode> {\n const manifest = assertEx(this.nodeManifest(index), 'Failed to find Node Manifest')\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n return await this.loadNodeFromManifest(manifest, manifest.config.accountPath ?? `${index}'`, registry)\n }\n\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromManifest(\n manifest: NodeManifest,\n path?: string,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<MemoryNode> {\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const node = await MemoryNode.create({ account, config: manifest.config, wallet })\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n // Load Private Modules\n const privateModules =\n manifest.modules?.private?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, false, registry)\n }) ?? []\n // Load Public Modules\n const publicModules =\n manifest.modules?.public?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, true, registry)\n }) ?? []\n await Promise.all([...privateModules, ...publicModules])\n\n await Promise.all(\n this.privateChildren.map(async (child) => {\n const wrapper = new ManifestWrapper(child, this.wallet, this.locator)\n const subNodes = await wrapper.loadNodes(node)\n subNodes.forEach((subNode) => {\n node.attach(subNode.address, false)\n })\n }),\n )\n\n await Promise.all(\n this.publicChildren.map(async (child) => {\n const wrapper = new ManifestWrapper(child, this.wallet, this.locator)\n const subNodes = await wrapper.loadNodes(node)\n subNodes.forEach((subNode) => {\n node.attach(subNode.address, true)\n })\n }),\n )\n\n return node\n }\n\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode[]> {\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n const result = await Promise.all(\n this.jsonPayload().nodes?.map(async (nodeManifest, index) => {\n const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry)\n await node?.register(subNode)\n return subNode\n }),\n )\n return result\n }\n\n nodeManifest(index: number) {\n return this.payload().nodes?.[index]\n }\n\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n async registerModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n creatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<ModuleInstance> {\n const registry = toCreatableModuleRegistry(creatableModules ?? {})\n const creatableModule = new ModuleFactoryLocator(this.locator.registry)\n .registerMany(registry)\n .locate(manifest.config.schema, manifest.config.labels)\n const path = manifest.config.accountPath\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const module = await creatableModule.create({\n account,\n config: assertEx(manifest.config, 'Missing config'),\n wallet,\n })\n await node.register(module)\n return module\n }\n}\n","import { HttpBridge } from '@xyo-network/http-bridge'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\nimport { CreatableModuleDictionary, ModuleFactory } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel'\n\nexport const standardCreatableModules: CreatableModuleDictionary = {\n 'network.xyo.archivist.config': MemoryArchivist,\n 'network.xyo.bridge.http.config': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),\n 'network.xyo.node.config': MemoryNode,\n 'network.xyo.sentinel.config': MemorySentinel,\n}\n"],"mappings":"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","names":["import_module_model","import_node_memory","node","external","module"]}
|
package/dist/browser/index.js
CHANGED
|
@@ -23,11 +23,13 @@ var standardCreatableModules = {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
// src/ManifestWrapper.ts
|
|
26
|
-
var ManifestWrapper = class extends PayloadWrapper {
|
|
27
|
-
constructor(payload, wallet, locator = new ModuleFactoryLocator({})) {
|
|
26
|
+
var ManifestWrapper = class _ManifestWrapper extends PayloadWrapper {
|
|
27
|
+
constructor(payload, wallet, locator = new ModuleFactoryLocator({}), publicChildren = [], privateChildren = []) {
|
|
28
28
|
super(payload);
|
|
29
29
|
this.wallet = wallet;
|
|
30
30
|
this.locator = locator;
|
|
31
|
+
this.publicChildren = publicChildren;
|
|
32
|
+
this.privateChildren = privateChildren;
|
|
31
33
|
}
|
|
32
34
|
async loadModule(node, manifest, external = true, additionalCreatableModules) {
|
|
33
35
|
const collision = async (node2, name, external2) => {
|
|
@@ -65,12 +67,30 @@ var ManifestWrapper = class extends PayloadWrapper {
|
|
|
65
67
|
await this.loadModule(node, moduleManifest, true, registry);
|
|
66
68
|
}) ?? [];
|
|
67
69
|
await Promise.all([...privateModules, ...publicModules]);
|
|
70
|
+
await Promise.all(
|
|
71
|
+
this.privateChildren.map(async (child) => {
|
|
72
|
+
const wrapper = new _ManifestWrapper(child, this.wallet, this.locator);
|
|
73
|
+
const subNodes = await wrapper.loadNodes(node);
|
|
74
|
+
subNodes.forEach((subNode) => {
|
|
75
|
+
node.attach(subNode.address, false);
|
|
76
|
+
});
|
|
77
|
+
})
|
|
78
|
+
);
|
|
79
|
+
await Promise.all(
|
|
80
|
+
this.publicChildren.map(async (child) => {
|
|
81
|
+
const wrapper = new _ManifestWrapper(child, this.wallet, this.locator);
|
|
82
|
+
const subNodes = await wrapper.loadNodes(node);
|
|
83
|
+
subNodes.forEach((subNode) => {
|
|
84
|
+
node.attach(subNode.address, true);
|
|
85
|
+
});
|
|
86
|
+
})
|
|
87
|
+
);
|
|
68
88
|
return node;
|
|
69
89
|
}
|
|
70
90
|
async loadNodes(node, additionalCreatableModules) {
|
|
71
91
|
const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {});
|
|
72
92
|
const result = await Promise.all(
|
|
73
|
-
this.
|
|
93
|
+
this.jsonPayload().nodes?.map(async (nodeManifest, index) => {
|
|
74
94
|
const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry);
|
|
75
95
|
await node?.register(subNode);
|
|
76
96
|
return subNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ManifestWrapper.ts","../../src/standardCreatableModules.ts","../../src/index.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Account } from '@xyo-network/account'\nimport { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n assignCreatableModuleRegistry,\n CreatableModuleDictionary,\n CreatableModuleRegistry,\n ModuleFactoryLocator,\n ModuleInstance,\n toCreatableModuleRegistry,\n} from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { standardCreatableModules } from './standardCreatableModules'\n\nexport class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {\n constructor(\n payload: PackageManifestPayload,\n protected readonly wallet: WalletInstance,\n protected readonly locator: ModuleFactoryLocator = new ModuleFactoryLocator({}),\n ) {\n super(payload)\n }\n\n async loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external: boolean,\n additionalCreatableModules?: CreatableModuleDictionary,\n ): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external = true,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<void> {\n const collision = async (node: NodeInstance, name: string, external: boolean) => {\n const externalConflict = external ? (await node.resolve({ name: [name] }, { direction: external ? 'all' : 'down' })).length !== 0 : false\n return externalConflict || (await node.resolve({ name: [name] }, { direction: 'down' })).length !== 0\n }\n\n const creatableModules = assignCreatableModuleRegistry(\n {},\n toCreatableModuleRegistry(standardCreatableModules),\n toCreatableModuleRegistry(additionalCreatableModules ?? {}),\n )\n if (!(await collision(node, manifest.config.name, external))) {\n if (manifest.config.language && manifest.config.language === 'javascript') {\n assertEx(\n (manifest.config.name && (await node.attach(manifest.config.name, external))) ??\n (await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external)),\n `No module with config schema [${manifest.config.name}] registered`,\n )\n }\n }\n }\n\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode> {\n const manifest = assertEx(this.nodeManifest(index), 'Failed to find Node Manifest')\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n return await this.loadNodeFromManifest(manifest, manifest.config.accountPath ?? `${index}'`, registry)\n }\n\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromManifest(\n manifest: NodeManifest,\n path?: string,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<MemoryNode> {\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const node = await MemoryNode.create({ account, config: manifest.config, wallet })\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n // Load Private Modules\n const privateModules =\n manifest.modules?.private?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, false, registry)\n }) ?? []\n // Load Public Modules\n const publicModules =\n manifest.modules?.public?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, true, registry)\n }) ?? []\n await Promise.all([...privateModules, ...publicModules])\n return node\n }\n\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode[]> {\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n const result = await Promise.all(\n this.payload().nodes?.map(async (nodeManifest, index) => {\n const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry)\n await node?.register(subNode)\n return subNode\n }),\n )\n return result\n }\n\n nodeManifest(index: number) {\n return this.payload().nodes?.[index]\n }\n\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n async registerModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n creatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<ModuleInstance> {\n const registry = toCreatableModuleRegistry(creatableModules ?? {})\n const creatableModule = new ModuleFactoryLocator(this.locator.registry)\n .registerMany(registry)\n .locate(manifest.config.schema, manifest.config.labels)\n const path = manifest.config.accountPath\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const module = await creatableModule.create({\n account,\n config: assertEx(manifest.config, 'Missing config'),\n wallet,\n })\n await node.register(module)\n return module\n }\n}\n","import { HttpBridge } from '@xyo-network/http-bridge'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\nimport { CreatableModuleDictionary, ModuleFactory } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel'\n\nexport const standardCreatableModules: CreatableModuleDictionary = {\n 'network.xyo.archivist.config': MemoryArchivist,\n 'network.xyo.bridge.http.config': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),\n 'network.xyo.node.config': MemoryNode,\n 'network.xyo.sentinel.config': MemorySentinel,\n}\n","export * from './ManifestWrapper'\nexport * from './standardCreatableModules'\nexport * from '@xyo-network/manifest-model'\n"],"mappings":"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","names":["MemoryNode","node","external","MemoryNode"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ManifestWrapper.ts","../../src/standardCreatableModules.ts","../../src/index.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Account } from '@xyo-network/account'\nimport { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n assignCreatableModuleRegistry,\n CreatableModuleDictionary,\n CreatableModuleRegistry,\n ModuleFactoryLocator,\n ModuleInstance,\n toCreatableModuleRegistry,\n} from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { standardCreatableModules } from './standardCreatableModules'\n\nexport class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {\n constructor(\n payload: PackageManifestPayload,\n protected readonly wallet: WalletInstance,\n protected readonly locator: ModuleFactoryLocator = new ModuleFactoryLocator({}),\n protected readonly publicChildren: PackageManifestPayload[] = [],\n protected readonly privateChildren: PackageManifestPayload[] = [],\n ) {\n super(payload)\n }\n\n async loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external: boolean,\n additionalCreatableModules?: CreatableModuleDictionary,\n ): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external = true,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<void> {\n const collision = async (node: NodeInstance, name: string, external: boolean) => {\n const externalConflict = external ? (await node.resolve({ name: [name] }, { direction: external ? 'all' : 'down' })).length !== 0 : false\n return externalConflict || (await node.resolve({ name: [name] }, { direction: 'down' })).length !== 0\n }\n\n const creatableModules = assignCreatableModuleRegistry(\n {},\n toCreatableModuleRegistry(standardCreatableModules),\n toCreatableModuleRegistry(additionalCreatableModules ?? {}),\n )\n if (!(await collision(node, manifest.config.name, external))) {\n if (manifest.config.language && manifest.config.language === 'javascript') {\n assertEx(\n (manifest.config.name && (await node.attach(manifest.config.name, external))) ??\n (await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external)),\n `No module with config schema [${manifest.config.name}] registered`,\n )\n }\n }\n }\n\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode> {\n const manifest = assertEx(this.nodeManifest(index), 'Failed to find Node Manifest')\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n return await this.loadNodeFromManifest(manifest, manifest.config.accountPath ?? `${index}'`, registry)\n }\n\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromManifest(\n manifest: NodeManifest,\n path?: string,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<MemoryNode> {\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const node = await MemoryNode.create({ account, config: manifest.config, wallet })\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n // Load Private Modules\n const privateModules =\n manifest.modules?.private?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, false, registry)\n }) ?? []\n // Load Public Modules\n const publicModules =\n manifest.modules?.public?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, true, registry)\n }) ?? []\n await Promise.all([...privateModules, ...publicModules])\n\n await Promise.all(\n this.privateChildren.map(async (child) => {\n const wrapper = new ManifestWrapper(child, this.wallet, this.locator)\n const subNodes = await wrapper.loadNodes(node)\n subNodes.forEach((subNode) => {\n node.attach(subNode.address, false)\n })\n }),\n )\n\n await Promise.all(\n this.publicChildren.map(async (child) => {\n const wrapper = new ManifestWrapper(child, this.wallet, this.locator)\n const subNodes = await wrapper.loadNodes(node)\n subNodes.forEach((subNode) => {\n node.attach(subNode.address, true)\n })\n }),\n )\n\n return node\n }\n\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode[]> {\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n const result = await Promise.all(\n this.jsonPayload().nodes?.map(async (nodeManifest, index) => {\n const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry)\n await node?.register(subNode)\n return subNode\n }),\n )\n return result\n }\n\n nodeManifest(index: number) {\n return this.payload().nodes?.[index]\n }\n\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n async registerModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n creatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<ModuleInstance> {\n const registry = toCreatableModuleRegistry(creatableModules ?? {})\n const creatableModule = new ModuleFactoryLocator(this.locator.registry)\n .registerMany(registry)\n .locate(manifest.config.schema, manifest.config.labels)\n const path = manifest.config.accountPath\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const module = await creatableModule.create({\n account,\n config: assertEx(manifest.config, 'Missing config'),\n wallet,\n })\n await node.register(module)\n return module\n }\n}\n","import { HttpBridge } from '@xyo-network/http-bridge'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\nimport { CreatableModuleDictionary, ModuleFactory } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel'\n\nexport const standardCreatableModules: CreatableModuleDictionary = {\n 'network.xyo.archivist.config': MemoryArchivist,\n 'network.xyo.bridge.http.config': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),\n 'network.xyo.node.config': MemoryNode,\n 'network.xyo.sentinel.config': MemorySentinel,\n}\n","export * from './ManifestWrapper'\nexport * from './standardCreatableModules'\nexport * from '@xyo-network/manifest-model'\n"],"mappings":"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","names":["MemoryNode","node","external","MemoryNode"]}
|
|
@@ -6,7 +6,9 @@ import { WalletInstance } from '@xyo-network/wallet-model';
|
|
|
6
6
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
7
|
protected readonly wallet: WalletInstance;
|
|
8
8
|
protected readonly locator: ModuleFactoryLocator;
|
|
9
|
-
|
|
9
|
+
protected readonly publicChildren: PackageManifestPayload[];
|
|
10
|
+
protected readonly privateChildren: PackageManifestPayload[];
|
|
11
|
+
constructor(payload: PackageManifestPayload, wallet: WalletInstance, locator?: ModuleFactoryLocator, publicChildren?: PackageManifestPayload[], privateChildren?: PackageManifestPayload[]);
|
|
10
12
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>;
|
|
11
13
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleDictionary): Promise<void>;
|
|
12
14
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IAChD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE;IAC3D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,EAAE;gBAJ5D,OAAO,EAAE,sBAAsB,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,oBAAmD,EAC5D,cAAc,GAAE,sBAAsB,EAAO,EAC7C,eAAe,GAAE,sBAAsB,EAAO;IAK7D,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9I,UAAU,CACd,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,OAAO,EACjB,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,IAAI,CAAC;IA4BV,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC3G,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IAO7G,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IACrI,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6CvI,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACzG,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAajH,YAAY,CAAC,KAAK,EAAE,MAAM;IAIpB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/H,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;CAqBxI"}
|
|
@@ -6,7 +6,9 @@ import { WalletInstance } from '@xyo-network/wallet-model';
|
|
|
6
6
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
7
|
protected readonly wallet: WalletInstance;
|
|
8
8
|
protected readonly locator: ModuleFactoryLocator;
|
|
9
|
-
|
|
9
|
+
protected readonly publicChildren: PackageManifestPayload[];
|
|
10
|
+
protected readonly privateChildren: PackageManifestPayload[];
|
|
11
|
+
constructor(payload: PackageManifestPayload, wallet: WalletInstance, locator?: ModuleFactoryLocator, publicChildren?: PackageManifestPayload[], privateChildren?: PackageManifestPayload[]);
|
|
10
12
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>;
|
|
11
13
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleDictionary): Promise<void>;
|
|
12
14
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IAChD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE;IAC3D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,EAAE;gBAJ5D,OAAO,EAAE,sBAAsB,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,oBAAmD,EAC5D,cAAc,GAAE,sBAAsB,EAAO,EAC7C,eAAe,GAAE,sBAAsB,EAAO;IAK7D,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9I,UAAU,CACd,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,OAAO,EACjB,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,IAAI,CAAC;IA4BV,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC3G,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IAO7G,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IACrI,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6CvI,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACzG,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAajH,YAAY,CAAC,KAAK,EAAE,MAAM;IAIpB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/H,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;CAqBxI"}
|
|
@@ -6,7 +6,9 @@ import { WalletInstance } from '@xyo-network/wallet-model';
|
|
|
6
6
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
7
|
protected readonly wallet: WalletInstance;
|
|
8
8
|
protected readonly locator: ModuleFactoryLocator;
|
|
9
|
-
|
|
9
|
+
protected readonly publicChildren: PackageManifestPayload[];
|
|
10
|
+
protected readonly privateChildren: PackageManifestPayload[];
|
|
11
|
+
constructor(payload: PackageManifestPayload, wallet: WalletInstance, locator?: ModuleFactoryLocator, publicChildren?: PackageManifestPayload[], privateChildren?: PackageManifestPayload[]);
|
|
10
12
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>;
|
|
11
13
|
loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleDictionary): Promise<void>;
|
|
12
14
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"ManifestWrapper.d.ts","sourceRoot":"","sources":["../../src/ManifestWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAClG,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,qBAAa,eAAgB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IAChD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,EAAE;IAC3D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,EAAE;gBAJ5D,OAAO,EAAE,sBAAsB,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,oBAAmD,EAC5D,cAAc,GAAE,sBAAsB,EAAO,EAC7C,eAAe,GAAE,sBAAsB,EAAO;IAK7D,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9I,UAAU,CACd,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,OAAO,EACjB,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,IAAI,CAAC;IA4BV,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC3G,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IAO7G,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IACrI,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6CvI,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACzG,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAajH,YAAY,CAAC,KAAK,EAAE,MAAM;IAIpB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/H,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;CAqBxI"}
|
package/dist/node/index.js
CHANGED
|
@@ -47,11 +47,13 @@ var standardCreatableModules = {
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
// src/ManifestWrapper.ts
|
|
50
|
-
var ManifestWrapper = class extends import_payload_wrapper.PayloadWrapper {
|
|
51
|
-
constructor(payload, wallet, locator = new import_module_model2.ModuleFactoryLocator({})) {
|
|
50
|
+
var ManifestWrapper = class _ManifestWrapper extends import_payload_wrapper.PayloadWrapper {
|
|
51
|
+
constructor(payload, wallet, locator = new import_module_model2.ModuleFactoryLocator({}), publicChildren = [], privateChildren = []) {
|
|
52
52
|
super(payload);
|
|
53
53
|
this.wallet = wallet;
|
|
54
54
|
this.locator = locator;
|
|
55
|
+
this.publicChildren = publicChildren;
|
|
56
|
+
this.privateChildren = privateChildren;
|
|
55
57
|
}
|
|
56
58
|
async loadModule(node, manifest, external = true, additionalCreatableModules) {
|
|
57
59
|
const collision = async (node2, name, external2) => {
|
|
@@ -90,13 +92,31 @@ var ManifestWrapper = class extends import_payload_wrapper.PayloadWrapper {
|
|
|
90
92
|
await this.loadModule(node, moduleManifest, true, registry);
|
|
91
93
|
})) ?? [];
|
|
92
94
|
await Promise.all([...privateModules, ...publicModules]);
|
|
95
|
+
await Promise.all(
|
|
96
|
+
this.privateChildren.map(async (child) => {
|
|
97
|
+
const wrapper = new _ManifestWrapper(child, this.wallet, this.locator);
|
|
98
|
+
const subNodes = await wrapper.loadNodes(node);
|
|
99
|
+
subNodes.forEach((subNode) => {
|
|
100
|
+
node.attach(subNode.address, false);
|
|
101
|
+
});
|
|
102
|
+
})
|
|
103
|
+
);
|
|
104
|
+
await Promise.all(
|
|
105
|
+
this.publicChildren.map(async (child) => {
|
|
106
|
+
const wrapper = new _ManifestWrapper(child, this.wallet, this.locator);
|
|
107
|
+
const subNodes = await wrapper.loadNodes(node);
|
|
108
|
+
subNodes.forEach((subNode) => {
|
|
109
|
+
node.attach(subNode.address, true);
|
|
110
|
+
});
|
|
111
|
+
})
|
|
112
|
+
);
|
|
93
113
|
return node;
|
|
94
114
|
}
|
|
95
115
|
async loadNodes(node, additionalCreatableModules) {
|
|
96
116
|
var _a;
|
|
97
117
|
const registry = (0, import_module_model2.toCreatableModuleRegistry)(additionalCreatableModules ?? {});
|
|
98
118
|
const result = await Promise.all(
|
|
99
|
-
(_a = this.
|
|
119
|
+
(_a = this.jsonPayload().nodes) == null ? void 0 : _a.map(async (nodeManifest, index) => {
|
|
100
120
|
const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry);
|
|
101
121
|
await (node == null ? void 0 : node.register(subNode));
|
|
102
122
|
return subNode;
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/ManifestWrapper.ts","../../src/standardCreatableModules.ts"],"sourcesContent":["export * from './ManifestWrapper'\nexport * from './standardCreatableModules'\nexport * from '@xyo-network/manifest-model'\n","import { assertEx } from '@xylabs/assert'\nimport { Account } from '@xyo-network/account'\nimport { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n assignCreatableModuleRegistry,\n CreatableModuleDictionary,\n CreatableModuleRegistry,\n ModuleFactoryLocator,\n ModuleInstance,\n toCreatableModuleRegistry,\n} from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { standardCreatableModules } from './standardCreatableModules'\n\nexport class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {\n constructor(\n payload: PackageManifestPayload,\n protected readonly wallet: WalletInstance,\n protected readonly locator: ModuleFactoryLocator = new ModuleFactoryLocator({}),\n ) {\n super(payload)\n }\n\n async loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external: boolean,\n additionalCreatableModules?: CreatableModuleDictionary,\n ): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external = true,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<void> {\n const collision = async (node: NodeInstance, name: string, external: boolean) => {\n const externalConflict = external ? (await node.resolve({ name: [name] }, { direction: external ? 'all' : 'down' })).length !== 0 : false\n return externalConflict || (await node.resolve({ name: [name] }, { direction: 'down' })).length !== 0\n }\n\n const creatableModules = assignCreatableModuleRegistry(\n {},\n toCreatableModuleRegistry(standardCreatableModules),\n toCreatableModuleRegistry(additionalCreatableModules ?? {}),\n )\n if (!(await collision(node, manifest.config.name, external))) {\n if (manifest.config.language && manifest.config.language === 'javascript') {\n assertEx(\n (manifest.config.name && (await node.attach(manifest.config.name, external))) ??\n (await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external)),\n `No module with config schema [${manifest.config.name}] registered`,\n )\n }\n }\n }\n\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode> {\n const manifest = assertEx(this.nodeManifest(index), 'Failed to find Node Manifest')\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n return await this.loadNodeFromManifest(manifest, manifest.config.accountPath ?? `${index}'`, registry)\n }\n\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromManifest(\n manifest: NodeManifest,\n path?: string,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<MemoryNode> {\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const node = await MemoryNode.create({ account, config: manifest.config, wallet })\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n // Load Private Modules\n const privateModules =\n manifest.modules?.private?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, false, registry)\n }) ?? []\n // Load Public Modules\n const publicModules =\n manifest.modules?.public?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, true, registry)\n }) ?? []\n await Promise.all([...privateModules, ...publicModules])\n return node\n }\n\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode[]> {\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n const result = await Promise.all(\n this.payload().nodes?.map(async (nodeManifest, index) => {\n const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry)\n await node?.register(subNode)\n return subNode\n }),\n )\n return result\n }\n\n nodeManifest(index: number) {\n return this.payload().nodes?.[index]\n }\n\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n async registerModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n creatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<ModuleInstance> {\n const registry = toCreatableModuleRegistry(creatableModules ?? {})\n const creatableModule = new ModuleFactoryLocator(this.locator.registry)\n .registerMany(registry)\n .locate(manifest.config.schema, manifest.config.labels)\n const path = manifest.config.accountPath\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const module = await creatableModule.create({\n account,\n config: assertEx(manifest.config, 'Missing config'),\n wallet,\n })\n await node.register(module)\n return module\n }\n}\n","import { HttpBridge } from '@xyo-network/http-bridge'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\nimport { CreatableModuleDictionary, ModuleFactory } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel'\n\nexport const standardCreatableModules: CreatableModuleDictionary = {\n 'network.xyo.archivist.config': MemoryArchivist,\n 'network.xyo.bridge.http.config': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),\n 'network.xyo.node.config': MemoryNode,\n 'network.xyo.sentinel.config': MemorySentinel,\n}\n"],"mappings":"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","names":["import_module_model","import_node_memory","node","external","module"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/ManifestWrapper.ts","../../src/standardCreatableModules.ts"],"sourcesContent":["export * from './ManifestWrapper'\nexport * from './standardCreatableModules'\nexport * from '@xyo-network/manifest-model'\n","import { assertEx } from '@xylabs/assert'\nimport { Account } from '@xyo-network/account'\nimport { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n assignCreatableModuleRegistry,\n CreatableModuleDictionary,\n CreatableModuleRegistry,\n ModuleFactoryLocator,\n ModuleInstance,\n toCreatableModuleRegistry,\n} from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { standardCreatableModules } from './standardCreatableModules'\n\nexport class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {\n constructor(\n payload: PackageManifestPayload,\n protected readonly wallet: WalletInstance,\n protected readonly locator: ModuleFactoryLocator = new ModuleFactoryLocator({}),\n protected readonly publicChildren: PackageManifestPayload[] = [],\n protected readonly privateChildren: PackageManifestPayload[] = [],\n ) {\n super(payload)\n }\n\n async loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external: boolean,\n additionalCreatableModules?: CreatableModuleDictionary,\n ): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external = true,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<void> {\n const collision = async (node: NodeInstance, name: string, external: boolean) => {\n const externalConflict = external ? (await node.resolve({ name: [name] }, { direction: external ? 'all' : 'down' })).length !== 0 : false\n return externalConflict || (await node.resolve({ name: [name] }, { direction: 'down' })).length !== 0\n }\n\n const creatableModules = assignCreatableModuleRegistry(\n {},\n toCreatableModuleRegistry(standardCreatableModules),\n toCreatableModuleRegistry(additionalCreatableModules ?? {}),\n )\n if (!(await collision(node, manifest.config.name, external))) {\n if (manifest.config.language && manifest.config.language === 'javascript') {\n assertEx(\n (manifest.config.name && (await node.attach(manifest.config.name, external))) ??\n (await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external)),\n `No module with config schema [${manifest.config.name}] registered`,\n )\n }\n }\n }\n\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode> {\n const manifest = assertEx(this.nodeManifest(index), 'Failed to find Node Manifest')\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n return await this.loadNodeFromManifest(manifest, manifest.config.accountPath ?? `${index}'`, registry)\n }\n\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromManifest(\n manifest: NodeManifest,\n path?: string,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<MemoryNode> {\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const node = await MemoryNode.create({ account, config: manifest.config, wallet })\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n // Load Private Modules\n const privateModules =\n manifest.modules?.private?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, false, registry)\n }) ?? []\n // Load Public Modules\n const publicModules =\n manifest.modules?.public?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, true, registry)\n }) ?? []\n await Promise.all([...privateModules, ...publicModules])\n\n await Promise.all(\n this.privateChildren.map(async (child) => {\n const wrapper = new ManifestWrapper(child, this.wallet, this.locator)\n const subNodes = await wrapper.loadNodes(node)\n subNodes.forEach((subNode) => {\n node.attach(subNode.address, false)\n })\n }),\n )\n\n await Promise.all(\n this.publicChildren.map(async (child) => {\n const wrapper = new ManifestWrapper(child, this.wallet, this.locator)\n const subNodes = await wrapper.loadNodes(node)\n subNodes.forEach((subNode) => {\n node.attach(subNode.address, true)\n })\n }),\n )\n\n return node\n }\n\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode[]> {\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n const result = await Promise.all(\n this.jsonPayload().nodes?.map(async (nodeManifest, index) => {\n const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry)\n await node?.register(subNode)\n return subNode\n }),\n )\n return result\n }\n\n nodeManifest(index: number) {\n return this.payload().nodes?.[index]\n }\n\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n async registerModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n creatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<ModuleInstance> {\n const registry = toCreatableModuleRegistry(creatableModules ?? {})\n const creatableModule = new ModuleFactoryLocator(this.locator.registry)\n .registerMany(registry)\n .locate(manifest.config.schema, manifest.config.labels)\n const path = manifest.config.accountPath\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const module = await creatableModule.create({\n account,\n config: assertEx(manifest.config, 'Missing config'),\n wallet,\n })\n await node.register(module)\n return module\n }\n}\n","import { HttpBridge } from '@xyo-network/http-bridge'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\nimport { CreatableModuleDictionary, ModuleFactory } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel'\n\nexport const standardCreatableModules: CreatableModuleDictionary = {\n 'network.xyo.archivist.config': MemoryArchivist,\n 'network.xyo.bridge.http.config': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),\n 'network.xyo.node.config': MemoryNode,\n 'network.xyo.sentinel.config': MemorySentinel,\n}\n"],"mappings":"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","names":["import_module_model","import_node_memory","node","external","module"]}
|
package/dist/node/index.mjs
CHANGED
|
@@ -23,11 +23,13 @@ var standardCreatableModules = {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
// src/ManifestWrapper.ts
|
|
26
|
-
var ManifestWrapper = class extends PayloadWrapper {
|
|
27
|
-
constructor(payload, wallet, locator = new ModuleFactoryLocator({})) {
|
|
26
|
+
var ManifestWrapper = class _ManifestWrapper extends PayloadWrapper {
|
|
27
|
+
constructor(payload, wallet, locator = new ModuleFactoryLocator({}), publicChildren = [], privateChildren = []) {
|
|
28
28
|
super(payload);
|
|
29
29
|
this.wallet = wallet;
|
|
30
30
|
this.locator = locator;
|
|
31
|
+
this.publicChildren = publicChildren;
|
|
32
|
+
this.privateChildren = privateChildren;
|
|
31
33
|
}
|
|
32
34
|
async loadModule(node, manifest, external = true, additionalCreatableModules) {
|
|
33
35
|
const collision = async (node2, name, external2) => {
|
|
@@ -66,13 +68,31 @@ var ManifestWrapper = class extends PayloadWrapper {
|
|
|
66
68
|
await this.loadModule(node, moduleManifest, true, registry);
|
|
67
69
|
})) ?? [];
|
|
68
70
|
await Promise.all([...privateModules, ...publicModules]);
|
|
71
|
+
await Promise.all(
|
|
72
|
+
this.privateChildren.map(async (child) => {
|
|
73
|
+
const wrapper = new _ManifestWrapper(child, this.wallet, this.locator);
|
|
74
|
+
const subNodes = await wrapper.loadNodes(node);
|
|
75
|
+
subNodes.forEach((subNode) => {
|
|
76
|
+
node.attach(subNode.address, false);
|
|
77
|
+
});
|
|
78
|
+
})
|
|
79
|
+
);
|
|
80
|
+
await Promise.all(
|
|
81
|
+
this.publicChildren.map(async (child) => {
|
|
82
|
+
const wrapper = new _ManifestWrapper(child, this.wallet, this.locator);
|
|
83
|
+
const subNodes = await wrapper.loadNodes(node);
|
|
84
|
+
subNodes.forEach((subNode) => {
|
|
85
|
+
node.attach(subNode.address, true);
|
|
86
|
+
});
|
|
87
|
+
})
|
|
88
|
+
);
|
|
69
89
|
return node;
|
|
70
90
|
}
|
|
71
91
|
async loadNodes(node, additionalCreatableModules) {
|
|
72
92
|
var _a;
|
|
73
93
|
const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {});
|
|
74
94
|
const result = await Promise.all(
|
|
75
|
-
(_a = this.
|
|
95
|
+
(_a = this.jsonPayload().nodes) == null ? void 0 : _a.map(async (nodeManifest, index) => {
|
|
76
96
|
const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry);
|
|
77
97
|
await (node == null ? void 0 : node.register(subNode));
|
|
78
98
|
return subNode;
|
package/dist/node/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ManifestWrapper.ts","../../src/standardCreatableModules.ts","../../src/index.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Account } from '@xyo-network/account'\nimport { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n assignCreatableModuleRegistry,\n CreatableModuleDictionary,\n CreatableModuleRegistry,\n ModuleFactoryLocator,\n ModuleInstance,\n toCreatableModuleRegistry,\n} from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { standardCreatableModules } from './standardCreatableModules'\n\nexport class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {\n constructor(\n payload: PackageManifestPayload,\n protected readonly wallet: WalletInstance,\n protected readonly locator: ModuleFactoryLocator = new ModuleFactoryLocator({}),\n ) {\n super(payload)\n }\n\n async loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external: boolean,\n additionalCreatableModules?: CreatableModuleDictionary,\n ): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external = true,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<void> {\n const collision = async (node: NodeInstance, name: string, external: boolean) => {\n const externalConflict = external ? (await node.resolve({ name: [name] }, { direction: external ? 'all' : 'down' })).length !== 0 : false\n return externalConflict || (await node.resolve({ name: [name] }, { direction: 'down' })).length !== 0\n }\n\n const creatableModules = assignCreatableModuleRegistry(\n {},\n toCreatableModuleRegistry(standardCreatableModules),\n toCreatableModuleRegistry(additionalCreatableModules ?? {}),\n )\n if (!(await collision(node, manifest.config.name, external))) {\n if (manifest.config.language && manifest.config.language === 'javascript') {\n assertEx(\n (manifest.config.name && (await node.attach(manifest.config.name, external))) ??\n (await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external)),\n `No module with config schema [${manifest.config.name}] registered`,\n )\n }\n }\n }\n\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode> {\n const manifest = assertEx(this.nodeManifest(index), 'Failed to find Node Manifest')\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n return await this.loadNodeFromManifest(manifest, manifest.config.accountPath ?? `${index}'`, registry)\n }\n\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromManifest(\n manifest: NodeManifest,\n path?: string,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<MemoryNode> {\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const node = await MemoryNode.create({ account, config: manifest.config, wallet })\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n // Load Private Modules\n const privateModules =\n manifest.modules?.private?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, false, registry)\n }) ?? []\n // Load Public Modules\n const publicModules =\n manifest.modules?.public?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, true, registry)\n }) ?? []\n await Promise.all([...privateModules, ...publicModules])\n return node\n }\n\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode[]> {\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n const result = await Promise.all(\n this.payload().nodes?.map(async (nodeManifest, index) => {\n const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry)\n await node?.register(subNode)\n return subNode\n }),\n )\n return result\n }\n\n nodeManifest(index: number) {\n return this.payload().nodes?.[index]\n }\n\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n async registerModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n creatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<ModuleInstance> {\n const registry = toCreatableModuleRegistry(creatableModules ?? {})\n const creatableModule = new ModuleFactoryLocator(this.locator.registry)\n .registerMany(registry)\n .locate(manifest.config.schema, manifest.config.labels)\n const path = manifest.config.accountPath\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const module = await creatableModule.create({\n account,\n config: assertEx(manifest.config, 'Missing config'),\n wallet,\n })\n await node.register(module)\n return module\n }\n}\n","import { HttpBridge } from '@xyo-network/http-bridge'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\nimport { CreatableModuleDictionary, ModuleFactory } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel'\n\nexport const standardCreatableModules: CreatableModuleDictionary = {\n 'network.xyo.archivist.config': MemoryArchivist,\n 'network.xyo.bridge.http.config': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),\n 'network.xyo.node.config': MemoryNode,\n 'network.xyo.sentinel.config': MemorySentinel,\n}\n","export * from './ManifestWrapper'\nexport * from './standardCreatableModules'\nexport * from '@xyo-network/manifest-model'\n"],"mappings":"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","names":["MemoryNode","node","external","MemoryNode"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ManifestWrapper.ts","../../src/standardCreatableModules.ts","../../src/index.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Account } from '@xyo-network/account'\nimport { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n assignCreatableModuleRegistry,\n CreatableModuleDictionary,\n CreatableModuleRegistry,\n ModuleFactoryLocator,\n ModuleInstance,\n toCreatableModuleRegistry,\n} from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { WalletInstance } from '@xyo-network/wallet-model'\n\nimport { standardCreatableModules } from './standardCreatableModules'\n\nexport class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {\n constructor(\n payload: PackageManifestPayload,\n protected readonly wallet: WalletInstance,\n protected readonly locator: ModuleFactoryLocator = new ModuleFactoryLocator({}),\n protected readonly publicChildren: PackageManifestPayload[] = [],\n protected readonly privateChildren: PackageManifestPayload[] = [],\n ) {\n super(payload)\n }\n\n async loadModule(node: MemoryNode, manifest: ModuleManifest, external: boolean, additionalCreatableModules?: CreatableModuleRegistry): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external: boolean,\n additionalCreatableModules?: CreatableModuleDictionary,\n ): Promise<void>\n async loadModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n external = true,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<void> {\n const collision = async (node: NodeInstance, name: string, external: boolean) => {\n const externalConflict = external ? (await node.resolve({ name: [name] }, { direction: external ? 'all' : 'down' })).length !== 0 : false\n return externalConflict || (await node.resolve({ name: [name] }, { direction: 'down' })).length !== 0\n }\n\n const creatableModules = assignCreatableModuleRegistry(\n {},\n toCreatableModuleRegistry(standardCreatableModules),\n toCreatableModuleRegistry(additionalCreatableModules ?? {}),\n )\n if (!(await collision(node, manifest.config.name, external))) {\n if (manifest.config.language && manifest.config.language === 'javascript') {\n assertEx(\n (manifest.config.name && (await node.attach(manifest.config.name, external))) ??\n (await node.attach((await this.registerModule(node, manifest, creatableModules)).address, external)),\n `No module with config schema [${manifest.config.name}] registered`,\n )\n }\n }\n }\n\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode> {\n const manifest = assertEx(this.nodeManifest(index), 'Failed to find Node Manifest')\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n return await this.loadNodeFromManifest(manifest, manifest.config.accountPath ?? `${index}'`, registry)\n }\n\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>\n async loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>\n async loadNodeFromManifest(\n manifest: NodeManifest,\n path?: string,\n additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<MemoryNode> {\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const node = await MemoryNode.create({ account, config: manifest.config, wallet })\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n // Load Private Modules\n const privateModules =\n manifest.modules?.private?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, false, registry)\n }) ?? []\n // Load Public Modules\n const publicModules =\n manifest.modules?.public?.map(async (moduleManifest) => {\n await this.loadModule(node, moduleManifest, true, registry)\n }) ?? []\n await Promise.all([...privateModules, ...publicModules])\n\n await Promise.all(\n this.privateChildren.map(async (child) => {\n const wrapper = new ManifestWrapper(child, this.wallet, this.locator)\n const subNodes = await wrapper.loadNodes(node)\n subNodes.forEach((subNode) => {\n node.attach(subNode.address, false)\n })\n }),\n )\n\n await Promise.all(\n this.publicChildren.map(async (child) => {\n const wrapper = new ManifestWrapper(child, this.wallet, this.locator)\n const subNodes = await wrapper.loadNodes(node)\n subNodes.forEach((subNode) => {\n node.attach(subNode.address, true)\n })\n }),\n )\n\n return node\n }\n\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>\n async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode[]> {\n const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})\n const result = await Promise.all(\n this.jsonPayload().nodes?.map(async (nodeManifest, index) => {\n const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry)\n await node?.register(subNode)\n return subNode\n }),\n )\n return result\n }\n\n nodeManifest(index: number) {\n return this.payload().nodes?.[index]\n }\n\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n async registerModule(\n node: MemoryNode,\n manifest: ModuleManifest,\n creatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,\n ): Promise<ModuleInstance> {\n const registry = toCreatableModuleRegistry(creatableModules ?? {})\n const creatableModule = new ModuleFactoryLocator(this.locator.registry)\n .registerMany(registry)\n .locate(manifest.config.schema, manifest.config.labels)\n const path = manifest.config.accountPath\n const wallet = path ? await this.wallet.derivePath(path) : undefined\n const account = path ? undefined : Account.randomSync()\n const module = await creatableModule.create({\n account,\n config: assertEx(manifest.config, 'Missing config'),\n wallet,\n })\n await node.register(module)\n return module\n }\n}\n","import { HttpBridge } from '@xyo-network/http-bridge'\nimport { MemoryArchivist } from '@xyo-network/memory-archivist'\nimport { CreatableModuleDictionary, ModuleFactory } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel'\n\nexport const standardCreatableModules: CreatableModuleDictionary = {\n 'network.xyo.archivist.config': MemoryArchivist,\n 'network.xyo.bridge.http.config': ModuleFactory.withParams(HttpBridge, { config: { schema: HttpBridge.configSchema } }),\n 'network.xyo.node.config': MemoryNode,\n 'network.xyo.sentinel.config': MemorySentinel,\n}\n","export * from './ManifestWrapper'\nexport * from './standardCreatableModules'\nexport * from '@xyo-network/manifest-model'\n"],"mappings":"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","names":["MemoryNode","node","external","MemoryNode"]}
|
package/package.json
CHANGED
|
@@ -11,21 +11,21 @@
|
|
|
11
11
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.13.3",
|
|
14
|
-
"@xyo-network/http-bridge": "~2.
|
|
15
|
-
"@xyo-network/manifest-model": "~2.
|
|
16
|
-
"@xyo-network/memory-archivist": "~2.
|
|
17
|
-
"@xyo-network/module-model": "~2.
|
|
18
|
-
"@xyo-network/node-memory": "~2.
|
|
19
|
-
"@xyo-network/node-model": "~2.
|
|
20
|
-
"@xyo-network/payload-wrapper": "~2.
|
|
21
|
-
"@xyo-network/sentinel": "~2.
|
|
22
|
-
"@xyo-network/wallet-model": "~2.
|
|
14
|
+
"@xyo-network/http-bridge": "~2.79.1",
|
|
15
|
+
"@xyo-network/manifest-model": "~2.79.1",
|
|
16
|
+
"@xyo-network/memory-archivist": "~2.79.1",
|
|
17
|
+
"@xyo-network/module-model": "~2.79.1",
|
|
18
|
+
"@xyo-network/node-memory": "~2.79.1",
|
|
19
|
+
"@xyo-network/node-model": "~2.79.1",
|
|
20
|
+
"@xyo-network/payload-wrapper": "~2.79.1",
|
|
21
|
+
"@xyo-network/sentinel": "~2.79.1",
|
|
22
|
+
"@xyo-network/wallet-model": "~2.79.1"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@xylabs/ts-scripts-yarn3": "^3.1.21",
|
|
26
26
|
"@xylabs/tsconfig": "^3.1.21",
|
|
27
|
-
"@xyo-network/account": "~2.
|
|
28
|
-
"@xyo-network/address-payload-plugin": "~2.
|
|
27
|
+
"@xyo-network/account": "~2.79.1",
|
|
28
|
+
"@xyo-network/address-payload-plugin": "~2.79.1",
|
|
29
29
|
"typescript": "^5.2.2"
|
|
30
30
|
},
|
|
31
31
|
"docs": "dist/docs.json",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
72
72
|
},
|
|
73
73
|
"sideEffects": false,
|
|
74
|
-
"version": "2.
|
|
74
|
+
"version": "2.79.1"
|
|
75
75
|
}
|
package/src/ManifestWrapper.ts
CHANGED
|
@@ -21,6 +21,8 @@ export class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
|
21
21
|
payload: PackageManifestPayload,
|
|
22
22
|
protected readonly wallet: WalletInstance,
|
|
23
23
|
protected readonly locator: ModuleFactoryLocator = new ModuleFactoryLocator({}),
|
|
24
|
+
protected readonly publicChildren: PackageManifestPayload[] = [],
|
|
25
|
+
protected readonly privateChildren: PackageManifestPayload[] = [],
|
|
24
26
|
) {
|
|
25
27
|
super(payload)
|
|
26
28
|
}
|
|
@@ -89,6 +91,27 @@ export class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
|
89
91
|
await this.loadModule(node, moduleManifest, true, registry)
|
|
90
92
|
}) ?? []
|
|
91
93
|
await Promise.all([...privateModules, ...publicModules])
|
|
94
|
+
|
|
95
|
+
await Promise.all(
|
|
96
|
+
this.privateChildren.map(async (child) => {
|
|
97
|
+
const wrapper = new ManifestWrapper(child, this.wallet, this.locator)
|
|
98
|
+
const subNodes = await wrapper.loadNodes(node)
|
|
99
|
+
subNodes.forEach((subNode) => {
|
|
100
|
+
node.attach(subNode.address, false)
|
|
101
|
+
})
|
|
102
|
+
}),
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
await Promise.all(
|
|
106
|
+
this.publicChildren.map(async (child) => {
|
|
107
|
+
const wrapper = new ManifestWrapper(child, this.wallet, this.locator)
|
|
108
|
+
const subNodes = await wrapper.loadNodes(node)
|
|
109
|
+
subNodes.forEach((subNode) => {
|
|
110
|
+
node.attach(subNode.address, true)
|
|
111
|
+
})
|
|
112
|
+
}),
|
|
113
|
+
)
|
|
114
|
+
|
|
92
115
|
return node
|
|
93
116
|
}
|
|
94
117
|
|
|
@@ -97,7 +120,7 @@ export class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
|
97
120
|
async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode[]> {
|
|
98
121
|
const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})
|
|
99
122
|
const result = await Promise.all(
|
|
100
|
-
this.
|
|
123
|
+
this.jsonPayload().nodes?.map(async (nodeManifest, index) => {
|
|
101
124
|
const subNode = await this.loadNodeFromManifest(nodeManifest, nodeManifest.config.accountPath ?? `${index}'`, registry)
|
|
102
125
|
await node?.register(subNode)
|
|
103
126
|
return subNode
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../schema.json",
|
|
3
|
+
"nodes": [
|
|
4
|
+
{
|
|
5
|
+
"config": {
|
|
6
|
+
"accountPath": "1'",
|
|
7
|
+
"name": "SimpleMemoryDapp",
|
|
8
|
+
"schema": "network.xyo.node.config"
|
|
9
|
+
},
|
|
10
|
+
"modules": {
|
|
11
|
+
"private": [
|
|
12
|
+
{
|
|
13
|
+
"config": {
|
|
14
|
+
"language": "javascript",
|
|
15
|
+
"name": "ScratchArchivistChild",
|
|
16
|
+
"schema": "network.xyo.archivist.config"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"public": [
|
|
21
|
+
{
|
|
22
|
+
"config": {
|
|
23
|
+
"language": "javascript",
|
|
24
|
+
"name": "SimpleArchivistChild",
|
|
25
|
+
"schema": "network.xyo.archivist.config"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"config": {
|
|
30
|
+
"language": "javascript",
|
|
31
|
+
"name": "SimpleSentinelChild",
|
|
32
|
+
"schema": "network.xyo.sentinel.config",
|
|
33
|
+
"synchronous": true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"config": {
|
|
38
|
+
"language": "javascript",
|
|
39
|
+
"name": "SimpleHttpBridgeChild",
|
|
40
|
+
"nodeUrl": "https://beta.api.archivist.xyo.network",
|
|
41
|
+
"schema": "network.xyo.bridge.http.config"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"schema": "network.xyo.manifest"
|
|
49
|
+
}
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
"private": [
|
|
12
12
|
{
|
|
13
13
|
"config": {
|
|
14
|
-
"accountPath": "1'",
|
|
15
14
|
"language": "javascript",
|
|
16
15
|
"name": "ScratchArchivist",
|
|
17
16
|
"schema": "network.xyo.archivist.config"
|
|
@@ -21,7 +20,6 @@
|
|
|
21
20
|
"public": [
|
|
22
21
|
{
|
|
23
22
|
"config": {
|
|
24
|
-
"accountPath": "2'",
|
|
25
23
|
"language": "javascript",
|
|
26
24
|
"name": "SimpleArchivist",
|
|
27
25
|
"schema": "network.xyo.archivist.config"
|
|
@@ -29,7 +27,6 @@
|
|
|
29
27
|
},
|
|
30
28
|
{
|
|
31
29
|
"config": {
|
|
32
|
-
"accountPath": "3'",
|
|
33
30
|
"language": "javascript",
|
|
34
31
|
"name": "SimpleSentinel",
|
|
35
32
|
"schema": "network.xyo.sentinel.config",
|
|
@@ -38,7 +35,6 @@
|
|
|
38
35
|
},
|
|
39
36
|
{
|
|
40
37
|
"config": {
|
|
41
|
-
"accountPath": "4'",
|
|
42
38
|
"language": "javascript",
|
|
43
39
|
"name": "SimpleHttpBridge",
|
|
44
40
|
"nodeUrl": "https://beta.api.archivist.xyo.network",
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../schema.json",
|
|
3
|
+
"nodes": [
|
|
4
|
+
{
|
|
5
|
+
"config": {
|
|
6
|
+
"accountPath": "0'",
|
|
7
|
+
"name": "SimpleMemoryDapp",
|
|
8
|
+
"schema": "network.xyo.node.config"
|
|
9
|
+
},
|
|
10
|
+
"modules": {
|
|
11
|
+
"private": [
|
|
12
|
+
{
|
|
13
|
+
"config": {
|
|
14
|
+
"language": "javascript",
|
|
15
|
+
"name": "ScratchArchivistChild",
|
|
16
|
+
"schema": "network.xyo.archivist.config"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"public": [
|
|
21
|
+
{
|
|
22
|
+
"config": {
|
|
23
|
+
"language": "javascript",
|
|
24
|
+
"name": "SimpleArchivistChild",
|
|
25
|
+
"schema": "network.xyo.archivist.config"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"config": {
|
|
30
|
+
"language": "javascript",
|
|
31
|
+
"name": "SimpleSentinelChild",
|
|
32
|
+
"schema": "network.xyo.sentinel.config",
|
|
33
|
+
"synchronous": true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"config": {
|
|
38
|
+
"language": "javascript",
|
|
39
|
+
"name": "SimpleHttpBridgeChild",
|
|
40
|
+
"nodeUrl": "https://beta.api.archivist.xyo.network",
|
|
41
|
+
"schema": "network.xyo.bridge.http.config"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"schema": "network.xyo.manifest"
|
|
49
|
+
}
|