@xyo-network/node-abstract 2.94.22 → 2.94.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAiB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAwB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAiB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAwB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAiB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAwB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
@@ -98,6 +98,10 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
98
98
  ];
99
99
  }
100
100
  async manifestHandler(maxDepth = 10, ignoreAddresses = []) {
101
+ const cachedResult = this._cachedManifests.get(maxDepth);
102
+ if (cachedResult) {
103
+ return cachedResult;
104
+ }
101
105
  const manifest = {
102
106
  ...await super.manifestHandler(maxDepth, ignoreAddresses),
103
107
  schema: import_manifest_model.NodeManifestPayloadSchema
@@ -117,6 +121,7 @@ var AbstractNode = class _AbstractNode extends import_module_abstract.AbstractMo
117
121
  manifest.modules = manifest.modules ?? {};
118
122
  manifest.modules.public = publicModules;
119
123
  }
124
+ this._cachedManifests.set(maxDepth, manifest);
120
125
  return manifest;
121
126
  }
122
127
  async queryHandler(query, payloads, queryConfig) {
@@ -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 { globallyUnique } from '@xylabs/object'\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 {\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 static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\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 [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = 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.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), 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 - 1, newIgnoreAddresses)\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1 })\n const publicModules = await Promise.all(publicChildren.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(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate('*', options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","resolveAll","idOrFilter","options","duplicateModules"]}
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 { globallyUnique } from '@xylabs/object'\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 {\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 static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\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 [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = 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.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1 })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\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(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate('*', options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","publicModules","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","resolveAll","idOrFilter","options","duplicateModules"]}
@@ -74,6 +74,10 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
74
74
  ];
75
75
  }
76
76
  async manifestHandler(maxDepth = 10, ignoreAddresses = []) {
77
+ const cachedResult = this._cachedManifests.get(maxDepth);
78
+ if (cachedResult) {
79
+ return cachedResult;
80
+ }
77
81
  const manifest = {
78
82
  ...await super.manifestHandler(maxDepth, ignoreAddresses),
79
83
  schema: NodeManifestPayloadSchema
@@ -93,6 +97,7 @@ var AbstractNode = class _AbstractNode extends AbstractModuleInstance {
93
97
  manifest.modules = manifest.modules ?? {};
94
98
  manifest.modules.public = publicModules;
95
99
  }
100
+ this._cachedManifests.set(maxDepth, manifest);
96
101
  return manifest;
97
102
  }
98
103
  async queryHandler(query, payloads, queryConfig) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\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 {\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 static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\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 [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = 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.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), 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 - 1, newIgnoreAddresses)\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1 })\n const publicModules = await Promise.all(publicChildren.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(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate('*', options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","globallyUnique","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","resolveAll","idOrFilter","options","duplicateModules"]}
1
+ {"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\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 {\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 static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\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 [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = 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.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1 })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\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(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate('*', options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","globallyUnique","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","configSchemas","NodeConfigSchema","uniqueName","globallyUnique","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","publicModules","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","resolveAll","idOrFilter","options","duplicateModules"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAiB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAwB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAiB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAwB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAiB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,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,EAGZ,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACzB,MAAM,2BAA2B,CAAA;AAClC,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;IACrE,gBAAyB,UAAU,SAAsD;IAEzF,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;IAOrB,QAAQ,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAIvF,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAI/D,qBAAqB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;cAIrD,wBAAwB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAY3D,eAAe,CAAC,QAAQ,SAAK,EAAE,eAAe,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAwB/F,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;IAoBxB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7C"}
@@ -96,6 +96,10 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
96
96
  ];
97
97
  }
98
98
  async manifestHandler(maxDepth = 10, ignoreAddresses = []) {
99
+ const cachedResult = this._cachedManifests.get(maxDepth);
100
+ if (cachedResult) {
101
+ return cachedResult;
102
+ }
99
103
  const manifest = {
100
104
  ...await super.manifestHandler(maxDepth, ignoreAddresses),
101
105
  schema: import_manifest_model.NodeManifestPayloadSchema
@@ -115,6 +119,7 @@ var _AbstractNode = class _AbstractNode extends import_module_abstract.AbstractM
115
119
  manifest.modules = manifest.modules ?? {};
116
120
  manifest.modules.public = publicModules;
117
121
  }
122
+ this._cachedManifests.set(maxDepth, manifest);
118
123
  return manifest;
119
124
  }
120
125
  async queryHandler(query, payloads, queryConfig) {
@@ -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 { globallyUnique } from '@xylabs/object'\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 {\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 static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\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 [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = 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.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), 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 - 1, newIgnoreAddresses)\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1 })\n const publicModules = await Promise.all(publicChildren.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(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate('*', options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","resolveAll","idOrFilter","options","duplicateModules","configSchemas","NodeConfigSchema","uniqueName","globallyUnique"]}
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 { globallyUnique } from '@xylabs/object'\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 {\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 static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\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 [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = 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.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1 })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\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(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate('*', options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","publicModules","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","resolveAll","idOrFilter","options","duplicateModules","configSchemas","NodeConfigSchema","uniqueName","globallyUnique"]}
@@ -72,6 +72,10 @@ var _AbstractNode = class _AbstractNode extends AbstractModuleInstance {
72
72
  ];
73
73
  }
74
74
  async manifestHandler(maxDepth = 10, ignoreAddresses = []) {
75
+ const cachedResult = this._cachedManifests.get(maxDepth);
76
+ if (cachedResult) {
77
+ return cachedResult;
78
+ }
75
79
  const manifest = {
76
80
  ...await super.manifestHandler(maxDepth, ignoreAddresses),
77
81
  schema: NodeManifestPayloadSchema
@@ -91,6 +95,7 @@ var _AbstractNode = class _AbstractNode extends AbstractModuleInstance {
91
95
  manifest.modules = manifest.modules ?? {};
92
96
  manifest.modules.public = publicModules;
93
97
  }
98
+ this._cachedManifests.set(maxDepth, manifest);
94
99
  return manifest;
95
100
  }
96
101
  async queryHandler(query, payloads, queryConfig) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\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 {\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 static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\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 [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = 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.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), 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 - 1, newIgnoreAddresses)\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1 })\n const publicModules = await Promise.all(publicChildren.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(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate('*', options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","globallyUnique","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","publicModules","length","modules","public","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","resolveAll","idOrFilter","options","duplicateModules","configSchemas","NodeConfigSchema","uniqueName","globallyUnique"]}
1
+ {"version":3,"sources":["../../src/AbstractNode.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { globallyUnique } from '@xylabs/object'\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 {\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 static override readonly uniqueName = globallyUnique('AbstractNode', AbstractNode, 'xyo')\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 [\n ...(await this.attachedPublicModules()).map((module) => module.address),\n ...(await this.attachedPrivateModules()).map((module) => module.address),\n ]\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter((module) => module.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n //console.log(`childMods: ${toJsonString(childMods)}`)\n const childModAddresses = 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.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (module: ModuleInstance) => module.address !== this.address && !ignoreAddresses.includes(module.address)\n const toManifest = (module: ModuleInstance) => module.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.resolve('*', { direction: 'down', maxDepth: 1 })\n const publicModules = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModules.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModules\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\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(all: '*', options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(filter: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n private async resolveAll(id: ModuleIdentifier, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n private async resolveAll(\n idOrFilter: ModuleFilter | ModuleIdentifier,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n if (idOrFilter === '*') {\n return [...(await this.resolvePrivate('*', options)), ...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return (await this.resolvePrivate(idOrFilter, options)) ?? (await super.resolve(idOrFilter, options))\n }\n default: {\n return [...(await super.resolve(idOrFilter, options))].filter(duplicateModules)\n }\n }\n }\n\n abstract attach(id: ModuleIdentifier, external?: boolean): Promisable<Address | undefined>\n abstract detach(id: ModuleIdentifier): Promisable<Address | undefined>\n abstract registered(): Promisable<Address[]>\n}\n"],"mappings":"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","names":["assertEx","globallyUnique","AddressSchema","QueryBoundWitnessWrapper","NodeManifestPayloadSchema","AbstractModuleInstance","duplicateModules","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeConfigSchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","PayloadBuilder","AbstractNode","AbstractModuleInstance","isNode","queries","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeAttachedQuerySchema","NodeRegisteredQuerySchema","_queryAccountPaths","module","attached","attachedPublicModules","map","address","attachedPrivateModules","manifest","maxDepth","ignoreAddresses","manifestHandler","resolvePrivate","filter","downResolver","resolve","direction","generateConfigAndAddress","childMods","childModAddresses","Promise","all","mod","PayloadBuilder","schema","AddressSchema","fields","name","config","build","cachedResult","_cachedManifests","get","NodeManifestPayloadSchema","newIgnoreAddresses","notThisModule","includes","toManifest","publicChildren","publicModules","length","modules","public","set","queryHandler","query","payloads","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","assertEx","queryable","resultPayloads","attach","nameOrAddress","external","payload","push","detach","addresses","registered","resolveAll","idOrFilter","options","duplicateModules","configSchemas","NodeConfigSchema","uniqueName","globallyUnique"]}
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.25",
14
- "@xylabs/hex": "^3.0.25",
15
- "@xylabs/object": "^3.0.25",
16
- "@xylabs/promise": "^3.0.25",
17
- "@xyo-network/address-payload-plugin": "~2.94.22",
18
- "@xyo-network/boundwitness-model": "~2.94.22",
19
- "@xyo-network/boundwitness-wrapper": "~2.94.22",
20
- "@xyo-network/manifest-model": "~2.94.22",
21
- "@xyo-network/module-abstract": "~2.94.22",
22
- "@xyo-network/module-model": "~2.94.22",
23
- "@xyo-network/node-model": "~2.94.22",
24
- "@xyo-network/payload-builder": "~2.94.22",
25
- "@xyo-network/payload-model": "~2.94.22"
13
+ "@xylabs/assert": "^3.1.6",
14
+ "@xylabs/hex": "^3.1.6",
15
+ "@xylabs/object": "^3.1.6",
16
+ "@xylabs/promise": "^3.1.6",
17
+ "@xyo-network/address-payload-plugin": "~2.94.24",
18
+ "@xyo-network/boundwitness-model": "~2.94.24",
19
+ "@xyo-network/boundwitness-wrapper": "~2.94.24",
20
+ "@xyo-network/manifest-model": "~2.94.24",
21
+ "@xyo-network/module-abstract": "~2.94.24",
22
+ "@xyo-network/module-model": "~2.94.24",
23
+ "@xyo-network/node-model": "~2.94.24",
24
+ "@xyo-network/payload-builder": "~2.94.24",
25
+ "@xyo-network/payload-model": "~2.94.24"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@xylabs/ts-scripts-yarn3": "^3.9.0",
@@ -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.94.22",
71
+ "version": "2.94.24",
72
72
  "type": "module"
73
73
  }
@@ -89,6 +89,11 @@ export abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEve
89
89
  }
90
90
 
91
91
  protected override async manifestHandler(maxDepth = 10, ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {
92
+ const cachedResult = this._cachedManifests.get(maxDepth)
93
+ if (cachedResult) {
94
+ return cachedResult
95
+ }
96
+
92
97
  const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }
93
98
  const newIgnoreAddresses = [...ignoreAddresses, this.address]
94
99
 
@@ -102,6 +107,8 @@ export abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEve
102
107
  manifest.modules.public = publicModules
103
108
  }
104
109
 
110
+ this._cachedManifests.set(maxDepth, manifest)
111
+
105
112
  return manifest
106
113
  }
107
114