@xyo-network/node-abstract 2.92.3 → 2.92.5
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/AbstractNode.d.cts +1 -4
- package/dist/browser/AbstractNode.d.cts.map +1 -1
- package/dist/browser/AbstractNode.d.mts +1 -4
- package/dist/browser/AbstractNode.d.mts.map +1 -1
- package/dist/browser/AbstractNode.d.ts +1 -4
- package/dist/browser/AbstractNode.d.ts.map +1 -1
- package/dist/browser/index.cjs +0 -12
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +0 -12
- package/dist/browser/index.js.map +1 -1
- package/dist/node/AbstractNode.d.cts +1 -4
- package/dist/node/AbstractNode.d.cts.map +1 -1
- package/dist/node/AbstractNode.d.mts +1 -4
- package/dist/node/AbstractNode.d.mts.map +1 -1
- package/dist/node/AbstractNode.d.ts +1 -4
- package/dist/node/AbstractNode.d.ts.map +1 -1
- package/dist/node/index.cjs +0 -12
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +0 -12
- package/dist/node/index.js.map +1 -1
- package/package.json +14 -14
- package/src/AbstractNode.ts +1 -16
|
@@ -17,12 +17,8 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
17
17
|
attached(): Promise<Address[]>;
|
|
18
18
|
attachedModules(maxDepth?: number): Promise<ModuleInstance[]>;
|
|
19
19
|
manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
20
|
-
register(_module: ModuleInstance): Promisable<void>;
|
|
21
|
-
registered(): Promisable<Address[]>;
|
|
22
|
-
registeredModules(): Promisable<Module[]>;
|
|
23
20
|
resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
|
|
24
21
|
resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>;
|
|
25
|
-
unregister(_module: ModuleInstance): Promisable<this>;
|
|
26
22
|
protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
|
|
27
23
|
protected manifestHandler(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
28
24
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
|
|
@@ -30,5 +26,6 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
30
26
|
private resolvePrivate;
|
|
31
27
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>;
|
|
32
28
|
abstract detach(nameOrAddress: string): Promisable<Address | undefined>;
|
|
29
|
+
abstract registered(): Promisable<Address[]>;
|
|
33
30
|
}
|
|
34
31
|
//# sourceMappingURL=AbstractNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIvF,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACxF,OAAO,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;cAkClG,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAWtD,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAsBlG,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;YA6CtB,UAAU;YAkBV,cAAc;IAkB5B,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
|
|
@@ -17,12 +17,8 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
17
17
|
attached(): Promise<Address[]>;
|
|
18
18
|
attachedModules(maxDepth?: number): Promise<ModuleInstance[]>;
|
|
19
19
|
manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
20
|
-
register(_module: ModuleInstance): Promisable<void>;
|
|
21
|
-
registered(): Promisable<Address[]>;
|
|
22
|
-
registeredModules(): Promisable<Module[]>;
|
|
23
20
|
resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
|
|
24
21
|
resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>;
|
|
25
|
-
unregister(_module: ModuleInstance): Promisable<this>;
|
|
26
22
|
protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
|
|
27
23
|
protected manifestHandler(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
28
24
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
|
|
@@ -30,5 +26,6 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
30
26
|
private resolvePrivate;
|
|
31
27
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>;
|
|
32
28
|
abstract detach(nameOrAddress: string): Promisable<Address | undefined>;
|
|
29
|
+
abstract registered(): Promisable<Address[]>;
|
|
33
30
|
}
|
|
34
31
|
//# sourceMappingURL=AbstractNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIvF,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACxF,OAAO,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;cAkClG,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAWtD,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAsBlG,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;YA6CtB,UAAU;YAkBV,cAAc;IAkB5B,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
|
|
@@ -17,12 +17,8 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
17
17
|
attached(): Promise<Address[]>;
|
|
18
18
|
attachedModules(maxDepth?: number): Promise<ModuleInstance[]>;
|
|
19
19
|
manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
20
|
-
register(_module: ModuleInstance): Promisable<void>;
|
|
21
|
-
registered(): Promisable<Address[]>;
|
|
22
|
-
registeredModules(): Promisable<Module[]>;
|
|
23
20
|
resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
|
|
24
21
|
resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>;
|
|
25
|
-
unregister(_module: ModuleInstance): Promisable<this>;
|
|
26
22
|
protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
|
|
27
23
|
protected manifestHandler(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
28
24
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
|
|
@@ -30,5 +26,6 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
30
26
|
private resolvePrivate;
|
|
31
27
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>;
|
|
32
28
|
abstract detach(nameOrAddress: string): Promisable<Address | undefined>;
|
|
29
|
+
abstract registered(): Promisable<Address[]>;
|
|
33
30
|
}
|
|
34
31
|
//# sourceMappingURL=AbstractNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIvF,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACxF,OAAO,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;cAkClG,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAWtD,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAsBlG,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;YA6CtB,UAAU;YAkBV,cAAc;IAkB5B,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -76,15 +76,6 @@ var AbstractNode = class extends import_module_abstract.AbstractModuleInstance {
|
|
|
76
76
|
async manifest(maxDepth, ignoreAddresses) {
|
|
77
77
|
return await this.manifestHandler(maxDepth, ignoreAddresses);
|
|
78
78
|
}
|
|
79
|
-
register(_module) {
|
|
80
|
-
throw new Error("Method not implemented.");
|
|
81
|
-
}
|
|
82
|
-
registered() {
|
|
83
|
-
throw new Error("Method not implemented.");
|
|
84
|
-
}
|
|
85
|
-
registeredModules() {
|
|
86
|
-
throw new Error("Method not implemented.");
|
|
87
|
-
}
|
|
88
79
|
async resolve(nameOrAddressOrFilter, options) {
|
|
89
80
|
if (typeof nameOrAddressOrFilter === "string") {
|
|
90
81
|
switch (options?.visibility) {
|
|
@@ -112,9 +103,6 @@ var AbstractNode = class extends import_module_abstract.AbstractModuleInstance {
|
|
|
112
103
|
}
|
|
113
104
|
}
|
|
114
105
|
}
|
|
115
|
-
unregister(_module) {
|
|
116
|
-
throw new Error("Method not implemented.");
|
|
117
|
-
}
|
|
118
106
|
async discoverHandler(maxDepth) {
|
|
119
107
|
const childMods = await this.attachedModules(maxDepth);
|
|
120
108
|
const childModAddresses = await Promise.all(childMods.map((mod) => new import_payload_builder.PayloadBuilder({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n protected readonly privateResolver = new CompositeModuleResolver()\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return (await this.attachedModules()).map((module) => module.address)\n }\n\n async attachedModules(maxDepth = 2): Promise<ModuleInstance[]> {\n return (await (this.resolve(undefined, { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n override async manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n register(_module: ModuleInstance): Promisable<void> {\n throw new Error('Method not implemented.')\n }\n\n registered(): Promisable<Address[]> {\n throw new Error('Method not implemented.')\n }\n\n registeredModules(): Promisable<Module[]> {\n throw new Error('Method not implemented.')\n }\n\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n override async resolve(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (typeof nameOrAddressOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n }\n }\n\n unregister(_module: ModuleInstance): Promisable<this> {\n throw new Error('Method not implemented.')\n }\n\n protected override async discoverHandler(maxDepth?: number): Promise<Payload[]> {\n const childMods = await this.attachedModules(maxDepth)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth?: number, ignoreAddresses: string[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler()), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all((await this.resolve(undefined, { direction: 'down', maxDepth })).filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(nameOrAddressOrFilter, options)) ?? (await super.resolve(nameOrAddressOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(nameOrAddressOrFilter, options)), ...(await super.resolve(nameOrAddressOrFilter, options))].filter(\n duplicateModules,\n )\n }\n }\n }\n\n private async resolvePrivate(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n }\n }\n\n abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>\n abstract detach(nameOrAddress: string): Promisable<Address | undefined>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;ACAA,oBAAyB;AAGzB,oCAA8C;AAE9C,kCAAyC;AACzC,4BAAsF;AACtF,6BAAuC;AACvC,0BASO;AACP,6BAAwC;AACxC,wBAUO;AACP,6BAA+B;AAGxB,IAAeA,eAAf,cACGC,8CAAAA;EAlCV,OAkCUA;;;EAGR,OAAyBC,gBAA0B;IAACC;;EAEjCC,kBAAkB,IAAIC,+CAAAA;EAExBC,SAAS;EAE1B,IAAaC,UAAoB;AAC/B,WAAO;MAACC;MAAuBC;MAAuBC;MAAyBC;SAA8B,MAAMJ;;EACrH;EAEA,IAAuBK,qBAA4D;AACjF,WAAO;MACL,iCAAiC;MACjC,mCAAmC;MACnC,iCAAiC;MACjC,qCAAqC;IACvC;EACF;EAEA,OAAON,OAAOO,SAAiB;AAC7B,WAAQA,QAAwBP;EAClC;EAEA,MAAMQ,WAA+B;AACnC,YAAQ,MAAM,KAAKC,gBAAe,GAAIC,IAAI,CAACH,YAAWA,QAAOI,OAAO;EACtE;EAEA,MAAMF,gBAAgBG,WAAW,GAA8B;AAC7D,YAAQ,OAAO,KAAKC,QAAQC,QAAW;MAAEC,WAAW;MAAQH;IAAS,CAAA,KAAM,CAAA,IAAKI,OAAO,CAACT,YAAWA,QAAOI,YAAY,KAAKA,OAAO;EACpI;EAEA,MAAeM,SAASL,UAAmBM,iBAA4D;AACrG,WAAO,MAAM,KAAKC,gBAAgBP,UAAUM,eAAAA;EAC9C;EAEAE,SAASC,SAA2C;AAClD,UAAM,IAAIC,MAAM,yBAAA;EAClB;EAEAC,aAAoC;AAClC,UAAM,IAAID,MAAM,yBAAA;EAClB;EAEAE,oBAA0C;AACxC,UAAM,IAAIF,MAAM,yBAAA;EAClB;EAIA,MAAeT,QACbY,uBACAC,SACwD;AAGxD,QAAI,OAAOD,0BAA0B,UAAU;AAC7C,cAAQC,SAASC,YAAAA;QACf,KAAK,WAAW;AACd,iBAAO,MAAM,KAAKC,eAAeH,qBAAAA;QACnC;QACA,KAAK,OAAO;AACV,iBAAO,MAAM,KAAKI,WAAWJ,qBAAAA;QAC/B;QACA,SAAS;AACP,iBAAO,MAAM,MAAMZ,QAAQY,uBAAuBC,OAAAA;QACpD;MACF;IACF,OAAO;AACL,cAAQA,SAASC,YAAAA;QACf,KAAK,OAAO;AACV,iBAAO,MAAM,KAAKE,WAAWJ,qBAAAA;QAC/B;QACA,KAAK,WAAW;AACd,iBAAO,MAAM,KAAKG,eAAeH,qBAAAA;QACnC;QACA,SAAS;AACP,iBAAO,MAAM,MAAMZ,QAAQY,uBAAuBC,OAAAA;QACpD;MACF;IACF;EACF;EAEAI,WAAWT,SAA2C;AACpD,UAAM,IAAIC,MAAM,yBAAA;EAClB;EAEA,MAAyBS,gBAAgBnB,UAAuC;AAC9E,UAAMoB,YAAY,MAAM,KAAKvB,gBAAgBG,QAAAA;AAC7C,UAAMqB,oBAAoB,MAAMC,QAAQC,IACtCH,UAAUtB,IAAI,CAAC0B,QACb,IAAIC,sCAA+B;MAAEC,QAAQC;IAAc,CAAA,EAAGC,OAAO;MAAE7B,SAASyB,IAAIzB;MAAS8B,MAAML,IAAIM,OAAOD;IAAK,CAAA,EAAGE,MAAK,CAAA,CAAA;AAI/H,WAAO;SAAK,MAAM,MAAMZ,gBAAgBnB,QAAAA;SAAeqB;;EACzD;EAEA,MAAyBd,gBAAgBP,UAAmBM,kBAA4B,CAAA,GAAoC;AAC1H,UAAMD,WAAgC;MAAE,GAAI,MAAM,MAAME,gBAAAA;MAAoBmB,QAAQM;IAA0B;AAC9G,UAAMC,qBAAqB;SAAI3B;MAAiB,KAAKP;;AAErD,UAAMmC,gBAAgB,wBAACvC,YAA2BA,QAAOI,YAAY,KAAKA,WAAW,CAACO,gBAAgB6B,SAASxC,QAAOI,OAAO,GAAvG;AACtB,UAAMqC,aAAa,wBAACzC,YAA2BA,QAAOU,SAASL,UAAUiC,kBAAAA,GAAtD;AAQnB,UAAMI,gBAAgB,MAAMf,QAAQC,KAAK,MAAM,KAAKtB,QAAQC,QAAW;MAAEC,WAAW;MAAQH;IAAS,CAAA,GAAII,OAAO8B,aAAAA,EAAepC,IAAIsC,UAAAA,CAAAA;AACnI,QAAIC,cAAcC,SAAS,GAAG;AAC5BjC,eAASkC,UAAUlC,SAASkC,WAAW,CAAC;AACxClC,eAASkC,QAAQC,SAASH;IAC5B;AAEA,WAAOhC;EACT;EAEA,MAAyBoC,aACvBC,OACAC,UACAC,aACmC;AACnC,UAAMC,UAAU,MAAMC,qDAAyBC,WAAwBL,OAAOC,QAAAA;AAC9E,UAAMK,eAAe,MAAMH,QAAQI,SAAQ;AAC3CC,gCAAS,MAAM,KAAKC,UAAUT,OAAOC,UAAUC,WAAAA,CAAAA;AAC/C,UAAMQ,iBAA4B,CAAA;AAClC,YAAQJ,aAAatB,QAAM;MACzB,KAAKpC,yCAAuB;AAC1B,cAAMS,UAAU,MAAM,KAAKsD,OAAOL,aAAaM,eAAeN,aAAaO,QAAQ;AACnF,YAAIxD,SAAS;AACX,gBAAMyD,UAAU,MAAM,IAAI/B,sCAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAE7B;UAAQ,CAAA,EAAGgC,MAAK;AAC7GqB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAKjE,yCAAuB;AAC1B,cAAMQ,UAAU,MAAM,KAAK2D,OAAOV,aAAaM,aAAa;AAC5D,YAAIvD,SAAS;AACX,gBAAMyD,UAAU,MAAM,IAAI/B,sCAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAE7B;UAAQ,CAAA,EAAGgC,MAAK;AAC7GqB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAKhE,2CAAyB;AAC5B,cAAMmE,YAAY,MAAM,KAAK/D,SAAQ;AACrC,mBAAWG,WAAW4D,WAAW;AAC/B,gBAAMH,UAAU,MAAM,IAAI/B,sCAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAE7B;UAAQ,CAAA,EAAGgC,MAAK;AAC7GqB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAK/D,6CAA2B;AAC9B,cAAMkE,YAAY,MAAM,KAAKhD,WAAU;AACvC,mBAAWZ,WAAW4D,WAAW;AAC/B,gBAAMH,UAAU,MAAM,IAAI/B,sCAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAE7B;UAAQ,CAAA,EAAGgC,MAAK;AAC7GqB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,SAAS;AACP,eAAO,MAAM,MAAMf,aAAaC,OAAOC,QAAAA;MACzC;IACF;AACA,WAAOS;EACT;EAIA,MAAcnC,WACZJ,uBACAC,SACwD;AACxD,YAAQ,OAAOD,uBAAAA;MACb,KAAK,UAAU;AACb,eAAQ,MAAM,KAAKG,eAAeH,uBAAuBC,OAAAA,KAAc,MAAM,MAAMb,QAAQY,uBAAuBC,OAAAA;MACpH;MACA,SAAS;AACP,eAAO;aAAK,MAAM,KAAKE,eAAeH,uBAAuBC,OAAAA;aAAe,MAAM,MAAMb,QAAQY,uBAAuBC,OAAAA;UAAWV,OAChIwD,oCAAAA;MAEJ;IACF;EACF;EAIA,MAAc5C,eACZH,uBACAC,SACwD;AACxD,UAAMX,YAAYW,SAASX,aAAa;AACxC,UAAM0D,OAAO1D,cAAc,UAAUA,cAAc;AACnD,YAAQ,OAAOU,uBAAAA;MACb,KAAK,UAAU;AACb,eAAOgD,OAAO,MAAM,KAAK3E,gBAAgBe,QAAQY,qBAAAA,IAAyBX;MAC5E;MACA,SAAS;AACP,eAAO2D,OAAO,MAAM,KAAK3E,gBAAgBe,QAAQY,qBAAAA,IAAyBX;MAC5E;IACF;EACF;AAIF;","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","privateResolver","CompositeModuleResolver","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedModules","map","address","maxDepth","resolve","undefined","direction","filter","manifest","ignoreAddresses","manifestHandler","register","_module","Error","registered","registeredModules","nameOrAddressOrFilter","options","visibility","resolvePrivate","resolveAll","unregister","discoverHandler","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","duplicateModules","down"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n protected readonly privateResolver = new CompositeModuleResolver()\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return (await this.attachedModules()).map((module) => module.address)\n }\n\n async attachedModules(maxDepth = 2): Promise<ModuleInstance[]> {\n return (await (this.resolve(undefined, { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n override async manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n override async resolve(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (typeof nameOrAddressOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n }\n }\n\n protected override async discoverHandler(maxDepth?: number): Promise<Payload[]> {\n const childMods = await this.attachedModules(maxDepth)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth?: number, ignoreAddresses: string[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler()), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all((await this.resolve(undefined, { direction: 'down', maxDepth })).filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(nameOrAddressOrFilter, options)) ?? (await super.resolve(nameOrAddressOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(nameOrAddressOrFilter, options)), ...(await super.resolve(nameOrAddressOrFilter, options))].filter(\n duplicateModules,\n )\n }\n }\n }\n\n private async resolvePrivate(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n }\n }\n\n abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>\n abstract detach(nameOrAddress: string): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","privateResolver","CompositeModuleResolver","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedModules","map","address","maxDepth","resolve","undefined","direction","filter","manifest","ignoreAddresses","manifestHandler","nameOrAddressOrFilter","options","visibility","resolvePrivate","resolveAll","discoverHandler","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down"]}
|
package/dist/browser/index.js
CHANGED
|
@@ -52,15 +52,6 @@ var AbstractNode = class extends AbstractModuleInstance {
|
|
|
52
52
|
async manifest(maxDepth, ignoreAddresses) {
|
|
53
53
|
return await this.manifestHandler(maxDepth, ignoreAddresses);
|
|
54
54
|
}
|
|
55
|
-
register(_module) {
|
|
56
|
-
throw new Error("Method not implemented.");
|
|
57
|
-
}
|
|
58
|
-
registered() {
|
|
59
|
-
throw new Error("Method not implemented.");
|
|
60
|
-
}
|
|
61
|
-
registeredModules() {
|
|
62
|
-
throw new Error("Method not implemented.");
|
|
63
|
-
}
|
|
64
55
|
async resolve(nameOrAddressOrFilter, options) {
|
|
65
56
|
if (typeof nameOrAddressOrFilter === "string") {
|
|
66
57
|
switch (options?.visibility) {
|
|
@@ -88,9 +79,6 @@ var AbstractNode = class extends AbstractModuleInstance {
|
|
|
88
79
|
}
|
|
89
80
|
}
|
|
90
81
|
}
|
|
91
|
-
unregister(_module) {
|
|
92
|
-
throw new Error("Method not implemented.");
|
|
93
|
-
}
|
|
94
82
|
async discoverHandler(maxDepth) {
|
|
95
83
|
const childMods = await this.attachedModules(maxDepth);
|
|
96
84
|
const childModAddresses = await Promise.all(childMods.map((mod) => new PayloadBuilder({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n protected readonly privateResolver = new CompositeModuleResolver()\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return (await this.attachedModules()).map((module) => module.address)\n }\n\n async attachedModules(maxDepth = 2): Promise<ModuleInstance[]> {\n return (await (this.resolve(undefined, { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n override async manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n register(_module: ModuleInstance): Promisable<void> {\n throw new Error('Method not implemented.')\n }\n\n registered(): Promisable<Address[]> {\n throw new Error('Method not implemented.')\n }\n\n registeredModules(): Promisable<Module[]> {\n throw new Error('Method not implemented.')\n }\n\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n override async resolve(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (typeof nameOrAddressOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n }\n }\n\n unregister(_module: ModuleInstance): Promisable<this> {\n throw new Error('Method not implemented.')\n }\n\n protected override async discoverHandler(maxDepth?: number): Promise<Payload[]> {\n const childMods = await this.attachedModules(maxDepth)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth?: number, ignoreAddresses: string[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler()), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all((await this.resolve(undefined, { direction: 'down', maxDepth })).filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(nameOrAddressOrFilter, options)) ?? (await super.resolve(nameOrAddressOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(nameOrAddressOrFilter, options)), ...(await super.resolve(nameOrAddressOrFilter, options))].filter(\n duplicateModules,\n )\n }\n }\n }\n\n private async resolvePrivate(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n }\n }\n\n abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>\n abstract detach(nameOrAddress: string): Promisable<Address | undefined>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","CompositeModuleResolver","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","privateResolver","CompositeModuleResolver","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedModules","map","address","maxDepth","resolve","undefined","direction","filter","manifest","ignoreAddresses","manifestHandler","register","_module","Error","registered","registeredModules","nameOrAddressOrFilter","options","visibility","resolvePrivate","resolveAll","unregister","discoverHandler","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","duplicateModules","down"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n protected readonly privateResolver = new CompositeModuleResolver()\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return (await this.attachedModules()).map((module) => module.address)\n }\n\n async attachedModules(maxDepth = 2): Promise<ModuleInstance[]> {\n return (await (this.resolve(undefined, { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n override async manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n override async resolve(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (typeof nameOrAddressOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n }\n }\n\n protected override async discoverHandler(maxDepth?: number): Promise<Payload[]> {\n const childMods = await this.attachedModules(maxDepth)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth?: number, ignoreAddresses: string[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler()), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all((await this.resolve(undefined, { direction: 'down', maxDepth })).filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(nameOrAddressOrFilter, options)) ?? (await super.resolve(nameOrAddressOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(nameOrAddressOrFilter, options)), ...(await super.resolve(nameOrAddressOrFilter, options))].filter(\n duplicateModules,\n )\n }\n }\n }\n\n private async resolvePrivate(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n }\n }\n\n abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>\n abstract detach(nameOrAddress: string): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":";;;;AAAA,SAASA,gBAAgB;AAGzB,SAAyBC,qBAAqB;AAE9C,SAASC,gCAAgC;AACzC,SAAqDC,iCAAiC;AACtF,SAASC,8BAA8B;AACvC,SACEC,wBAQK;AACP,SAASC,+BAA+B;AACxC,SACEC,yBACAC,uBACAC,kBACAC,uBAKAC,iCACK;AACP,SAASC,sBAAsB;AAGxB,IAAeC,eAAf,cACGC,uBAAAA;EAlCV,OAkCUA;;;EAGR,OAAyBC,gBAA0B;IAACC;;EAEjCC,kBAAkB,IAAIC,wBAAAA;EAExBC,SAAS;EAE1B,IAAaC,UAAoB;AAC/B,WAAO;MAACC;MAAuBC;MAAuBC;MAAyBC;SAA8B,MAAMJ;;EACrH;EAEA,IAAuBK,qBAA4D;AACjF,WAAO;MACL,iCAAiC;MACjC,mCAAmC;MACnC,iCAAiC;MACjC,qCAAqC;IACvC;EACF;EAEA,OAAON,OAAOO,QAAiB;AAC7B,WAAQA,OAAwBP;EAClC;EAEA,MAAMQ,WAA+B;AACnC,YAAQ,MAAM,KAAKC,gBAAe,GAAIC,IAAI,CAACH,WAAWA,OAAOI,OAAO;EACtE;EAEA,MAAMF,gBAAgBG,WAAW,GAA8B;AAC7D,YAAQ,OAAO,KAAKC,QAAQC,QAAW;MAAEC,WAAW;MAAQH;IAAS,CAAA,KAAM,CAAA,IAAKI,OAAO,CAACT,WAAWA,OAAOI,YAAY,KAAKA,OAAO;EACpI;EAEA,MAAeM,SAASL,UAAmBM,iBAA4D;AACrG,WAAO,MAAM,KAAKC,gBAAgBP,UAAUM,eAAAA;EAC9C;EAIA,MAAeL,QACbO,uBACAC,SACwD;AAGxD,QAAI,OAAOD,0BAA0B,UAAU;AAC7C,cAAQC,SAASC,YAAAA;QACf,KAAK,WAAW;AACd,iBAAO,MAAM,KAAKC,eAAeH,qBAAAA;QACnC;QACA,KAAK,OAAO;AACV,iBAAO,MAAM,KAAKI,WAAWJ,qBAAAA;QAC/B;QACA,SAAS;AACP,iBAAO,MAAM,MAAMP,QAAQO,uBAAuBC,OAAAA;QACpD;MACF;IACF,OAAO;AACL,cAAQA,SAASC,YAAAA;QACf,KAAK,OAAO;AACV,iBAAO,MAAM,KAAKE,WAAWJ,qBAAAA;QAC/B;QACA,KAAK,WAAW;AACd,iBAAO,MAAM,KAAKG,eAAeH,qBAAAA;QACnC;QACA,SAAS;AACP,iBAAO,MAAM,MAAMP,QAAQO,uBAAuBC,OAAAA;QACpD;MACF;IACF;EACF;EAEA,MAAyBI,gBAAgBb,UAAuC;AAC9E,UAAMc,YAAY,MAAM,KAAKjB,gBAAgBG,QAAAA;AAC7C,UAAMe,oBAAoB,MAAMC,QAAQC,IACtCH,UAAUhB,IAAI,CAACoB,QACb,IAAIC,eAA+B;MAAEC,QAAQC;IAAc,CAAA,EAAGC,OAAO;MAAEvB,SAASmB,IAAInB;MAASwB,MAAML,IAAIM,OAAOD;IAAK,CAAA,EAAGE,MAAK,CAAA,CAAA;AAI/H,WAAO;SAAK,MAAM,MAAMZ,gBAAgBb,QAAAA;SAAee;;EACzD;EAEA,MAAyBR,gBAAgBP,UAAmBM,kBAA4B,CAAA,GAAoC;AAC1H,UAAMD,WAAgC;MAAE,GAAI,MAAM,MAAME,gBAAAA;MAAoBa,QAAQM;IAA0B;AAC9G,UAAMC,qBAAqB;SAAIrB;MAAiB,KAAKP;;AAErD,UAAM6B,gBAAgB,wBAACjC,WAA2BA,OAAOI,YAAY,KAAKA,WAAW,CAACO,gBAAgBuB,SAASlC,OAAOI,OAAO,GAAvG;AACtB,UAAM+B,aAAa,wBAACnC,WAA2BA,OAAOU,SAASL,UAAU2B,kBAAAA,GAAtD;AAQnB,UAAMI,gBAAgB,MAAMf,QAAQC,KAAK,MAAM,KAAKhB,QAAQC,QAAW;MAAEC,WAAW;MAAQH;IAAS,CAAA,GAAII,OAAOwB,aAAAA,EAAe9B,IAAIgC,UAAAA,CAAAA;AACnI,QAAIC,cAAcC,SAAS,GAAG;AAC5B3B,eAAS4B,UAAU5B,SAAS4B,WAAW,CAAC;AACxC5B,eAAS4B,QAAQC,SAASH;IAC5B;AAEA,WAAO1B;EACT;EAEA,MAAyB8B,aACvBC,OACAC,UACAC,aACmC;AACnC,UAAMC,UAAU,MAAMC,yBAAyBC,WAAwBL,OAAOC,QAAAA;AAC9E,UAAMK,eAAe,MAAMH,QAAQI,SAAQ;AAC3CC,aAAS,MAAM,KAAKC,UAAUT,OAAOC,UAAUC,WAAAA,CAAAA;AAC/C,UAAMQ,iBAA4B,CAAA;AAClC,YAAQJ,aAAatB,QAAM;MACzB,KAAK9B,uBAAuB;AAC1B,cAAMS,UAAU,MAAM,KAAKgD,OAAOL,aAAaM,eAAeN,aAAaO,QAAQ;AACnF,YAAIlD,SAAS;AACX,gBAAMmD,UAAU,MAAM,IAAI/B,eAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAEvB;UAAQ,CAAA,EAAG0B,MAAK;AAC7GqB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAK3D,uBAAuB;AAC1B,cAAMQ,UAAU,MAAM,KAAKqD,OAAOV,aAAaM,aAAa;AAC5D,YAAIjD,SAAS;AACX,gBAAMmD,UAAU,MAAM,IAAI/B,eAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAEvB;UAAQ,CAAA,EAAG0B,MAAK;AAC7GqB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAK1D,yBAAyB;AAC5B,cAAM6D,YAAY,MAAM,KAAKzD,SAAQ;AACrC,mBAAWG,WAAWsD,WAAW;AAC/B,gBAAMH,UAAU,MAAM,IAAI/B,eAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAEvB;UAAQ,CAAA,EAAG0B,MAAK;AAC7GqB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,KAAKzD,2BAA2B;AAC9B,cAAM4D,YAAY,MAAM,KAAKC,WAAU;AACvC,mBAAWvD,WAAWsD,WAAW;AAC/B,gBAAMH,UAAU,MAAM,IAAI/B,eAA+B;YAAEC,QAAQC;UAAc,CAAA,EAAGC,OAAO;YAAEvB;UAAQ,CAAA,EAAG0B,MAAK;AAC7GqB,yBAAeK,KAAKD,OAAAA;QACtB;AACA;MACF;MACA,SAAS;AACP,eAAO,MAAM,MAAMf,aAAaC,OAAOC,QAAAA;MACzC;IACF;AACA,WAAOS;EACT;EAIA,MAAclC,WACZJ,uBACAC,SACwD;AACxD,YAAQ,OAAOD,uBAAAA;MACb,KAAK,UAAU;AACb,eAAQ,MAAM,KAAKG,eAAeH,uBAAuBC,OAAAA,KAAc,MAAM,MAAMR,QAAQO,uBAAuBC,OAAAA;MACpH;MACA,SAAS;AACP,eAAO;aAAK,MAAM,KAAKE,eAAeH,uBAAuBC,OAAAA;aAAe,MAAM,MAAMR,QAAQO,uBAAuBC,OAAAA;UAAWL,OAChImD,gBAAAA;MAEJ;IACF;EACF;EAIA,MAAc5C,eACZH,uBACAC,SACwD;AACxD,UAAMN,YAAYM,SAASN,aAAa;AACxC,UAAMqD,OAAOrD,cAAc,UAAUA,cAAc;AACnD,YAAQ,OAAOK,uBAAAA;MACb,KAAK,UAAU;AACb,eAAOgD,OAAO,MAAM,KAAKtE,gBAAgBe,QAAQO,qBAAAA,IAAyBN;MAC5E;MACA,SAAS;AACP,eAAOsD,OAAO,MAAM,KAAKtE,gBAAgBe,QAAQO,qBAAAA,IAAyBN;MAC5E;IACF;EACF;AAKF;","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","CompositeModuleResolver","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","privateResolver","CompositeModuleResolver","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedModules","map","address","maxDepth","resolve","undefined","direction","filter","manifest","ignoreAddresses","manifestHandler","nameOrAddressOrFilter","options","visibility","resolvePrivate","resolveAll","discoverHandler","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down"]}
|
|
@@ -17,12 +17,8 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
17
17
|
attached(): Promise<Address[]>;
|
|
18
18
|
attachedModules(maxDepth?: number): Promise<ModuleInstance[]>;
|
|
19
19
|
manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
20
|
-
register(_module: ModuleInstance): Promisable<void>;
|
|
21
|
-
registered(): Promisable<Address[]>;
|
|
22
|
-
registeredModules(): Promisable<Module[]>;
|
|
23
20
|
resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
|
|
24
21
|
resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>;
|
|
25
|
-
unregister(_module: ModuleInstance): Promisable<this>;
|
|
26
22
|
protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
|
|
27
23
|
protected manifestHandler(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
28
24
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
|
|
@@ -30,5 +26,6 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
30
26
|
private resolvePrivate;
|
|
31
27
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>;
|
|
32
28
|
abstract detach(nameOrAddress: string): Promisable<Address | undefined>;
|
|
29
|
+
abstract registered(): Promisable<Address[]>;
|
|
33
30
|
}
|
|
34
31
|
//# sourceMappingURL=AbstractNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIvF,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACxF,OAAO,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;cAkClG,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAWtD,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAsBlG,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;YA6CtB,UAAU;YAkBV,cAAc;IAkB5B,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
|
|
@@ -17,12 +17,8 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
17
17
|
attached(): Promise<Address[]>;
|
|
18
18
|
attachedModules(maxDepth?: number): Promise<ModuleInstance[]>;
|
|
19
19
|
manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
20
|
-
register(_module: ModuleInstance): Promisable<void>;
|
|
21
|
-
registered(): Promisable<Address[]>;
|
|
22
|
-
registeredModules(): Promisable<Module[]>;
|
|
23
20
|
resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
|
|
24
21
|
resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>;
|
|
25
|
-
unregister(_module: ModuleInstance): Promisable<this>;
|
|
26
22
|
protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
|
|
27
23
|
protected manifestHandler(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
28
24
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
|
|
@@ -30,5 +26,6 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
30
26
|
private resolvePrivate;
|
|
31
27
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>;
|
|
32
28
|
abstract detach(nameOrAddress: string): Promisable<Address | undefined>;
|
|
29
|
+
abstract registered(): Promisable<Address[]>;
|
|
33
30
|
}
|
|
34
31
|
//# sourceMappingURL=AbstractNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIvF,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACxF,OAAO,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;cAkClG,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAWtD,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAsBlG,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;YA6CtB,UAAU;YAkBV,cAAc;IAkB5B,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
|
|
@@ -17,12 +17,8 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
17
17
|
attached(): Promise<Address[]>;
|
|
18
18
|
attachedModules(maxDepth?: number): Promise<ModuleInstance[]>;
|
|
19
19
|
manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
20
|
-
register(_module: ModuleInstance): Promisable<void>;
|
|
21
|
-
registered(): Promisable<Address[]>;
|
|
22
|
-
registeredModules(): Promisable<Module[]>;
|
|
23
20
|
resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>;
|
|
24
21
|
resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>;
|
|
25
|
-
unregister(_module: ModuleInstance): Promisable<this>;
|
|
26
22
|
protected discoverHandler(maxDepth?: number): Promise<Payload[]>;
|
|
27
23
|
protected manifestHandler(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload>;
|
|
28
24
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
|
|
@@ -30,5 +26,6 @@ export declare abstract class AbstractNode<TParams extends NodeParams = NodePara
|
|
|
30
26
|
private resolvePrivate;
|
|
31
27
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>;
|
|
32
28
|
abstract detach(nameOrAddress: string): Promisable<Address | undefined>;
|
|
29
|
+
abstract registered(): Promisable<Address[]>;
|
|
33
30
|
}
|
|
34
31
|
//# sourceMappingURL=AbstractNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAkD,MAAM,6BAA6B,CAAA;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAEL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACtI,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOjF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,eAAe,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIvF,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACxF,OAAO,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;cAkClG,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAWtD,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAsBlG,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;YA6CtB,UAAU;YAkBV,cAAc;IAkB5B,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
|
package/dist/node/index.cjs
CHANGED
|
@@ -75,15 +75,6 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
|
|
|
75
75
|
async manifest(maxDepth, ignoreAddresses) {
|
|
76
76
|
return await this.manifestHandler(maxDepth, ignoreAddresses);
|
|
77
77
|
}
|
|
78
|
-
register(_module) {
|
|
79
|
-
throw new Error("Method not implemented.");
|
|
80
|
-
}
|
|
81
|
-
registered() {
|
|
82
|
-
throw new Error("Method not implemented.");
|
|
83
|
-
}
|
|
84
|
-
registeredModules() {
|
|
85
|
-
throw new Error("Method not implemented.");
|
|
86
|
-
}
|
|
87
78
|
async resolve(nameOrAddressOrFilter, options) {
|
|
88
79
|
if (typeof nameOrAddressOrFilter === "string") {
|
|
89
80
|
switch (options == null ? void 0 : options.visibility) {
|
|
@@ -111,9 +102,6 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
|
|
|
111
102
|
}
|
|
112
103
|
}
|
|
113
104
|
}
|
|
114
|
-
unregister(_module) {
|
|
115
|
-
throw new Error("Method not implemented.");
|
|
116
|
-
}
|
|
117
105
|
async discoverHandler(maxDepth) {
|
|
118
106
|
const childMods = await this.attachedModules(maxDepth);
|
|
119
107
|
const childModAddresses = await Promise.all(childMods.map((mod) => new import_payload_builder.PayloadBuilder({
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n protected readonly privateResolver = new CompositeModuleResolver()\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return (await this.attachedModules()).map((module) => module.address)\n }\n\n async attachedModules(maxDepth = 2): Promise<ModuleInstance[]> {\n return (await (this.resolve(undefined, { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n override async manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n register(_module: ModuleInstance): Promisable<void> {\n throw new Error('Method not implemented.')\n }\n\n registered(): Promisable<Address[]> {\n throw new Error('Method not implemented.')\n }\n\n registeredModules(): Promisable<Module[]> {\n throw new Error('Method not implemented.')\n }\n\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n override async resolve(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (typeof nameOrAddressOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n }\n }\n\n unregister(_module: ModuleInstance): Promisable<this> {\n throw new Error('Method not implemented.')\n }\n\n protected override async discoverHandler(maxDepth?: number): Promise<Payload[]> {\n const childMods = await this.attachedModules(maxDepth)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth?: number, ignoreAddresses: string[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler()), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all((await this.resolve(undefined, { direction: 'down', maxDepth })).filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(nameOrAddressOrFilter, options)) ?? (await super.resolve(nameOrAddressOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(nameOrAddressOrFilter, options)), ...(await super.resolve(nameOrAddressOrFilter, options))].filter(\n duplicateModules,\n )\n }\n }\n }\n\n private async resolvePrivate(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n }\n }\n\n abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>\n abstract detach(nameOrAddress: string): Promisable<Address | undefined>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","privateResolver","CompositeModuleResolver","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedModules","map","address","maxDepth","resolve","undefined","direction","filter","manifest","ignoreAddresses","manifestHandler","register","_module","Error","registered","registeredModules","nameOrAddressOrFilter","options","visibility","resolvePrivate","resolveAll","unregister","discoverHandler","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","duplicateModules","down","configSchemas","NodeConfigSchema"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/AbstractNode.ts"],"sourcesContent":["export * from './AbstractNode'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n protected readonly privateResolver = new CompositeModuleResolver()\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return (await this.attachedModules()).map((module) => module.address)\n }\n\n async attachedModules(maxDepth = 2): Promise<ModuleInstance[]> {\n return (await (this.resolve(undefined, { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n override async manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n override async resolve(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (typeof nameOrAddressOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n }\n }\n\n protected override async discoverHandler(maxDepth?: number): Promise<Payload[]> {\n const childMods = await this.attachedModules(maxDepth)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth?: number, ignoreAddresses: string[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler()), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all((await this.resolve(undefined, { direction: 'down', maxDepth })).filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(nameOrAddressOrFilter, options)) ?? (await super.resolve(nameOrAddressOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(nameOrAddressOrFilter, options)), ...(await super.resolve(nameOrAddressOrFilter, options))].filter(\n duplicateModules,\n )\n }\n }\n }\n\n private async resolvePrivate(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n }\n }\n\n abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>\n abstract detach(nameOrAddress: string): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","privateResolver","CompositeModuleResolver","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedModules","map","address","maxDepth","resolve","undefined","direction","filter","manifest","ignoreAddresses","manifestHandler","nameOrAddressOrFilter","options","visibility","resolvePrivate","resolveAll","discoverHandler","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","configSchemas","NodeConfigSchema"]}
|
package/dist/node/index.js
CHANGED
|
@@ -51,15 +51,6 @@ var _AbstractNode = class _AbstractNode extends AbstractModuleInstance {
|
|
|
51
51
|
async manifest(maxDepth, ignoreAddresses) {
|
|
52
52
|
return await this.manifestHandler(maxDepth, ignoreAddresses);
|
|
53
53
|
}
|
|
54
|
-
register(_module) {
|
|
55
|
-
throw new Error("Method not implemented.");
|
|
56
|
-
}
|
|
57
|
-
registered() {
|
|
58
|
-
throw new Error("Method not implemented.");
|
|
59
|
-
}
|
|
60
|
-
registeredModules() {
|
|
61
|
-
throw new Error("Method not implemented.");
|
|
62
|
-
}
|
|
63
54
|
async resolve(nameOrAddressOrFilter, options) {
|
|
64
55
|
if (typeof nameOrAddressOrFilter === "string") {
|
|
65
56
|
switch (options == null ? void 0 : options.visibility) {
|
|
@@ -87,9 +78,6 @@ var _AbstractNode = class _AbstractNode extends AbstractModuleInstance {
|
|
|
87
78
|
}
|
|
88
79
|
}
|
|
89
80
|
}
|
|
90
|
-
unregister(_module) {
|
|
91
|
-
throw new Error("Method not implemented.");
|
|
92
|
-
}
|
|
93
81
|
async discoverHandler(maxDepth) {
|
|
94
82
|
const childMods = await this.attachedModules(maxDepth);
|
|
95
83
|
const childModAddresses = await Promise.all(childMods.map((mod) => new PayloadBuilder({
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n protected readonly privateResolver = new CompositeModuleResolver()\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return (await this.attachedModules()).map((module) => module.address)\n }\n\n async attachedModules(maxDepth = 2): Promise<ModuleInstance[]> {\n return (await (this.resolve(undefined, { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n override async manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n register(_module: ModuleInstance): Promisable<void> {\n throw new Error('Method not implemented.')\n }\n\n registered(): Promisable<Address[]> {\n throw new Error('Method not implemented.')\n }\n\n registeredModules(): Promisable<Module[]> {\n throw new Error('Method not implemented.')\n }\n\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n override async resolve(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (typeof nameOrAddressOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n }\n }\n\n unregister(_module: ModuleInstance): Promisable<this> {\n throw new Error('Method not implemented.')\n }\n\n protected override async discoverHandler(maxDepth?: number): Promise<Payload[]> {\n const childMods = await this.attachedModules(maxDepth)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth?: number, ignoreAddresses: string[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler()), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all((await this.resolve(undefined, { direction: 'down', maxDepth })).filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(nameOrAddressOrFilter, options)) ?? (await super.resolve(nameOrAddressOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(nameOrAddressOrFilter, options)), ...(await super.resolve(nameOrAddressOrFilter, options))].filter(\n duplicateModules,\n )\n }\n }\n }\n\n private async resolvePrivate(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n }\n }\n\n abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>\n abstract detach(nameOrAddress: string): Promisable<Address | undefined>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","CompositeModuleResolver","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","privateResolver","CompositeModuleResolver","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedModules","map","address","maxDepth","resolve","undefined","direction","filter","manifest","ignoreAddresses","manifestHandler","register","_module","Error","registered","registeredModules","nameOrAddressOrFilter","options","visibility","resolvePrivate","resolveAll","unregister","discoverHandler","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","duplicateModules","down","configSchemas","NodeConfigSchema"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload, NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport {\n duplicateModules,\n Module,\n ModuleConfig,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport {\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements NodeModule<TParams, TEventData>, Module<TParams, TEventData>\n{\n static override readonly configSchemas: string[] = [NodeConfigSchema]\n\n protected readonly privateResolver = new CompositeModuleResolver()\n\n private readonly isNode = true\n\n override get queries(): string[] {\n return [NodeAttachQuerySchema, NodeDetachQuerySchema, NodeAttachedQuerySchema, NodeRegisteredQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<NodeQueries['schema'], string> {\n return {\n 'network.xyo.query.node.attach': '1/1',\n 'network.xyo.query.node.attached': '1/2',\n 'network.xyo.query.node.detach': '1/3',\n 'network.xyo.query.node.registered': '1/4',\n }\n }\n\n static isNode(module: unknown) {\n return (module as AbstractNode).isNode\n }\n\n async attached(): Promise<Address[]> {\n return (await this.attachedModules()).map((module) => module.address)\n }\n\n async attachedModules(maxDepth = 2): Promise<ModuleInstance[]> {\n return (await (this.resolve(undefined, { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n override async manifest(maxDepth?: number, ignoreAddresses?: string[]): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n override async resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n override async resolve(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n //checking type of nameOrAddressOrFilter before calling other functions since TS seems\n //to need help here narrowing before the call\n if (typeof nameOrAddressOrFilter === 'string') {\n switch (options?.visibility) {\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n } else {\n switch (options?.visibility) {\n case 'all': {\n return await this.resolveAll(nameOrAddressOrFilter)\n }\n case 'private': {\n return await this.resolvePrivate(nameOrAddressOrFilter)\n }\n default: {\n return await super.resolve(nameOrAddressOrFilter, options)\n }\n }\n }\n }\n\n protected override async discoverHandler(maxDepth?: number): Promise<Payload[]> {\n const childMods = await this.attachedModules(maxDepth)\n const childModAddresses = await Promise.all(\n childMods.map((mod) =>\n new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address, name: mod.config.name }).build(),\n ),\n )\n\n return [...(await super.discoverHandler(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth?: number, ignoreAddresses: string[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler()), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth, newIgnoreAddresses)\n\n /*const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))\n if (privateModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.private = privateModules\n }*/\n\n const publicModules = await Promise.all((await this.resolve(undefined, { direction: 'down', maxDepth })).filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const address = await this.attach(queryPayload.nameOrAddress, queryPayload.external)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const address = await this.detach(queryPayload.nameOrAddress)\n if (address) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attached()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registered()\n for (const address of addresses) {\n const payload = await new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n private async resolveAll(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(nameOrAddressOrFilter, options)) ?? (await super.resolve(nameOrAddressOrFilter, options))\n }\n default: {\n return [...(await this.resolvePrivate(nameOrAddressOrFilter, options)), ...(await super.resolve(nameOrAddressOrFilter, options))].filter(\n duplicateModules,\n )\n }\n }\n }\n\n private async resolvePrivate(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolvePrivate(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolvePrivate(\n nameOrAddressOrFilter?: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n const direction = options?.direction ?? 'all'\n const down = direction === 'down' || direction === 'all'\n switch (typeof nameOrAddressOrFilter) {\n case 'string': {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n default: {\n return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined\n }\n }\n }\n\n abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>\n abstract detach(nameOrAddress: string): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","CompositeModuleResolver","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","privateResolver","CompositeModuleResolver","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedModules","map","address","maxDepth","resolve","undefined","direction","filter","manifest","ignoreAddresses","manifestHandler","nameOrAddressOrFilter","options","visibility","resolvePrivate","resolveAll","discoverHandler","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","duplicateModules","down","configSchemas","NodeConfigSchema"]}
|
package/package.json
CHANGED
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^3.0.
|
|
14
|
-
"@xylabs/hex": "^3.0.
|
|
15
|
-
"@xylabs/promise": "^3.0.
|
|
16
|
-
"@xyo-network/address-payload-plugin": "~2.92.
|
|
17
|
-
"@xyo-network/boundwitness-model": "~2.92.
|
|
18
|
-
"@xyo-network/boundwitness-wrapper": "~2.92.
|
|
19
|
-
"@xyo-network/manifest-model": "~2.92.
|
|
20
|
-
"@xyo-network/module-abstract": "~2.92.
|
|
21
|
-
"@xyo-network/module-model": "~2.92.
|
|
22
|
-
"@xyo-network/module-resolver": "~2.92.
|
|
23
|
-
"@xyo-network/node-model": "~2.92.
|
|
24
|
-
"@xyo-network/payload-builder": "~2.92.
|
|
25
|
-
"@xyo-network/payload-model": "~2.92.
|
|
13
|
+
"@xylabs/assert": "^3.0.13",
|
|
14
|
+
"@xylabs/hex": "^3.0.13",
|
|
15
|
+
"@xylabs/promise": "^3.0.13",
|
|
16
|
+
"@xyo-network/address-payload-plugin": "~2.92.5",
|
|
17
|
+
"@xyo-network/boundwitness-model": "~2.92.5",
|
|
18
|
+
"@xyo-network/boundwitness-wrapper": "~2.92.5",
|
|
19
|
+
"@xyo-network/manifest-model": "~2.92.5",
|
|
20
|
+
"@xyo-network/module-abstract": "~2.92.5",
|
|
21
|
+
"@xyo-network/module-model": "~2.92.5",
|
|
22
|
+
"@xyo-network/module-resolver": "~2.92.5",
|
|
23
|
+
"@xyo-network/node-model": "~2.92.5",
|
|
24
|
+
"@xyo-network/payload-builder": "~2.92.5",
|
|
25
|
+
"@xyo-network/payload-model": "~2.92.5"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@xylabs/ts-scripts-yarn3": "^3.5.2",
|
|
@@ -68,6 +68,6 @@
|
|
|
68
68
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
69
69
|
},
|
|
70
70
|
"sideEffects": false,
|
|
71
|
-
"version": "2.92.
|
|
71
|
+
"version": "2.92.5",
|
|
72
72
|
"type": "module"
|
|
73
73
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -70,18 +70,6 @@ export abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEve
|
|
|
70
70
|
return await this.manifestHandler(maxDepth, ignoreAddresses)
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
register(_module: ModuleInstance): Promisable<void> {
|
|
74
|
-
throw new Error('Method not implemented.')
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
registered(): Promisable<Address[]> {
|
|
78
|
-
throw new Error('Method not implemented.')
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
registeredModules(): Promisable<Module[]> {
|
|
82
|
-
throw new Error('Method not implemented.')
|
|
83
|
-
}
|
|
84
|
-
|
|
85
73
|
override async resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>
|
|
86
74
|
override async resolve(nameOrAddress: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>
|
|
87
75
|
override async resolve(
|
|
@@ -117,10 +105,6 @@ export abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEve
|
|
|
117
105
|
}
|
|
118
106
|
}
|
|
119
107
|
|
|
120
|
-
unregister(_module: ModuleInstance): Promisable<this> {
|
|
121
|
-
throw new Error('Method not implemented.')
|
|
122
|
-
}
|
|
123
|
-
|
|
124
108
|
protected override async discoverHandler(maxDepth?: number): Promise<Payload[]> {
|
|
125
109
|
const childMods = await this.attachedModules(maxDepth)
|
|
126
110
|
const childModAddresses = await Promise.all(
|
|
@@ -241,4 +225,5 @@ export abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEve
|
|
|
241
225
|
|
|
242
226
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<Address | undefined>
|
|
243
227
|
abstract detach(nameOrAddress: string): Promisable<Address | undefined>
|
|
228
|
+
abstract registered(): Promisable<Address[]>
|
|
244
229
|
}
|