@xyo-network/manifest 2.84.2 → 2.84.3
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 +17 -5
- package/dist/browser/ManifestWrapper.d.cts.map +1 -1
- package/dist/browser/ManifestWrapper.d.mts +17 -5
- package/dist/browser/ManifestWrapper.d.mts.map +1 -1
- package/dist/browser/ManifestWrapper.d.ts +17 -5
- package/dist/browser/ManifestWrapper.d.ts.map +1 -1
- package/dist/browser/index.cjs +1 -1
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/node/ManifestWrapper.d.cts +17 -5
- package/dist/node/ManifestWrapper.d.cts.map +1 -1
- package/dist/node/ManifestWrapper.d.mts +17 -5
- package/dist/node/ManifestWrapper.d.mts.map +1 -1
- package/dist/node/ManifestWrapper.d.ts +17 -5
- package/dist/node/ManifestWrapper.d.ts.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.mjs +1 -1
- package/dist/node/index.mjs.map +1 -1
- package/package.json +14 -14
- package/src/ManifestWrapper.ts +21 -6
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model';
|
|
2
|
-
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator
|
|
2
|
+
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator } from '@xyo-network/module-model';
|
|
3
3
|
import { MemoryNode } from '@xyo-network/node-memory';
|
|
4
4
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
5
|
import { WalletInstance } from '@xyo-network/wallet-model';
|
|
6
|
+
/** Provides functionality that can be performed on a PackageManifest */
|
|
6
7
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
8
|
protected readonly wallet: WalletInstance;
|
|
8
9
|
protected readonly locator: ModuleFactoryLocator;
|
|
@@ -15,10 +16,21 @@ export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPaylo
|
|
|
15
16
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
16
17
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
17
18
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Load the nodes that are defined in the wrapped manifest and optionally attach them to a node
|
|
21
|
+
*/
|
|
22
|
+
loadNodes(
|
|
23
|
+
/** Node to optionally attach the loaded nodes to */
|
|
24
|
+
node?: MemoryNode,
|
|
25
|
+
/** Additional creatable modules */
|
|
26
|
+
additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>;
|
|
27
|
+
loadNodes(
|
|
28
|
+
/** Node to optionally attach the loaded nodes to */
|
|
29
|
+
node?: MemoryNode,
|
|
30
|
+
/** Additional creatable modules */
|
|
31
|
+
additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>;
|
|
20
32
|
nodeManifest(index: number): NodeManifest;
|
|
21
|
-
|
|
22
|
-
registerModule
|
|
33
|
+
/** Register a module on a node based on a manifest */
|
|
34
|
+
private registerModule;
|
|
23
35
|
}
|
|
24
36
|
//# sourceMappingURL=ManifestWrapper.d.ts.map
|
|
@@ -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,
|
|
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,EAGrB,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,wEAAwE;AACxE,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;IA6C7I;;OAEG;IACG,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,uBAAuB,GACnD,OAAO,CAAC,UAAU,EAAE,CAAC;IAClB,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,UAAU,EAAE,CAAC;IAaxB,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,sDAAsD;YACxC,cAAc;CAsB7B"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model';
|
|
2
|
-
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator
|
|
2
|
+
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator } from '@xyo-network/module-model';
|
|
3
3
|
import { MemoryNode } from '@xyo-network/node-memory';
|
|
4
4
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
5
|
import { WalletInstance } from '@xyo-network/wallet-model';
|
|
6
|
+
/** Provides functionality that can be performed on a PackageManifest */
|
|
6
7
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
8
|
protected readonly wallet: WalletInstance;
|
|
8
9
|
protected readonly locator: ModuleFactoryLocator;
|
|
@@ -15,10 +16,21 @@ export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPaylo
|
|
|
15
16
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
16
17
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
17
18
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Load the nodes that are defined in the wrapped manifest and optionally attach them to a node
|
|
21
|
+
*/
|
|
22
|
+
loadNodes(
|
|
23
|
+
/** Node to optionally attach the loaded nodes to */
|
|
24
|
+
node?: MemoryNode,
|
|
25
|
+
/** Additional creatable modules */
|
|
26
|
+
additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>;
|
|
27
|
+
loadNodes(
|
|
28
|
+
/** Node to optionally attach the loaded nodes to */
|
|
29
|
+
node?: MemoryNode,
|
|
30
|
+
/** Additional creatable modules */
|
|
31
|
+
additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>;
|
|
20
32
|
nodeManifest(index: number): NodeManifest;
|
|
21
|
-
|
|
22
|
-
registerModule
|
|
33
|
+
/** Register a module on a node based on a manifest */
|
|
34
|
+
private registerModule;
|
|
23
35
|
}
|
|
24
36
|
//# sourceMappingURL=ManifestWrapper.d.ts.map
|
|
@@ -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,
|
|
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,EAGrB,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,wEAAwE;AACxE,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;IA6C7I;;OAEG;IACG,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,uBAAuB,GACnD,OAAO,CAAC,UAAU,EAAE,CAAC;IAClB,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,UAAU,EAAE,CAAC;IAaxB,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,sDAAsD;YACxC,cAAc;CAsB7B"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model';
|
|
2
|
-
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator
|
|
2
|
+
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator } from '@xyo-network/module-model';
|
|
3
3
|
import { MemoryNode } from '@xyo-network/node-memory';
|
|
4
4
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
5
|
import { WalletInstance } from '@xyo-network/wallet-model';
|
|
6
|
+
/** Provides functionality that can be performed on a PackageManifest */
|
|
6
7
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
8
|
protected readonly wallet: WalletInstance;
|
|
8
9
|
protected readonly locator: ModuleFactoryLocator;
|
|
@@ -15,10 +16,21 @@ export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPaylo
|
|
|
15
16
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
16
17
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
17
18
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Load the nodes that are defined in the wrapped manifest and optionally attach them to a node
|
|
21
|
+
*/
|
|
22
|
+
loadNodes(
|
|
23
|
+
/** Node to optionally attach the loaded nodes to */
|
|
24
|
+
node?: MemoryNode,
|
|
25
|
+
/** Additional creatable modules */
|
|
26
|
+
additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>;
|
|
27
|
+
loadNodes(
|
|
28
|
+
/** Node to optionally attach the loaded nodes to */
|
|
29
|
+
node?: MemoryNode,
|
|
30
|
+
/** Additional creatable modules */
|
|
31
|
+
additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>;
|
|
20
32
|
nodeManifest(index: number): NodeManifest;
|
|
21
|
-
|
|
22
|
-
registerModule
|
|
33
|
+
/** Register a module on a node based on a manifest */
|
|
34
|
+
private registerModule;
|
|
23
35
|
}
|
|
24
36
|
//# sourceMappingURL=ManifestWrapper.d.ts.map
|
|
@@ -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,
|
|
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,EAGrB,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,wEAAwE;AACxE,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;IA6C7I;;OAEG;IACG,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,uBAAuB,GACnD,OAAO,CAAC,UAAU,EAAE,CAAC;IAClB,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,UAAU,EAAE,CAAC;IAaxB,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,sDAAsD;YACxC,cAAc;CAsB7B"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -123,7 +123,7 @@ var ManifestWrapper = class _ManifestWrapper extends import_payload_wrapper.Payl
|
|
|
123
123
|
return result;
|
|
124
124
|
}
|
|
125
125
|
nodeManifest(index) {
|
|
126
|
-
return this.
|
|
126
|
+
return this.jsonPayload().nodes?.[index];
|
|
127
127
|
}
|
|
128
128
|
async registerModule(node, manifest, creatableModules) {
|
|
129
129
|
const registry = (0, import_module_model2.toCreatableModuleRegistry)(creatableModules ?? {});
|
|
@@ -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 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"]}
|
|
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\n/** Provides functionality that can be performed on a PackageManifest */\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 /**\n * Load the nodes that are defined in the wrapped manifest and optionally attach them to a node\n */\n async loadNodes(\n /** Node to optionally attach the loaded nodes to */\n node?: MemoryNode,\n /** Additional creatable modules */\n additionalCreatableModules?: CreatableModuleRegistry,\n ): Promise<MemoryNode[]>\n async loadNodes(\n /** Node to optionally attach the loaded nodes to */\n node?: MemoryNode,\n /** Additional creatable modules */\n additionalCreatableModules?: CreatableModuleDictionary,\n ): 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.jsonPayload().nodes?.[index]\n }\n\n /** Register a module on a node based on a manifest */\n private async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n private async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n private 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
|
@@ -99,7 +99,7 @@ var ManifestWrapper = class _ManifestWrapper extends PayloadWrapper {
|
|
|
99
99
|
return result;
|
|
100
100
|
}
|
|
101
101
|
nodeManifest(index) {
|
|
102
|
-
return this.
|
|
102
|
+
return this.jsonPayload().nodes?.[index];
|
|
103
103
|
}
|
|
104
104
|
async registerModule(node, manifest, creatableModules) {
|
|
105
105
|
const registry = toCreatableModuleRegistry(creatableModules ?? {});
|
|
@@ -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 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"]}
|
|
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\n/** Provides functionality that can be performed on a PackageManifest */\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 /**\n * Load the nodes that are defined in the wrapped manifest and optionally attach them to a node\n */\n async loadNodes(\n /** Node to optionally attach the loaded nodes to */\n node?: MemoryNode,\n /** Additional creatable modules */\n additionalCreatableModules?: CreatableModuleRegistry,\n ): Promise<MemoryNode[]>\n async loadNodes(\n /** Node to optionally attach the loaded nodes to */\n node?: MemoryNode,\n /** Additional creatable modules */\n additionalCreatableModules?: CreatableModuleDictionary,\n ): 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.jsonPayload().nodes?.[index]\n }\n\n /** Register a module on a node based on a manifest */\n private async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n private async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n private 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":";AAAA,SAAS,gBAAgB;AACzB,SAAS,eAAe;AAExB;AAAA,EACE;AAAA,EAGA;AAAA,EAEA;AAAA,OACK;AACP,SAAS,cAAAA,mBAAkB;AAE3B,SAAS,sBAAsB;;;ACb/B,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAAoC,qBAAqB;AACzD,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAExB,IAAM,2BAAsD;AAAA,EACjE,gCAAgC;AAAA,EAChC,kCAAkC,cAAc,WAAW,YAAY,EAAE,QAAQ,EAAE,QAAQ,WAAW,aAAa,EAAE,CAAC;AAAA,EACtH,2BAA2B;AAAA,EAC3B,+BAA+B;AACjC;;;ADQO,IAAM,kBAAN,MAAM,yBAAwB,eAAuC;AAAA,EAC1E,YACE,SACmB,QACA,UAAgC,IAAI,qBAAqB,CAAC,CAAC,GAC3D,iBAA2C,CAAC,GAC5C,kBAA4C,CAAC,GAChE;AACA,UAAM,OAAO;AALM;AACA;AACA;AACA;AAAA,EAGrB;AAAA,EASA,MAAM,WACJ,MACA,UACA,WAAW,MACX,4BACe;AACf,UAAM,YAAY,OAAOC,OAAoB,MAAcC,cAAsB;AAC/E,YAAM,mBAAmBA,aAAY,MAAMD,MAAK,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,WAAWC,YAAW,QAAQ,OAAO,CAAC,GAAG,WAAW,IAAI;AACpI,aAAO,qBAAqB,MAAMD,MAAK,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,OAAO,CAAC,GAAG,WAAW;AAAA,IACtG;AAEA,UAAM,mBAAmB;AAAA,MACvB,CAAC;AAAA,MACD,0BAA0B,wBAAwB;AAAA,MAClD,0BAA0B,8BAA8B,CAAC,CAAC;AAAA,IAC5D;AACA,QAAI,CAAE,MAAM,UAAU,MAAM,SAAS,OAAO,MAAM,QAAQ,GAAI;AAC5D,UAAI,SAAS,OAAO,YAAY,SAAS,OAAO,aAAa,cAAc;AACzE;AAAA,WACG,SAAS,OAAO,QAAS,MAAM,KAAK,OAAO,SAAS,OAAO,MAAM,QAAQ,MACvE,MAAM,KAAK,QAAQ,MAAM,KAAK,eAAe,MAAM,UAAU,gBAAgB,GAAG,SAAS,QAAQ;AAAA,UACpG,iCAAiC,SAAS,OAAO,IAAI;AAAA,QACvD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAIA,MAAM,kBAAkB,OAAe,4BAAuG;AAC5I,UAAM,WAAW,SAAS,KAAK,aAAa,KAAK,GAAG,8BAA8B;AAClF,UAAM,WAAW,0BAA0B,8BAA8B,CAAC,CAAC;AAC3E,WAAO,MAAM,KAAK,qBAAqB,UAAU,SAAS,OAAO,eAAe,GAAG,KAAK,KAAK,QAAQ;AAAA,EACvG;AAAA,EAIA,MAAM,qBACJ,UACA,MACA,4BACqB;AACrB,UAAM,SAAS,OAAO,MAAM,KAAK,OAAO,WAAW,IAAI,IAAI;AAC3D,UAAM,UAAU,OAAO,SAAY,QAAQ,WAAW;AACtD,UAAM,OAAO,MAAME,YAAW,OAAO,EAAE,SAAS,QAAQ,SAAS,QAAQ,OAAO,CAAC;AACjF,UAAM,WAAW,0BAA0B,8BAA8B,CAAC,CAAC;AAE3E,UAAM,iBACJ,SAAS,SAAS,SAAS,IAAI,OAAO,mBAAmB;AACvD,YAAM,KAAK,WAAW,MAAM,gBAAgB,OAAO,QAAQ;AAAA,IAC7D,CAAC,KAAK,CAAC;AAET,UAAM,gBACJ,SAAS,SAAS,QAAQ,IAAI,OAAO,mBAAmB;AACtD,YAAM,KAAK,WAAW,MAAM,gBAAgB,MAAM,QAAQ;AAAA,IAC5D,CAAC,KAAK,CAAC;AACT,UAAM,QAAQ,IAAI,CAAC,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEvD,UAAM,QAAQ;AAAA,MACZ,KAAK,gBAAgB,IAAI,OAAO,UAAU;AACxC,cAAM,UAAU,IAAI,iBAAgB,OAAO,KAAK,QAAQ,KAAK,OAAO;AACpE,cAAM,WAAW,MAAM,QAAQ,UAAU,IAAI;AAC7C,iBAAS,QAAQ,CAAC,YAAY;AAC5B,eAAK,OAAO,QAAQ,SAAS,KAAK;AAAA,QACpC,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,UAAM,QAAQ;AAAA,MACZ,KAAK,eAAe,IAAI,OAAO,UAAU;AACvC,cAAM,UAAU,IAAI,iBAAgB,OAAO,KAAK,QAAQ,KAAK,OAAO;AACpE,cAAM,WAAW,MAAM,QAAQ,UAAU,IAAI;AAC7C,iBAAS,QAAQ,CAAC,YAAY;AAC5B,eAAK,OAAO,QAAQ,SAAS,IAAI;AAAA,QACnC,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AAAA,EAiBA,MAAM,UAAU,MAAmB,4BAAyG;AAC1I,UAAM,WAAW,0BAA0B,8BAA8B,CAAC,CAAC;AAC3E,UAAM,SAAS,MAAM,QAAQ;AAAA,MAC3B,KAAK,YAAY,EAAE,OAAO,IAAI,OAAO,cAAc,UAAU;AAC3D,cAAM,UAAU,MAAM,KAAK,qBAAqB,cAAc,aAAa,OAAO,eAAe,GAAG,KAAK,KAAK,QAAQ;AACtH,cAAM,MAAM,SAAS,OAAO;AAC5B,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,OAAe;AAC1B,WAAO,KAAK,YAAY,EAAE,QAAQ,KAAK;AAAA,EACzC;AAAA,EAKA,MAAc,eACZ,MACA,UACA,kBACyB;AACzB,UAAM,WAAW,0BAA0B,oBAAoB,CAAC,CAAC;AACjE,UAAM,kBAAkB,IAAI,qBAAqB,KAAK,QAAQ,QAAQ,EACnE,aAAa,QAAQ,EACrB,OAAO,SAAS,OAAO,QAAQ,SAAS,OAAO,MAAM;AACxD,UAAM,OAAO,SAAS,OAAO;AAC7B,UAAM,SAAS,OAAO,MAAM,KAAK,OAAO,WAAW,IAAI,IAAI;AAC3D,UAAM,UAAU,OAAO,SAAY,QAAQ,WAAW;AACtD,UAAM,SAAS,MAAM,gBAAgB,OAAO;AAAA,MAC1C;AAAA,MACA,QAAQ,SAAS,SAAS,QAAQ,gBAAgB;AAAA,MAClD;AAAA,IACF,CAAC;AACD,UAAM,KAAK,SAAS,MAAM;AAC1B,WAAO;AAAA,EACT;AACF;;;AE1KA,cAAc;","names":["MemoryNode","node","external","MemoryNode"]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model';
|
|
2
|
-
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator
|
|
2
|
+
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator } from '@xyo-network/module-model';
|
|
3
3
|
import { MemoryNode } from '@xyo-network/node-memory';
|
|
4
4
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
5
|
import { WalletInstance } from '@xyo-network/wallet-model';
|
|
6
|
+
/** Provides functionality that can be performed on a PackageManifest */
|
|
6
7
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
8
|
protected readonly wallet: WalletInstance;
|
|
8
9
|
protected readonly locator: ModuleFactoryLocator;
|
|
@@ -15,10 +16,21 @@ export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPaylo
|
|
|
15
16
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
16
17
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
17
18
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Load the nodes that are defined in the wrapped manifest and optionally attach them to a node
|
|
21
|
+
*/
|
|
22
|
+
loadNodes(
|
|
23
|
+
/** Node to optionally attach the loaded nodes to */
|
|
24
|
+
node?: MemoryNode,
|
|
25
|
+
/** Additional creatable modules */
|
|
26
|
+
additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>;
|
|
27
|
+
loadNodes(
|
|
28
|
+
/** Node to optionally attach the loaded nodes to */
|
|
29
|
+
node?: MemoryNode,
|
|
30
|
+
/** Additional creatable modules */
|
|
31
|
+
additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>;
|
|
20
32
|
nodeManifest(index: number): NodeManifest;
|
|
21
|
-
|
|
22
|
-
registerModule
|
|
33
|
+
/** Register a module on a node based on a manifest */
|
|
34
|
+
private registerModule;
|
|
23
35
|
}
|
|
24
36
|
//# sourceMappingURL=ManifestWrapper.d.ts.map
|
|
@@ -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,
|
|
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,EAGrB,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,wEAAwE;AACxE,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;IA6C7I;;OAEG;IACG,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,uBAAuB,GACnD,OAAO,CAAC,UAAU,EAAE,CAAC;IAClB,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,UAAU,EAAE,CAAC;IAaxB,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,sDAAsD;YACxC,cAAc;CAsB7B"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model';
|
|
2
|
-
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator
|
|
2
|
+
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator } from '@xyo-network/module-model';
|
|
3
3
|
import { MemoryNode } from '@xyo-network/node-memory';
|
|
4
4
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
5
|
import { WalletInstance } from '@xyo-network/wallet-model';
|
|
6
|
+
/** Provides functionality that can be performed on a PackageManifest */
|
|
6
7
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
8
|
protected readonly wallet: WalletInstance;
|
|
8
9
|
protected readonly locator: ModuleFactoryLocator;
|
|
@@ -15,10 +16,21 @@ export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPaylo
|
|
|
15
16
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
16
17
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
17
18
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Load the nodes that are defined in the wrapped manifest and optionally attach them to a node
|
|
21
|
+
*/
|
|
22
|
+
loadNodes(
|
|
23
|
+
/** Node to optionally attach the loaded nodes to */
|
|
24
|
+
node?: MemoryNode,
|
|
25
|
+
/** Additional creatable modules */
|
|
26
|
+
additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>;
|
|
27
|
+
loadNodes(
|
|
28
|
+
/** Node to optionally attach the loaded nodes to */
|
|
29
|
+
node?: MemoryNode,
|
|
30
|
+
/** Additional creatable modules */
|
|
31
|
+
additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>;
|
|
20
32
|
nodeManifest(index: number): NodeManifest;
|
|
21
|
-
|
|
22
|
-
registerModule
|
|
33
|
+
/** Register a module on a node based on a manifest */
|
|
34
|
+
private registerModule;
|
|
23
35
|
}
|
|
24
36
|
//# sourceMappingURL=ManifestWrapper.d.ts.map
|
|
@@ -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,
|
|
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,EAGrB,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,wEAAwE;AACxE,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;IA6C7I;;OAEG;IACG,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,uBAAuB,GACnD,OAAO,CAAC,UAAU,EAAE,CAAC;IAClB,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,UAAU,EAAE,CAAC;IAaxB,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,sDAAsD;YACxC,cAAc;CAsB7B"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ModuleManifest, NodeManifest, PackageManifestPayload } from '@xyo-network/manifest-model';
|
|
2
|
-
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator
|
|
2
|
+
import { CreatableModuleDictionary, CreatableModuleRegistry, ModuleFactoryLocator } from '@xyo-network/module-model';
|
|
3
3
|
import { MemoryNode } from '@xyo-network/node-memory';
|
|
4
4
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
5
5
|
import { WalletInstance } from '@xyo-network/wallet-model';
|
|
6
|
+
/** Provides functionality that can be performed on a PackageManifest */
|
|
6
7
|
export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
7
8
|
protected readonly wallet: WalletInstance;
|
|
8
9
|
protected readonly locator: ModuleFactoryLocator;
|
|
@@ -15,10 +16,21 @@ export declare class ManifestWrapper extends PayloadWrapper<PackageManifestPaylo
|
|
|
15
16
|
loadNodeFromIndex(index: number, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
16
17
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode>;
|
|
17
18
|
loadNodeFromManifest(manifest: NodeManifest, path: string, additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode>;
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Load the nodes that are defined in the wrapped manifest and optionally attach them to a node
|
|
21
|
+
*/
|
|
22
|
+
loadNodes(
|
|
23
|
+
/** Node to optionally attach the loaded nodes to */
|
|
24
|
+
node?: MemoryNode,
|
|
25
|
+
/** Additional creatable modules */
|
|
26
|
+
additionalCreatableModules?: CreatableModuleRegistry): Promise<MemoryNode[]>;
|
|
27
|
+
loadNodes(
|
|
28
|
+
/** Node to optionally attach the loaded nodes to */
|
|
29
|
+
node?: MemoryNode,
|
|
30
|
+
/** Additional creatable modules */
|
|
31
|
+
additionalCreatableModules?: CreatableModuleDictionary): Promise<MemoryNode[]>;
|
|
20
32
|
nodeManifest(index: number): NodeManifest;
|
|
21
|
-
|
|
22
|
-
registerModule
|
|
33
|
+
/** Register a module on a node based on a manifest */
|
|
34
|
+
private registerModule;
|
|
23
35
|
}
|
|
24
36
|
//# sourceMappingURL=ManifestWrapper.d.ts.map
|
|
@@ -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,
|
|
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,EAGrB,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,wEAAwE;AACxE,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;IA6C7I;;OAEG;IACG,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,uBAAuB,GACnD,OAAO,CAAC,UAAU,EAAE,CAAC;IAClB,SAAS;IACb,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU;IACjB,mCAAmC;IACnC,0BAA0B,CAAC,EAAE,yBAAyB,GACrD,OAAO,CAAC,UAAU,EAAE,CAAC;IAaxB,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,sDAAsD;YACxC,cAAc;CAsB7B"}
|
package/dist/node/index.js
CHANGED
|
@@ -126,7 +126,7 @@ var ManifestWrapper = class _ManifestWrapper extends import_payload_wrapper.Payl
|
|
|
126
126
|
}
|
|
127
127
|
nodeManifest(index) {
|
|
128
128
|
var _a;
|
|
129
|
-
return (_a = this.
|
|
129
|
+
return (_a = this.jsonPayload().nodes) == null ? void 0 : _a[index];
|
|
130
130
|
}
|
|
131
131
|
async registerModule(node, manifest, creatableModules) {
|
|
132
132
|
const registry = (0, import_module_model2.toCreatableModuleRegistry)(creatableModules ?? {});
|
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 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"]}
|
|
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\n/** Provides functionality that can be performed on a PackageManifest */\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 /**\n * Load the nodes that are defined in the wrapped manifest and optionally attach them to a node\n */\n async loadNodes(\n /** Node to optionally attach the loaded nodes to */\n node?: MemoryNode,\n /** Additional creatable modules */\n additionalCreatableModules?: CreatableModuleRegistry,\n ): Promise<MemoryNode[]>\n async loadNodes(\n /** Node to optionally attach the loaded nodes to */\n node?: MemoryNode,\n /** Additional creatable modules */\n additionalCreatableModules?: CreatableModuleDictionary,\n ): 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.jsonPayload().nodes?.[index]\n }\n\n /** Register a module on a node based on a manifest */\n private async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n private async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n private 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
|
@@ -102,7 +102,7 @@ var ManifestWrapper = class _ManifestWrapper extends PayloadWrapper {
|
|
|
102
102
|
}
|
|
103
103
|
nodeManifest(index) {
|
|
104
104
|
var _a;
|
|
105
|
-
return (_a = this.
|
|
105
|
+
return (_a = this.jsonPayload().nodes) == null ? void 0 : _a[index];
|
|
106
106
|
}
|
|
107
107
|
async registerModule(node, manifest, creatableModules) {
|
|
108
108
|
const registry = toCreatableModuleRegistry(creatableModules ?? {});
|
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 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"]}
|
|
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\n/** Provides functionality that can be performed on a PackageManifest */\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 /**\n * Load the nodes that are defined in the wrapped manifest and optionally attach them to a node\n */\n async loadNodes(\n /** Node to optionally attach the loaded nodes to */\n node?: MemoryNode,\n /** Additional creatable modules */\n additionalCreatableModules?: CreatableModuleRegistry,\n ): Promise<MemoryNode[]>\n async loadNodes(\n /** Node to optionally attach the loaded nodes to */\n node?: MemoryNode,\n /** Additional creatable modules */\n additionalCreatableModules?: CreatableModuleDictionary,\n ): 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.jsonPayload().nodes?.[index]\n }\n\n /** Register a module on a node based on a manifest */\n private async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>\n private async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>\n private 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.20",
|
|
14
|
-
"@xyo-network/http-bridge": "~2.84.
|
|
15
|
-
"@xyo-network/manifest-model": "~2.84.
|
|
16
|
-
"@xyo-network/memory-archivist": "~2.84.
|
|
17
|
-
"@xyo-network/module-model": "~2.84.
|
|
18
|
-
"@xyo-network/node-memory": "~2.84.
|
|
19
|
-
"@xyo-network/node-model": "~2.84.
|
|
20
|
-
"@xyo-network/payload-wrapper": "~2.84.
|
|
21
|
-
"@xyo-network/sentinel": "~2.84.
|
|
22
|
-
"@xyo-network/wallet-model": "~2.84.
|
|
14
|
+
"@xyo-network/http-bridge": "~2.84.3",
|
|
15
|
+
"@xyo-network/manifest-model": "~2.84.3",
|
|
16
|
+
"@xyo-network/memory-archivist": "~2.84.3",
|
|
17
|
+
"@xyo-network/module-model": "~2.84.3",
|
|
18
|
+
"@xyo-network/node-memory": "~2.84.3",
|
|
19
|
+
"@xyo-network/node-model": "~2.84.3",
|
|
20
|
+
"@xyo-network/payload-wrapper": "~2.84.3",
|
|
21
|
+
"@xyo-network/sentinel": "~2.84.3",
|
|
22
|
+
"@xyo-network/wallet-model": "~2.84.3"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@xylabs/ts-scripts-yarn3": "^3.2.
|
|
26
|
-
"@xylabs/tsconfig": "^3.2.
|
|
27
|
-
"@xyo-network/account": "~2.84.
|
|
28
|
-
"@xyo-network/address-payload-plugin": "^2.
|
|
25
|
+
"@xylabs/ts-scripts-yarn3": "^3.2.19",
|
|
26
|
+
"@xylabs/tsconfig": "^3.2.19",
|
|
27
|
+
"@xyo-network/account": "~2.84.3",
|
|
28
|
+
"@xyo-network/address-payload-plugin": "^2.84.0",
|
|
29
29
|
"typescript": "^5.3.3"
|
|
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.84.
|
|
74
|
+
"version": "2.84.3"
|
|
75
75
|
}
|
package/src/ManifestWrapper.ts
CHANGED
|
@@ -16,6 +16,7 @@ import { WalletInstance } from '@xyo-network/wallet-model'
|
|
|
16
16
|
|
|
17
17
|
import { standardCreatableModules } from './standardCreatableModules'
|
|
18
18
|
|
|
19
|
+
/** Provides functionality that can be performed on a PackageManifest */
|
|
19
20
|
export class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
20
21
|
constructor(
|
|
21
22
|
payload: PackageManifestPayload,
|
|
@@ -115,8 +116,21 @@ export class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
|
115
116
|
return node
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
/**
|
|
120
|
+
* Load the nodes that are defined in the wrapped manifest and optionally attach them to a node
|
|
121
|
+
*/
|
|
122
|
+
async loadNodes(
|
|
123
|
+
/** Node to optionally attach the loaded nodes to */
|
|
124
|
+
node?: MemoryNode,
|
|
125
|
+
/** Additional creatable modules */
|
|
126
|
+
additionalCreatableModules?: CreatableModuleRegistry,
|
|
127
|
+
): Promise<MemoryNode[]>
|
|
128
|
+
async loadNodes(
|
|
129
|
+
/** Node to optionally attach the loaded nodes to */
|
|
130
|
+
node?: MemoryNode,
|
|
131
|
+
/** Additional creatable modules */
|
|
132
|
+
additionalCreatableModules?: CreatableModuleDictionary,
|
|
133
|
+
): Promise<MemoryNode[]>
|
|
120
134
|
async loadNodes(node?: MemoryNode, additionalCreatableModules?: CreatableModuleDictionary | CreatableModuleRegistry): Promise<MemoryNode[]> {
|
|
121
135
|
const registry = toCreatableModuleRegistry(additionalCreatableModules ?? {})
|
|
122
136
|
const result = await Promise.all(
|
|
@@ -130,12 +144,13 @@ export class ManifestWrapper extends PayloadWrapper<PackageManifestPayload> {
|
|
|
130
144
|
}
|
|
131
145
|
|
|
132
146
|
nodeManifest(index: number) {
|
|
133
|
-
return this.
|
|
147
|
+
return this.jsonPayload().nodes?.[index]
|
|
134
148
|
}
|
|
135
149
|
|
|
136
|
-
|
|
137
|
-
async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?:
|
|
138
|
-
async registerModule(
|
|
150
|
+
/** Register a module on a node based on a manifest */
|
|
151
|
+
private async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleRegistry): Promise<ModuleInstance>
|
|
152
|
+
private async registerModule(node: MemoryNode, manifest: ModuleManifest, creatableModules?: CreatableModuleDictionary): Promise<ModuleInstance>
|
|
153
|
+
private async registerModule(
|
|
139
154
|
node: MemoryNode,
|
|
140
155
|
manifest: ModuleManifest,
|
|
141
156
|
creatableModules?: CreatableModuleDictionary | CreatableModuleRegistry,
|